要做回測到底可以信多少?整理結果的觀察方式
「回測在之前表現得如此乾淨的右肩上升,實際運作時卻出現了完全不同的結果。」
當你涉及到EA時,常會聽到這樣的故事。其實,我自己也有這樣的經驗。
回測是製作EA時、選取時都值得信賴的工具。不過,若用法弄錯,就會成為「只看結果就放心」的陷阱。
這次,結合我的失敗經驗,慢慢整理如何解讀回測結果,以及如何看待PF(profit factor,利潤因子)等數字。
雖然這是一篇稍長的專欄,若你願意,請多多指教。
1. 回測能教我們的與教不起的事
回測是利用過去的價格資料,測試「若是以此規則運作,會變成什麼樣子」。
用於比較EA的運作與設定,以及檢視是否出現過於極端或不自然的結果,非常有幫助。
但這僅僅是以過去條件進行的估算。實際帳戶的運用成績請分開看待。
另外,回測也無法告訴你未來行情會如何。未來的行情、是否在實際使用的帳戶中也能同樣下單等,僅僅透過測試畫面是無法得知的。
重點
- 讓EA按預期買賣、掌握走勢趨勢
- 改變設定後,看看結果會如何變化
- 尋找不擅長的行情、資金大幅下跌的情況
- 看結果後,不要認定「將來也會一樣」
- 不要把測試結果與實際運用的成績視為相同
2. 首先映入眼簾的數字:PF(利潤因子)該怎麼看
打開測試結果畫面時,首先容易看到的往往是 PF(Profit Factor),對吧。
PF 是用「總利潤 ÷ 總損失」得到的數字。也就是說,利潤是損失的多少倍。
計算的形象
- 若總利潤為200、總損失為100,PF為2.0
- 若總利潤與總損失相同,PF為1.0(正負各半)
- 若總損失較大,PF會低於1.0
這只是為了幫助理解計算的形象,並非實際成績。
粗略地說,若 PF 超過1.0,表示在測試期間利潤多於虧損。
但,看PF的數字就安心下來,還是需要再小心一些。
看PF時的注意事項
- 交易次數少時,容易被偶然結果牽動,PF 波動較大
- 僅以部分大利潤來提高 PF,是否真實
- PF 高時,是否過度客製化設定以符合過去
- 改變交易成本時,PF 會下跌到何種程度(越接近1.0越易受成本影響)
- 單看 PF,無法得知資金跌落了多少(回撤)
PF 是非常易懂的數字。但只靠它判定「這個EA 看起來不錯」就太過武斷,還需要考慮其他重要部分。
3. 除了 PF,還值得留意的數字
測試結果畫面會顯示許多數字。先不用把全部理解透徹,也無妨。先掌握以下幾項,讓結果顯得立體。
(顯示名稱可能會因使用的工具與環境略有不同)
值得留意的數字
- 最大回撤:資金自最高點往下跌到何處。用金額與百分比同時看,評估是否能承受這樣的下跌。只是,這個數字大並不一定表示不好(之後會詳述)
- 期望值(期望收益):每次交易的平均獲利或虧損。此數值較小時,成本稍有變動就容易偏向虧損
- 總交易次數:次數少時,結果容易被偶然性左右
- 勝率與利潤/虧損大小的平衡:勝率高也可能因一次虧損過大而全盤皆輸。不要只以勝率判斷
- 最大連敗(連續虧損次數):虧損連續發生時,可能會出現多長的連續虧損,心理準備也有幫助
- 回穫因子(Recovery Factor):虧損與最大回撤相比,利潤有多少倍。衡量能否挽回跌幅
- 損益曲線的形狀:是否平滑地成長,是否有某些期間突然波動。數字往往難以看出,但曲線能顯示偏好
重要的是不要以單一數字判斷,應多個數字組合起來看。
例如 PF 雖高,但若回撤很大、交易次數又少,印象也會大幅改變。
看回撤時,也要留意「複利」的影響。
使用複利運作的帳戶(資金增加時,交易量也增長)時,餘額越增加,即使相同比例的跌幅,金額也會變大。也就是說,資金增長越多,回撤金額越大,這是必然現象。
因此,回撤大不一定意味著EA不好。
另外,光看測試結果的「最大回撤金額」,可能會被後段的巨額金額拉走。以百分比方式確認,看資金增加時的跌幅是否也能承受,會更安心。
此外,固定交易量的測試與複利測試在回撤的呈現上也會不同。要確認是以哪種條件得出的結果。
看回撤的方式
- 不只是金額,也要看百分比
- 確認測試設定是固定手數,還是隨資金變動而增加(複利設定)
- 區分資金較低時期與增長後時期
- 與同期間的利潤搭配看(回穫因子也是指標之一)
- 思考該跌幅是否能承受你的資金與心情
4. 確認價格資料與測試條件
即使是同一EA,不同的價格資料與測試條件,結果也可能不同。
例如,細微價格走勢的再現方式、實際交易成本的設定是否接近實際環境,這些都需要確認。
在不了解測試條件的情況下,只看成績,往往難以判斷是在重現哪種情景。
具體需要確認的事項
- 使用的是哪個貨幣對或品種、以及時間週期的測試
- 使用的價格數據覆蓋的期間
- 細微價差再現方式為何
- 是否包含價格差以及手續費等成交成本
- 使用的資料與設定中,是否存在缺口或不自然之處
5. 我的失敗故事:測試環境與實際使用環境的差異
在這裡,我想分享我的失敗故事。
之前我在一個點差極低的外匯公司環境中做回測。
實際運用時換用另一家點差條件稍有不同的外匯公司,結果與測試完全不同。
邏輯相同的EA,卻出了不同的結果。
每次交易的點差差異看起來不大,但交易越多,這點差就越累積。特別是交易次數多、每次利潤小的EA,影響較大。
測試結果僅是「在測試環境中的結果」。這次經驗讓我深刻體會到這點。
除了點差,手續費有無、下單價格偏離等滑點,以及不同券商的定價差異,都會讓結果改變。
測試前需要確認的事項
- 實際使用的帳戶點差(日常波動與易波動時段)
- 是否會產生手續費
- 測試中使用的點差設定是什麼條件
- 指標公佈時等,價格變動劇烈時的下單條件
- 測試用的FX公司與實際用的FX公司不同時,價格與時間設定是否有差異
- 即使把點差設定得稍微寬一點再試,結果也不會極端崩盤嗎
6. 檢視設定是否過於符合過去
若為讓過去的結果變好,不斷調整設定,雖然在該期間的價格走勢完美契合,但在其他期間就不一定奏效。
這就是「過度貼合過去資料」的情況。
PF 特別高時,需要特別留意。除了成績數字,稍微改變設定時是否也會出現極端崩盤,這樣的檢視能讓你更冷靜地判斷結果。
具體需要確認的事項
- 能否解釋為何選擇該設定
- 是否只有特定短時間段拉高整體結果
- 若稍微改變設定,結果是否突然變差
- 是否同時留意到利潤與虧損連續期,以及資金的下跌
- 在嘗試大量設定後,是否只挑最好的結果
7. 測試之外,也要階段性地驗證
不要只靠回測作結論,若用未使用的期間資料再驗證,可以幫助判斷是否過度符合過去。
再者,若在模擬帳戶等環境運作,也能確認下單與停止等動作。
但未來的成績仍不可預測,實際帳戶也可能因市場與交易環境差異而出現虧損。
重點
- 為設定所用的期間與作驗證的期間分開
- 在驗證期間,觀察是否仍延續相似趨勢
- 在模擬環境中確証下單與決算是否如預期
- 若要在實際帳戶使用,需以可能虧損為前提,規劃資金
- 記錄測試條件與確認內容,以便日後回顧
總結:回測是「線索」之一
回測是研究EA過去走勢的線索之一。
不要只用像PF這樣的直觀數字作決定,回撤(金額與百分比雙重呈現)與交易次數等也要組合考量。
並且,檢查資料與成本、實際使用環境的差異,以及設定的過度貼合,在測試以外的期間與模擬環境中也逐步檢視。
即使結果看起來不錯,也不代表未來一定能獲利或保證安全。是否使用EA,需自行評估損失風險並自行決定。
註意事項
本文屬資訊提供之用,並非投資建議。EA 操作存在本金下跌的風險。過去的結果不保證未來的成果。請自行判斷與承擔風險。