回測問題求解

  •   137 
  • 最後發表   richardchien6  2023 三月 07
richardchien6 發文於   2023/03/03

同一個程式為甚麼放到警示和選股的回測結果會不一樣,使用的是同一隻程式,條件也都設一樣的

但警示的選股卻發生很多明明符合條件卻沒有進場的狀況

以下是程式碼

{

1. 近一個月創一年新高

2. 10天中最高點到最低點拉回10%以上

3. 收盤價大於10

4. 收盤價在60WMA上

}

value1 = highest(high,20);//一個月最高

value2 = highest(high,365);//一年最高

var: i(0), j(0);

var: backto(0.1);//至少拉回幾%

value4 = highest(getField("HIGH", "D"),10);

if value1 >= value2 then condition1 = True

else condition1 = false;

if (value4 - close )/ value4 > backto then condition2 = true

else condition2 = false;

if close > WMA(close,60) then condition3 = true

else condition3 = false;

 

if condition1 and condition2 and condition3 and close > 10 then ret = 1;

 

下圖是回測結果

警示回測條件與結果

選股回測條件

選股符合條件有進場

警示符合條件卻沒進場的情況

請大神解惑

XQ小幫手 發文於   2023/03/07

 Hello richardchien6,

 

兩者會不同是因為選股預設會把所有的資料拉出來,但雷達並不會,導致雷達回測時會因為資料引用筆數不足而壓縮到回測計算的區間。

資料讀取筆數和資料引用筆數的說明可以參考此篇文章

您可以在警示腳本中加上setbackbar(60),兩者出來的數值就會相同。

發表回覆
Close