VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

Zweig Breadth Thrust 指標:10 日規則與罕見訊號

Zweig Breadth Thrust 在上漲股票占比的 10 日指數平均,於十個交易日內從 0.40 以下升到 0.615 以上時出現。訊號罕見,紀錄只有數十個事件,不足以衡量優勢;應把它當作較高頻規則的濾網來檢驗,而不是單獨的策略。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 什麼是 Zweig Breadth Thrust 指標?
  2. Zweig Breadth Thrust 怎麼計算?
  3. 廣度推力訊號有多罕見?罕見為何重要?
  4. 這個訊號有多可靠?數十個案例能證明什麼、不能證明什麼
  5. 在 ES 上做動能替代測試,結果如何?
  6. 你該如何自行檢驗廣度推力規則?
  7. 常見問題
  8. 參考文獻

什麼是 Zweig Breadth Thrust 指標?

Zweig Breadth Thrust 指標是一種市場廣度訊號。當上漲股票占比的 10 日指數平均,在十個交易日內從 0.40 以下升到 0.615 以上,訊號即出現。訊號罕見,因為市場必須極快地從普遍賣壓轉為普遍買盤。

市場廣度計算的是有多少檔股票參與一波走勢,而非指數漲跌了多遠。指數可能靠少數大型權值股上漲,多數股票卻在下跌;廣度顯示的就是這種落差。Zweig Breadth Thrust 以其創始者命名,只讀一個廣度數字:收盤上漲的上市股票占比。這個占比經十日平滑後,若從每十檔不到四檔上漲,升到每十檔超過六檔上漲,代表整個市場在不到兩週內掉頭。背後的想法是,如此廣泛又突然的轉向,通常出現在較長一波漲勢的起點附近。

有兩項特點,讓這個指標有別於技術分析工具與指標中可檢驗的那些工具。它用的是上漲與下跌家數,不是價格,所以你需要廣度資料,而不只是 K 棒。它也是一個事件,不是每日讀數:多數時候它什麼也不說。本文其餘部分只追一項主張:每十年只出現寥寥數次的指標,無法單憑自身紀錄當成策略來評分,因此它的位置是成交更頻繁之規則上的濾網。更廣的同類指標,見市場廣度指標。

廣度推力是一次快速擺盪:上漲家數比率的 10 日 EMA 先跌破 0.40 水準,再於十個交易日內升破 0.615 水準,第二次穿越就是訊號 推力是一次快速擺盪 上漲家數比率的 10 日 EMA 0.615 0.40 訊號 ≤ 10 日 緩慢爬升不算。 因此:數兩水準間隔幾日。
訊號是一次快速移動:平滑後的上漲家數比率離開 0.40 水準,並在十日窗口內穿越 0.615。

Zweig Breadth Thrust 怎麼計算?

計算分三步,順序固定:每日比率、10 日平滑,以及兩道門檻之間的天數。你需要的是所追蹤交易所在每個交易日的上漲檔數與下跌檔數。

  1. 每日比率。上漲檔數除以上漲與下跌檔數的總和,平盤檔數不計入。結果介於 0 到 1 之間。
  2. 用 10 日指數移動平均平滑。指數移動平均(EMA)給近期的天數較大權重,給較早的天數較小權重,所以反應比最近十個數值的簡單平均更快。門檻套用在這條平滑線上。
  3. 計算兩道門檻之間的天數。找出平滑線最後一次收在 0.40 以下的位置,再找出其後第一次收在 0.615 以上的位置。數出兩點之間的交易日數。十日(含)以內是訊號,超過十日則不是。
三個步驟,一個決定:計算上漲家數除以上漲加下跌家數的每日比率,用 10 日 EMA 平滑,再數從 0.40 以下到 0.615 以上的交易日數;十日(含)以內是訊號,超過十日則無訊號 三個步驟,一個決定 A = 上漲家數、D = 下跌家數 1 比率 A ÷ (A + D) 2 平滑 10日EMA 3 計數 0.40 → 0.615 ≤ 10 日:訊號 > 10 日:無訊號 天數是唯一的檢驗。 因此:先固定股票名單。
比率、平滑、天數。最後的分支,是這條規則裡唯一的決定。

假設性範例

