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

熵指標交易:衡量市場隨機性與 ES 實測

熵指標衡量近期 K 棒報酬在各個大小區間的分布有多平均。它回報的是近期走勢有多無序,不是價格接下來往哪走,所以適合放在方向規則前面當濾網;誠實的檢驗,是在同樣成本下比較同一條規則有無這個濾網。

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

目錄
  1. 熵指標能衡量價格波動有多隨機嗎?
  2. 熵指標怎麼計算?
  3. 低熵對市場代表什麼,高熵又代表什麼?
  4. 熵指標該用多長的窗口、幾個區間?
  5. 熵指標能當交易濾網用嗎?
  6. ES 對熵規則的實測顯示什麼,限制在哪裡?
  7. 常見問題
  8. 參考文獻

熵指標能衡量價格波動有多隨機嗎?

熵指標交易中,指標衡量的是近期 K 棒報酬在各個大小區間的分布有多平均:讀數低,代表多數漲跌幅相近;讀數高,代表漲跌幅散亂。它說明近期走勢有多無序,不說明價格接下來往哪走,所以是待檢驗的濾網,不是可以直接依賴的訊號。

想像一罐彈珠。若幾乎每顆都是紅色,這罐井然有序,下一顆抽到什麼顏色容易猜;若八種顏色各占相同數量,這罐顏色混雜,猜測近乎隨機。夏農熵(Shannon entropy)是一個數字,說明一組結果在各個可能類別中分布得有多平均:全部落在同一類別時為零,每個類別占比相同時達到最大值。套用到市場,結果就是最近 N 根 K 棒的報酬,類別就是大小區間,讀數描述的是近期報酬有多混雜。

罐子無法告訴你,罐內混雜時下一顆是紅是藍;同樣,報酬的熵也無法告訴你下一根 K 棒是漲是跌。穩定的上升趨勢與穩定的下降趨勢,會得到同樣偏低的讀數。這是本文從頭到尾堅持的唯一主張:熵指標是衡量隨機程度的指標,可以替方向規則把關,單獨使用則無從判斷方向。技術分析工具與指標依指標衡量的內容分類,熵屬於描述市場狀態、而非預測下一步走勢的那一類。

兩張直方圖,把 24 筆報酬分入八個大小區間:左圖多數報酬集中在兩個區間,熵偏低,為 0.51;右圖報酬平均分散,熵偏高,為 1.00;兩種情況下,下一步的方向都未知 看分布,不看方向 示意圖:24 筆報酬、8 個區間 低熵 0.51 高熵 1.00 方向:? 方向:? 熵只說有多混雜,不說往哪走。 因此:搭配方向規則。
報酬筆數相同,分布卻差異極大。熵讀的是分布;兩種情況下,方向都未知。

熵指標怎麼計算?

報酬的夏農熵分四步建立,只有最後一步用到對數。區間是一個大小區間,收集落在兩個邊界之間的所有報酬,例如介於正 0.2% 與正 0.4% 之間的所有報酬。報酬依區間計數之後,其餘只是算術,用試算表就能完成。

  1. 取最近 N 根 K 棒的報酬。一根 K 棒的報酬,是收盤價除以前一個收盤價再減一。N 是窗口長度,後面的章節會說明。
  2. 分入 K 個區間。區間邊界可以用窗口範圍內的固定寬度,也可以用近期標準差的倍數,讓邊界隨波動率變化而調整。無論選哪一種,整個檢驗期間都要維持不變。
  3. 把計數換成機率。每個區間的計數除以 N,得到的結果是近期報酬落入該區間的占比,記為 p。
  4. 把機率乘以機率的對數後加總,再把正負號反轉。空區間略過,因為零的對數無定義。要把結果放到 0 到 1 的尺度,就除以區間數 K 的對數,那是完全平均分布所能達到的值。

本文唯一的公式:熵 = −Σ p × log(p)。其中 p 是近期報酬落在某一區間的占比,log(p) 是該占比的對數(只要除以 K 的對數縮放,任何底數都可以),Σ 的意思是「把每個至少含一筆報酬的區間加總」,負號把負的總和轉成正數。縮放之後,讀數接近 1,代表報酬幾乎平均分散;讀數接近 0,代表幾乎全部落在同一區間。

假設性範例

