均值回歸
均值回歸 EA 在價格偏離其均值達到可測量的距離後逆勢進場,目標是價格回歸。這個標籤只描述進場。在 Builder 記錄的參數搜尋中,RSI 與布林通道兩個反轉模板各試了十二組停損與目標設定,即使在樣本內,也沒有一組的獲利因子超過 1.0。
一圖看懂
進場是與均值的一段距離
EA 等待價格偏離其平均值約 1.5 至 2.5 個標準差,逆著這段走勢進場,並以均值本身為目標。此處的進場條件是觸及 2σ 通道。
一圖看懂
預設設定:各反轉模板的獲利因子
Builder 在 USD/JPY M5 上一年的基準,預設輸入,不做最佳化。只有順著趨勢方向逢低買進的回檔進場,獲利因子(PF)才超過 1.0。
機制
EA 測量價格相對移動平均線或布林中軌偏離了多遠,通常以標準差或 ATR 單位計算,再用處於極端區域的擺盪指標確認這次拉伸。進場逆著行情方向;目標是均值,停損設在會推翻回歸假設的價位之外。這兩個出場之間的距離決定了記錄的形狀。目標貼近進場會帶來高勝率和遠低於 1 的盈虧比;目標放在完整均值處則相反。兩種設定都無法創造出進場本身沒有的優勢。
適配性
最適合大部分時間待在區間內、並會回到可定義中樞的商品——歷史上是瑞郎交叉盤、EUR/GBP 與 AUD/CAD。在趨勢階段的動能貨幣上結構性地不適用:拉伸會繼續拉伸,逆勢部位被迫扛著一段不會回頭的行情。趨勢或行情狀態過濾幾乎是必備,而更高週期趨勢的方向比擺盪指標的水準更重要。適合能夠接受成塊到來的長連虧、並且會先看停損距離再看勝率的交易者。
備註
均值回歸押的是彈性而不是動能:一個被拉離均值很遠的價格,彈回來的可能性大於繼續拉伸。EA 會等待一個統計上顯著的偏離——通常是相對移動平均線或布林中軌的 1.5 到 2.5 個標準差。它用處於極端區域的擺盪指標確認這次拉伸,隨後逆著行情進場,目標就是均值本身。
這描述的是進場,而進場正是多數人能看懂的那部分。通常被硬安在它頭上的那句描述——均值回歸系統贏下大多數交易,偶爾虧一筆大的——是一個關於出場放在哪裡的主張,而不是關於機制的主張。本頁說明這台機器在 MetaTrader 5 裡如何搭建,以及 Builder 自己量測過的反轉模板顯示了什麼。最後說明如何在投入任何資金之前對它做壓力測試。
運作方式:進場是一段距離,出場決定形狀
進場這一側是一次測量,而三種常見構造幾乎可以互換:
- 相對移動平均線的偏離。價格距離某條均線達到設定數量的 平均真實波幅(ATR) 單位或標準差。整套策略一行寫完。
- 觸及布林通道或收盤於通道外。同一個想法,只是偏離已經替你算好。收盤於通道外比觸及更嚴格,它改變交易筆數的幅度大於改變勝率的幅度。
- 帶有行情狀態過濾的擺盪指標極值。RSI 或隨機指標越過閾值,並以「市場並不處於趨勢」的讀數作為條件。這個過濾器就是「均值回歸 EA」與「一路對抗趨勢直到被全部停損出場的 EA」之間的差別。
出場有兩個部分:位於均值或均值附近的目標,以及位於推翻假設的價位之外的停損。每筆交易的期望值是 win rate × average win − (1 − win rate) × average loss,而一旦兩個出場距離被固定,這兩項就不再彼此獨立。把目標拉近,勝率上升,平均獲利則縮到平均虧損之下。把目標推到完整均值處,就會發生相反的事。
典型的回歸配置是近目標加寬停損——高勝率,代價是低於 1 的盈虧比。下面量測的十個反轉模板出廠時正好反過來,目標是停損的兩倍(30/60 或 40/80 pips)。這在不計成本時勝率 33.3 % 即可損益兩平,也意味著下面的預設基準,是在趨勢型出場下量測這些進場。
Builder 的反轉模板在預設參數下顯示了什麼
EA Builder 會在有基準值的模板卡片上印出量測結果,其中有十個反轉模板帶有基準值。在我們自己對 Builder 模板所做的預設參數基準測試中——USD/JPY M5 單次一年期執行、預設輸入值、不做最佳化——多數模板的獲利因子都低於 1.0,反轉這一類也不例外。
| 測試條件 | |
|---|---|
| 來源 | EA Builder 各模板卡片上印出的基準值 |
| 商品 / 週期 | USD/JPY M5(Exness MT5);Dual-Pair 籃子交易 EUR/USD 與 GBP/USD |
| 期間 | 2025-06-01 – 2026-06-09 |
| 模型 | M1 OHLC(K 線層級,非真實 tick) |
| 入金 / 輸入值 | 10,000,模板預設值,不做最佳化 |
| 模板 | 進場 | 停損 / 目標(pips) | 獲利因子 | 交易數 |
|---|---|---|---|---|
| MA Pullback Buy | 價格在 EMA 50 上方 0–20 pips 且 RSI 低於 45,只做多 | 40 / 80 | 1.10 | 159 |
| Envelope Reversal | 買價超出 SMA 20 的 0.1 % 包絡線 | 30 / 60 | 0.98 | 986 |
| Bollinger Bounce | 觸及 20 週期、2σ 的通道 | 40 / 80 | 0.97 | 632 |
| Stoch + BB | 在下軌處隨機指標低於 20(賣出反之) | 30 / 60 | 0.96 | 896 |
| Pin Bar Reversal | 看漲 Pin Bar 且 RSI 低於 35,只做多 | 40 / 80 | 0.96 | 179 |
| RSI Reversal | RSI 14 低於 30 / 高於 70 | 30 / 60 | 0.94 | 682 |
| Range Filter Reversal | 僅在 10 根 K 線區間為 10–80 pips 時採用 RSI 30/70 | 40 / 80 | 0.90 | 573 |
| MFI Reversal + StdDev | 僅在 StdDev 10 低於 StdDev 40 時採用 MFI 20/80 | 40 / 80 | 0.80 | 362 |
| 3-Strategy Portfolio (Mean-Reversion Mix) | RSI + 布林 + 包絡線合在一個 EA | 同各組成部分 | 0.92 | 2,287 |
| Dual-Pair RSI Basket | 在 EUR/USD 與 GBP/USD 上採用 RSI 30/70,最多四個部位 | 30 / 60 | 0.87 | 12,953 |
由此得出四點,而坊間說法一點都沒預測到。
出場旋鈕改變的是形狀,不是優勢。Builder 記錄了 RSI Reversal 與 Bollinger Bounce 在 USD/JPY H1 上的停損與目標搜尋。兩者各以十二組組合——停損 20 到 50 pips、目標 20 到 100 pips——跑過三段期間:2018–2021、2022–2024,以及 2025 年 1 月 – 2026 年 6 月。兩個模板樣本內最好的獲利因子都只有 0.91。這組網格同時包含近目標與遠目標。當沒有任何擺放方式能在它被選出的那段期間裡獲勝時,進場就沒有任何東西可以讓出場去塑形。
過濾器並不自動等於改進。Range Filter Reversal 在 RSI 30/70 進場上加了 10 根 K 線的區間閘門,得分 0.90,而單純版本為 0.94——不過兩者的停損與目標也不同,所以並不是乾淨的一對比較。只在波動收縮時才逆勢進場的 MFI Reversal + StdDev,以 0.80 成為表中最弱的單一商品模板。一道移除交易的閘門,移除的既有壞交易,也有好交易。
表中唯一高於 1.0 的模板,是順著趨勢方向逆向進場。MA Pullback Buy 只在價格位於 50 週期 EMA 之上時逢低買進,在 159 筆交易中得分 1.10。它是一個回檔進場——套在趨勢過濾上的回歸進場——從不站在較長期走勢的對面。它仍然沒有達到 Measure 面板印出的合格門檻(獲利因子至少 1.2、至少 60 筆交易、回撤不超過 20 %)。
堆疊反轉方法會把風險集中起來。三種方法的組合得分 0.92——並不比它的組成部分好,因為三者都在對抗同一次拉伸。Dual-Pair RSI Basket 在兩個相關的貨幣對上運行同一條 RSI 規則,最多同時開四個部位。它產生了 12,953 筆交易與 -36.38 % 的回撤,是 Builder 基準中所有模板裡最深的。相關的反轉部位,是同一個賭注下了好幾次。
市場條件:均值回歸什麼時候有回報,什麼時候沒有
| 條件 | 有利於均值回歸 EA | 不利於均值回歸 EA |
|---|---|---|
| 市場狀態 | 有可定義中樞、價格會回來的區間 | 不斷延展的方向性行情 |
| 波動率 | 偏高但無方向——K 線寬闊,淨位移為零 | 擴張 並且 朝一個方向持續跟進 |
| 拉伸本身 | 由會耗盡的流量造成——清淡時段、過度反應 | 由重新定價該貨幣對的資訊造成 |
| 更高週期的趨勢 | 走平,或逆向進場正好順著它 | 強勁且與逆向進場相反 |
| 持倉成本 | 回歸很快,資金成本無關緊要 | 部位逆著行情扛了好幾天,為犯錯支付隔夜利息 |
糟糕的環境不是虧錢的市場,而是有方向的市場,這正是趨勢跟蹤在區間裡失效方式的精確鏡像。兩者在不同的天氣裡虧錢。這也是連虧為什麼會扎堆的原因。連續十筆虧損不是十個互不相干的錯誤;那是同一條規則十次撞上同一段趨勢行情。
造成偏離的原因,和偏離的幅度同樣重要。被稀薄流動性拉開的價格,是回歸的候選;被利率決議拉開的價格已經被重新定價,不存在可以回去的舊均值。沒有任何指標能區分這兩種情況,這就是為什麼新聞過濾在這裡更重要。
同樣的彈性假設也驅動著統計套利,只是被用在兩個商品之間的價差上,而不是單一價格上,而它的失效方式也一樣。在 EUR/GBP 這樣的單一貨幣對上,被假定的關係就是該貨幣對自身歷史與其均值之間的關係。
MT5 中的參數與設定
在 Builder 中,下列每一項都是帶有自身輸入值的積木,每個數值都會成為編譯後 EA 的輸入參數。
| 積木與輸入值 | 常見起點 | 它控制什麼 |
|---|---|---|
Bollinger Bands / Envelope period、deviation | 長到讓均值成為一個價位,而不是價格的落後複本 | EA 把什麼當作價格應當回歸的那個值 |
| RSI / Stochastic / MFI 閾值 | 僅作確認,不單獨充當扳機 | 過濾掉仍在加速的拉伸 |
Market Regime Filter Allowed regime = Range | ADX 閾值 25 左右,要測試而不是假定 | 抑制趨勢中的進場——本頁最重要的一個輸入 |
MA Distance Filter Price side、Max pips (0=off) | 只在較長均線的一側逆向進場 | 把逆勢進場變成回檔進場 |
Open Buy / Open Sell TP (pips) | 均值本身,或到均值距離的一部分 | 與停損一起決定勝率和盈虧比 |
Stop Loss SL Mode | 位於推翻假設的價位之外,或用 ATR 倍數 | 均值回歸與意外的馬丁格爾之間的分界線 |
Spread Filter Max Spread (points) | 略高於該商品的正常點差 | 極端與寬點差總是結伴而來;這一項擋掉最差的成交 |
Position Filter Max Positions | 每個商品 1 個 | 阻止規則把同一次逆向進場層層疊加 |
有三條 MT5 特有的現實,決定一份漂亮的回測能否在實盤接觸中活下來:
- 停損有最小距離,而這套策略本來就想要一個寬停損。券商會拒絕比
SYMBOL_TRADE_STOPS_LEVEL更近的停損。Builder 產生的 EA 在修改部位前會檢查這個價位與SYMBOL_TRADE_FREEZE_LEVEL,並保留目前的價位,而不是送出一個會被拒絕的請求。 - 點差恰好在這套策略進場的地方變寬。它所對抗的那些極端,往往出現在流動性清淡的條件下。用平均點差跑出來的測試,會高估一檔進場集中在點差最差時段的 EA 的優勢。請用貼近實際的點差或真實 tick 點差測試,並且先讀建模品質再讀利潤。
- 持倉時間比這套策略的名聲所暗示的更長。需要好幾天才完成的回歸,每晚都要支付
SYMBOL_SWAP_LONG或SYMBOL_SWAP_SHORT,而三倍隔夜利息的日子各家券商並不相同。
- 固定進場與過濾器,然後別再動它們——一次改動全部只會讓你什麼也學不到。
- 用近目標和完整均值目標分別測試同一個進場。記下各自的勝率、盈虧比和獲利因子;如果兩者都沒超過 1.0,就停止調整出場,改去換進場。
- 從推翻假設的那個價位去設停損,而不是從一個整數出發。
- 在同一段期間內,把行情狀態或趨勢過濾器開著跑一遍、關著跑一遍。如果差別不大,說明測試期內沒有真正的趨勢,那份結果是未經檢驗,而不是穩健。
- 讀一讀所得記錄中最長的連虧,並在投入任何資金之前決定:兩倍長的連虧你坐得住嗎。
失效模式:均值回歸 EA 是怎麼虧錢的
- 拉伸繼續拉伸。這套策略虧錢的常規方式。每一次進場都逆著一段不會回頭的行情,而由於規則會反覆重新滿足條件,虧損是成塊到來的。
- 均值搬了家。被重新定價的貨幣對有了新的均值,而 EA 仍在測量到舊均值的距離。
- 為了躲開虧損而撤掉停損。把停損放寬,或者用攤平成本取而代之,會把一套風險確定的策略變成一個帶著好故事的網格。資金曲線立刻好看起來,尾部風險則變成無限。
- 把相關部位算作分散。同一條反轉規則用在兩個相關的貨幣對上,是同一個賭注下了兩次。Dual-Pair 籃子 -36.38 % 的回撤,就是這在預設參數下的樣子。
- 調整出場來拯救進場。當沒有任何停損與目標組合能在樣本內獲勝時,更努力地搜尋只會找到一個擬合出來的結果。
- 在錯誤的 K 線上測量成本。進場集中在點差最寬的極端處,跨越多日的持倉要付隔夜利息。兩者在一份設定了固定平均點差、且不計資金成本的測試裡都是看不見的。
如何在 AIStrategyMiner 搭建並壓力測試一檔均值回歸 EA
要組裝上面描述的這台機器,你並不需要寫 MQL5。偏離度量、擺盪指標確認、行情狀態閘門、位於均值的目標、位於極端之外的停損,全都是無程式碼 Builder 裡的積木,而上面的反轉模板出廠時就已接好線。最快的有用測試,是把 RSI Reversal 與 MA Pullback Buy 並排載入。兩者最明顯的差別是趨勢過濾,不過閾值、方向與出場也不同——所以請在 RSI Reversal 上加一個 MA Distance Filter,其他什麼都不改。
- 用近目標和均值目標各測一次同一個進場,除了勝率之外也比較獲利因子。
- 加入 Market Regime Filter 或 MA Distance Filter,並在關閉它的情況下也量測記錄,這樣你才知道過濾器實際在做什麼。
- 按下 Measure 對照印出的門檻做概略檢查,然後在 MT5 策略測試器中用真實 tick 與貼近實際的點差執行編譯後的 EA。
- 確認回測期間至少包含一段持續的、與策略對著幹的趨勢。
由你自己的流程編譯出的 .ex5 是免費的。.mq5 原始碼屬於 Pro,一次買斷、沒有訂閱——若想編輯產生的程式碼,請看價格方案。本站的方法論說明了應如何解讀回測結果。
均值回歸與趨勢的對比
| 均值回歸 | 趨勢跟蹤 | |
|---|---|---|
| 假設什麼 | 被拉伸的價格會回到它的均值 | 已確立的方向會延續 |
| 相對行情的進場 | 逆著它,在極端處 | 順著它,在確認之後 |
| 何時虧錢 | 市場走出趨勢,拉伸繼續拉伸 | 市場進入區間,行情反覆折回 |
| 典型出場 | 位於均值或其附近的固定目標 | 移動停損或訊號反轉 |
| 最壞情況 | 一串部位扛著一段不會回頭的行情 | 一長串尋常的虧損 |
| 複雜度 | 中級——風險由兩個出場距離承擔 | 入門——輸入項少,難在坐得住 |
整體上沒有哪一邊更安全:一個需要靜止,另一個需要運動。這是同時執行兩者的理由,但有一條表格無法呈現的但書。均值回歸 EA 和用固定停利的趨勢 EA,都依賴價格停在規則所說的地方,而放在趨勢過濾之後的反轉進場,本身就已經是兩者各佔一半。在認定兩檔 EA 已經分散了什麼之前,先確認每一個出場究竟在做什麼。
同一個反轉搭兩次,一次帶過濾、一次不帶
在 AIStrategyMiner Builder 中,把進場搭一次單純版本、再搭一次放在趨勢或行情狀態過濾之後的版本,然後在同一份逐筆歷史上回測兩者。在 Builder 基準中高於 1.0 的唯一模板,正是帶趨勢過濾的那一個。
- 為 MetaTrader 5 編譯標準 .ex5 檔,並在投入任何資金之前先讀出最糟的連虧。
在信任之前,請先在 MetaTrader 5 中檢查成品 EA。本頁的數字來自你輸入的內容,不是結果預測。
相關文章
常見問題
- 什麼是均值回歸 EA?
- 均值回歸 EA 會等到價格偏離自身均值達到一個可測量的距離,然後逆著這段行情進場,目標是價格回歸。這個距離通常表示為相對布林中軌的標準差,或相對移動平均線的 ATR 單位,並用處於極端區域的 RSI、隨機指標之類的擺盪指標作為確認。停損放在這樣一個價位之外:一旦觸及,就說明這根本不是拉伸,而是一段趨勢的開始。就進場而言,它是趨勢跟蹤的天然反面,並且在相反的天氣裡失效。
- 均值回歸 EA 的勝率高嗎?
- 只有在目標放得貼近進場時才高,而用這種方式買來的高勝率,代價付在盈虧比上。貼近進場的目標常被觸及、賺得少;放在完整均值處的目標較少被觸及、賺得多。本頁量測的反轉模板出廠時目標是停損的兩倍,不計成本時勝率 33.3 % 即可損益兩平。勝率來自出場放在哪裡,而不是來自進場是逆勢這一事實。
- 哪些貨幣對適合均值回歸 EA?
- 教科書答案是結構性區間震盪的交叉盤——EUR/CHF、USD/CHF、EUR/GBP、AUD/CAD——因為一個不斷回到中樞的貨幣對,才給了策略可回歸的對象。實務上真正重要的比貨幣對名稱更窄:那個具體商品在它自己的週期上,花在回歸上的時間是否多於花在延展上的時間。Builder 的反轉模板是在 USD/JPY M5 上量測的——雜訊多的週期上的一個趨勢型貨幣對——多數模板在那裡的得分都低於 1.0。請在你打算交易的商品上測試,而不是照搬一份貨幣對清單。
- 均值回歸與網格或馬丁格爾 EA 有何不同?
- 區別在停損。三者都會在不利行情面前持有曝險,而且只要市場配合,三者看起來都在獲利。均值回歸 EA 在一個可測量的極端處開一筆部位,如果回歸假設錯了,就以既定的虧損平掉。網格或馬丁格爾 EA 應對不利行情的方式是繼續加碼,於是虧損只有在帳戶無力支撐下一次加碼時才被實現。如果一檔被稱為均值回歸的 EA 沒有停損,或者在虧損部位上攤平成本,那它就是披著這個標籤的另一種策略。
- 更好的目標或停損能救回一個虧損的反轉進場嗎?
- 從 Builder 自己的記錄來看,不能。RSI Reversal 與 Bollinger Bounce 各自在 USD/JPY H1 上、橫跨 2018 到 2026 年的三段期間,搜尋了十二組停損與目標組合——停損 20 到 50 pips、目標 20 到 100 pips。兩者樣本內最好的獲利因子都只有 0.91。移動出場會改變勝率與盈虧比,但不會創造出進場所缺少的優勢。請先改進場或過濾條件。
- 同時運行好幾種反轉方法能分散風險嗎?
- 比看起來少。Builder 的 3-Strategy Portfolio 在一個 EA 中同時運行 RSI 反轉、布林反彈與包絡線反轉,各自使用獨立的 magic number。預設參數下,它在 2,287 筆交易中的獲利因子為 0.92——並不比它的組成部分好。三個都在對抗同一次拉伸的進場,會在同樣的趨勢天氣裡虧錢,所以虧損會一起到來。
Glossary