回測問題

  •   166 
  • 最後發表   大師  2018 九月 27
大師 發文於   2018/09/27

 

簡單寫了一個當沖放空的策略,出場停利停損都是設2%
回測頻率是設1分鐘
只執行2018-09-20
執行商品是所有上市櫃個股

----------------------------------------------------------------------------------------------------------
進場腳本如下:

value1=getfield("open","D");

value2=getfield("volume","D");

condition1=value2[1]> value2[2]*2 or value2[1] > average(value2[1],5)*2;

condition2=value2 < value2[1]*0.8;

condition3=close < value1;

if condition1 and condition2 and condition3 

and value2 > 500

then ret=1;

--------------------------------------------------------------------------------------------

結果回測沒有跑出半檔個股

連上面看起來是符合9368國統的語法的腳本也沒跑出國統的回測結果

不知問題出在哪裡?

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/09/27

Hi 大師,

您好,建議您可以使用 Print 語法,然後回測設定記得勾選"啟動腳本內Print指令",

將相關運算數值匯出,以便查看數值運算是否與您的想法有落差。


連上面看起來是符合9368國統的語法的腳本也沒跑出國統的回測結果

請別使用 value2[1]、value2[2] 抓取前1、2日的成交量,因為在 1分K頻率中,value2[1]、value2[2] 都會取得相同的日成交量,

故請改成以下程式碼範例,回測 國統(8936)在09/20 應該就會有交易筆數出現了,以上方向供您參考,謝謝。

value1=getfield("open","D");

value2=getfield("volume","D");

//condition1=value2[1]> value2[2]*2 or value2[1] > average(value2[1],5)*2;
condition1=getfield("volume","D")[1]> getfield("volume","D")[2]*2 or getfield("volume","D")[1] > average(getfield("volume","D")[1],5)*2;

//condition2=value2 < value2[1]*0.8;
condition2=getfield("volume","D") < getfield("volume","D")[1]*0.8;

condition3=close < value1;

if condition1 and condition2 and condition3 
//and value2 > 500
and getfield("volume","D") > 500
then ret=1;

大師 發文於   2018/09/27

謝謝XQ小幫手的解說

  • 按讚來自於
  • b24524658
發表回覆
Close