Foliolytic 方法論

最後更新:

Foliolytic 計算的每個指標、其計算方式、所使用的數據、實作處理的邊緣情況,以及 Foliolytic 與一般線上計算器有何不同。絕無黑箱作業。

快速解答

Foliolytic 最重要的方法論選擇是什麼?

Foliolytic 使用 FRED 提供的實際每日美國 3 個月期國庫券收益率 作為無風險利率,並與您的投資組合歷史上的每個日曆日進行匹配。大多數線上計算器使用固定的 2% 或 3% 假設,這在國庫券收益率為 5% 的環境中,可能會使 Sharpe 和 Sortino 比率改變 0.3–0.5,與固定利率計算器相比,這是一個顯著的差異。結合每日解析度的回撤重建(而非月末快照)和帶有二分法回退的 Newton-Raphson XIRR,這使得 Foliolytic 的數據與機構資產管理方法論保持一致。

真實國庫券收益率 · 每日粒度 · Newton-Raphson XIRR
涵蓋的指標
  1. Sharpe 比率
  2. Sortino 比率
  3. XIRR (資金加權報酬率)
  4. TWR (時間加權報酬率)
  5. Beta
  6. Alpha (Jensen's)
  7. R平方
  8. 最大回撤
  9. 風險值 (VaR)
  10. CVaR (預期損失)
  11. Calmar 比率
  12. Treynor 比率
  13. 資訊比率
  14. 捕捉比率 (上漲/下跌)
  15. 追蹤誤差
  16. 機率 Sharpe 比率 (PSR)
  17. Hurst 指數
  18. 潰瘍指數
  19. 打擊率
  20. Burke 比率
  21. Martin 比率
  22. Sterling 比率
  23. Modigliani M²

Sharpe 比率

公式

Sharpe = (R̄_p - R_f) · √252 / (σ(r_d) · √252)
where r_d = daily log returns and R̄_p, σ are computed on those daily log returns.

輸入

從您的交易重建的每日投資組合價值系列。來自 FRED 的每日 3 個月期美國國庫券收益率,與每個日曆日匹配。僅股票投資組合每年 252 個交易日;僅加密貨幣投資組合每年 365 天;混合投資組合則根據資產適當混合。

邊緣情況與數值處理

如果投資組合歷史短於 30 天,Sharpe 比率將被抑制(樣本量太小,無法進行有意義的推斷)。如果 σ < 1e-9(實際上是平坦的投資組合),Sharpe 比率將報告為 null 而非無限大。

與常見計算器的差異

大多數線上計算器使用固定的 2% 或 3% 無風險利率。Foliolytic 使用實際每日國庫券收益率。在高利率環境下(2023–2025),這會使 Sharpe 比率與固定利率計算器相比改變 0.3–0.5。

Sortino 比率

公式

Sortino = (R̄_p - R_f) · √252 / DD
where DD = √( (1/n) · Σ min(r_d - r_f_d, 0)² ) · √252

輸入

與 Sharpe 比率相同的每日投資組合系列和每日無風險利率。用於「下行」的閾值是每日無風險利率,而非零。

邊緣情況與數值處理

下行偏差僅使用 r_d < r_f_d 的日子計算。r_d ≥ r_f_d 的日子對總和的貢獻為零,但會計入 n。這符合 Sortino 在 1980 年代的原始規範。

與常見計算器的差異

一些計算器使用零作為下行閾值,這在數學上很方便,但在理論上是不正確的。Sortino 的原始論文指定了最低可接受報酬率 (MAR),最自然地解釋為無風險利率。

XIRR (資金加權報酬率)

公式

0 = Σᵢ CFᵢ / (1 + XIRR)^( (dᵢ - d₀) / 365 )
solved via Newton-Raphson with bisection fallback.

輸入

帶有日期現金流的完整交易歷史。包括投入(負)、提款(正)、最近日期的期末投資組合價值(正),以及作為單獨資金流收到的任何現金股息。

邊緣情況與數值處理

Newton-Raphson 迭代的初始猜測值為 0.10。如果導數趨近於零或迭代發散,演算法將回退到在 [-0.99, +5.0] 上的二分法。收斂容差:1e-10。低於 $0.01 的現金流將被忽略。結果每年被限制在 [-0.99, +5.0] 之間 — 超出此範圍的值幾乎總是表示數據錯誤(貨幣混淆、小數點位移、加密貨幣報告故障)。

與常見計算器的差異

Excel 的 XIRR 使用相同的 Newton-Raphson 方法,但不進行數值限制,因此對於混亂的加密貨幣數據會返回荒謬的值(數十億百分比)。Foliolytic 的限制可防止這些值污染儀表板。

TWR (時間加權報酬率)

公式

TWR = Π_i (1 + R_i) - 1
where R_i is the return of period i computed between cash flow events.

輸入

每日投資組合價值,所有外部現金流的日期。兩個連續現金流之間的期間是一個報酬率窗口。

邊緣情況與數值處理

子期間報酬率以幾何方式鏈接,以消除投入和提款的時間效應。沒有現金流的日子產生單日報酬期間。現金流之間的多日期間則進行複合。

與常見計算器的差異

TWR 是評估資產層面績效的標準(基金經理報告的內容)。資金加權報酬率 (XIRR) 是評估投資者實際體驗的標準。Foliolytic 計算兩者 — 它們通常會相差幾個百分點。

Beta

公式

β = Cov(r_p, r_m) / Var(r_m)
computed via OLS regression of daily portfolio returns r_p on daily benchmark returns r_m, using excess-of-risk-free-rate returns.

輸入

每日投資組合報酬率。每日基準報酬率(預設為 S&P 500;可配置為 QQQ、VT 或任何自訂基準)。每日 3 個月期國庫券收益率以計算超額報酬。

邊緣情況與數值處理

投資組合與基準之間至少有 30 天的重疊。任一數據缺失的日子將被捨棄。異常值(>5σ)會被標記但不移除 — Beta 是一個穩健的統計量,移除異常值往往會使其向上偏差。

與常見計算器的差異

一些計算器在原始報酬率(而非超額報酬率)上運行 Beta,這僅在無風險利率恆定時才在數學上等效。對於隨時間變化的國庫券利率,對超額報酬率進行迴歸更為正確。

Alpha (Jensen's)

公式

α = R̄_p - [R_f + β · (R̄_m - R_f)]
where all quantities are annualized.

輸入

與 Beta 相同,加上迴歸截距(OLS 常數項)。

邊緣情況與數值處理

Alpha 以年化百分點報告。統計顯著性 (t-stat) 同時計算 — 沒有 t-stat > 1.5 的 Alpha 值應被視為雜訊,而非技能。

與常見計算器的差異

許多試算表的 Alpha 是作為未經縮放迴歸的純截距計算的,缺少年化步驟。Foliolytic 始終報告年化 Alpha,因此該數字可以直接解釋為「相對於基準等效風險暴露的每年額外報酬」。

R平方

公式

R² = 1 - SS_residual / SS_total
where SS_residual = Σ(r_p - r_p_predicted)² and SS_total = Σ(r_p - r̄_p)²

輸入

與 Beta 相同的迴歸。R² 是該擬合的決定係數。

邊緣情況與數值處理

如果針對所選基準的 R² < 0.05,則投資組合的 Beta 和 Alpha 估計值將被標記為統計上無意義 — 沒有線性關係可供解釋。

與常見計算器的差異

Foliolytic 將高 R² (≥ 0.95 且主動份額低) 視為「隱藏式指數化」訊號 — 有關徽章定義,請參閱 CLAUDE.md 中的「近期主要更新」。

最大回撤

公式

MaxDD = min over t of [V_t / max(V_s : s ≤ t) - 1]

輸入

整個歷史期間的每日投資組合價值系列。重建使用逐筆交易估值,而非期末快照。

邊緣情況與數值處理

股票和加密貨幣均使用每日粒度。盤中高點/低點未被捕捉 — Foliolytic 的最大回撤是每日解析度的。恢復時間(從高點到下一個等於或高於高點的日子的天數)同時報告。

與常見計算器的差異

許多追蹤器從每月 NAV 計算回撤,這平均低估了真實的峰谷回撤 20–30%。每日重建捕捉了更多的路徑。

風險值 (VaR)

公式

Historical: VaR_α = quantile(r_d, 1 - α)
Parametric (Gaussian): VaR_α = μ - z_α · σ
Monte Carlo: simulate from fitted distribution and take 1-α quantile.

輸入

完整的每日報酬歷史。信賴水準 α(預設:95% 和 99%)。對於參數 VaR,還需要樣本均值和標準差。對於 Monte Carlo,擬合一個分佈(預設為高斯分佈;對於厚尾資產則為 t 分佈)。

邊緣情況與數值處理

歷史 VaR 需要至少 60 天的報酬率(統計最小值);強烈建議 250 天以上。參數 VaR 對於非高斯報酬分佈可能不可靠。Foliolytic 並排報告這三種,以便差距(或沒有差距)可見。

與常見計算器的差異

大多數計算器只報告參數 VaR。Foliolytic 顯示歷史、參數和 Monte Carlo VaR。對於厚尾資產(加密貨幣、槓桿股票、單一股票),參數 VaR 可能會低估真實損失潛力 50% 以上。

CVaR (預期損失)

公式

CVaR_α = E[Loss | Loss ≥ VaR_α]
empirically: mean of returns worse than VaR_α threshold.

輸入

與歷史 VaR 相同。CVaR 僅使用損失超過 VaR 閾值的日子。

邊緣情況與數值處理

條件是尾部非空:需要至少 5 個觀察值超出 VaR 閾值才能進行有意義的估計。對於 250 天的歷史數據,在 95% VaR 下,這提供了 12–13 個尾部觀察值 — 臨界值。

與常見計算器的差異

許多來源只報告 VaR。CVaR(也稱為預期損失)不僅告訴您閾值,還告訴您超出閾值的平均嚴重程度 — 對於資本規劃更有用。巴塞爾協議 III 現在因此原因強制要求使用 CVaR 而非 VaR。

Calmar 比率

公式

Calmar = R_annual / |MaxDD|

輸入

年化報酬率(整個歷史期間的 CAGR)。整個歷史期間的最大回撤。

邊緣情況與數值處理

要求兩個輸入都非平凡。如果 MaxDD < 1%(基本上沒有回撤),Calmar 將報告為「不適用」而非無限大。如果 R_annual ≤ 0,Calmar 仍然可以計算,但會附帶明確的上下文報告(僅當報酬率也為正時,低回撤帶來的高 Calmar 才令人印象深刻)。

與常見計算器的差異

一些實作使用 36 個月滾動 Calmar 而非全期間。Foliolytic 預設計算全期間 Calmar;滾動 Calmar 在進階指標選項卡中可用。

Treynor 比率

公式

Treynor = (R̄_p - R_f) / β

輸入

期間的年化超額報酬。與 Beta 指標使用的相同迴歸計算出的 Beta。

邊緣情況與數值處理

如果 β 接近零或為負,Treynor 將變得無意義或反直覺。Foliolytic 將 |β| < 0.2 的投資組合標記為「低 Beta」,並顯示帶有警告指示的 Treynor 比率。

與常見計算器的差異

Treynor 比率對於已分散掉特殊風險的多元化投資組合最有用。對於單一股票或集中投資組合,Sharpe 比率是更合適的指標 — Treynor 比率會高估風險調整報酬,因為公司特定風險未被 Beta 捕捉。

資訊比率

公式

IR = (R̄_p - R̄_b) / σ(r_p - r_b)
where the denominator is the tracking error.

輸入

每日投資組合報酬率和每日基準報酬率。兩者均透過 √252 年化。

邊緣情況與數值處理

需要至少 60 天的配對數據。如果追蹤誤差 < 0.5%(基本上是指數化),IR 將被抑制,因為分子除以接近零的分母會產生不穩定的估計。

與常見計算器的差異

一些實作使用月度報酬率(官方 GIPS 標準)。Foliolytic 使用每日報酬率以獲得更高的解析度;每日與月度之間的 IR 差異很小(通常在 5% 以內)。

捕捉比率 (上漲/下跌)

公式

Up-Capture = R̄_p_up / R̄_b_up
(over months where R_b > 0)
Down-Capture = R̄_p_down / R̄_b_down
(over months where R_b < 0)

輸入

月度投資組合和基準報酬率。以月度粒度計算,以符合標準報告慣例。

邊緣情況與數值處理

每個制度(上漲/下跌)至少需要 12 個月才能進行有意義的估計。基準報酬率恰好為零的月份將被捨棄。捕捉比率以百分比報告。

與常見計算器的差異

Foliolytic 還報告捕捉比率品質(上漲捕捉 - 下跌捕捉的差值)— 理想的狀況是高上漲捕捉,低下跌捕捉。

追蹤誤差

公式

TE = σ(r_p - r_b) · √252

輸入

每日投資組合和基準報酬率。差異系列每日計算;TE 是年化標準差。

邊緣情況與數值處理

與 IR 相同的最小數據要求(≥ 60 天)。對於非常緊密指數化的投資組合(TE < 0.5%),該指標會被報告但會被標記,因為如此低的追蹤誤差通常意味著隱藏式指數化。

與常見計算器的差異

一些計算器使用事前(前瞻性,基於因子)追蹤誤差,而非事後(歷史)。Foliolytic 始終使用事後追蹤誤差 — 實際實現的與基準的偏差。

機率 Sharpe 比率 (PSR)

公式

PSR(SR*) = Φ( (SR_obs - SR*) · √(n-1) / √(1 - γ_3·SR_obs + ((γ_4-1)/4)·SR_obs²) )
where γ_3 is sample skew and γ_4 is sample kurtosis.

輸入

觀察到的 Sharpe 比率、樣本量 n、樣本偏度、樣本峰度。基準 SR*(預設為 0)。

邊緣情況與數值處理

PSR 的分位數是從滾動 5 年 SPY 總報酬窗口(1928–2025 年的 1101 個窗口)引導而來的,因此分數反映了樣本量感知的參考分佈。PSR 公式在分子中有 √(n-1),因此參考分佈必須使用與用戶歷史長度匹配的窗口 — 請參閱 CLAUDE.md 中 2026 年 4 月指標 v6 修正。

與常見計算器的差異

大多數線上計算器根本不報告 PSR。少數報告的計算器通常使用固定的參考分佈,不考慮樣本量,導致具有實際 5 年歷史的用戶投資組合即使在 BLP 可信度閾值下也得分「差」。

Hurst 指數

公式

log(R/S)_n = H · log(n) + c
fit via OLS on log-window-size axis.

輸入

每日報酬系列。窗口大小通常從 10 到 T/2 以對數方式變化。

邊緣情況與數值處理

方向被視為「中性」而非「越高越好」— H = 0.5(隨機漫步)是概念上的中點,任何方向的偏差都具有資訊價值。分位數從滾動 5 年 SPY 窗口引導而來,與 PSR 相同。

與常見計算器的差異

Foliolytic 使用重定標範圍 (R/S) 方法。去趨勢波動分析 (DFA) 可作為進階選項卡中的替代方法;對於大多數用戶持有的股票報酬,兩者通常會產生非常相似的結果。

潰瘍指數

公式

UI = √( (1/n) · Σ DD_i² ) · 100

輸入

每日回撤系列(偏離運行最大值的百分比)。

邊緣情況與數值處理

以百分比報告。與所有基於回撤的指標一樣,對底層價值系列的解析度敏感 — 每日重建至關重要。

與常見計算器的差異

一些實作將 UI 報告為分數;Foliolytic 使用 Peter Martin 的原始慣例,即百分比 * 100,以便與已發布的研究直接比較。

打擊率

公式

BA = (months where r_p > r_b) / (total months)

輸入

月度投資組合和基準報酬率。

邊緣情況與數值處理

r_p == r_b 的月份將一分為二。至少 12 個月才能進行有意義的估計。

與常見計算器的差異

Foliolytic 還報告一個配對指標,即對零打擊率(r_p > 0 的月份 / 總月份),這對於絕對報酬策略很有用。

Burke 比率

公式

Burke = (R_annual - R_f) / √(Σ DD_i²)

輸入

年化報酬率、無風險利率、期間內所有回撤值。

邊緣情況與數值處理

類似於 Calmar,但懲罰平方回撤的總和,而非僅僅是最大回撤。對單一黑天鵝回撤的敏感度低於 Calmar。

與常見計算器的差異

Foliolytic 的 Burke 基線在 v6.5(2026 年 4 月)中重新校準為 FF_100Y_BUFFETT_ANCHORED — 有關校準故事,請參閱 CLAUDE.md。

Martin 比率

公式

Martin = (R_annual - R_f) / UI

輸入

年化超額報酬、潰瘍指數。

邊緣情況與數值處理

Calmar 和 Burke 的直接近親;使用潰瘍指數作為路徑風險分母。

與常見計算器的差異

大多數計算器不計算 Martin 比率。Foliolytic 包含它,因為基於潰瘍的指標與主觀投資者痛苦高度相關。

Sterling 比率

公式

Sterling = R_annual / (mean of N worst drawdowns - 10%)
N = 3, period = 36 months by default.

輸入

年化報酬率。回溯窗口內所有已完成回撤的列表,按深度排名。

邊緣情況與數值處理

-10% 的調整是 Sterling 原始公式中的固定偏移量。如果已完成的回撤少於 N 個,則該指標將被抑制。

與常見計算器的差異

Sterling 比率比 Calmar 對一系列中等回撤更敏感。Foliolytic 的基線 (FF_100Y_BUFFETT_ANCHORED) 在 v6.5 中重新校準。

Modigliani M²

公式

M² = Sharpe · σ_market + R_f

輸入

投資組合 Sharpe 比率、基準的年化標準差、年化無風險利率。

邊緣情況與數值處理

M² ≡ Sharpe 重新縮放至基準波動率。每當 Sharpe 區間改變時,M² 區間必須完全相同地改變 — 它們在數學上是相同的量。

與常見計算器的差異

許多計算器計算 Sharpe 比率但跳過 M²。M² 對於散戶用戶來說更易於解釋,因為它以報酬率的百分點表示,而非無單位比率。

適用於所有指標的一般說明

每日粒度,而非每月

Foliolytic 的每個指標都是從每日投資組合重建中計算的,而非月末快照。這對於基於回撤的指標(最大回撤、Calmar、Burke、Martin、Sterling、潰瘍指數)最為重要:月度 NAV 通常會低估真實的峰谷回撤 20–30%,因為它們錯過了月內下跌。每日粒度捕捉了實際發生的路徑。

年化慣例

僅股票投資組合使用 252 個交易日。僅加密貨幣投資組合使用 365 天(24/7 交易)。混合投資組合使用按資產混合,然後重新組合成單一年化投資組合數字。波動率縮放使用 √n(方差隨時間線性縮放,因此標準差隨 √時間縮放)。

對數報酬率用於複合,算術報酬率用於顯示

每日對數報酬率在內部用於任何需要時間聚合的指標(方差、多期複合、年化)。算術報酬率用於顯示,因為它們更直觀(「-30%」比「對數報酬率 -0.357」更容易識別)。對於典型的股票報酬率,兩者在每日層面是等效的;對於極端變動,它們會發散。

異常值政策

異常值會被標記但不移除。移除異常值往往會使方差和 Sharpe 估計值向上偏差,通常是不良做法。例外情況是數據明確指示錯誤 — 例如,加密貨幣交易誤報為美分而非美元,或貨幣轉換故障導致價格飆升 1000 倍。這些錯誤會在解析器層(請參閱 /about)捕獲並在指標計算前糾正。

最小樣本量

Foliolytic 會抑制需要更多數據才能計算的指標。Sharpe 和 Sortino 需要 ≥ 30 天。Beta、Alpha、IR、追蹤誤差需要 ≥ 60 天的配對數據。捕捉比率在每個制度中需要 ≥ 12 個月。PSR 和 Hurst 需要足夠的歷史數據來引導參考分佈。當不滿足最小值時,指標顯示「—」而非無意義的數字。

無風險利率匹配

對於每個使用 R_f 的指標(Sharpe、Sortino、Treynor、M²、Alpha、超額報酬上的 Beta),每日 3 個月期國庫券收益率被使用並與投資組合歷史上的每個日曆日匹配。顯示中使用的年化 R_f 是投資組合歷史上每日 R_f 的時間加權平均值。大多數計算器使用單一固定 R_f 值,這在利率變動時是不正確的。

基準選擇

預設為 S&P 500 (SPY 總報酬)。用戶可配置為 QQQ、VT 或任何自訂股票代碼。Beta、Alpha、R²、捕捉比率、打擊率、IR 和追蹤誤差都會根據所選基準重新計算。加密貨幣投資組合預設使用 BTC 作為基準相對指標。

更新與重新校準

基於百分位數評分(PSR、Hurst、Sharpe 分位數等)的參考分佈會隨著新市場數據的到來而定期重新校準。目前的校準集記錄在 metricBaselines.js 源文件中。主要重新校準事件會附帶版本標籤(v6.4、v6.5)以提高透明度 — 請參閱 CLAUDE.md 和 metricBaselines.js 頂部的變更日誌。

所有 Foliolytic 計算器

下方每個指標都有其專屬計算器,提供範例、解釋表格和免費的 CSV 上傳工具。

常見問題

對數報酬率和算術報酬率有什麼區別?

算術報酬率 ((P_t - P_(t-1)) / P_(t-1)) 直觀易懂,通常是投資者所指的「報酬率」。對數報酬率 (ln(P_t / P_(t-1))) 具有一個關鍵的數學特性:它們在時間上是可加的。90 天的對數報酬率等於 90 個每日對數報酬率的總和。算術報酬率不具備此特性 — 它們是幾何複合的。Foliolytic 內部使用對數報酬率進行任何時間聚合,並使用算術報酬率進行顯示。

為什麼 Foliolytic 的 Sharpe 比率與我的券商不同?

幾乎可以肯定是因為無風險利率。Foliolytic 使用 FRED 提供的實際每日 3 個月期美國國庫券收益率。大多數券商和線上計算器使用固定的假設(通常是 2% 或 0%)。在國庫券收益率為 5% 的環境中,這可能會使 Sharpe 比率改變 0.3–0.5 — 這是一個顯著的差異。

Foliolytic 如何處理股票分割?

股票分割會追溯應用於歷史持股數量和價格。例如,AAPL 在 2020 年 8 月的 1 拆 4 分割會追溯性地將您在分割前所有日期的持股數量乘以四,並將歷史價格除以四。投資組合價值系列在分割前後保持連續 — 價值沒有跳躍,只有每股數字的表面變化。

股息如何處理?

現金股息在除息日添加到投資組合的現金餘額中。它們不會自動再投資。如果您的券商自動再投資,由此產生的股票購買將出現在您的交易歷史中並正常處理。特別股息的處理方式與常規現金股息相同。

Foliolytic 使用什麼基準?

預設為 S&P 500 (SPY 總報酬)。基準可在儀表板中配置 — 您可以選擇任何主要指數、ETF,甚至是自訂股票代碼。Beta、Alpha、R²、捕捉比率、打擊率和追蹤誤差都會根據所選基準重新計算。

報酬率是稅前還是稅後?

Foliolytic 根據您的交易歷史原樣計算報酬率。如果您的券商從持倉中扣除費用或將其作為單獨的交易收取,這些資金流動將會反映出來。如果費用是從您的 CSV 中未包含的單獨現金帳戶支付的,則不會被捕捉到。對於大多數散戶券商帳戶(Fidelity、Schwab、Robinhood、IBKR),平台上的費用已經反映在交易價格中。

試用 Foliolytic — 免費,無需註冊

在幾秒鐘內,針對您的投資組合執行上述所有計算。

免費分析您的投資組合 →