用月K回測結果,跟之前不一樣

  •   66 
  • 最後發表   mans68  2025 七月 03
mans68 發文於   2025/06/27

用月K回測結果,跟前幾個月不一樣,請問是有動到指標的運算值,還是有其他問題?? 能否回復到之前狀況. 謝謝

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/06/27

回測結果跟之前的回測結果不一樣,可能與回測成功的商品數量不同有關。你需要提供更詳細的訊息才有機會知道原因。

mans68 發文於   2025/06/28

一樣的程式,卻不一樣結果. 成功的數量一樣如下,失敗的商品,並不在之前所回測的結果之中.

並且已經好一陣子回測都正常,只有現在回測出來的結果異常. 故才會覺得是可能有哪些指標或數值跑掉了,所以才出現異常.

截圖圖片

之前用月K回測結果,如下圖

截圖圖片

現在回測出來結果,如下圖.

截圖圖片

虎科大許教授 發文於   2025/06/28

確定兩次回測的開始時間都相同嗎?另外,回測的觸發條件也可能影響結果,例如用過去一段時間的月資料計算條件,經過資料更新,觸發條件可能不同。若可以的話,將你的觸發條件貼上來看看。

mans68 發文於   2025/06/29

確定兩次開始時間都是一樣的,觸發條件也一樣,如下.   

突然結果不一樣,幾周前試都還正常. 

 

variable:MA_10(0),MA_20(0),MA_12(0),MA_5(0);

variable:Vol_10(0),Vol_20(0),Vol_5(0);

variable:RSI_5(0),RSI_10(0),RSI_20(0);

variable:PDI(0),NDI(0),ADX_d(0),ADXR_d(0);

variable:VR6(0),VR12(0),VR20(0);

variable:rsv(0),K(0),D(0);

variable:ATR_12(0),ATR_20(0);

variable:DIF_d(0),MACD_d(0),OSC_d(0);

variable:CCI_12(0),CCI_20(0);

variable:MTM_12(0),MTM_MA_12(0),MTM_20(0),MTM_MA_20(0);

variable:OBV_6(0);

variable:i(0); // 8

variable:num(0); 

 

 

if CurrentBar>30  //

then

   begin

 

         MA_10= average(Close,10);

MA_20= average(Close,20);

MA_12= average(Close,12);

MA_5= average(Close,5);

 

Vol_10=average(Volume,10);

Vol_20=average(Volume,20);

Vol_5=average(Volume,5);

 

RSI_5 = RSI(Close,5);    //RSI

RSI_10 = RSI(Close,10);    //RSI

RSI_20 = RSI(Close,20);    //RSI

 

settotalBar(30);

DirectionMovement(14, PDI, NDI, ADX_d);  //DMI

ADXR_d = (ADX_d + ADX_d[14])/2;

 

stochastic(9, 3, 3, rsv, K, D);  //KD

MACD(weightedClose(),12,26,9, DIF_d, MACD_d, OSC_d); //MACD

OBV_6=average(VAO, 6);

ATR_20=ATR(20); ATR_12=ATR(12);

MTM_12=MTM(12); MTM_20=MTM(20);

MTM_MA_12=MTM_MA(12); MTM_MA_20=MTM_MA(20);

CCI_12=CCI(12); CCI_20=CCI(20);

 

 

 

 

setbarfreq("M");

 

 

 

 

if 

 RSI_5[0] > 49.74  

and RSI_10[0] > 47.64 

and RSI_20[0] > 45.07 

 

and MACD_d[0] > -1.28 

and PDI[0] > 19.04  

and NDI[0] > 13.75  

 

and CCI_12[0] > -25.24  

and CCI_20[0] > 14.37  

 

and Volume[0] > 774.5  

and Vol_10[0] > 1842.7  

 

and ATR_12[0] > 1.21  

 

and(K[0] - D[0]) > -5.49 

and(PDI[0] - ADX_d[0]) > -0.25  

 

and(ADX_d[0] - ADXR_d[0]) > -2.69  

and(CCI_12[0] - CCI_20[0]) > -41.41

 

 

and K[0] < 57.48 

and D[0] < 54.81  

