财务回报

Python 投资组合风险管理入门

Dakota Wixom

Quantitative Analyst | QuantCourse.com

课程概览

学习分析投资回报分布,构建组合并降低风险,识别驱动组合回报的关键因子。

  • 单变量投资风险
  • 组合投资
  • 因子投资
  • 预测与降低风险
Python 投资组合风险管理入门

投资风险

什么是风险?

  • 金融市场中的风险衡量不确定性
  • 金融回报的离散度或方差

通常如何度量风险?

  • 日回报的标准差或方差
  • 日回报分布的峰度
  • 日回报分布的偏度
  • 历史回撤
Python 投资组合风险管理入门

金融风险

回报

概率

Python 投资组合风险管理入门

两种回报的比较

  • 回报源自股票价格
  • 离散回报(简单回报)最常用,表示周期性(如日、周、月等)价格变动
  • 对数回报常用于学术研究和金融建模,假设连续复利

Python 投资组合风险管理入门

计算股票回报

  • 离散回报按本期价格相对上期价格的百分比变动计算

Python 投资组合风险管理入门

计算对数回报

  • 对数回报等于两个价格对数的差
  • 对数回报可跨时间聚合,离散回报可跨资产聚合

 

$$ Rl = \ln(\frac{P_{t_2}}{P_{t_1}}) $$

或等价地:

$$ Rl = \ln(P_{t_2}) - \ln(P_{t_1}) $$

Python 投资组合风险管理入门

用 Python 计算股票回报

步骤 1:

加载股票价格数据,并存为按日期组织的 pandas DataFrame:

import pandas as pd 
StockPrices = pd.read_csv('StockData.csv', parse_dates=['Date'])
StockPrices = StockPrices.sort_values(by='Date')
StockPrices.set_index('Date', inplace=True)
Python 投资组合风险管理入门

用 Python 计算股票回报

步骤 2:

计算复权收盘价的日回报,并将其作为新列加入 DataFrame。

StockPrices["Returns"] = StockPrices["Adj Close"].pct_change()
StockPrices["Returns"].head()

Python 投资组合风险管理入门

可视化回报分布

import matplotlib.pyplot as plt
plt.hist(StockPrices["Returns"].dropna(), bins=75, density=False)
plt.show()

Python 投资组合风险管理入门

Passons à la pratique !

Python 投资组合风险管理入门

Preparing Video For Download...