(已解決) 指標與策略寫相同的邏輯,但策略回測結果與指標顯示的不同?答案是:回測的時間範圍太短,小於均線的觀察範圍

  •   109 
  • 最後發表   Sadless  2020 四月 14
Sadless 發文於   2020/04/10

指標的邏輯如下:

如有買進訊號,指標會在畫面打一個桃紅色的突波。

variable:period(0);

period = 4.5*60;//270

variable:LR_Slope_(0);
LR_Slope_=linearregslope(close,period);
plot66(LR_Slope_,"LR_Slope_");

variable:MA_period_(0);
MA_period_=average(close,period);

if close < MA_period_
    and LR_Slope_ > 1*LR_Slope_[1]   
    and MA_period_ > MA_period_[135]
    and MA_period_ > MA_period_[10]
then plot24(0.01)
else plot24(0);

 

策略的邏輯如下:

如上述指標,將畫出突波,改成 ret=1;

variable:period(0);

period = 4.5*60;//270

variable:LR_Slope_(0);
LR_Slope_=linearregslope(close,period);
//plot66(LR_Slope_,"LR_Slope_");

variable:MA_period_(0);
MA_period_=average(close,period);

if close < MA_period_
    and LR_Slope_ > 1*LR_Slope_[1]   
    and MA_period_ > MA_period_[135]
    and MA_period_ > MA_period_[10]
then ret=1;
//then plot24(0.01)
//else plot24(0);

 

針對 茂林-KY(4935.TW) 做回測,回測設定如下:

 

回測結果如下:

顯示在2020/03/20 9:50 有買進訊號

 

 

然而在指標顯示:

2020/03/02 9:50 卻沒有出現桃紅色突波訊號?

請問是我哪裡設定錯誤了,導致策略回測結果和指標顯示的不相同呢?

 

XQ小幫手 發文於   2020/04/14

Hi Sadless

小幫手查看了您的腳本,發現了以下問題

並不是您的語法有誤,只是因為設計上的問題導致,策略雷達回測必須再加上條件去避免這個狀況

以下向您說明

因為指標的資料序列是連續的,一分鐘保留了約兩年的資料,因此預設範圍是選擇兩年

但是在回測的時候,因為您的範圍只選擇了3/2至4/9日。

導致在3/2日的時候,因為取不到MA_period[135],系統會自動補0

因此觸發條件而看起來結果不一樣。

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

其實指標也會有此問題,只是因為您資料是連續性的,導致影響範圍是2018年的前面那一段資料

建議您在您的回測範圍判斷,加上一段語法

if close < MA_period_
    and LR_Slope_ > 1*LR_Slope_[1]  
    and MA_period_ > MA_period_[135]
    and MA_period_ > MA_period_[10]
    and 135 < currentbar
then ret=1;

利用135<currentbar,排除系統尚未足夠135筆資料而錯誤觸發的問題

提供給您參考,小幫手有試過,答案就會符合囉。

謝謝您的詢問。

 

發表回覆
Close