用統計機率洞察多空極限!
在量化交易策略的研發過程中,多數動能震盪指標(如 CCI、ROC 或 價格差離率)都面臨一個難以克服的硬傷:無法跨市場、跨資產比較。報價上萬點的比特幣、數千點的標普指數,與數十元的外匯點數,其絕對偏差值在數學上是完全不對等的。為了解決這一大盲區,Strategy Quant X (SQX) 引進了極具統計學智慧的技術指標 — CMMA (Close minus moving average, normalised / 對數歸一化均線差離值指標)。它利用自然對數消除價格基數,以 LogATR 進行波動率標準化計算出 Z-Score,最後套用標準常態分佈的累積分布函數 (Normal CDF) 將極值映射在 -50 至 +50 的對稱區間中。本文將為您徹底解構其 Java 算式底層、核心參數與統計學機率實戰用法。
一、CMMA (對數歸一化均線差離值) 指標概述
CMMA 指標全稱為 Close minus moving average, normalised(對數歸一化均線差離值),是 SQX 平台獨家內建的高階統計學動能震盪指標。CMMA 的設計理念,是去度量最新收盤價相對於其移動平均線的偏離強度,但採取了革命性的「波動率自適應歸一化」處理。它通過對數變換(Log Transformation)消除了資產報價基數的差異,並以 LogATR (對數平均真實波幅) 作為波動率分母,最終套用高斯標準常態分佈 CDF,將結果縮放在一個標準的、無量綱的機率震盪坐標中。這使它成為跨商品、跨週期策略篩選與超買超賣判定最完美的統計學工具。
在 Strategy Quant X (SQX) 中:CMMA 指標被定義為一個 BuildingBlock,其模組名稱為(CMMA) CMMA。其幫助提示明確標注為:"Close minus moving mverage, normalised";在 UI 顯示格式為:CMMA (@Chart@#Lookback#,#ATRLength#)[#Shift#],返回類型被定義為ReturnTypes.Number,代表它是一個獨立於主圖下方副圖運作的機率震盪指標。
二、CMMA 指標的組成部分與參數
CMMA 指標在副圖獨立窗口輸出單一機率曲線,其計算依賴於以下核心輸出與雙週期參數配置:
| 組件類型 | 組件名稱 | 預設值 | 底層物理定義與技術說明 |
|---|---|---|---|
| 主要輸出 (Output) | Value (CMMA 機率線) | — | 代表當前價格相對於歷史均值,在波動率調整後,處於常態分佈累積概率中的百分比位置(並平移至 -50 至 +50)。 |
| 核心參數 (Parameter) | Chart (數據源) | Chart 0 | 計算指標所基於的數據圖表。底層代碼直接讀取收盤價序列(Chart.Close)。 |
| 核心參數 (Parameter) | Lookback (均線回顧期) | 10 | 用於計算歷史價格對數移動平均(Log SMA)的 K 線根數。SQX 預設值為 10,可調區間為 2 到 1000。 |
| 核心參數 (Parameter) | ATRLength (波幅參考期) | 100 | 用於計算對數真實波幅(LogATR)的滑動窗口長度,為指標提供長期波動率的分母基準。SQX 預設值為 100。 |
底層運作機制與計算原理(純文字 HTML 版)
在 SQX 的底層 Java 代碼實現中,系統會首先進行「數據量完整性檢查」:若當前 K 棒數量小於 Lookback 與 ATRLength 中的最大值(即 CurrentBar < Math.max(Lookback, ATRLength)),指標數值會被強制設為 0 以防崩潰。滿足條件後,執行以下流暢的統計學運算:
-
第一步:獲取 LogATR 作為基礎波動率分母
- 利用 ATRLength 週期(預設 100),計算前一根 K 線的對數平均真實波幅(LogATR):
denom = LogATR(Chart, 100) 的前一期值
- 利用 ATRLength 週期(預設 100),計算前一根 K 線的對數平均真實波幅(LogATR):
-
第二步:計算歷史價格對數平均 (Log Average)
- 利用
Lookback週期(預設 10),回溯計算過去 1 根到 Lookback 根 K 棒收盤價的「自然對數對數和」,並除以 Lookback 得到平均值:
Log 均值 = [ ln(Close(1)) + ln(Close(2)) + ... + ln(Close(Lookback)) ] / Lookback
- 利用
-
第三步:計算波動率調整後的標準分數 Z-Score
- 若 LongATR 分母大於 0,將分母乘以 Lookback + 1 的平方根(用以對樣本容量進行標準誤修正),再用當前收盤價的對數值減去 Log 均值並除以該分母:
修正分母 = LogATR 的前一期值 * 平方根(Lookback + 1)
Z值 = ( ln(當前收盤價) - Log 均值 ) / 修正分母
此 Z 值在統計學上,代表當前對數價格偏離歷史均值的標準差倍數。
- 若 LongATR 分母大於 0,將分母乘以 Lookback + 1 的平方根(用以對樣本容量進行標準誤修正),再用當前收盤價的對數值減去 Log 均值並除以該分母:
-
第四步:常態分佈累積分布函數 (Normal CDF) 歸一化對稱處理
- 利用底層高度精確的泰勒多項式逼近法
normal_cdf(Z值),計算出該 Z 值對應的標準常態分佈累積概率(其值域為 0.0 到 1.0):
最終 CMMA Value = 100 * normal_cdf(Z值) - 50
這一步將原本無界的 Z 值,完美映射在 -50 至 +50 之間,且 0 軸恰好代表概率的 50%(均值中點)。
- 利用底層高度精確的泰勒多項式逼近法
三、CMMA 指標的數值範圍 (機率物理特徵)
CMMA 指標是一套在數學上極度優雅、完全標準化的「有界震盪系統」:
-
嚴格的 -50 至 +50 數學區間
- 由於標準常態分佈 CDF 的輸出範圍在 0 到 1 之間,根據公式
100 * normal_cdf(Z) - 50,CMMA 的輸出數值被死死鎖定在 -50 到 +50 之間。 - +50 上限: 代表當前價格向上偏離的 Z 值趨於正無窮(累積機率接近 100%),暗示價格相對於近期波動率發生了極端的向上突破。
- -50 下限: 代表當前價格向下偏離的 Z 值趨於負無窮(累積機率接近 0%),暗示價格發生了極端的向下破位。
- 由於標準常態分佈 CDF 的輸出範圍在 0 到 1 之間,根據公式
-
中心零軸 (0) 的技術意義
- 中軸值為 0 (
middleValue=0)。當 CMMA 等於 0 時,說明 Z 值為 0,代表累積概率剛好落在 50% 的對稱均值點(當前價格完美等於對數移動平均)。
- 中軸值為 0 (
-
關於 SQX 註解中 min=-1000, max=1000 標註的澄清
- 在 SQX 的
@Indicator(min=-1000, max=1000)註解中,將指標最大最小值設定得非常寬。這是平台的通用參數配置容錯,但在物理數學邏輯上,CMMA 的 Value 「不可能超越 +50 且不可能低於 -50」。 - 因此,量化研究員在實戰或寫代碼過濾條件時,應將 -50 至 +50 作為其真正的無漂移波動刻度。
- 在 SQX 的
四、CMMA 指標的解讀與應用
因為 CMMA 底層融合了 LogATR 標準差修正與 Normal CDF 映射,其剔除了不同資產的報價噪音,在實戰中提供以下極高統計價值的解讀與應用維度:
-
1. 跨市場、無價格偏見的超買與超賣判定 (Probability-based OB/OS)
- 多數震盪指標在不同價格基數的資產上超買超賣線都不相同,但 CMMA 徹底解決了這個世紀難題:
- 極限超買警戒 (CMMA > +35 或 +40): 當 CMMA 升穿 +35 以上,代表當前上漲累積機率高於 85%(Z 值 > 1.04)。這在統計學上屬於小機率的異常偏離,暗示價格短線過熱,隨時面臨均值回歸的拋售。
- 極限超賣警戒 (CMMA < -35 或 -40): 當 CMMA 跌深至 -35 以下,代表當前下跌累積機率低於 15%(Z 值 < -1.04)。這在統計學上屬於小機率超跌,暗示隨時可能展開強烈的技術性報復反彈。
-
2. 零軸交叉的多空動能拐點確認 (Zero Line Crossover)
- 多頭動能啟航: 當 CMMA 線由下往上穿透 0 軸(進入正值區)時,說明當前收盤價已超越其歷史對數移動平均,多頭開始踩油門加速。
- 空頭動能啟航: 當 CMMA 線由上往下跌破 0 軸(進入負值區)時,說明價格跌破對數平均,空頭開始加速下壓。
-
3. 趨勢跟隨中的強勢延伸與「鈍化突破」判讀
- 與傳統 RSI、KD 等指標在超買超賣區容易產生「頻繁假金叉死叉」不同,CMMA 的 CDF 曲線在強勢單邊行情中,其軌跡極其穩定:
- 當市場爆發單邊主升行情,CMMA 會迅速衝入 +40 以上,並流暢、穩定地保持在極高位(如 +45 以上)長度延伸。此時,代表價格在統計學上持續創出對數新高。順勢交易者應堅定持有多單,切勿提早做空。
- 直到 CMMA 從極高檔「決定性地跌破 +35 或 +30 臨界線」時,才說明多頭動能正式降速,釋出多單出場或拐點修正預警。
-
4. 核心參數(Lookback 與 ATRLength)的調校指南
- Lookback (對數均線週期): 決定了您要對比的歷史趨勢長度。調短(如 5 或 10)會使 Z 值對短線價格偏差極其敏感,指標擺動迅速,適合超短線高頻策略;調長(如 30)會使其更能反映中長期的價值中樞。
- ATRLength (波動率分母週期): 預設 100 提供了極其穩定的中長期 LogATR 波動常態基準。調短此值會使分母容易因短期的波動爆發而迅速形變,導致指標對最新市場波動過度敏感,容易產生雜訊。
📌 本文核心修煉要點
-
統計學高斯 Bell 鐘形機率對應
- CMMA 巧妙地將價格自然對數化(ln),並以 LogATR 作為波動分母,在統計學上求解出無量綱的 Z 標準分數。
- 再透過多項式泰勒逼近 Normal CDF,將 Z 分數轉換為 0~1 的累積概率,平移後得出 -50 到 +50 絕對對稱的震盪波段。
-
跨商品無差別強弱坐標
- 無論標的資產是高價的黃金、指數,還是低價的外匯,+35 與 -35 永遠精確對應統計學上的小機率極端偏離。
- 這為多商品量化投資組合,提供了完全相同、客觀、且不隨時間漂移的超買超賣判判定防線。
-
SQX 策略開發配置優化
- 在 SQX 自動生成策略時,強烈建議將
(CMMA) CMMA作為「順勢多空過濾」或「回調起漲進場觸發器」。 - 例如設定經典回調買入邏輯:「大週期均線向上,且當
CMMA自低檔跌破 -35 超賣區、隨後重新向上穿透 -35 時進場做多」,這能幫您在回測中精確抓取主升段中的洗盤最低點,優化出回撤極小、收益期望值與夏普比率(Sharpe Ratio)極佳的完美資金曲線。
- 在 SQX 自動生成策略時,強烈建議將