假設某個疲弱日有 1,200 檔上漲、1,800 檔下跌,比率為 1,200 ÷ 3,000 = 0.40。一週後的強勢日有 2,400 檔上漲、600 檔下跌:2,400 ÷ 3,000 = 0.80。平滑線不會直接跳到 0.80,因為 EMA 仍帶有疲弱日的權重。要讓平滑線在最後一次收於 0.40 以下後的十日內升破 0.615,這十日中大多數必須像那個強勢日。這就是這條規則門檻高的原因。

有兩項細節會改變你得到的訊號次數。第一是股票名單:交易所的完整名單包含基金與特別股,部分分析者只計普通股,同一天算出的比率就不同。第二是 EMA 的起始值,它影響一個序列最初幾週的數值。數訊號之前,先把這兩項選擇寫下來,免得日後更動悄悄改掉紀錄。

廣度推力訊號有多罕見?罕見為何重要?

每十年只出現寥寥數次的規則,紀錄小到一兩次結果就足以左右全局;同一段歷史上的每日指標,卻能產生數百筆可檢驗的交易。推力需要廣度在兩週內近乎完整地轉向。市場只有在急跌後強力反轉時才會如此,而這類反轉並不常見。有時數年都沒有一次訊號。

罕見並非這個構想的缺陷,但它限制了你能從中學到的東西。拿它和每天都有數值的指標比較:日 K 棒上的 KD 指標(Stochastic)交叉規則或 MACD 指標訊號線規則,每隔數週就產生交易;在 30 以下進場、50 以上出場的 RSI 規則也一樣。十年下來,這些規則都有數百筆完成的交易。廣度推力只有幾筆。兩份紀錄來自同樣十年的歷史,但一份是證據,另一份只是幾則軼事。

項目Zweig Breadth Thrust每日指標規則(KD、MACD、RSI)
所需資料上漲與下跌家數只需價格 K 棒
十年內的訊號數寥寥數次數百次
決定紀錄的因素一兩次結果眾多交易的平均
如何評分與隨機日期比較,作為濾網樣本外交易、推進分析
在系統中的角色允許或阻擋交易的條件自行負責進場與出場
同樣的年份,事件少得多:在同一段歷史上,廣度推力規則只給出寥寥數個稀疏訊號,每日動能規則卻給出數百筆交易 同樣的年份,事件少得多 同一段歷史,每個事件一個標記 廣度推力 寥寥數次 每日動能 數百次 證據以事件數計。 因此:用更多交易為規則評分。
同樣多年的歷史,讓一條規則只有寥寥數個事件,另一條卻有數百筆交易。證據以事件計算,不以年數計算。

這與日內交易最佳指標貫穿全文的教訓相同:故事最動聽的指標,不是證據最多的指標。能檢驗一千次的規則,比只能檢驗一打次的規則,更能說明自身的狀況,即使那一打次全都順利。

這個訊號有多可靠?數十個案例能證明什麼、不能證明什麼

只有數十個訊號時,平均結果的不確定性仍然相當大,因此廣度推力之後的高命中率,只是對市場行為的提示,不是能據以決定部位大小的實測優勢。已發表的研究指出,多數情況下,指數在數個月後走高。這可能確實如此。問題在於,由這麼少的案例算出的平均值,你能信賴到什麼程度。

想像用擲硬幣來判斷硬幣是否公平。擲十次得七次正面,幾乎說明不了什麼;擲四百次得 280 次正面,就足以說明這枚硬幣不公平。訊號之後的平均結果也是同樣的道理。有一條公式值得記住:

平均結果的不確定性 = 單筆結果的離散程度 ÷ √N

其中,單筆結果的離散程度指個別結果通常偏離平均值多遠(即標準差),N 是訊號數,√N 是它的平方根。平方根成長得慢,所以要把不確定性減半,需要四倍的訊號數。

假設性範例

假設訊號後 60 個交易日的指數報酬平均為 +4%,單筆結果通常偏離該平均 8 個百分點。有 10 個訊號時,不確定性約為 8 ÷ 3.2 ≈ 2.5 個百分點,所以真實平均可能落在約 +1.5% 到 +6.5% 之間,更差的結果也無法排除。有 30 個訊號時,約為 8 ÷ 5.5 ≈ 1.5 個百分點。有 400 個訊號時,為 8 ÷ 20 = 0.4 個百分點。只有最後這個數字窄到足以稱為實測優勢,而廣度推力的紀錄沒有那麼長。

