夏普比率:為什麼是正規化因子?
我試圖理解為什麼 $ \sqrt{252} $ 正規化因子對夏普比率很有用:
讓我們計算這個假想投資組合的夏普比率,用於不同的採樣週期:
import numpy as np import matplotlib.pyplot as plt T = 252 # 252 days ~ 52 weeks of 5 days ~ 12 months of 21 days for period in [1, 5, 21]: # sample every 1 day, 1 week, or 1 month x = np.arange(0, T, period) y = 100 + x + 3 * np.sin(x) returns = (y[1:] / y[:-1] - 1) # will be daily, weekly, monthly returns plt.plot(x, y) plt.show() plt.plot(returns) plt.show() print 'Sharpe Ratio: %.5f' % (np.sqrt(T/period) * returns.mean() / returns.std()) # sqrt(T/period) is sqrt(252), ~ sqrt(52), sqrt(12)
結果
- 我得到了幾乎不變的東西:
夏普比率:7.24790
夏普比率:10.49590
夏普比率:7.84525
我發現這非常連貫且很好,因為對於這 3 個採樣率,比率是相似的:它不依賴於採樣率**,而是投資組合本身所固有的。
問題 :
我看這是連貫的。但是為什麼夏普比率中有這個正規化因子呢?
如果你用它來年化你的數據,
T
它應該總是一樣的,而不是隨著數據的長度而變化。為了證明年化月回報率,夏普比率結果非常相似:-
筆記
乘以 12 的原因是平均回報是年化的乘以 12,波動率是年化的
m = 12
。夏普比率分子上的 12 和分母上的 12 根等於乘以 12 根。
我會嘗試根據我讀過的內容來回答(我希望大部分都能理解)。
假設日收益率的平均值為 1%,日收益率的標準差為 1%。然後:
$$ Sharpe = \sqrt{252} \frac{mean(daily\ return)}{stddev(daily\ return)} \approx \sqrt{252} \frac{1 %}{1 %} = \sqrt{252} $$ 現在讓我們假設我們使用每月收益。一個月內,平均回報將比以前大〜21倍,標準差為〜 $ \sqrt{21} $ 平均比以前大幾倍(為什麼?見下面的註釋……),即:
$$ Sharpe = \sqrt{12} \frac{mean(daily\ return)}{stddev(daily\ return)} \approx \sqrt{12} \frac{21 %}{\sqrt{21} %} \approx \sqrt{12} \sqrt{21} = \sqrt{252} $$ 這表明夏普比率與採樣率無關;我們只需要注意乘以 $ \sqrt{252} $ 使用每日回報時,或 $ \sqrt{12} $ 使用每月回報時。
注:由於變異數有 $ V(a X) = a^2 V(X) $ , 標準差有 $ \sigma_{a X} = |a| \sigma_X $ ,所以我不明白為什麼將收益乘以 21 會使其標準差乘以 $ \sqrt{21} $ . 這需要解釋一下。