python 波动率_用python计算投资组合方差和波动率

我对Python2.7相当陌生,在计算证券投资组合的方差和标准差时遇到了一些麻烦。这是我目前所做的:进口纽比,熊猫,熊猫,数据阅读器和matplotlib.pyplot图书馆

从excel文档导入证券列表的所有股票代码和权重(共9个股票代码和权重)

创建单独的列表来存放股票和权重

从谷歌财经下载了所有历史价格数据

计算每种证券的每日对数回报,并转换成年度估计值

计算各证券年估计标准差和方差

创建协方差和相关矩阵

将权重列表更改为数组

然后我在计算投资组合方差时遇到了一个错误。下面是我使用的脚本:# Portfolio variance calc

pfolio_var = np.dot(weightsarray.T, np.dot(sec_returns.cov() * 250, weightsarray))

pfolio_var

# Portfolio volatility

pfolio_vol = (np.dot(weightsarray.T, np.dot(sec_returns.cov() * 250, weightsarray))) ** 0.5

pfolio_vol

and here is the error I receive:

ValueError Traceback (most recent call last)

in ()

1 # Portfolio variance calc

----> 2 pfolio_var = np.dot(weightsarray.T, np.dot(sec_returns.cov() * 250, weightsarray))

3 pfolio_var

ValueError: shapes (9,9) and (1,9) not aligned: 9 (dim 1) != 1 (dim 0)

提前感谢您的帮助!在

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算长期波动可以使用以下步骤: 1. 获取历史数据,通常是每日收盘价或其他价格指标。 2. 计算每日收益,通过计算当日收盘价与前一日收盘价的比,再减去1来计算。 3. 计算收益的标准差,它是波动的一种度量。标准差可以通过使用Python中的numpy库中的std函数计算。 4. 将每日标准差乘以sqrt(252)来计算长期波动,其中252是一年中交易日的数量。 以下是一个示例代码: ```python import pandas as pd import numpy as np # 读取历史数据 data = pd.read_csv('data.csv') # 计算每日收益 returns = data['Close'].pct_change() # 计算收益的标准差 std = np.std(returns) # 计算长期波动 long_term_volatility = std * np.sqrt(252) print('长期波动为:', long_term_volatility) ``` 请注意,此代码仅用于演示目的。在实际应用中,您可能需要进行更多的数据清理和处理,以确保计算的准确性。 ### 回答2: Python 可以使用波动指标和相应的数学公式来计算长期波动。 长期波动是指某个资产在较长时间内的价格波动幅度,可以衡量其风险水平。 在 Python 中,我们可以使用以下步骤来计算长期波动: 1. 导入所需的库:首先,我们需要导入计算所需的库,如 pandas 用于数据处理和计算等。 2. 获取历史价格数据:通过 API、CSV 文件或其他途径获取所需资产的历史价格数据,以建立时间序列。 3. 计算日回报:使用历史价格数据,计算每个交易日的价格变化(即日回报),可以使用以下公式进行计算:(当前价格 - 上一交易日价格) / 上一交易日价格。 4. 计算波动:以日回报为基础,可以通过以下公式计算波动:标准差 = 方差的平方根。可以使用函数如 numpy.std() 或 pandas.Series.std() 来计算标准差。 5. 年化波动:最后,将波动乘以交易日数量的平方根,通常为252个交易日,以计算年化波动。可以使用以下公式进行计算:年化波动 = 波动 * (252 ** 0.5)。 以上步骤是计算长期波动的基本流程。在实际应用中,可能还需要对数据进行处理和分析,例如滚动计算波动等。同时,为了准确性,可能还需要考虑其他因素,如数据的时间周期和样本量等。 总结起来,Python 提供了丰富的数据处理和计算库,可以方便地计算长期波动,并进行相应的数据分析和可视化。通过以上步骤,我们可以使用 Python 计算出资产的长期波动,从而对其风险进行评估和比较。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值