事件越多,區間越窄:10、30、100 與 400 個事件的示意平均結果,不確定性區間在事件數每增加四倍時減半;10 與 30 個事件的區間跨過零,400 個事件的區間則完全高於零 事件越多,區間越窄 平均結果與其區間 示意 0 N = 10 N = 30 N = 100 N = 400 數十個事件仍可能含零。 因此:事件 4 倍,區間減半。
平均值周圍的區間,隨事件數的平方根縮小。數十個事件留下的區間仍可能包含零。

除了樣本小,還有第二個問題。門檻 0.40、0.615 與十日窗口,是看過歷史資料後選定的。任何一組讓紀錄好看的門檻都可能被留下,所以紀錄有一部分是選擇的結果,而非市場的結果。Bailey、Borwein、López de Prado 與 Zhu(2014)指出,比較過的變體越多,要把最佳者與運氣區分開來所需的歷史就越長;Harvey 與 Liu(2015)建議依背後的檢驗次數對結果打折。罕見事件規則既沒有足夠的歷史,也沒有足夠的事件數,付不起這個折扣。

在 ES 上做動能替代測試,結果如何?

廣度資料與期貨 K 棒是不同的東西,所以本文背後的這次測試,改在 ES 日 K 棒上檢驗一條單純的動量指標 Momentum(MTM)規則,作為廣度推力構想的替代。結果是從試過的 1,024 個候選策略中留下一個,且是事後依報酬相對回撤挑出,這種挑法會讓它的成績顯得更好。替代規則保留了廣度推力的精神,也就是方向的快速改變,但只用價格,所以出現的次數多到足以計數。

這次搜尋在 AlphaPrime(Valynox)中執行,標的是 E-mini S&P 500 日 K 棒,期間為 2019-01-02 至 2025-06-30,多空皆做,一口,進出場只用一條動量指標規則,不設停損、不設停利、不加濾網。1,024 個候選策略的每筆交易,都扣 $20 手續費與 $25 滑價。下表是留下的候選策略,內容照報表所列。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。

數字結果
淨利(已平倉)$91,147.5
最大回撤$45,397.5
交易筆數242
勝率54.13%
獲利因子1.286
平均每筆$376.64
持有部位的時間占比74.52%
請對照權益曲線與其下方的回撤面板,並看最深的回撤落在圖上標示的樣本外區段的哪個位置。
請對照權益曲線與其下方的回撤面板,並看最深的回撤落在圖上標示的樣本外區段的哪個位置。 ES · 日 K 棒 · 2019-01-02 至 2025-06-30 · CPU 引擎回測
請把主要數字與其所依據的交易筆數放在一起讀,並先拿最大回撤與淨損益比較。
請把主要數字與其所依據的交易筆數放在一起讀,並先拿最大回撤與淨損益比較。 ES · 日 K 棒 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

這些數字要讀成它們該有的樣子。242 筆交易,讓替代規則的紀錄比同期間的廣度推力紀錄長約十倍,這正是使用替代規則的目的。勝率 54.13% 與獲利因子 1.286,描述的是一個在 1,024 個候選策略中,以某一項衡量標準看起來最好而被選出的策略;其他候選多半看起來較差,而眾多當中最好的一個,必然帶有選擇加成。最大回撤 $45,397.5 約為淨損益 $91,147.5 的一半,要承受的回撤占了獲利的相當大一塊。這些都不表示這筆錢是動能賺來的,也不表示讀者能期待同樣的結果。它說明的是,同一類的價格型規則,可以用足夠多的交易來判斷,而廣度推力本身做不到。其餘候選策略與留下的這一個,一併依序放在策略資料庫裡,所以能讀到搜尋產生的結果分布,而不只是最頂端的那一個。

你該如何自行檢驗廣度推力規則?

先把門檻與持有期間寫下來,再看結果;數出訊號數,把結果與隨機日期比較;事件少於約 30 個的規則,當作要搭配高頻規則的濾網,而非單獨的策略。順序比任何單一步驟都重要,因為罕見事件的檢驗容易在不知不覺中被扭曲。

  1. 先寫下規則。門檻(0.40 與 0.615,或你自己的)、EMA 長度、股票名單,以及你要衡量的期間(例如 20、60 與 120 個交易日)。看到結果之後再改其中任何一項,檢驗就變成搜尋。
  2. 用廣度資料跑,並數出訊號數。在讀任何一筆結果之前先記下數量。若少於約 30,你已經知道結果只會是提示,而不是量測。
  3. 在固定期間衡量每個訊號之後的結果。用你實際會交易的指數或期貨序列,並計入交易成本。
  4. 與隨機日期的相同期間比較。從同一段歷史抽出多組日期,每組的數量與訊號數相同,衡量相同的期間。若訊號日期沒有明顯勝過隨機組,這份紀錄反映的是市場的一般漂移,而不是訊號。Brock、Lakonishok 與 LeBaron(1992)曾用這類與模擬序列的比較,來評判簡單的交易規則。
  5. 決定角色。少於約 30 個事件:把廣度推力當作允許較高頻規則進場的條件,並以這個組合與它的數百筆交易來檢驗。更多:當作獨立規則,以一般的樣本外切分來檢驗。
