首頁 > 部落格 > 停損水位與凍結水位|SL掛不上的真正原因

MT5商品規格風險管理

停損水位與凍結水位|SL掛不上的真正原因

發布日: 2026-11-07閱讀時間:約 4 分鐘
⏱ 本文為發布之日的資訊。EA的績效數值(PF、DD、年化)會隨實盤運行與重新驗證而變動,最新數值請在各EA頁面確認。 查看最新EA績效 →

SL掛不上,不一定是EA出了問題

先說結論。SL 掛不上或無法移動,多數原因不在 EA 的邏輯,而是商品規格所規定的「最小距離」。MT5 有兩個設定:「停損水位(Stops Level)」決定 SL、TP 必須離目前價格多遠才能掛上;「凍結水位(Freeze Level)」則是在價格逼近 SL、TP 或掛單時,禁止修改這些訂單。

麻煩的是,這個距離並非永遠不變。平時可以正常通過的 SL 距離,可能只在經濟指標公布後被拒絕。我們在開發 EA 時,都會在下單前先檢查這個距離。本文整理其運作機制、確認步驟,以及 EA 端對策的限制。

推薦經紀商比較 →

🎁 免費下載EA

📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集

※ 嚴格保護隱私。可隨時取消訂閱。

運作機制:兩種「最小距離」

停損水位

停損水位(SYMBOL_TRADE_STOPS_LEVEL)是以點數表示的目前價格到 SL、TP 之間的最小距離。多單從平倉基準的 Bid 起算,空單則從 Ask 起算。若設定的 SL 比這個距離更近,訂單會被伺服器拒絕,MT5 的回傳代碼為「Invalid stops」(10016)。

凍結水位

凍結水位(SYMBOL_TRADE_FREEZE_LEVEL)是指當價格逼近 SL、TP 或掛單價格時,該訂單無法修改或刪除的距離。移動停損型 EA 在即將平倉的瞬間想移動 SL 卻被拒絕,多半是這個原因。回傳代碼為「Frozen」(10029)。

項目意義受影響的操作主要拒絕代碼
停損水位目前價格到 SL、TP 的最小距離新單的 SL/TP 設定、SL 修改Invalid stops(10016)
凍結水位價格逼近 SL、TP 或掛單時禁止修改的距離SL/TP 修改、掛單的修改與取消Frozen(10029)

「0」不代表沒有限制

即使商品規格中的停損水位顯示為 0,也不代表掛多近都能通過。據了解,有些券商在數值為 0 時,伺服器端會採用其他規則(例如以點差為基準的距離)。我們無法確認每家券商的實作方式,因此保守地把**「0=至少要離開一個點差以上」**。

經濟指標公布時距離會變寬

停損水位與凍結水位並非固定值,券商可能自行調整。有些券商會在重要經濟指標公布前後、週一開盤剛開始、換日結算(Rollover)時段暫時放寬。而點差也會在同一時段擴大,因此從 Ask 起算的空單 SL,必須比實際行情波動離得更遠。

也就是說,就算照平時的商品規格判斷「這個距離沒問題」,在最關鍵的時刻仍可能被拒絕。如果 EA 的設計是只有進場成功、卻沒掛上 SL,就可能留下毫無防護的持倉。

確認步驟與檢查清單

請在您使用的帳戶上確認以下項目。

  1. 開啟商品規格:在報價視窗對商品按右鍵 →「規格」,記下「停損水位」與「凍結水位」的數值(單位為點數)。
  2. 把點數換算成價格:XAUUSD 與 USDJPY 每一點的價格幅度不同,請先確認小數位數,再換算成價差。
  3. 與 EA 的 SL 距離比較:確認 EA 設定或邏輯中使用的 SL 距離,是否明顯大於停損水位加上點差後的距離。
  4. 在經濟指標公布前後再看一次:在公布前一刻再開啟同一個畫面,確認數值是否改變。該券商是否會變動,要實際看過才知道。
  5. 檢查日誌:查看「操作日誌」與「EA」分頁,確認是否出現「Invalid stops」或「Frozen」。下單被拒絕時的排查方式,也整理在 EA・MT5 實用知識。

EA 本身的設定方式請參考 EA 設定方法,各券商交易條件的差異請參考 外匯券商比較。

EA 端的最小距離檢查

我們的 EA 會在下單前,依下列順序進行檢查。

  • 每次都取得當下的停損水位、凍結水位與點差(不使用啟動時只取得一次的數值)
  • 最小距離=「停損水位與凍結水位中較大者」加上點差與少許緩衝
  • 若 SL 比這個距離更近,不會擅自擴大 SL,而是放棄這次進場

不採用自動擴大 SL 的設計,是因為 SL 變寬會讓單筆虧損金額超出設計值。如果手數是依 SL 距離反推計算,只放寬 SL 就會讓風險百分比失控。放棄進場雖然會減少機會,但我們判斷這比承擔預期之外的風險更好。

限制與注意事項

這項檢查無法防止所有問題。

  • 回測難以重現:依我們的理解,MT5 的策略測試器使用的是商品規格目前的設定,無法重現過去經濟指標公布時距離變寬的情況。SL 越短的 EA,測試結果與實際結果的落差可能越大。例如 GOLD TRIPWIRE 在回測中的平均持倉時間只有 0:21:12,屬於較短線的類型,我們認為它較容易受到這類落差影響。
  • 放棄進場會改變績效:被檢查擋下的交易中,也包含原本會獲利的單。加入檢查後,實際交易會與回測有所不同。
  • 下單瞬間條件也會改變:通過檢查後到訂單送達伺服器之間,條件仍可能變動,因此無法讓被拒絕的情況完全歸零。
  • SL 本身也會滑價:即使 SL 順利掛上,行情急變時仍可能以比 SL 更不利的價格成交。最小距離檢查並不是滑價對策。

總結

  • SL 掛不上的多數原因,在於商品規格中的停損水位(最小距離)與凍結水位(禁止修改的距離)
  • 被拒絕時,回傳代碼會是「Invalid stops」或「Frozen」
  • 停損水位為 0 不一定代表「沒有限制」,至少要離開一個點差以上
  • 有些券商會在經濟指標公布前後等時段放寬距離與點差,可能在最關鍵的時刻被拒絕
  • EA 端每次都取得當下的數值進行檢查,距離不足時不擴大 SL 而是放棄進場,這是我們的設計
  • 回測難以重現過去距離的變化,SL 越短的 EA,越要留意實際運作時的落差

📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集

※ 嚴格保護隱私。可隨時取消訂閱。

對EA或外匯有疑問嗎?

可以在Nattzy交易論壇發文提問(免費註冊)。不限於本文內容,EA設定、券商選擇等問題也歡迎。

到Nattzy提問 ↗

留言與提問