取 20 筆日報酬的窗口,分成 4 個區間。假設各區間的計數為 10、8、1、1。占比分別是 0.5、0.4、0.05、0.05。以 2 為底的對數:0.5 × 1 = 0.5;0.4 × 1.32 ≈ 0.53;每個 0.05 × 4.32 ≈ 0.22,兩個合計 0.43。總和約 1.46 位元。若完全平均,也就是 5、5、5、5,會得到 2 位元,所以縮放後的熵約為 1.46 ÷ 2 ≈ 0.73。若計數是 18、2、0、0,縮放後的讀數會降到約 0.24:多數報酬集中在一個區間,窗口的秩序性高出許多。

從一段報酬窗口到一個數字的四個步驟:取最近 N 筆報酬,分入 K 個區間,把計數換成占比 p,再加總 −p × log p 並縮放;全部落在一個區間得 0,所有區間均等得 1 從報酬到一個數字 熵 = −Σp × log p,縮放至 0–1 報酬 區間 占比 p 熵 0:一個區間 1:全部均等 區間與窗口決定結果。 因此:測試前先固定。
從一段報酬窗口得到介於 0 與 1 之間的一個數字。區間與窗口長度,是會改變結果的兩項選擇。

低熵對市場代表什麼,高熵又代表什麼?

低熵代表近期報酬集中在少數幾個區間,穩定趨勢與極為安靜的盤整都會如此;高熵代表報酬分散在許多區間,是震盪劇烈、受消息驅動時段的特徵。讀數只區分有序與無序,沒有其他意義。兩個有序的市場,方向與波動率可能不同,熵線無法區分。

市場狀態報酬落點熵的讀數它無法告訴你的事
穩定趨勢多半落在零軸同一側的一兩個區間低趨勢向上還是向下
安靜的窄幅盤整多半落在最靠近零的區間低這是盤整而不是趨勢
劇烈震盪分散在零軸兩側的許多區間高震盪是否即將結束
安靜窗口中的單一消息衝擊一個遠離零的區間,加上靠近零的區間小幅上升是否還有更多衝擊接續

實務上的結論是,熵要與其他工具搭配,而不是取代它們。以波動率或趨勢強度為依據的市場狀態濾網,可以把兩種低熵狀態分開;三種狀態與衡量方式,整理在市場狀態偵測。熵線若連續數週維持低檔,就像釘在一端的震盪指標,高檔鈍化:KD 或 RSI 卡在超買區的意思中的推論同樣適用:讀數不動,回報的是持續的狀態,不是訊號。熵與希爾伯特振盪器(循環指標)也有共同點:兩者都描述近期 K 棒的某項特性(一個是報酬的分布,另一個是主導循環),也都需要另一條規則來決定做多或做空。

三條示意價格路徑與各自的熵讀數:穩定趨勢讀數低,安靜的窄幅盤整讀數也低,劇烈震盪讀數高,所以光看讀數無法區分趨勢與盤整 低熵,兩種市場 示意圖:價格路徑與讀數 趨勢 盤整 震盪 低 低 高 兩個低讀數,圖形卻不同。 因此:加波動率或趨勢規則。
三張圖中有兩張讀數偏低,在價格圖上卻看起來完全不同,所以熵需要搭配另一條規則。

熵指標該用多長的窗口、幾個區間?

窗口決定讀數反應多快,區間數決定讀數多細,兩者都要依 K 棒週期與預計的持倉長短來選。沒有通用的設定。5 分鐘 K 棒的 20 根窗口,描述的是最近一小時四十分鐘;同樣的窗口用在日 K,描述的是一個月。能把日內震盪與日內有序分開的設定,在日內交易最佳指標中有範例說明,同樣的邏輯可以轉用到熵。

設定較小的值較大的值經驗法則
窗口長度 N反應快,常穿越門檻,雜訊多反應慢,穿越次數少,會錯過短期的市場狀態約為你典型持倉時間(以 K 棒數計)的一到三倍
區間數 K粗:分布的小幅變化看不出來細:許多區間只有一筆或零筆報酬,讀數跳動N 至少取 K 的五到十倍,區間才填得滿
區間邊界固定寬度:簡單,但波動率變化會把所有報酬推到外側或內側區間依波動率縮放:邊界隨市場移動,讀數比較的是同類條件檢驗前先選定一種方法並維持不變

