把波動率當成方向
高波動率說的是價格動得很大,不是價格在往上走。趨勢和波動率是兩個各自獨立的衡量——一段劇烈的盤整區間既是高波動率,同時又沒有趨勢。
波動率(volatility)是價格隨時間變動的幅度——衡量的是價格走了多遠,而不是往哪個方向走。統計上它是報酬的標準差;在 MT5 EA 裡它以平均真實波幅(ATR)讀取,並決定上個月的停損距離放到今天是否還合適。
亦稱:market volatility, price volatility
更新於 · 審閱於
價格通常會走多遠,而不是往哪邊走。一個平靜的市場和一個劇烈的市場,可以在同一個價位收完這一週;波動率就是這兩段路程之間的差別。
EA 裡的每一個停損距離、目標和手數,都是依照「價格在一個交易時段內會走多遠」的某種假設校準出來的。波動率就是把這個假設明講出來。當它在部署之後改變,一個原本正確的 EA 會在邏輯一行未動的情況下變成錯的。
σ = 各期報酬的標準差 · 年化 σ = σ_daily × √252 統計上的定義是報酬的標準差,夏普比率、風險值和每一個風險模型用的都是它。EA 裡的實務定義則是平均真實波幅,它以價格單位衡量同一個概念,而且不需要報酬序列就能計算。兩個都叫「波動率」的數字,往往其實是這兩樣不同的東西。
單一數字無法描述一套策略。下列指標會改變這個數字的讀法。
一個演算範例:同一個 EA 帶著 30 點固定停損走過兩種狀態。改變的只有一根普通小時 K 線的幅度。
ATR 版本會跟著市場一起放寬——但手數也必須跟著縮小。
計算 30 ÷ 12 = 2.5 個波幅 · 30 ÷ 34 = 0.88 個波幅
結果 固定停損的意義變了將近三倍;以 ATR 為基準的停損則沒有
mt5depot 的 EA 頁面為每一個上架商品註明了測試窗口與資料來源,所以一個結果是否跨越了不只一種狀態,可以從日期讀出來。本頁每一個實測數字都來自這些商品公開的交易帳本(EXP-VOL-REGIME-001),以已平倉交易為基準。
高波動率說的是價格動得很大,不是價格在往上走。趨勢和波動率是兩個各自獨立的衡量——一段劇烈的盤整區間既是高波動率,同時又沒有趨勢。
在公開帳本上,EA 每日損益最劇烈的那一季在 22 個中有 13 個是獲利的,而最糟的單日在 22 個中有 15 個落在那一季之外。一個在高波動率時把 EA 關掉的濾網,會錯過那一季,卻仍然躲不掉大多數最糟的日子。
一個在劇烈狀態下放大到三倍的 ATR 停損,會把承擔風險的資金也放大到三倍,除非部位大小跟著下降。自適應停損只有在搭配自適應部位時才有幫助。
測試器從不印出波動率數字。它的三項設定決定了有多少波動率能到達報告。
建模。 Every tick based on real ticks(以真實 Tick 為基礎的每一筆 Tick)重播每根 K 線內部記錄下來的路徑,所以一個落在普通 K 線之內的停損,會在它本來就會被打到的時點被打到。由 M1 K 線產生的 Every tick(每一筆 Tick)對這條路徑做內插,而 Open prices only(僅開盤價)則把它捨棄。停損比 K 線幅度更窄的策略,用這兩種模式都無法判斷——參見 Tick 資料與建模品質。
點差。 策略測試器(Strategy Tester)→ Settings → Spread 提供 Current(目前值)或一個固定的點數(point)。兩者都在長達數年的整段測試裡只用同一個數值,所以隨波動率飆升而來的點差擴大,不會出現在產生 Tick 的測試裡。在真實 Tick 上,點差就是 Tick 檔案所帶的那個值。
輸入參數。 一個以 ATR 設定的停損會在 Inputs 分頁露出兩個輸入項:週期與倍數。一個在 2.0 有效、在 1.8 或 2.2 卻無效的倍數,是被擬合到某一段窗口的回檔上,而不是擬合到波動率上。在 MQL5 裡,控制代碼(handle)在 OnInit 中用 iATR(_Symbol, PERIOD_CURRENT, 14) 建立一次。數值從最後一根已完成的 K 線(索引 1)讀取,這樣停損距離就不取決於訊號觸發的時間點。平均真實波幅(ATR)詞條裡有相關設定。
每個商品頁面都附有它的已平倉交易清單,所以可以按日曆季度測量 EA 自身每日損益的 σ,並與整段窗口比較。24 個商品中有 2 個在任何一季都沒有達到 10 個活躍日,被略過而沒有補齊。
| 測量項目(已平倉交易基準,活躍日 10 天以上的季度) | 22 個 EA 的中位數 | 範圍或數量 |
|---|---|---|
| 每個 EA 符合條件的季度數 | 15.5 | 合計 375 個 |
| 狀態跨度:最劇烈一季 σ ÷ 最平靜一季 σ | 2.29× | 1.25× 到 5.33× |
| 狀態跨度超過 2× 的 EA | — | 22 個中的 15 個 |
| 落在整段窗口 σ ±25% 以內的季度 | 78.76% | 375 個中的 282 個 |
| 最糟單日落在最劇烈一季之內 | — | 22 個中的 7 個 |
| 最劇烈一季虧損 | — | 22 個中的 9 個 |
| 最後一個符合條件的季度 σ ÷ 整段窗口 σ | 0.91× | 22 個中有 17 個低於 1 |
有兩列與波動率濾網的假設相牴觸。最糟的一天在 22 個 EA 中有 15 個落在最劇烈一季之外,而那一季在 22 個中有 13 個是賺錢的。單一個壞日子不是一種狀態,而滾動式的測量也看不見它要來。
跨度最寬的是 Murmuration:2026-Q1 的季度 σ 為 4.591%,下一季則為 0.862%,設定完全相同卻相差 5.33 倍。它最糟的一天是 2020-03-18 的 9.579%,落在六年前一個更平靜的季度裡。
讀狀態,不要讀水準:在 EA 交易的時間週期上,把今天的 ATR 和測試窗口內的 ATR 做比較。
CopyBuffer(handle, 0, 1, bars, array) 在測試日期範圍內讀取同一個指標,再對陣列取平均。在 MT5 執行回測涵蓋上面這些設定,參數最佳化則涵蓋 ATR 倍數的相鄰值檢查。一次飆升如何變成錢,是部位管理、滑價和最大回撤的主題。