MT5回測模型比較:每個報價、真實報價與1分鐘OHLC的差異
MT5回測模型比較 — 每個報價、基於真實報價的每個報價、1分鐘OHLC與僅開盤價的差異
在MT5的Strategy Tester(策略測試器)中執行回測時,有一個名為「模型」的設定項目。您選擇的模型將大幅影響回測的精準度。特別是針對剝頭皮類型的EA,若選錯模型,很容易出現「回測結果漂亮,實際運行卻失效」的問題。
四種回測模型
MT5 Strategy Tester中可用來檢驗EA的價格建模方式共有四種(第五項 Math calculations 不載入價格歷史,不屬於交易回測)。請注意,每個報價 與 基於真實報價的每個報價 是兩種不同的模型。

| 模型 | 測試器使用的價格 | 精度 | 速度 | 適用情境 |
|---|---|---|---|---|
| 每個報價 | 由1分鐘K線產生的Tick | 高(Tick為模擬產生) | 慢 | 該時段沒有真實Tick時的最終確認 |
| 基於真實報價的每個報價 | 經紀商實際記錄的Tick | 最接近真實行情 | 慢(首次需下載大量Tick資料) | 剝頭皮、網格及對點差敏感的EA |
| 1分鐘OHLC | 每根1分鐘K線的開、高、低、收四個價格 | 中等 | 快 | H1/H4波段EA、參數最佳化 |
| 僅開盤價 | 僅使用測試週期每根K線的開盤價 | 粗略 | 最快 | 只在新K線上決策的EA;快速初步檢查 |
1. 每個報價(Every tick)
測試器在每根1分鐘K線內部產生Tick:包含OHLC四個價格以及中間的Tick,不使用任何記錄下來的真實Tick。
- 在產生類模型中精度最高,比 1分鐘OHLC 更慢
- 每根1分鐘K線內點差固定,因此無法重現一分鐘之內的點差急遽擴大
- 名稱相近,但這並不是真實Tick測試
推薦使用對象:經紀商在該時段沒有真實Tick時的最終確認
2. 基於真實報價的每個報價(Every tick based on real ticks)
測試器直接回放經紀商實際記錄的Tick,不進行任何模擬。
- 點差在1分鐘K線內部也會像真實行情那樣變動
- 沒有Tick記錄的分鐘,會用產生的Tick填補(與 每個報價 相同的方式)
- 耗時長,首次執行還要下載大量Tick資料
推薦使用對象:剝頭皮策略(M15以下)、網格EA、點差影響較大的策略
3. 1分鐘OHLC(1 minute OHLC)
只使用每根1分鐘K線的四個價格:開盤、最高、最低、收盤。
- 四個價格之間的走勢不會被模擬,因此較近的SL/TP與移動停損的判定較粗略
- 比兩種逐Tick模型快得多
- 對H1/H4波段策略大致足夠
推薦使用對象:H1、H4級別的波段EA、參數最佳化
4. 僅開盤價(Open prices only)
EA每根K線只執行一次,也就是測試週期每根K線的開盤時。
- 最快,也最粗略
- EA無法讀取比測試週期更小的週期資料
- 只對在新K線上才做決策的EA有意義
推薦使用對象:僅用於大致的功能確認,不適合正式驗證
推薦經紀商比較 →
🎁 免費下載EA📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集
※ 嚴格保護隱私。可隨時取消訂閱。
為何剝頭皮策略必須使用實際Tick
若以1分鐘OHLC對M15以下時間框架的剝頭皮EA進行回測,將產生以下問題。
問題一:SL與TP的判斷時序失真
在真實市場中,高價與低價「哪個先出現」至關重要。1分鐘OHLC無法得知1分鐘內High與Low的先後順序,因此無法精確重現「SL先被觸發,還是TP先被觸發」的情境。
範例:1分鐘內的價格走勢
實際情況:先到高價 → 再到低價(TP先到達,隨後下跌)
OHLC模型:High=TP到達、Low=SL到達,兩者先後順序不明
剝頭皮策略單筆交易的SL與TP距離相近,因此這種誤差對最終績效影響極大。
問題二:無法重現價差的動態變化
1分鐘OHLC無法重現在重大經濟數據發布時價差急劇擴大的情形。剝頭皮策略是受價差影響最深的交易策略之一,若以固定價差進行回測,將得出過於樂觀的結果。
取得回測所需歷史資料的方法
在MT5中執行回測前,必須先將歷史資料下載至交易終端。

