盤中量化交易模組 回測問題

  •   95 
  • 最後發表   Jerry1005  2024 五月 24
Jerry1005 發文於   2024/05/22

回測程式碼發現調用average 函數會出現setposition故障問題
```
var:logFile("");
logFile = Text("C:\SysJust\XQLite\XS\Print\05log" , ".log");
value4 = GetField("日期");
value5 = GetField("時間");
//變數
value1 = average(close, 5);
value2 = average(close, 10);
value3 = average(close, 20);
value6 = average(close,60);
//value7 = average(close,120);
//value8 = average(close,240);

Print(File(logFile), "position狀態",value4, value5, Position,Filled);

if (value4 = 20240510.000000) and (value5 = 10000.000000) then
begin
Print(File(logFile), "買入2",value4, value5);
SetPosition(1, MARKET);
end;
```

程式碼如上
設定回測條件


執行log確實有執行到setposition(1, market);
只需要把value6 = average(close,60);註解又能正常執行
過程中完全沒用到value6判斷請協助修正此issue

XS小編 發文於   2024/05/24

Hello Jerry1005,

 

因為您的資料引用筆數不足,導致壓縮到回測的區間。

雖然腳本運算沒有使用到 value6,但 average(close,60) 還是有計算,故還是需要夠長的資料引用筆數。

可以加上 setbackbar(60); 即可。

 

發表回覆
Close