Mímisbrunnr知恵の泉

← 金融工学 一覧

🎓 レベル:標準 | 重要度:A(必須)

📎 前提:CAPMと証券市場線 | 関連:リスクの測り方(√t則)・効率的フロンティア(資本市場線)

要点(BLUF)

1. シャープレシオの定義

運用成績を「リターンの高さ」だけで比べてはいけません。高リターンでも、それが大きなリスクの結果なら評価できないからです。シャープレシオは、超過リターン(リスクフリーを上回る分)をリスク(ボラ)で割って、リスク調整後のリターンを測ります。

S=E[Rp]RfσpS = \frac{E[R_p] - R_f}{\sigma_p}

分子は「取ったリスクへの報酬」、分母は「取ったリスクの量」。SS が大きいほど、同じリスクでより多くの超過リターンを稼いだ=効率が良い運用です。効率的フロンティア で見たとおり、これは資本市場線の傾きに一致します。

2. 接点ポートフォリオはシャープレシオ最大

資本市場線が効率的フロンティアに接する点(接点ポートフォリオ)は、リスクフリーから引いた直線の傾きが最大になる点でした。傾き=シャープレシオなので、接点ポートフォリオこそシャープレシオを最大化する危険資産の配分です。これを、ランダムな配分を大量に試す力技で確かめます。

import numpy as np

mu = np.array([0.08, 0.12, 0.15, 0.10])
sig = np.array([0.12, 0.20, 0.25, 0.15])
corr = np.array([
    [1.00, 0.30, 0.20, 0.40],
    [0.30, 1.00, 0.50, 0.30],
    [0.20, 0.50, 1.00, 0.25],
    [0.40, 0.30, 0.25, 1.00],
])
Sigma = np.outer(sig, sig) * corr
ones = np.ones(len(mu)); Sinv = np.linalg.inv(Sigma)
rf = 0.03

# 解析解の接点ポートフォリオのシャープレシオ
excess = mu - rf*ones
w_tan = Sinv @ excess / (ones @ Sinv @ excess)
tan_sharpe = (w_tan @ mu - rf) / np.sqrt(w_tan @ Sigma @ w_tan)

# ランダムなロングオンリー配分を20万通り試して最大シャープを探す
rng = np.random.default_rng(7)
best = -np.inf
for _ in range(200000):
    w = rng.random(len(mu)); w /= w.sum()
    s = (w @ mu - rf) / np.sqrt(w @ Sigma @ w)
    best = max(best, s)

print(f"ランダム探索の最大シャープレシオ: {best:.4f}")
print(f"接点ポートフォリオのシャープレシオ: {tan_sharpe:.4f}")

出力:

ランダム探索の最大シャープレシオ: 0.6492
接点ポートフォリオのシャープレシオ: 0.6492

出力の意味:20万通りのランダム配分をしらみつぶしに探しても、最大シャープレシオは 0.6492 までで、解析解の接点ポートフォリオ(0.6492)にぴたり一致します。今回は接点がたまたまロングオンリー(全配分が正)なので両者が完全一致しました。「シャープレシオを最大化せよ」と「接点ポートフォリオを持て」は同じこと——最適化を解かずとも、接点の閉形式 Σ1(μRf1)\Sigma^{-1}(\boldsymbol\mu-R_f\mathbf{1}) で一発で求まります。

3. シャープレシオのアニュアライズ

シャープレシオは測定する時間間隔に依存します。リターンが期間ごとに独立同分布なら、超過リターンは時間に比例(×T\times T)、ボラは リスクの測り方 の √t則で ×T\times\sqrt{T} なので、シャープレシオは T\sqrt{T} で伸びます。

S年次=S期間×年間の期間数1S_{\text{年次}} = S_{\text{期間}}\times\sqrt{\frac{\text{年間の期間数}}{1}}
import numpy as np

sharpe_monthly = 0.15                       # 月次シャープレシオ
sharpe_annual = sharpe_monthly * np.sqrt(12)   # iid なら ×√12
print(f"月次シャープ {sharpe_monthly} → 年次シャープ {sharpe_annual:.4f}")

出力:

月次シャープ 0.15 → 年次シャープ 0.5196

出力の意味:月次シャープ 0.15 は、年次に直すと約 0.52。シャープレシオを比較するときは同じ時間軸(ふつう年次)にそろえるのが鉄則です。日次なら ×252\times\sqrt{252}。なお、リターンに自己相関があると √t則は崩れ、アニュアライズは過大・過小評価になります(要注意)。

4. 他のパフォーマンス指標

シャープレシオは「総リスク(ボラ)」基準ですが、目的によって分母を変えた指標があります。

どれも「リスク調整後リターン」という同じ思想で、**何をリスクと見るか(総リスク/ベータ/下方リスク/対ベンチマーク)**だけが違います。

⚠️ よくある誤解

関連ノート