N 與 K 的關係,比兩個數值各自更重要。二十筆報酬分入八個區間,平均每個區間二點五筆,所以只要有一筆報酬換區間,讀數就大幅移動。二十筆報酬分入四個區間(如前面的範例),平均每個區間五筆,線條較為平穩。要確認這個選擇不是雜訊,做法與任何參數相同:跑相鄰的設定,找出平坦的區域。若 30 根窗口配 5 個區間濾得好,25 根與 35 根卻不行,這個設定描述的是歷史,不是市場。Pardo(2008)把這種鄰近檢查,視為信任任何最佳化數值之前的標準步驟,而且只要多跑幾次就能完成。

一條示意價格路徑,同一批 K 棒上的兩條熵線:20 根窗口在 0.5 與 1.0 之間擺盪,穿越 0.75 門檻 16 次;100 根窗口在 0.7 與 0.9 之間緩慢移動,穿越兩次 短窗口,頻繁切換 示意圖:同一批 K 棒,門檻 0.75 價格 20根 100根 16 次 2 次 短窗口讓濾網頻繁翻轉。 因此:窗口配合你的交易。
同樣的 K 棒、同樣的區間,兩種窗口。短窗口讓濾網頻繁切換,長窗口則少有切換;哪個合適,取決於你的交易持續多久。

熵指標能當交易濾網用嗎?

低熵可以替趨勢或突破規則的進場把關。誠實的檢驗,是在同樣成本下,用同一條規則跑有濾網與無濾網兩次,以扣除成本後平均每筆損益的變化來評斷,而不是看勝率的變化。濾網是訊號要被採用時必須成立的條件,本身從不單獨開倉。低熵濾網背後的想法簡單:從有序區間發出的突破,比從震盪中發出的突破更可能是真正的轉變,所以近期報酬散亂時,規則就不出手。

  1. 先固定方向規則。例如通道突破:收盤價高於最近 20 根 K 棒的最高價時買進,出現對稱條件時放空,出現反向訊號時出場。手續費、滑價與下一根 K 棒成交只設定一次;回測裡的交易成本說明如何估算。
  2. 跑路徑 A:每個訊號都採用。記錄交易筆數、扣除成本後平均每筆損益、獲利因子與最大回撤。
  3. 跑路徑 B:只有熵讀數低於門檻時才採用訊號。其餘全部相同。記錄同樣四個數字。
  4. 比較。有用的濾網會剔除平均而言虧損的交易,所以扣除成本後平均每筆損益的升幅,大於交易筆數的降幅。若濾網把交易筆數砍半,平均每筆損益卻原地不動,代表贏單與輸單一起被剔除,沒有任何加分。
  5. 用兩到三個門檻與窗口重複一次。改善應該在相鄰設定中持續出現,而不是只出現在單一數值。

勝率是錯誤的衡量標準,因為濾網若剔除少數大額獲利單,可能提高勝率卻拉低結果。交易筆數是第二個要看的數字:十年只剩 25 筆交易的濾網,不管平均值是多少,結果都太薄,無法解讀。在 AlphaPrime(Valynox)中,兩個版本的規則都能以同樣的推進分析步驟走過策略檢驗,濾過的版本必須在搜尋沒有調校過的窗口上顯現增益,才會保留。

同一條突破規則的兩種跑法:路徑 A 採用每個訊號,路徑 B 只在熵偏低時採用訊號;兩者匯入同一個比較,比較扣除成本後平均每筆損益、交易筆數與最大回撤 同一規則,只改一處 B 只在熵偏低時交易 A 所有訊號 B 低熵 平均每筆損益 交易筆數 最大回撤 以扣除成本後的平均每筆損益評斷。 因此:只改一處,檢查三項。
濾網的好壞,由兩次跑法的差異評斷,兩次的其他設定完全相同。只改一處,量三個數字。

ES 對熵規則的實測顯示什麼,限制在哪裡?

AlphaPrime 在 ES 日 K 上搜尋,嘗試的 1,024 個候選中只保留一個純熵規則;它的 44 筆交易、93.41% 的持倉時間,以及事後挑選,都說明這個數字高估了這個想法。ES 是 E-mini S&P 500 期貨合約。這次執行把指標當作唯一的進場與出場規則,多空皆做,沒有停損、停利或濾網,使用 2019-01-02 至 2025-06-30 的日 K,每筆收取 $20 手續費與 $25 滑價。保留的候選,是搜尋從 1,024 個中依報酬相對回撤選出的那一個;其餘候選全數捨棄。

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

