Strategy Quant X 內建指標 : Ulcer Index (潰瘍指數)

Ulcer Index (UI) - SQX 版本指標詳解 (潰瘍指數)

Ulcer Index (UI) - SQX版本 指標詳解 (潰瘍指數)

一、Ulcer Index (潰瘍指數) - SQX版本 指標概述

潰瘍指數 (Ulcer Index) 最初由彼得·馬丁 (Peter Martin) 和拜倫·麥肯 (Byron McCann) 開發,其原始目的是為了衡量投資的下行風險,特別是價格從先前高點回撤(Drawdown)的深度和持續時間。這個指數旨在量化持有某項投資可能經歷的「痛苦程度」或「引發潰瘍的壓力」。數值越高,通常代表潛在的回撤風險和心理壓力越大。

然而,在SQX程式碼中,名為 (UI) Ulcer Index 的指標實現提供了兩種不同的計算模式 (Mode),這些模式計算的是價格相對於特定週期內最高收盤價或最低收盤價的百分比偏差的波動情況,這與傳統單純衡量下行風險的潰瘍指數有所區別。

二、Ulcer Index (潰瘍指數) - SQX版本 的組成部分與參數

該 Ulcer Index - SQX版本指標主要輸出一個數據序列,其計算依賴於以下核心參數和內部機制:

主要輸出 (Output):

  • Value (UI 線): 這是一條代表根據所選模式 (Mode) 和週期 (Period) 計算出的指標值的曲線。

核心參數 (Parameters):

  • Input (圖表數據): 指標計算所基於的輸入價格數據(在SQX程式碼中,實際使用的是收盤價 Input.Close)。
  • Mode (計算模式): 此參數允許用戶選擇指標的計算方式。SQX程式碼中提供了兩種模式 :
    • UP UI=1 (預設模式): 此模式計算當前收盤價相對於過去 Period 週期內最高收盤價的百分比偏差,然後對這些偏差的平方進行平均後再開方。
    • Down UI=2: 此模式計算當前收盤價相對於過去 Period 週期內最低收盤價的百分比偏差,然後對這些偏差的平方進行平均後再開方。
  • Period (週期): 用於確定參考的最高收盤價或最低收盤價的回顧期長度,同時也是計算偏差平方和平均的回顧期。在SQX程式碼中,此參數的預設值為24。

運作機制簡述 (基於SQX程式碼):

指標在有足夠的歷史數據(當前K線數大於 Period)後才開始計算:

模式 1 (UP UI):

  • 首先,找出過去 Period 週期內的最高收盤價 (hc) 。
  • 計算當前收盤價相對於此 hc 的百分比偏差 dd = 100.0 * (Input.Close.get(0) - hc) / hc 。這裡需要注意,如果當前收盤價高於 hc(即創下 Period 內新高),dd 將為正值;如果低於 hc(即從高點回撤),dd 將為負值。
  • 指標會記錄過去 Period 週期內每一根K線計算出的 dd 值(存儲在 ddBuffer 中) 。
  • 計算這些 dd 值的平方之和,然後除以 Period(即計算平方偏差的平均值),最後取其平方根得到最終的指標值 uI

模式 2 (Down UI):

  • 首先,找出過去 Period 週期內的最低收盤價 (lc) 。
  • 計算當前收盤價相對於此 lc 的百分比偏差 dd = 100.0 * (Input.Close.get(0) - lc) / lc 。如果當前收盤價低於 lc(即創下 Period 內新低),dd 將為負值;如果高於 lc(即從低點反彈),dd 將為正值。
  • 與模式1類似,記錄並計算過去 Period 週期内這些 dd 值的平方之和的平均值的平方根,得到最終的指標值 uI

三、Ulcer Index (潰瘍指數) - SQX版本 的數值範圍 (有界性)

Ulcer Index - SQX版本的輸出值 (Value) 通常是非負的,因為它是通過對平方和取平方根計算得出的。

數值越大,表示在所選模式下,價格相對於基準點(週期內的最高收盤價或最低收盤價)的百分比「偏差」或「波動」的平均幅度越大。

此指標沒有固定的上限。其數值範圍會根據市場的實際波動性以及價格偏離其參考基準的程度而變化。

SQX程式碼中並未對Ulcer Index指標的 @Indicator 註解設定 min 或 max 範圍。

