Data1 : 5分K
Data2:30分K
主要進出是用5分K,但要參考30分K的數據。所以有一個策略簡碼如下:
vars:
Var0(0,data2);
Var0=FunctionXXX(High of data2, Low of data2)
If A > Var0 then Buy("LE") next bar at market;
現在的狀況是,如果另外寫一個指標把Var0畫在Data2,和上面的策略算出來的Var0不一樣。
目前的猜測是,FunctionXXX裡面會用到連續數筆Data2 的High and Low做計算,所以在30分鐘的區間內,這個策略會被執行6次,所以FunctionXXX也會被執行6次,但這6次MC抓的High of data2與Low of data2可能都是同一個值(因為還在30分鐘內);但我期望它其實抓的是真正的Data2的High, High[1], High[2]...(往前推每隔30分鐘的High) 依此類推。
請問該如何解?
無法修改原文,補充如下:
現在的狀況是,如果另外寫一個指標把Var0畫在Data2,和上面的策略算出來的Var0不一樣。"但我確定用指標把Var0直接畫在Data2上的部分是正確的"
在客服上來之前,再自問自答一下。
後來測試發現FunctionX因為會跟著小週期(data1)在每個K棒發生後就會計算,然而FunctionX裡頭用到好幾個變數是會用到前數次的值,造成結果不正確。
也就是說, 在Data1是5分K(小週期);Data2是30分K(大週期)的情況下,FunctionX的結果要正確,必須就是每30分鐘用Data2的資料來計算才會正確。但我現在發生的情況卻是FunctionX因為每5分鐘就算一次,雖然用到的是Data2的值,但因為在計算過程有很多暫存變數是會用到先前的數值就變得不正確。
目前看起來只能這樣寫:
if time=data2的時間頻率 then begin
FunctionXXX(High of data2);
end ;
不知有沒有更好的做法?