可获得的数据:过去500天内2只股票的每日简单回报。权重:加权相等,即0.50是投资组合中每只股票的权重。
我想要计算投资组合的每日收益,并计算投资组合的历史风险价值。我这样做的方式是
for (i in 1:500)
{
preturn[i] = 0.50 * log(1 + s1[i]) + 0.50 * log(1 + s2[i])
}
VaR = quantile(preturn, 0.05) # This is the VaR value
VaR = exp(VaR) - 1 # Converting back to simple return
其中s1和s
这里有一个有趣的谜题。
下面是一个,它标识二次函数相对于从y轴上的点(0,rf)绘制的直线的切点。
对于那些熟悉投资组合理论的人来说,这一点是在回报和风险空间,解决方案是定义切线投资组合的一组权重(最大夏普比率)。该代码片段允许负权重(即短裤),并且有一个相等权重约束,该约束要求权重之和= 1。
require(quadprog)
# create artifical data
nO <- 100 # number of observations
nA <- 10 # number of assets
mData <- array(rno
我也在Quant Finance上询问过,但我认为这里也有人可以帮忙:https://quant.stackexchange.com/questions/49099/why-dont-these-betas-match 我希望我的投资组合beta在与市场回归时与我的个人成分beta乘以投资组合权重相匹配。我在下面创建了一个简单的示例。如果你能帮助我解释哪里出了问题,我将不胜感激。 import pandas as pd
import numpy as np
import statsmodels.api as sm
from statsmodels import reg
我试图在R中展示我如何为投资组合分配权重,然后计算日收益。以下是每日回报的数据,我已经给他们每人分配了25%的权重,以建立一个同等权重的投资组合,并计算收益。(有4只公司股票,我刚刚提供了2只股票的数据,因此每只股票有25%的权重)然而,我不愿意在R中配置相同的股票。
Workings:
25% = 636.99*25% = 159.25
633.79*25% = 158.45
Returns = Closing - opening
= 159.25-158.45
= -0.80
Is there any way I can show th
我正在学习如何编码,并选择了Python来进行编码。我的第一个任务是优化一个投资组合和Efficient Frontier。我发现了一个由@s666写的很棒的代码。与一般优化情况一样,约束如下: 1)权重之和= 1,以及2)没有权重大于1的股票。 在下面显示的代码中,您能否告诉我如何添加第三个约束,其中所考虑的3只股票除了上面提到的约束(即0.2>AAPL<0.7;0.3 提前感谢您……
import numpy as np
import pandas as pd
from pandas_datareader import data as d
import matplotli
我试图用python上的一只股票来模拟对冲头寸。
import yfinance as yf
#getting the data
data = yf.download("AAPL", start="2021-01-01", end="2022-01-01")
#calculating returns
data['Returns'] = data['Close'].pct_change()
#simulating investing 1000$ on the stock
((data['Returns
我遇到了一个优化问题。我需要优化投资组合的回报欧米茄措施。我发现,这可以通过DEoptim(Yollin在上的非常好的幻灯片)使用差异进化来完成。原始代码可以在那里找到)。
我试图使这种方法适应我的问题(因为我只改变了数字,我希望没有犯任何错误。完全归功于作者的想法):
optOmega <-function(x,ret,L){ #function I want to optimize and
retu = ret %*% x # x is vector of asset weig
我正在尝试解决以下不等式约束:
给定N只股票的时间序列数据,我正在尝试构建一个投资组合权重向量,以最小化收益的方差。
目标函数:
min w^{T}\sum w
s.t. e_{n}^{T}w=1
\left \| w \right \|\leq C
其中w是权重的向量,\sum是协方差矩阵,e_{n}^{T}是1的向量,C是常数。其中第二个约束(\left \| w \right \|)是不等式约束(权重的2范数)。
我尝试使用nloptr()函数,但它给出一个错误:提供的算法不正确。我不确定如何选择正确的算法,我也不确定这是否是解决这个不等式约束的正确方法。
我也对使用其他函数持开放态度,
我正在尝试使用scipy minimize函数进行以下优化:
V = np.matrix(pd.read_csv('V.csv'))`
R = np.matrix(pd.read_csv('R.csv', index_col = 'Ticker'))`
w0= list()
for i in range(0, 84):
w0.append(1/84)
def calculate_portfolio_var(w,V):
w = np.matrix(w)
return (w*V*w.T)[0,0]
cons = ({&