實驗室

Lab · 族群統計

Sharpe 密度與 (μ, σ, t) 族群散布

用於處理每資產 38k+ 變體之策略族群的分布擬合與視覺化函式庫。

數學原理

對於 N 個變體之池中的每個策略 i,在 T 根 K 棒上以已實現報酬 ri,t 觀測, 計算

在獨立 N(0, σ²) 報酬的虛無假設下,學生化的 Sharpe 統計量 具有自由度為 T − 1 的 Student-t 分布。當 T 適中時,這可由標準常態良好地近似。

族群視圖將 N 個這類 t 統計量聚合為一個直方圖。在全域虛無假設下(任何地方 都沒有真正的邊際優勢),此直方圖即為 N 個 i.i.d. N(0, 1) 變數的經驗分布。任何偏離, 尤其在右尾,即是非空之真非虛無子集在族群層級的特徵。

多重比較膨脹

在「5% 顯著性」門檻 |t| > 1.96 處,自全域虛無假設抽取的 N = 38,000 個策略 之池中,偽陽性的期望計數為

在此池中任何通過 |t| > 1.96 的個別策略幾乎不具資訊。族群層級於 5% 控制的 Bonferroni 校正門檻為 極為保守且可能扼殺所有訊號。正確的做法是透過 knockoffs(M/02) 或 Benjamini–Hochberg 進行 FDR 控制,函式庫會將其與原始分布並列報告。

Sharpe 比率的抽樣分布

對於 Bailey & López de Prado(2014)的緊縮 Sharpe 比率,一個觀測到的 Sharpe 之標準誤 取決於其偏度與峰度:

其中 γ3、γ4 為逐根報酬分布的偏度與峰度。對於 厚尾的加密報酬,這相對於高斯基準可能使 SE 膨脹 30–50%; 函式庫同時報告樸素界與緊縮界。

實作範例

生成 N = 2,000 個策略,每個有 T = 200 根 K 棒。5%(k = 100)攜帶真實邊際優勢,其 (即逐根 Sharpe 為 0.06,於日頻年化 ≈ 0.95)。其餘 1,900 個為純雜訊。

  • 自雜訊池而來之 |t| > 2 的期望數目:1900 · (1 − Φ(2)) · 2 ≈ 87 個偽發現。
  • 自 alpha 池而來之 |t| > 2 的期望數目:100 · P(ti > 2 − √200·0.06) ≈ 100 · P(Z > 1.15) ≈ 12.5。所以大約 12 個真發現。
  • 因此在 |t| > 2 截斷處已實現的 FDP 落在 87 / (87 + 12) ≈ 88% 附近。那便是你 必須以任何選擇規則去擊敗的基準。

下方的示範即時重新生成此情境。將 alpha 比例往上掃,看 Sharpe 密度的右尾 增長;(μ, σ) 散布透過 |t| > 2 將 alpha 為正的點著色為橘色。

Demo: Sharpe density & (μ, σ, t) scatter

2000 strategies, T=200 bars each. Most are pure noise; 100 carry a small true edge.

N strategies2000
T bars200
α fraction (true edge)0.05
seed=3
planted α
119
|t|>2 selected
104
true discoveries
18
false discoveries
86
Sharpe density (orange = α-stratum)
-0.28-0.18-0.090.000.090.180.28Sharpe = mean / std
(μ, σ) scatter · orange = |t| > 2
-0.47-0.31-0.16-0.000.160.310.470.000.571.141.712.28per-bar mean μ

圖表

Fig. 1:橫跨整個 30 資產語料庫之 130k+ 策略-視窗觀測(未擾動基準、n_trades ≥ 10)的樣本外 Sharpe 比率族群核密度。經驗密度明顯比 N(0,1) 更寬,厚尾,並帶有能在任何誠實的多重性校正下存活的非平凡右尾質量。
Fig. 2:語料庫中每個樣本外策略的 (μ, σ) 散布,依勝率四分位數著色。虛線琥珀色曲線標出中位數交易數下的 |t| = 2 邊界。勝率頂部四分位數的策略(綠色)集中於 |t| = 2 線之上,此族群層級特徵顯示排序度量正在發現真實的跨策略結構,而非重新描繪雜訊。

為何這對系統化策略很重要

我們所處理規模的策略族群(每資產 38k+ 變體)若沒有函式庫加以摘要, 基本上難以處理。函式庫給每個下游模型相同的輸入: 一個帶有 μ、σ、Sharpe、t、p 值與逐根報酬動差的逐策略摘要張量。M/01(RMT) 消費報酬的相關結構;M/02(HC + knockoffs)消費 t 統計量; M/03(TDA)消費與 M/01 相同的相關但抽取拓撲不變量;M/04(EVT) 直接消費逐根報酬。視覺化常式是族群 與人類型態比對之間的橋樑:(μ, σ) 散布正是你首次看出你過濾後的子集是否 與主體位於不同星球,抑或只是同一星球上運氣稍好的一隅。

可重現性

DaruFinance / strategy-stats

Python · 開源參考實作

最小調用

from strategy_stats import population_summary, sharpe_kde, mu_sigma_scatter

# returns: N x T strategy returns matrix
summary = population_summary(returns, periods_per_year=252)
print(summary.head())   # mu, sigma, sharpe, t, p_value

ax = sharpe_kde(summary['sharpe'])
ax = mu_sigma_scatter(summary, color_by='t')

參考文獻

  1. [1]Bailey, D. H. & López de Prado, M. (2014). The deflated Sharpe ratio: correcting for selection bias, backtest overfitting, and non-normality. Journal of Portfolio Management 40(5), 94–107.
  2. [2]Lo, A. W. (2002). The statistics of Sharpe ratios. Financial Analysts Journal 58(4), 36–52.
  3. [3]Harvey, C. R., Liu, Y. & Zhu, H. (2016). … and the cross-section of expected returns. Review of Financial Studies 29(1), 5–68.