returns 预期 returns 的 python 脚本,2 个资产的协方差和波动率
A python script that returns expected returns, covariance and volatility of 2 assets
受我excel金融class测试的启发,我想用Python作为解决这个问题的工具。
我想学习如何计算资产的预期 returns、协方差和波动率,尤其是在包含事件概率的情况下。
Expected return (ERi) = Prob(i) * Returns(i)
这是我目前的 WIP 代码计划,试图解决这个问题:
import numpy as np
import pandas as pd
p = np.array([0.25, 0.5, 0.25])
r1 = np.array([0.05, 0.075, 0.1])
r2 = np.array([0.2, 0.15, 0.1])
er1 = <<need help returning a single float as expected return of asset 1>>
er2 = <<need help returning a single float as expected return of asset 2>>
portfolio = pd.DataFrame([er1, er2])
weights = np.array([0.5, 0.5])
returns_portfolio = np.dot(weights, portfolio)
cov_matrix = <<need help returning the covariance matrix for the assests>>
portfolio_volatility = <<need help returning the std of returns of the two assets>>
我已经存储了事件的概率并且每个资产的 returns 被称为 numpy 数组的事件。 python 让我感到困惑的是包含了概率和关联的 returns。
就像公式说明的那样,我想 return probability of event(i)* return on event(i) for each separate asset
的总和
根据每个资产的预期 returns 值,我计划创建一个 returns 数组来存储这些值:
returns = pd.DataFrame([er1, er2])
我希望使用 np.dot(weights, portfolio)
来获得一个投资组合的 returns,使两种资产的权重相等。
我还需要有关如何实施 .cov
方法和 .std
方法以获得投资组合的协方差矩阵和波动率的指导。
也热烈欢迎任何提示。
仅使用数组乘法和 numpy
内置函数(例如 dot
、var
或 std
:
似乎非常简单
er1 = (p * r1).sum()
为什么投资组合或 returns 是 DataFrame
而不是 np.array
?只需使用 np.array([er1, er2])
然后使用np.std(returns)
或returns.std()
受我excel金融class测试的启发,我想用Python作为解决这个问题的工具。
我想学习如何计算资产的预期 returns、协方差和波动率,尤其是在包含事件概率的情况下。
Expected return (ERi) = Prob(i) * Returns(i)
这是我目前的 WIP 代码计划,试图解决这个问题:
import numpy as np
import pandas as pd
p = np.array([0.25, 0.5, 0.25])
r1 = np.array([0.05, 0.075, 0.1])
r2 = np.array([0.2, 0.15, 0.1])
er1 = <<need help returning a single float as expected return of asset 1>>
er2 = <<need help returning a single float as expected return of asset 2>>
portfolio = pd.DataFrame([er1, er2])
weights = np.array([0.5, 0.5])
returns_portfolio = np.dot(weights, portfolio)
cov_matrix = <<need help returning the covariance matrix for the assests>>
portfolio_volatility = <<need help returning the std of returns of the two assets>>
我已经存储了事件的概率并且每个资产的 returns 被称为 numpy 数组的事件。 python 让我感到困惑的是包含了概率和关联的 returns。
就像公式说明的那样,我想 return probability of event(i)* return on event(i) for each separate asset
根据每个资产的预期 returns 值,我计划创建一个 returns 数组来存储这些值:
returns = pd.DataFrame([er1, er2])
我希望使用 np.dot(weights, portfolio)
来获得一个投资组合的 returns,使两种资产的权重相等。
我还需要有关如何实施 .cov
方法和 .std
方法以获得投资组合的协方差矩阵和波动率的指导。
也热烈欢迎任何提示。
仅使用数组乘法和 numpy
内置函数(例如 dot
、var
或 std
:
er1 = (p * r1).sum()
为什么投资组合或 returns 是 DataFrame
而不是 np.array
?只需使用 np.array([er1, er2])
然后使用np.std(returns)
或returns.std()