Step 1:讓MT5下載歷史資料
- 啟動MT5並登入經紀商帳戶
- 開啟策略測試器(Ctrl+R),選擇商品、週期、時間範圍與模型
- 按下「開始」後,測試器會自動從經紀商伺服器下載該商品可用的價格歷史
- 選擇 基於真實報價的每個報價 時,首次執行還會下載Tick資料,可能需要較長時間
- 想自行查看已儲存的資料,可開啟 檢視 → 交易品種(Ctrl+U),使用「柱線」與「報價」分頁
Step 2:查看歷史資料品質
測試結束後,開啟策略測試器的報告,查看「歷史資料品質(History Quality)」一列。
選擇 基於真實報價的每個報價 時:
有Tick記錄的分鐘 → 回放真實Tick
沒有Tick記錄的分鐘 → 產生Tick(與 每個報價 相同)
在較長的測試區間裡,經紀商往往只保存了其中一部分時段的真實Tick。歷史資料品質數值偏低,代表即使選了真實Tick模型,測試的大部分時段也並非在真實Tick上執行,因此務必把這個數值和結果放在一起看。
本站EA推薦的回測設定
| EA | 時間框架 | 推薦模型 | 原因 |
|---|---|---|---|
| DONCHIAN ENGINE / MEGAMAX DONCHIAN | H1 | 1分鐘OHLC以上 | H1波段策略使用1分鐘OHLC大致足夠(DONCHIAN ENGINE的刊載值以Dukascopy實際Tick驗證) |
| GOLD VIPER / GOLD NEURON | M30 | 1分鐘OHLC以上 | 同上 |
| BITCOIN COMET | H4 | 1分鐘OHLC | H4波段策略使用1分鐘OHLC已足夠 |
| GOLD KING v6 | M1 | Every tick based on real ticks | M1網格型必須使用實際Tick(註:本站公開的Exness 7.5年回測歷史資料品質為5%,並非實際Tick驗證) |
回測所需時間參考
測試環境:相當於Core i5處理器、RAM 8GB、SSD,以XAUUSD進行10年回測
| 模型 | 處理時間(參考) |
|---|---|
| 僅開盤價 | 2至5分鐘 |
| 1分鐘OHLC | 10至20分鐘 |
| 每個報價 | 比 1分鐘OHLC 更長 |
| 基於真實報價的每個報價 | 40分鐘至2小時(首次執行另加Tick下載時間) |
若在VPS上的MT5執行回測,處理時間取決於CPU效能。回測進行中VPS的CPU使用率接近100%,因此在EA運行期間執行回測,可能影響整體效能。
總結
- 波段策略(H1以上):1分鐘OHLC 即可(速度與精度的平衡)
- 剝頭皮策略(M15以下):使用 基於真實報價的每個報價(精度至關重要)
- 每個報價 的Tick由1分鐘K線產生,並不是真實Tick測試
- 僅開盤價 僅用於功能確認,每次測試後都要查看報告中的歷史資料品質
回測精準度直接關係到「能在多大程度上信賴回測結果」。特別是在評估剝頭皮EA時,務必使用實際Tick資料進行驗證。
常見問題
Q:實際Tick資料從哪裡取得?
以 基於真實報價的每個報價 模式執行測試時,MT5會自動從經紀商伺服器下載;也可以在 檢視 → 交易品種(Ctrl+U)的「報價」分頁中查看。只能取得經紀商所提供的歷史資料範圍內的資料。也可以從Dukascopy等第三方Tick資料服務匯入CSV,但匯入MT5的步驟較為複雜。
Q:有些貨幣對的歷史資料品質很低,該怎麼辦?
各券商所保存的歷史Tick資料範圍不同。特別是較久遠的時期(10年以上),許多券商並未提供Tick資料。遇此情況,請從可取得資料的最早日期開始進行驗證。
Q:如何在回測與模擬盤測試之間保持精準度的一致性?
基本原則是在與回測相同的券商帳戶上進行模擬盤測試。由於不同券商的價差與隔夜利息(Swap)各不相同,使用同一家券商可將回測與實盤之間的落差降到最低。
Q:Strategy Tester的「最佳化」與「回測」是否使用相同的模型?
是的。參數最佳化使用的也是測試器中選擇的模型,與一般回測相同。但由於最佳化要執行數千到數萬次回測,用 基於真實報價的每個報價 做最佳化可能需要數天。有效率的做法是用 僅開盤價 或 1分鐘OHLC 做最佳化,只在最終驗證時使用 基於真實報價的每個報價。
相關頁面
相關文章
📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集
※ 嚴格保護隱私。可隨時取消訂閱。