我寫出來的策略回測之後常常出現下一根K棒馬上停損的情況,怎麼辦?

  •   43 
  • 最後發表   豪邁野豬  11 小時前
豪邁野豬 發文於   2025/03/13

如題,我的策略中關於停損價的語法如下

空單停損

 ATRVal = ATR(14)*1.5;

 StopLosfitPrice2 = FilledAvgPrice + ATRVal;

 if position = -2 and filled  = -2 and close >= StopLosfitPrice2 then begin

 

        SetPosition(0, market);

但實際執行回測起來,在回測報告中會一直看到進場之後在下一根K棒馬上執行停損,但應該都沒有打到語法中的停損價才對

請問可以幫我檢查看看哪邊出了問題嗎?

附加文件

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

你可以試著Print看看,是否filledAvgPrice數值正確。我一般使用filledAvgPrice之前會先判斷是否有部位。

  • 按讚來自於
  • salineyu
XS小編 發文於   2025/03/14

Hello 豪邁野豬,

 

小編補充,若使用了print還是無法找出問題原因的話,麻煩提供回測使用的相關設定 (截圖或回測報告皆可),讓相關人員確認。

另外由於不知道您使用的回測設定,時間出場的條件 (currentTime >= 045500) 在日盤 (084500 ~ 134500) 以及 過半夜前的夜盤 (150000 ~ 235900) 都會符合。

或許是此條件導致出場。

 

  • 按讚來自於
  • salineyu
豪邁野豬 發文於   2025/03/14

附上回測報告的EXCLE檔,再麻煩您了。

那時間出場的話是否可以寫成currentime <= 045600 and currentTime >= 045500這樣呢?

XS小編 發文於   2025/03/18

Hello 豪邁野豬,

 

沒有看到您附上的檔案,可能被論壇的機制擋掉了。

建議可以嘗試使用回測儲存檔 (.BTReport),應該可以正常上傳。

currentime <= 045600 and currentTime >= 045500 這種方式可以,但回測就只有currentime等於 045600 和 045500,且這兩根1分鐘Bar有洗價跟成交量的情況才會符合成交。

可以搭配 print 函數將相關數值印出檢查。

發表回覆
Close