事件數決定角色:廣度推力事件少於約 30 個時,這條規則只是濾網,以每日規則的數百筆交易來評分;有 30 個以上事件時,可作為獨立規則,並以樣本外切分檢驗 事件數決定角色 廣度推力的定位 事件數 角色 少於約 30 30 以上 僅作濾網 數百筆交易 獨立規則 樣本外切分 決定的是數量,不是命中率。 因此:先數數量,再讀結果。
先寫規則,再數數量,第三步與隨機日期比較。決定廣度推力是濾網還是策略的,是事件數,不是命中率。

走濾網這條路,上一節的替代測試就派得上用場。日 K 棒上的動量指標或 MACD 規則提供交易;廣度狀態提供條件,例如只在推力出現後的幾個月內做多。組合後的規則有足夠的交易可以評分,評分的方式是比較:加了濾網的每日規則,對照沒加濾網的同一條規則。這個組合送進策略檢驗時,AlphaPrime 依執行前固定好的門檻評分,一旦某項檢查未通過,就停止後面的檢查,避免罕見事件濾網只因剛好通過某一項檢查就被認可。切分本身的方法,見樣本內與樣本外的切分。

第一步的工夫不大。取你所追蹤交易所的每日上漲與下跌家數序列,計算「上漲家數 ÷(上漲家數 + 下跌家數)」的 10 日 EMA,數出它有幾次在十個交易日內從 0.40 以下升到 0.615 以上。在看市場之後的走勢之前,先把這個數字寫下來。這個數字本身會告訴你,上述兩條檢驗路線中哪一條適用。

常見問題

Zweig Breadth Thrust 如何計算?

每個交易日,把上漲檔數除以上漲與下跌檔數的總和。把這個比率用 10 日指數移動平均平滑。當平滑線在十個交易日內(含)從收在 0.40 以下,轉為收在 0.615 以上,即出現訊號。你採用的股票名單與平均的起始值,都會改變訊號次數,所以開始前先固定下來。

最近一次 Zweig Breadth Thrust 訊號是什麼時候?

日期取決於你採用哪個交易所的上漲與下跌家數,以及是計入全部股票還是只計普通股,所以兩個資料來源可能差一兩個訊號。可靠的做法是自己用每日廣度序列算出 10 日 EMA,找出最近一次在十日內從 0.40 以下升到 0.615 以上的穿越。這條規則每十年只出現寥寥數次,所以訊號間隔數年屬正常。

Zweig Breadth Thrust 準確嗎?

已發表的紀錄指出,多數訊號之後的數個月,指數都走高。紀錄只有數十個事件,而平均值的不確定性隨事件數的平方根縮小,所以數十個案例留給任何命中率的範圍仍然相當寬。把高命中率當作對市場行為的提示,並在給它任何權重之前,先把訊號日期與同一段歷史的隨機日期比較。

可以用期貨回測廣度推力嗎?

無法直接用期貨 K 棒,因為這條規則需要每日上漲與下跌股票的家數。你可以從廣度序列算出訊號,再衡量 ES 這類指數期貨在每個訊號日之後的表現,並計入手續費與滑價。本文的測試以價格型的動量指標規則作為替代,因為它產生的交易數足以評判,而推力本身做不到。

應該把廣度推力當作獨立策略來交易嗎?

紀錄中訊號少於約 30 個時,平均結果的不確定性太大,無法據以決定部位大小。較有用的角色是濾網:作為條件,讓動量指標或 MACD 這類每日規則,在訊號後的一段期間內做多。組合後的規則有數百筆交易,所以能以樣本外的方式,與沒有濾網的同一條規則比較評分。

參考文獻

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.
  • Brock, W., Lakonishok, J., & LeBaron, B. (1992). Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. The Journal of Finance, 47(5), 1731–1764.