马科维茨投资组合

Python 投资组合风险管理入门

Dakota Wixom

Quantitative Analyst | QuantCourse.com

10 万个随机生成的组合

Python 投资组合风险管理入门

夏普比

夏普比是衡量风险调整后回报的指标。

1966 版夏普比的计算:

$$ S = \frac{ R_a - r_f }{\sigma_a} $$

  • S:夏普比
  • $ R_a $:资产回报
  • $ r_f $:无风险利率
  • $ \sigma_a $:资产波动率
Python 投资组合风险管理入门

有效前沿

Python 投资组合风险管理入门

马科维茨组合

有效前沿上的任一点都是最优组合。

这两个常见点称为马科维茨组合

  • MSR: 最大夏普比组合
  • GMV: 全局最小波动率组合

Python 投资组合风险管理入门

如何选组合

如何选择最优投资组合?

  • 选择位于有效前沿边界上的组合
  • 愿承受更高风险,可获得更高回报
Python 投资组合风险管理入门

在 Python 中选择 MSR

给定包含 VolatilityReturns 列的随机组合 DataFrame df

numstocks = 5
risk_free = 0
df["Sharpe"] = (df["Returns"] - risk_free) / df["Volatility"]
MSR = df.sort_values(by=['Sharpe'], ascending=False)
MSR_weights = MSR.iloc[0, 0:numstocks]
np.array(MSR_weights)
array([0.15, 0.35, 0.10, 0.15, 0.25])
Python 投资组合风险管理入门

过往表现不保证未来回报

尽管最大夏普比组合听起来很好,但在实践中,回报极难预测。

Python 投资组合风险管理入门

在 Python 中选择 GMV

给定包含 VolatilityReturns 列的随机组合 DataFrame df

numstocks = 5
GMV = df.sort_values(by=['Volatility'], ascending=True)
GMV_weights = GMV.iloc[0, 0:numstocks]
np.array(GMV_weights)
array([0.25, 0.15, 0.35, 0.15, 0.10])
Python 投资组合风险管理入门

让我们练习!

Python 投资组合风险管理入门

Preparing Video For Download...