and RSI_5[0] < 55.98  

and RSI_10[0] < 53.6  

and CCI_12[0] < 58.13  

and CCI_20[0] < 30.08  

and MTM_20[0] < 5.3  

and Vol_10[0] < 37125.1  

and Vol_20[0] < 40124.55 

and ATR_12[0] < 6.29  

and(RSI_5[0] - RSI_10[0]) < 5.89  

and(RSI_5[0] - RSI_20[0]) < 6.86  //58

and(RSI_10[0] - RSI_20[0]) < 4

 

and(PDI[0] - ADX_d[0]) < 14.48  //61

and(NDI[0] - ADX_d[0]) < 2.76  

and(CCI_12[0] - CCI_20[0]) < 32.74  

and(MTM_20[0] - MTM_MA_20[0]) < 6.22 

and(ATR_12[0] - ATR_20[0]) < 0.77  //66

 

 

and PDI[0] > ADX_d[0]  

 

and Open[0] < Close[0] 

 

and Close[0] > MA_10[0]  

 

and Close[0] > MA_20[0]  

and Vol_5[0] < Vol_20[0]*2.01 

and D[1] > 29.29  

and RSI_5[1] > 38.77  

and RSI_20[1] > 44.69 

 

and MACD_d[1] > -1.33  

and CCI_12[1] > -71.44 

and CCI_20[1] > -30.67 

and MTM_20[1] > -5.95  

and ATR_12[1] > 1.23  

 

and(K[1] - D[1]) > -9.64  

and(RSI_5[1] - RSI_10[1]) > -5.18  

and(RSI_5[1] - RSI_20[1]) > -7.02  

and(ADX_d[1] - ADXR_d[1]) > -4.15  

and(CCI_12[1] - CCI_20[1]) > -52.2 

and D[1] < 54.77 

and RSI_5[1] < 56.4  

and PDI[1] < 33.18  

and ADX_d[1] < 25.43  

 

and CCI_20[1] < 40.18 

and MTM_20[1] < 1.85  

 

and Volume[1] < 26498.5 

and Vol_5[1] < 38909.5  

and Vol_10[1] < 35156.9 

and Vol_20[1] < 37133.85

and ATR_12[1] < 6.17  

 

and ADXR_d[1] < 28.17  

and(PDI[1] - ADX_d[1]) < 8.25  

and(NDI[1] - ADX_d[1]) < 2.79  

and(CCI_12[1] - CCI_20[1]) < 33.01  

and(MTM_20[1] - MTM_MA_20[1]) < 4.52  

and(ATR_12[1] - ATR_20[1]) < 1.07  

 

and Volume[1] < Vol_20[1]  

 

and ADXR_d[1] > ADXR_d[0]  

 

 

     then Ret=1;  

 

 

  

 

   end;

虎科大許教授 發文於   2025/06/30

若確定回測開始的日期與結束的日期都相同,那唯一會讓回測結果不一樣的就是SetTotalBar這行程式。若確定連這行都相同,那就很奇怪了。

mans68 發文於   2025/06/30

我這邊全部設定都一樣,

 

請問XQ在6月是否有系統或參數更新? 能否用5月時的系統再回測看看呢?

畢竟已經好幾個月使用都沒事,只有6月中以後才開始有這個狀況.

虎科大許教授 發文於   2025/06/30

你可以退版到15.04再回測看看,或是從3205、3228等股票驗證,它們在觸發進場的那一天,是否所有條件都滿足。

mans68 發文於   2025/06/30

退回舊版去測試還是一樣會異常,那應該可能是某些指標計算出來的數值與之前不同.

mans68 發文於   2025/07/02

你好, 我這邊有發現,當我觸發條件成立時,用Print出來的股票會跟系統回測顯示的股票會不一樣,請問是不是系統顯示錯誤呢?

虎科大許教授 發文於   2025/07/03

由於你觸發的條件很多,無法幫你驗證為何3205、2615這兩檔股票當初有訊號,現在卻沒有。建議你Print所有的條件,並檢查它們在之前測試的觸發進場的那一天,是否所有條件都滿足。這樣就可以知道現在的運算是否正確。

發表回覆
Close