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

用月K回測結果,跟之前不一樣
- 66
- 最後發表 mans68 2025 七月 03
回測結果跟之前的回測結果不一樣,可能與回測成功的商品數量不同有關。你需要提供更詳細的訊息才有機會知道原因。
一樣的程式,卻不一樣結果. 成功的數量一樣如下,失敗的商品,並不在之前所回測的結果之中.
並且已經好一陣子回測都正常,只有現在回測出來的結果異常. 故才會覺得是可能有哪些指標或數值跑掉了,所以才出現異常.
之前用月K回測結果,如下圖
現在回測出來結果,如下圖.
確定兩次回測的開始時間都相同嗎?另外,回測的觸發條件也可能影響結果,例如用過去一段時間的月資料計算條件,經過資料更新,觸發條件可能不同。若可以的話,將你的觸發條件貼上來看看。
確定兩次開始時間都是一樣的,觸發條件也一樣,如下.
突然結果不一樣,幾周前試都還正常.
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;
若確定回測開始的日期與結束的日期都相同,那唯一會讓回測結果不一樣的就是SetTotalBar這行程式。若確定連這行都相同,那就很奇怪了。
我這邊全部設定都一樣,
請問XQ在6月是否有系統或參數更新? 能否用5月時的系統再回測看看呢?
畢竟已經好幾個月使用都沒事,只有6月中以後才開始有這個狀況.
你可以退版到15.04再回測看看,或是從3205、3228等股票驗證,它們在觸發進場的那一天,是否所有條件都滿足。
退回舊版去測試還是一樣會異常,那應該可能是某些指標計算出來的數值與之前不同.
你好, 我這邊有發現,當我觸發條件成立時,用Print出來的股票會跟系統回測顯示的股票會不一樣,請問是不是系統顯示錯誤呢?
由於你觸發的條件很多,無法幫你驗證為何3205、2615這兩檔股票當初有訊號,現在卻沒有。建議你Print所有的條件,並檢查它們在之前測試的觸發進場的那一天,是否所有條件都滿足。這樣就可以知道現在的運算是否正確。
10 評論