把 MT4 的指標移到 MT5 後顯示不同 — 為什麼同樣邏輯卻不一致,以及實測數據
大家好。我是開發 MT4/MT5 指標的 lab.aiueo。
將自作指標從 MT4 移植到 MT5 時,雖是同一支煉品、同一個時間軸,但顯示卻不一致,花了半日的時間。
一旦弄清原因,其實很簡單;如果不懂,就只會以為「移植失敗」。
對於即將轉到 MT5 的朋友,這是有用的分享,會把實測數據一併公開。
MT4 就要結束了
國內經紀商對 MT4 的提供結束,正以實際排程在推動。
- JFX … 於 2026 年 8 月 19 日停止提供
- OANDA 證券 … 於 2026 年 11 月 27 日結束交易即停止提供
在海外經紀商方面,MT4 仍然可以使用,並非立刻全數消失。
只是「遲早要轉」的想法已經不是重點,現在是要考慮「何時轉」的階段。
所以現在要面對的問題是,現在在用的工具該怎麼處理。
移植、並排、穩定
我把自作的 SMC 指標移植到了 MT5。
判定邏輯完全沒有動手修改,只是把 MT4 對寫法在 MT5 中的寫法換成相同功能的寫法。
完成之後,讓 MT4 與 MT5 並排顯示同一支標的、同一個時間軸。
顯示卻不一樣。
區塊的數量不同。
位置也有微妙的偏移。
其中一邊有的區塊,另一邊卻沒有。
花半日審視程式碼。
結論是:移植本身並沒有錯誤。
原因是「在看另一台伺服器」
同一經紀商,即使是 MT4 與 MT5,也是分別從不同的伺服器取得價格。
以 Titan FX 為例,資料的儲存位置原本是這樣的。
・MT4 …TitanFX-02/TitanFX-05・MT5 …TitanFX-MT5-01
是不同的物件。
另外 MT5 真正保存實際的 tick 資料,而 MT4 是由 1 分 K 線往上組成較高階的 K 線。
這也是差異所在。
因此,即使在同一時刻、同一根蠟燭,最高/最低也會略有不同。
到底差多少,數一數看
若只憑感覺般描述也沒意義,因此我把兩邊相同的項目逐條列出並做對照。結果以 GBPUSD H1 為例。
| 項目 | MT4 | MT5 |
|---|---|---|
| 參數設定 | 一致 | 一致 |
| K 線時刻 | 一致 | 一致 |
| 搖擺檢測數 | 22 | 22 |
| 結構(BOS/CHoCH) | 6 | 6 |
| Order Block | 6 | 6 |
| Breaker Block | 2 | 2 |
骨架全部一致。那麼到底哪裡不同?價格本身就是差異所在。
把兩邊共同出現的 134 個價位逐一比對,發現有 16 個(約 12%)的值不一致。
低價 MT4=1.35195 MT5=1.35153 ← 4.2 pips
高價 MT4=1.34778 MT5=1.34794 ← 1.6 pips
高價 MT4=1.34657 MT5=1.34658 ← 0.1 pips大多數的不一致在於 0.1 pip、五位小數表示的 1 點差。
我也在別的標的與時間軸(USDCHF H4)測量過。共通的 140 點中有 12 點(8.6%)不一致,最大差距為 2.8 pips。
0.1 pip 為何會讓外觀差這麼多
你可能會認為這只是誤差。然而 SMC 類判定幾乎都是透過閾值比較來完成的。
高價是否超過了 Swing 高點?
收盤價是否超過最近高點 + 緩衝區?
超過與否,真偽之分。以 0.1 pip 的差距,答案會反轉。
而且反轉會連鎖。若結構突破多一個,就會在它前一根 K 線被做成 Order Block。若該 OB 後來被否定,會變成 Breaker Block。因此入口的 1 點,出口端看起來就會多出/消失一個區域。
這個無法修正,亦非該修正的內容
因為價格資料本身就有差異,指標端是無法也不該去修正它們。每個平台都以各自的伺服器取得正確的價格,並以正確的方式計算。
這也不是只關於我的產品。以閾值判定的指標,皆具同樣的特性。若你同時使用 MT4 與 MT5,理解這個前提會讓你少煩惱一點。
本文所介紹的產品不做的事
先說在前。
不會給出買賣訊號。進場箭頭也不會顯示。
勝率與回測成績不會顯示也不會訴求。本篇文章也不會出現數字,商品頁也不會寫。
這是一個用於協助分析的工具,負責描繪 SMC 的各個要素。何時進場的判斷,仍要由使用者自行決定。
接下來我會回答的事
到此為止,是轉往 MT5 的人應該先了解的前提。從這裡開始,會寫出實際移植後的產品 SMC-Radar for MT5 的內容。
- 畫面上會顯示什麼(判定語的清單)
- 如何自動清除已畫出的區域
- 警示如何以何種方式通知
- 實際使用的步驟
- 運作環境與價格
- 移植過程中,MT4 版原本就有的不具合也被發現的故事
SMC-Radar for MT5 的內容
只要貼到圖表上,就會自動繪製並持續顯示 SMC 的 6 個主要要素。無需手動畫線。切換時間軸也不需要重新畫線。
畫面出現的內容
| 顯示 | 正式名稱 | 含義 |
|---|---|---|
| BOS | Break of Structure | 以收盤價突破最近的高點/低點,表示趨勢持續的信號 |
| CHoCH | Change of Character | 趨勢反方向的結構破裂,翻轉的信號 |
| OB | Order Block | 突破前的逆向最後一根K線。集中成交的價格區間 |
| FVG | Fair Value Gap | 由三根K線組成的價格空白地帶 |
| Breaker | Breaker Block | 被否定的 OB 以相反方向成為反轉帶 |
| Premium / Discount | ― | 最近的區間上半部偏高,下半部偏低 |
| Sweep | Liquidity Sweep | 短暫突破高/低後回撤,具流動性捕捉的動作 |
畫完不等於結束
這個產品最有效的,其實是畫完之後的清理與整理。
如果用手去畫 SMC,圖表會越來越凌亂。不再起作用的區域會一直留著,無法分辨哪些還存活。
SMC-Radar 會根據價格走勢不斷更新畫出的區域狀態。
| 狀態 | 外觀 | 含義 |
|---|---|---|
| 有效 | 指定的顏色(藍/紅等) | 價格尚未抵達、仍然存在的區域 |
| 已抵達 | 深灰色 | 價格已到達中心,反應過後優先度下降 |
| 無效 | 刪除(預設)/亮灰色 | 被收盤價穿透、作為依據被否定 |
預設下,否定的區域會從畫面中消失。
也就是說,留在圖表上的,是現在有效的根據。以「沒有任何顯示=放棄的場景」來解讀也可以。
被收盤價穿透的 Order Block 不會只是消失,而會重新作為 Breaker Block 以相反方向被註冊。支撐帶變成阻力帶,這個概念可以直接這樣處理。
不必黏在圖表上
會以警示通知五種事件。支援彈出視窗、推送至手機、以及聲音。
- OB 訪問
- Breaker 訪問
- FVG 訪問
- BOS / CHoCH 的發生
- Liquidity Sweep
訊息會以如下形式送達。
[SMC] GBPUSD H1: Bullish OB Touch (1.35120-1.35060)是哪一檔、哪個時間軸、發生了什麼。也會包含價格區間。若貼在多個時間軸,則會分別收到通知。
同一區域、同一根 K 線的通知只會出現一次,因此價格在區域內往返並不會一直鳴請。
設定全部使用日文
參數共有 36 項。全部以日文顯示。
各要素的顯示 ON/OFF、顯示上限、顏色、警示類型。若覺得區域過多,可以把 Order Block / Breaker / FVG 的最大顯示數分別降到 1~2,僅保留最近的區域。
使用流程
我自己是這樣用的。
1. 在高階 K 線看地形,打開 H4 或 H1,確認大區域的位置。如果最近出現 CHoCH,該處是行情變化的候選。
2. 等待靠近區域即可,無需貼近。開啟 OB 訪問的警示,抵達時就會通知。
3. 在低階 K 線驗證反應。通知來時,切換到 M30 或 M15,觀察該區域在發生什麼。若 Sweep 出現後 CHoCH 發生,意味根據重疊。
4. 根據根據消失再放棄。若在等待時區域消失或變成灰色,表示根據已崩解。再接再厝地等下一個。
運作環境
| 項目 | 內容 |
|---|---|
| 相容平台 | MetaTrader 5(Build 2485 以上) |
| 相容貨幣對 | 所有貨幣對(包含 GOLD 指數等) |
| 相容時間軸 | 所有時間軸(建議:M15 / M30 / H1 / H4) |
| DLL 使用 | 無 |
| 外部指標 | 不需要 |
因為不使用 DLL,故不論經紀商的不同都能運作。q
為何要做出這個 — 因為 MT4 結束
契機是國內經紀商 MT4 提供的結束。
JFX 將於 2026 年 8 月 19 日停止 MT4 提供,OANDA 證券於 2026 年 11 月 27 日結束提供 MT4。其他公司也有跟進,國內的轉向 MT5 已成為產業潮流。
我本來是開發並販售 MT4 指標的。SMC-Radar 也是其中之一。若使用的人轉到 MT5,若同樣的工具無法使用,會是很大的困擾,因此決定進行移植。
於是開始移植,但在完成之後才發現幾件事。其中之一就是本文所述的「顯示不一致」。
另一件事是在移植驗證過程中,MT4 版本原本就存在的問題也被發現。
Premium / Discount 區域顏色指定機制有問題,設定的顏色被顯示為其他顏色。此外,調整透明度的參數無論如何設定都不起作用。原因在於顏色指定方式在內部的解釋與預期不同。
如果不把 MT4 版與 MT5 版並排對比,可能也不會注意到這點。MT4 版已以 Ver1.04 進行同樣的修正,並已經發佈。現有購買者也已收到更新。
移植本來被認為是「再做一次同樣的東西」,但實際上也是一次對現有產品再審核的機會。
販售資訊
SMC-Radar for MT5 / 3,980 日圓(一次購買)
※公開紀念的促銷價可能適用。最新價格請至販售頁確認。
https://www.gogojungle.co.jp/tools/indicators/86667
已持有 MT4 版本的人。判定邏輯與參數組成相同。不過如本文所述,顯示並非完全一致。作為分別產品再購買的情形,請事先知悉。
免責聲明
本產品為分析輔助工具,用於在圖表上繪製智慧資金概念(SMC)各要素。並非提供買賣訊號、投資建議、或保證運用成效。
所繪之內容,是以過去與現在的價格機械計算所得,並非預測未來價格。以本產品進行交易所產生的任何損失,製作者不負責任。投資決策仍由使用者自行承擔。