數字結果
淨利(已平倉)$128,582.5
最大回撤$55,412.5
交易筆數44
勝率70.45%
獲利因子1.992
平均每筆$2,922.33
在市場中的時間93.41%

這次執行測的是本文主題的替身:指標單獨擔任進場與出場,而不是像前一節所述,放在方向規則前面當濾網。帶著這點來讀,有四件事值得注意。

  • 六年半只有 44 筆交易,太少,無法解讀每筆平均。平均每筆損益 $2,922.33,只要有三、四筆交易不同,就可能大幅變動。評斷一條規則,要看數百筆交易,做法見樣本內與樣本外的切分與樣本外交易筆數。
  • 93.41% 的持倉時間,代表規則幾乎一直持有部位。沒有停損也沒有濾網,結果接近在大部分期間上漲的市場裡,一口多單或空單一次抱上數月所能賺到的。熵的讀數少有切換方向,這是窗口的特性,不是擇時優勢的證據。
  • $55,412.5 的最大回撤,是淨損益的 43%。對單口合約而言,相對於賺到的錢,這個回撤相當深;而 44 筆交易期間的回撤,對下一次回撤幾乎說明不了什麼。
  • 事後挑出保留的候選,會高估它。1,024 個候選中只因報酬相對回撤而保留一個。Bailey、Borwein、López de Prado 與 Zhu(2014)指出,大規模搜尋的最佳結果帶有選擇加成,加成隨候選數增加而變大;Harvey 與 Liu(2015)主張,結果應依背後的檢定次數打折。這張表中沒有任何東西說明指標賺到了那筆錢,也沒有任何東西說明讀者可以期待這樣的結果。
注意有多少漲幅來自少數幾段單向持有的長時間區段,以及回撤相對於之前的漲幅有多深、持續多久。
注意有多少漲幅來自少數幾段單向持有的長時間區段,以及回撤相對於之前的漲幅有多深、持續多久。 ES · 日 K · 2019-01-02 至 2025-06-30 · CPU 引擎回測

這次執行真正顯示的,是下一次檢驗該有的樣子。指標前面需要方向規則;窗口與區間數要在相鄰數值上都站得住;交易筆數要有數百筆;還要有一段搜尋從未碰過的樣本外區間。拿你已在交易或檢驗的突破規則,用自己的 K 棒,以三種窗口長度各跑有與無低熵濾網,在檢視任何權益曲線之前,先寫下六次的扣除成本後平均每筆損益。

常見問題

交易中的夏農熵是什麼?

夏農熵是一個數字,說明一組結果在各類別中分布得有多平均。交易中,結果是最近 N 根 K 棒的報酬,類別是大小區間。縮放後讀數接近 1,代表近期報酬在各區間平均分散;讀數接近 0,代表幾乎全部落入同一區間。它描述近期走勢有多混雜,不描述方向。

市場熵偏低代表什麼?

低熵代表近期報酬集中在少數幾個區間。穩定趨勢中會如此,因為多數報酬大小相近、落在零軸同一側;極為安靜的盤整中也會如此,因為多數報酬靠近零。光看讀數無法區分這兩種狀態,也無法說明趨勢向上或向下。需要搭配波動率或趨勢強度的衡量。

熵指標該用多長的窗口?

依 K 棒週期與典型持倉時間來選窗口,大約是持倉時間(以 K 棒數計)的一到三倍。窗口至少取區間數的五到十倍,讓每個區間能容納數筆報酬,否則一筆報酬換區間,讀數就會跳動。接著跑相鄰的窗口長度,只有它們表現相近,才保留這個設定。

熵指標可以單獨拿來交易嗎?

可以開倉與平倉,但關於報酬分布的讀數不含方向資訊,所以純熵規則多半是在猜該持哪一邊。本文的 ES 日 K 執行單獨使用指標,44 筆交易中有 93.41% 的時間在市場內;這個結果是 1,024 個候選中保留的一個,對指標本身說明不了多少。以熵作為濾網、前面搭配方向規則,才是值得檢驗的設計。

參考文獻

  • 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.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.