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;
原來難度如此之高......
感謝教授無私分享!
Hello 石頭,
小編補充,如果您的資料讀取筆數夠長 (ex. 包含當天有4日),則可以在每日第一根15分K的時候用陣列來保存所需資料。
舉例來說,如果執行在15分鐘頻率上:
Array: NumArray[4](0);
if time = 090000 then begin
for value1 = 4 DownTo 2 begin
NumArray[value1] = NumArray[value1 - 1];
end;
NumArray[1] = GetSymbolField("TSE.TW","成交金額");
end;
這樣 NumArray 的 [1] ~ [4] 就會是 今天 ~ 大前天 的第一根成交金額資訊。
5 評論