四、Ulcer Index (潰瘍指數) - SQX版本 的解讀與應用 (一般概念)

由於SQX程式碼中此版本的 Ulcer Index 計算方式與傳統專注於衡量純粹下行風險(回撤)的潰瘍指數有所不同,其解讀也應基於其具體的計算邏輯:

衡量價格相對於近期極值的偏離度/波動性:

  • UP UI (模式1):
    較高的 UP UI 值可能表示以下幾種情況之一或組合:a) 價格正強勢向上突破近期 (Period內) 的高點並持續創出顯著的新高;b) 價格從近期高點大幅回落;c) 價格在近期高點上下劇烈波動。它反映的是價格與「週期內最高收盤價」這個動態基準點之間總體偏差的波動幅度,包含了上行突破和下行回撤兩種情況的平方影響。
    較低的 UP UI 值則表示價格相對穩定地保持在近期高點附近,或者從高點的回撤幅度及向上突破的幅度都較小。
  • Down UI (模式2):
    較高的 Down UI 值類似地表示價格相對於近期 (Period內) 的低點有較大的總體偏差。這可能源於:a) 價格從近期低點強勢大幅反彈;b) 價格繼續大幅跌破近期低點並創出顯著的新低;c) 價格在近期低點上下劇烈波動。它衡量的是價格與「週期內最低收盤價」之間總體偏差的波動幅度。
    較低的 Down UI 值表示價格相對穩定地保持在近期低點附近,或者從低點的反彈幅度及繼續創新低的幅度都較小。

與傳統Ulcer Index的區別與聯繫:

  • 傳統潰瘍指數: 嚴格衡量下行風險,即價格從其歷史或較長周期高點回撤的百分比深度和持續時間。計算時通常只考慮負向的價格變動(回撤),且數值越高代表「痛苦程度」或「潰瘍風險」越大。
  • SQX版本的 UP UI (模式1): 雖然計算基準是週期內的最高收盤價,但由於它將 dd = (Close - hc) / hc 直接平方,所以如果 Close > hc(即價格創下週期內新高),dd 為正,其平方值依然會增加指數的總體值。因此,它更像是一個衡量價格相對於「週期內高點」這個參考點的雙向偏差波動性的指標,而不僅僅是下行回撤的痛苦程度。
  • SQX版本的 Down UI (模式2): 這個模式則完全不同於傳統潰瘍指數,它衡量的是價格相對於「週期內低點」的雙向偏差波動性。

潛在應用:

  • 特定情境下的風險或機會評估:
    UP UI 的高值如果伴隨著價格持續創新高,可能反映了強勁的向上動能(但也可能預示短期過熱)。如果伴隨著價格從高位回落,則反映了回撤的波動。
    Down UI 的高值如果伴隨著價格持續創新低,可能反映了強勁的向下動能。如果伴隨著價格從低位反彈,則反映了反彈的力度。
  • 波動性指標的變體: 可以將這兩種模式視為特定類型的波動性指標,它們衡量的是價格在特定動態參考點(週期高點或週期低點)周圍的「不穩定性」或「偏離幅度」。
  • 比較不同資產或策略的「偏離特性」: 在理解其計算邏輯的前提下,可以用來比較不同資產在類似市場條件下,其價格相對於近期極值的波動特性。

使用注意事項:

  • 由於此SQX程式碼版本的 Ulcer Index 計算方式與專注於純粹下行風險的傳統潰瘍指數有顯著差異,交易者在使用時必須明確理解其選定模式的計算邏輯和所反映的市場意義,避免與傳統潰瘍指數的解讀混淆。
  • 模式1 (UP UI) 和模式2 (Down UI) 分別提供了基於不同參考點(週期高點 vs. 週期低點)的價格偏差波動信息,應根據分析目的選擇合適的模式。
  • 參數 Period 的選擇會顯著影響指標對近期價格變動的敏感度。較短的週期會使指標對更近期的極值更為敏感。

總結來說,SQX程式碼中實現的 Ulcer Index 提供了兩種衡量價格相對於近期高點或低點百分比偏差波動性的模式。它們與傳統意義上僅衡量下行風險的潰瘍指數有所不同,更側重於量化價格圍繞近期極值點的總體波動程度。

精選文章