投資教室⚠️ 風險Sortino 與下行標準差 — 只懲罰下跌波動的比率
⚠️ 風險6 分鐘閱讀

Sortino 與下行標準差 — 只懲罰下跌波動的比率

Sharpe 把上漲也當風險不合理。Sortino 只懲罰下跌波動,更符合投資人對「風險」的直覺。同 Sharpe 但 Sortino 高的股票通常「跌得少」。

Sortino 與下行標準差 — 只懲罰下跌波動的比率

本文採用本站四段式教學結構:概念 / 本站怎麼算 / 怎麼看數字 / 注意事項。

1. 概念

Sharpe Ratio 是最常用的風險調整報酬指標。但它有個不合理的假設

Sharpe 把「上漲波動」也當成風險。

一支「猛漲的股票」標準差會很高,Sharpe 的分母被上漲波動拉大,分數反而偏低。但猛漲對投資人是好事,不該被懲罰。

這就是 Sortino 誕生的原因:

Sortino = 超額報酬 / 下行標準差

下行標準差 = √(mean(min(Rt − target, 0)²))

只計算「小於 target 的那些日子」的偏差。通常:

  • target = 0 → 只算虧損日的標準差
  • target = Rf → 只算低於無風險的日子

這樣「上漲波動」完全不影響分母,更符合投資人對「風險」的直覺定義


2. 本站怎麼算

公式

Sortino = (年化報酬 − 年化 Rf) / 年化下行標準差

其中:
  年化報酬 = mean(日報酬) × 252
  年化 Rf   = Rf_daily × 252
  年化下行σ = sqrt(mean(min(Rt − 0, 0)²)) × √252

Target 選擇

本站採用 target = 0(區分「虧損日」vs「不虧損日」)。原因:

  • 更容易跨股票比較(每檔 Rf 都一樣)
  • 散戶理解度最高(「這檔平常跌起來多兇」)

若你想做 MAR(Minimum Acceptable Return)版本,可以在前端把 rf_daily 當 target 替換(後端已支援)。

Rf 從哪來

延用 v2.43 全站動態 Rf 規則:

  1. 優先 ^IRX 美國 13W T-Bill 當日殖利率
  2. 退回 CBC 10 年公債殖利率
  3. 最終 fallback 1.5%

年化 Rf 顯示於卡片 hover,讓你清楚知道當下用的是多少。

個股 vs 投組

  • 個股:用過去 252 個交易日的 simple daily returns
  • 投組:用投組日 NAV 推導的日報酬
  • 兩者公式、target、Rf 都完全一致,可直接比較

樣本不足

樣本 < 60 日 或 下行 σ = 0(歷史無虧損日)時,回傳 available: false,不顯示數字。


3. 怎麼看數字

水準表

Sortino判讀
> 2.0🟢 優秀
1.0 – 2.0🟢 良好
0.5 – 1.0🟡 合格
0 – 0.5🟠 邊緣
< 0🔴 報酬不及無風險

Sharpe vs Sortino 對照

最有用的實戰技巧:比較同一檔的 Sharpe 與 Sortino。

SharpeSortino解讀
1.01.0上下波動對稱(常態股)
1.02.0上行波動大、下行風險低 → 好股票被 Sharpe 低估
1.00.5下跌日子多 → Sharpe 沒抓到這個風險
基本面差,不用再看

經驗法則:Sortino / Sharpe 比值 > 1.3 的股票通常「跌得少」,值得優先留意。

投組 Sortino 應用

投組 Sortino 是「這套策略下行風險調整後的績效」。

  • 投組 Sortino > 1.0 → 可持續
  • 投組 Sortino < 0.5 → 考慮調整配置(加入負相關資產、降低高波動部位)

配合 P0.2 相關性矩陣一起看效果最好:低 Sortino + 高相關 → 必須重配置。


4. 注意事項

⚠️ 與 Sharpe 不是「誰對誰錯」而是角度不同

  • Sharpe 適合評估策略的整體風險特性(含總波動)
  • Sortino 適合評估從投資人痛苦角度的風險(只看下跌)

兩個都該看。若只看一個,投組管理界慢慢偏好 Sortino,但 Sharpe 仍是學術基準。

⚠️ 上漲猛的股票 Sortino 會虛高

如果一檔股票在樣本期間只漲不跌(例如 AI 股 2023-2024),Sortino 會非常高甚至無窮大(下行 σ = 0 → 本站顯示 unavailable)。

不要把這種 Sortino 當作持續可得。市場一旦反轉,下行 σ 會迅速累積、Sortino 會崩。

⚠️ 樣本偏誤最嚴重

Sortino 比 Sharpe 更依賴尾部事件。如果 252 日內剛好無大跌:

  • 下行 σ 很小
  • Sortino 虛高
  • 實際發生下跌時分數會暴跌

救法:搭配 P1C.1 的 VaR / CVaR 看。VaR/CVaR 不會因為樣本沒出現大跌就回答「無風險」—它會回答「我無法計算」(樣本不足)。

⚠️ 不適用於短期

  • 太短期(< 3 個月)樣本過少,Sortino 飄動
  • 本站設下限 60 日;建議 252 日才有參考價值

⚠️ Target 的哲學選擇

本站用 target = 0 的理由前面已說明。但有些機構用 target = 無風險利率或最低可接受報酬率(MAR),意思是「低於 X% 年化才叫虧損」。兩種做法都合理,只是視角不同:

  • target = 0 → 「絕對虧損」敏感度
  • target = Rf → 「相對於無風險基準」敏感度

若你想改用 target = Rf,告訴我們(目前 API 已支援,只是 UI 未提供切換)。


延伸閱讀

  • 〈Sharpe Ratio:衡量你的投資效率〉
  • 〈VaR vs CVaR:真的踩到最差 5% 會虧多少〉
  • 〈Beta 值與波動度:一張圖看懂個股風險〉
  • 〈Ulcer Index + Calmar:回撤深度與年化報酬的比值〉(Phase 1C.3 即將推出)

動手試試看

  • 打開 個股分析 → 風險,VaR/CVaR 旁就是 Sortino 卡
  • 打開 投組頁,Rolling Sharpe 下方新增組合 Sortino
  • 點 📐 查看公式、target 設定、Rf 來源、樣本大小
  • 比較同一檔的 Sharpe 與 Sortino,差距大就代表「這檔股票上下波動不對稱」

學完了?自己動手試試看

用 CTSstock 的工具實際操作一次,加深理解

查看台積電的 Sortino 比率