加密貨幣機器人回測:檢查時點、成本與過度擬合
顯示獲利的加密貨幣交易機器人回測,只是模擬結果,不能證明策略在實際交易中會得到相同成果。在比較回報之前,確定模擬器知道什麼、何時知道以及收取哪些執行成本。
從時間戳開始,而不是資產淨值曲線
假設策略使用K線的收盤價來產生入場點。如果模擬也在精確的收盤價處成交,而沒有實際的決策和執行延遲,則它可能會向機器人授予在觀察完成的K線後無法獲得的價格。與最早可執行交易的時間戳記分開記錄訊號時間戳記。
當資料集包含連接到較早時間戳記的修訂或指標時,也會出現相同的問題。該歷史數值必須在當時就已可供策略使用。今天清理的資料集並不自動是昨天資訊集的忠實記錄。
重複調整會改變良好結果的意義
從數百次嘗試中選擇最佳參數集會產生選擇問題。該參數組合可能只是過度配合了開發期間的雜訊。記錄不成功的試驗,而不僅僅是獲勝的圖表。
QuantConnect 的研究指南 討論了過度擬合和研究保障措施。一個有用的實際擴展是在評估稍後未觸及的時間段之前凍結策略。如果該評估導致更多調整,則它已成為開發資料;保留新的最終測試。
讓成本可見
以下是假設的會計範例,而不是觀察到的策略:
| 項目 | USDT 金額 |
|---|---|
| 模擬交易毛利 | 300 |
| 開倉與平倉手續費合計 | -120 |
| 預計執行滑點 | -100 |
| 扣除收取額後的資金費率淨支出 | -90 |
| 淨模擬結果 | -10 |
算術為 300 - 120 - 100 - 90 = -10 USDT。成本可以逆轉結果的符號。如果點差已包含在模擬成交價格中,請避免重複計算點差。資金費率成本應根據測試中的實際部位、費率與結算時點計算,而不是方便的固定年利率。
詢問是否可以成交
觸及限價並不表示整個訂單都會被執行。佇列位置、競爭訂單、可用深度和部分執行都很重要。大額市價訂單不應自動獲得其整個規模的最佳顯示價格。
測試延遲、費用和滑點的變化。僅適用於一種樂觀執行假設的策略是脆弱的。將遺失資料、拒絕訂單和連線遺失作為單獨的操作場景進行測試;僅憑歷史K線無法很好地模擬這些。
不同條件下的比較
報告測試日期、交易商品、部位限制、交易筆數、成交額、回撤和資本假設以及回報。市場上漲的結果可能主要反映了資產風險。與相同日期的合適被動基準進行比較,並對成本和現金進行一致的處理。
未參與調參的保留測試期間,以及小規模的模擬交易觀察可以揭示實施錯誤,但都不能保證未來的利潤。不要僅僅因為短期展示結果為正而增加資本。
可審查的結果
有用的機器人報告提供可重複的設定、資料來源、時間戳規則、所有重要成本以及開發和評估之間的明確分離。在使用特定於平台的假設之前,請先查閱目前的 OrangeX 費用表。本文評估模擬,並不聲稱 OrangeX 提供特定的機器人或回測產品。
決定的是證據是否經得起現實的假設,而不是哪張圖表看起來最平滑。上述所有數值結果都是說明性的。