自動交易的回測資料有問題.附上附件請幫忙測試一下問題在哪裡?
圖一:23年12月1日-23年12月31日的截圖

圖二:23年12月21日-23年12月31日的截圖.這裡少了22日以後的資料

圖三:23年12月22日-23年12月31日的截圖.這裡少了22日以後的資料
圖四:23年12月23日-23年12月31日的截圖.這裡顯示25.26.27日都有符合條件進場

Hello ufoho,
您沒有附上回測使用的相關設定,小編推測應該和 自動交易回測有錯誤問題 該篇文章類似,以此作分析。
腳本中使用了 Position <> Position[1] 來當作移動停利的重設條件,但需注意這邊的 position[1] 並不是上一次洗價的部位,而是上一根Bar的部位。
因此可能會造成 _HighestHighSinceEntry 以及 _LongStopPrice 延續用前一次的資訊繼續運算,導致出場的停利點可能是根本不會觸發的地方。
舉例來說,如果前次的 _HighestHighSinceEntry 遠高於這次的 (商品下跌中),這會導致計算出來的停利點在目前價格之上,進而造成 Close crosses below _LongStopPrice 不會觸發。
可以使用 print 將 Position、Position[1]、_HighestHighSinceEntry、_LongStopPrice 等相關數據印出,應該會更容易理解。
還有需要注意的是使用到了KD這種會用到前期運算值的函數,若資料讀取筆數不足的話計算出來的數值會不正確。
建議您可以參考內建的移動停利腳本,將變數改為出場後歸0,進場時判斷該變數是否為0來設定進場後的最高/最低價,應該就可以解決問題。
另外小編簡單回測下,並沒有發生附圖中的狀況,若還是有問題,麻煩提供相關的回測設定 (截圖或回測報告儲存檔) 來確認。
程式最上面加上setBackBar(300);看看。
加上了.還是一樣
我已經附上腳本.以10分鐘回測2023年12月1日到2023年12月31日的資料.請你們幫忙回測一下是否和我回測的一樣
我用你提供的程式回測,並沒有出現你說的情況。版本:18.02


許教授實在很抱歉.我少給一個kd指標參數:9.3.3 麻煩教授在幫忙回測一次
若KD參數改成9,3,3,則12/22進場買進之後就沒有出場。建議你Print與出場相關的變數數值,看看是否12/22之後真的都沒有出現出場訊號。
請參考我上面第3張附圖.我回測23年12月23日-23年12月31日的截圖.結果25.26.27都有符合進出場條件.但是回測12月1~31號時.22號以後的就不見了.請問這有可能是哪裡的問題?
儘管12/23有進場訊號,但前提是沒有部位,若12/22有部位且沒出場,則12/23不會有進場訊號。
10 評論