股票价格 -> 股票投资组合总价值:
- 先把每一个股票(列)归一化(除以第一行), normed = prices / prices[0]
- 乘以分配比例allocs=[0.4, 0.4, 0.1, 0.1], alloced = normed * allocs
- 乘上初始资金start_val, position_vals = alloced * start_val
- 将每一行相加(axis=1), 得到每天的投资组合总价值, portfolio_vals = position_vals.sum(axis=1)
投资组合统计值
先由portfolio_vals计算daily_returns,
然后去掉都为0的第一行daily_returns = daily_returns[1:]
, 否则干扰计算
- 累积收益cum_ret = (portfolio_vals[-1] / portfolio_vals[0]) -1
- 平均每日收益avg_daily_ret = daily_returns.mean()
- 每日收益标准差std_daily_ret = daily_returns.std()
- 每日夏普比率sharpe_ratio = sqrt(252) * mean(daily_returns - daily_rf) / std(daily_returns - daily_rf)
当daily_rf为常数时,sharpe_ratio = sqrt(252) * mean(daily_returns - daily_rf) / std(daily_returns)
夏普比率
夏普比率是一项通过风险调整回报的指标, 用以评估股票投资组合.
是采样频率的平方根, 用以作为不同采样频率时的系数
是portfolio return, 投资组合总价值
是risk free rate of return, 一般是银行或短期基金这种低收益率无风险的安全投资
是std dev of portfolio return, 投资组合总价值的标准差
我们需要保证股票投资组合的日收益率比日化无风险收益率更高
也可写作
常用日化无风险收益率Rf:
- LIBOR: the London Interbank Offer Rate, 伦敦银行同业拆借利率
- 3mo T-bill: the interest rate on the 3-month Treasury bill, 3月期国债利率
- 0: 最近用的较多, 本课程使用0
通常使用年化无风险收益率来近似表示日化无风险收益率, 以年化收益率10%为例:
daily_rf = = pow(1.0+0.1, 1/252) - 1
开252次方是因为一年有252个交易日
当Rf为常数时, 求标准差可将其忽略, 因为对所有数据而言常数带来的偏差相同
对不同采样频率要乘系数K
对于非年化采样, 夏普比率要乘系数K, K为每年采样数量的平方根. 例如若每天采样, 即采用每日数据, K是; 若每周采样, K是; 若每月采样, K是.
假如我们只交易了89天, 但是每日采样, K仍为, 与交易天数无关
通常我们说的夏普指数都是按日采样的.
基点
常用指标, 1个基点 = 1bips = 0.01% = 0.0001
网友评论