if time=091500 then begin
value90 = GetSymbolField("TSE.TW","成交金額","15");
value91 = GetSymbolField("TSE.TW","成交金額","15")[1];
value92 = GetSymbolField("TSE.TW","成交金額","15")[2];
value93 = GetSymbolField("TSE.TW","成交金額","15")[3];
end ;
這樣寫是對的嗎?
謝謝
if time=091500 then begin
value90 = GetSymbolField("TSE.TW","成交金額","15");
value91 = GetSymbolField("TSE.TW","成交金額","15")[1];
value92 = GetSymbolField("TSE.TW","成交金額","15")[2];
value93 = GetSymbolField("TSE.TW","成交金額","15")[3];
end ;
這樣寫是對的嗎?
謝謝
這樣寫不對。這個問題既跨頻率又跨商品,處理起來比較複雜。你可能需要跑迴圈處理。
我打算把這個既跨頻率又跨商品的問題收藏為我的新版書籍範例,先分享給你參考。
If barfreq <> "Min" or barinterval <> 1 then raiseRunTimeError("限用1分鐘");
Input: Length(3, "天數");
SetTotalBar(270 * (Length + 1));
Var: i(0), Count(0);
Array: Arr1[](0), Arr2[](0);
If isLastBar then
begin
value1 = 270 * (Length + 1) / 15; //15分K筆數
for i = 0 to value1-1
begin
if GetSymbolField("TSE.TW","日期","15")[i]<>Date and
GetSymbolField("TSE.TW","日期","15")[i] <> GetSymbolField("TSE.TW","日期","15")[i+1] then
begin
count += 1;
Array_SetMaxIndex(Arr1, count);
Array_SetMaxIndex(Arr2, count);
Arr1[count]=GetSymbolField("TSE.TW","日期","15")[i]*1000000+GetSymbolField("TSE.TW","時間","15")[i];
Arr2[count]=GetSymbolField("TSE.TW","成交金額","15")[i];
print(Arr1[count],Arr2[count]);
end;
end;
end;
原來難度如此之高......
感謝教授無私分享!
若要在盤中應用,考慮到計算的是歷史數據,只需要計算一次,可用isFirstCall("RealTime")取代isLastBar,這樣會比較有效率。
4 評論