同一EA同一期間回測結果不一致?先查這5處
「公開的績效,和我自己跑出來的回測對不上。」這是我們收到關於所發佈EA的詢問中,相當常見的一種。
先說結論。即使用同一個EA測試同一段期間,只要環境有任何一處不同,結果就會出現落差。 多數原因不在EA本身,而在測試端的條件差異。建議依下列5處的順序逐一懷疑:
- 伺服器時間與時區
- 商品規格
- 隔夜利息(Swap)
- 歷史資料
- 模型類型(Tick產生方式)
不過,即使這5處都對齊,也不一定能完全一致。這一點會在後半段的「限制」中誠實說明。
為什麼「同一個EA」結果會不同
EA是根據收到的價格與商品資訊來做判斷的機器。輸入只要有一點不同,進場的瞬間就會偏移。第一筆交易一旦偏移,之後的資金量、手數與持倉狀況會連鎖改變,在數年規模的測試中,最終績效可能看起來差很多。
把可重現性問題理解成「某一處的小差異隨時間被放大」,會比較容易掌握。
📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集
訂閱後會立即收到訂閱者專屬合集的下載連結,內含本站 13 款 MT5 指標的已編譯檔案(.ex5)、原始碼和使用指南。隨後透過共 8 封郵件介紹外匯自動交易的本質、回測的正確解讀方法和經紀商選擇技巧(前 5 天每天 1 封,之後在訂閱第 7、14、30 天各 1 封)。MQL5 Market 版(首發價,隨銷量分階段漲價)漲價前也會通知您。在本站,只要擁有合作經紀商的真實帳戶,EA 即可免費使用。
※ 嚴格保護隱私。可隨時取消訂閱。
該懷疑的5處
1. 伺服器時間與時區
MT5顯示的時間不是電腦的時鐘,而是經紀商的伺服器時間。伺服器時間因經紀商而異,有些會隨夏令時間切換,有些則不會。
受影響較大的是下列類型的EA:
- 具有時段過濾的EA,例如「只在東京時段交易」「排除紐約時段」
- 以日線開盤價、最高價、最低價為基準的EA(各經紀商的日線切換時間不同)
- 在週初或週五收盤前有特殊處理的EA
在週日會產生短日線的經紀商,日線的根數本身就會不同。對以日線為基礎的突破型EA來說,光是這一點就可能讓結果完全不同。
2. 商品規格
同樣叫「XAUUSD」,內容也不一定相同。請在規格視窗確認下列項目:
- 小數位數與點(Point)的大小
- 合約規模
- 最小手數與手數級距
- 停損水平(Stop Level,掛單可設置的最小距離)
- 保證金計算方式
小數位數不同時,以「幾點」指定的停損幅度,實際上可能相差10倍。停損水平較寬的經紀商,過窄的停損單甚至可能根本無法送出。
3. 隔夜利息(Swap)
MT5的測試器是把執行測試當下的商品設定中的隔夜利息數值,套用到整個期間來計算,並不是過去實際的隔夜利息變化。因此,即使是同一家經紀商,測試日期不同,結果也可能不同。
- 持倉時間越長的EA,影響越大
- 收取3天份隔夜利息的星期幾,各經紀商不同
- 無隔夜利息的帳戶類型(免隔夜利息帳戶)可能會收取其他手續費
對於持倉數日的EA,隔夜利息的差異會明顯反映在損益差距上。
4. 歷史資料
測試器使用的價格資料,是從所連線經紀商的伺服器下載而來。各經紀商的資料起始時間、缺漏與Tick密度都不一樣。
- 測試期間初期的資料不完整
- 下載尚未完成,導致第二次測試的結果改變
- 即使是同一家經紀商,伺服器端更新資料後,結果也會事後改變
務必檢查日誌分頁中是否出現「資料同步」或「歷史資料缺漏」的紀錄。
5. 模型類型
選擇「僅開盤價」「1分鐘OHLC」「每個Tick」「基於真實Tick的每個Tick」中的哪一種,同一個EA的結果可能截然不同。停損、停利距離越近的EA,對Tick的產生方式越敏感。
另外還有下列2項也建議一併確認:
- 點差設定:選擇「目前點差」時,會固定為測試當下時段的點差。若在週末或清晨執行,可能是以較寬的點差在測試
- 成交延遲設定:有無延遲,會使短線交易型EA的結果產生分歧
可重現性檢查清單
與公開績效比對時,依照下表由上往下逐項填寫,比較容易鎖定原因。
| 確認項目 | 在哪裡查看 | 容易受影響的EA |
|---|---|---|
| 伺服器時間、夏令時間 | 報價視窗的時間顯示、經紀商公告 | 時段過濾、以日線為基準 |
| 小數位數、合約規模 | 商品規格視窗 | 使用以點數指定停損的EA |
| 停損水平 | 商品規格視窗 | 停損幅度窄的EA |
| 隔夜利息數值、收取3天份的星期 | 商品規格視窗 | 長期持倉EA |
| 歷史資料的起始與缺漏 | 測試器的日誌分頁 | 所有長期間測試 |
| 模型類型 | 測試器設定 | 短線交易、馬丁加碼(Martingale)類 |
| 點差、延遲 | 測試器設定 | 剝頭皮類 |
| 帳戶幣別、初始資金、槓桿 | 測試器設定 | 因複利而手數改變的EA |
| 輸入參數 | 測試器的輸入分頁 | 所有EA |
最後一項「輸入參數」意外地常被忽略。請每次都確認,上一次測試時修改的數值是否還殘留著。
如果對MT5的基本設定沒有把握,從MT5設定教學的步驟重新檢查是最快的方法。
限制與注意事項
這裡要談一些對我們不太有利的事。
- 即使5處全部對齊,使用其他經紀商的資料時,仍可能無法完全一致。 這是因為Tick本身就因經紀商而異,測試端無法解決
- 我們所公開的回測數字,也是以特定經紀商、特定時間點的資料計算而得。我們無法保證您的環境能得出相同的數字
- 也有無法準確拆解「哪個差異影響了多少」的情況。出現差異時,只能一次改變一個項目,重新測試
- 即使回測對齊了,那也只是以過去資料所做的驗證,並不保證未來的績效
反過來說,換了經紀商結果也不會大幅走樣的EA,反而比較值得信賴。雖然費時,但在多家經紀商分別測試並比較,是有效的確認方法。各經紀商的規格差異,整理在外匯經紀商比較。
總結
- 同一個EA、同一段期間,也會因環境差異而使結果不同。原因多半在測試條件,而不是EA本身
- 懷疑的順序是「伺服器時間、商品規格、隔夜利息、歷史資料、模型類型」
- 隔夜利息要注意:套用到整個期間的是「測試當下的數值」
- 點差設定、延遲與殘留的輸入參數也容易被忽略
- 即使全部對齊,經紀商不同時仍可能無法完全一致
- 換了經紀商是否依然穩定,可作為挑選EA時的判斷依據
其他驗證技巧,整理在EA・MT5知識庫。
相關文章
📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集
訂閱後會立即收到訂閱者專屬合集的下載連結,內含本站 13 款 MT5 指標的已編譯檔案(.ex5)、原始碼和使用指南。隨後透過共 8 封郵件介紹外匯自動交易的本質、回測的正確解讀方法和經紀商選擇技巧(前 5 天每天 1 封,之後在訂閱第 7、14、30 天各 1 封)。MQL5 Market 版(首發價,隨銷量分階段漲價)漲價前也會通知您。在本站,只要擁有合作經紀商的真實帳戶,EA 即可免費使用。
※ 嚴格保護隱私。可隨時取消訂閱。