编辑:
我在大熊猫数据框df中有一个金融投资组合,其中指数是日期,我每个日期有多个金融股.
例如数据帧:
Date Stock Weight Percentile Final weight
1/1/2000 Apple 0.010 0.75 0.010
1/1/2000 IBM 0.011 0.4 0
1/1/2000 Google 0.012 0.45 0
1/1/2000 Nokia 0.022 0.81 0.022
2/1/2000 Apple 0.014 0.56 0
2/1/2000 Google 0.015 0.45 0
2/1/2000 Nokia 0.016 0.55 0
3/1/2000 Apple 0.020 0.52 0
3/1/2000 Google 0.030 0.51 0
3/1/2000 Nokia 0.040 0.47 0
Run Code Online (Sandbox Code Playgroud)
我创建了Final_weight
这样做的分配值Weight
,只要Percentile
大于0.7
现在我希望这有点复杂,我仍然希望Weight
被分配到Final_weight
什么时候Percentile is > 0.7
,但是在这个日期之后(在未来的任何时候),而不是在股票Percentile
没有时变为0 >0.7 …
我希望使用Django创建一个投资组合.我尝试过使用ImageField,但它只允许我上传和替换1张照片.
我是Python和Django编程的新手.如何创建模型以上传多个图像并在库中显示?谢谢.
我试图使用solve.QP来解决投资组合优化问题(二次问题)
共3项资产
有4个限制:
Dmat是协方差矩阵
Dmat <- matrix(c(356.25808, 12.31581, 261.8830, 212.31581, 27.24840, 18.50515, 261.88302, 18.50515,535.45960), nrow=3, ncol=3)
Run Code Online (Sandbox Code Playgroud)
dvec是每项资产的预期回报
dvec <- matrix(c(9.33, 3.33, 9.07), nrow=3, ncol=1)
Run Code Online (Sandbox Code Playgroud)
Amat是约束矩阵
A.Equality <- matrix(c(1,1,1), ncol=1)
Amat <- cbind(A.Equality, dvec, diag(3), -diag(3))
Run Code Online (Sandbox Code Playgroud)
约束A ^ T b> = b_0,b向量
bvec <- c(1, 5.2, rep(0, 3), rep(-0.5, 3))
Run Code Online (Sandbox Code Playgroud)
meq = 2,因为有两个相等约束,第一和第二约束是相等的
然后我运行函数solve.QP
library(quadprog)
qp <- solve.QP(Dmat, dvec, Amat, bvec, meq=2)
Run Code Online (Sandbox Code Playgroud)
但它给出了错误
Error in solve.QP(Dmat, dvec, Amat, bvec, meq = 2) : constraints are inconsistent, no …
Run Code Online (Sandbox Code Playgroud) 我在Portfolio Analytics包中加入自定义预期回报时遇到问题.通常预期回报是一些专业期望/观点,或与基本指标分开计算.Portfolio Analytics允许创建自定义时刻函数来计算过去回报的时刻,但我不明白如何将已经计算的回报合并到优化问题中.感谢任何帮助,这里是一个小示例数据集:
#Download package and sample returns
library(PortfolioAnalytics)
library(PerformanceAnalytics)
data(edhec)
returns <- tail(edhec[,1:4], 10)
#Example expected return xts that I'm usually working with. Calculated separately.
N <- 10
M <- 4
views <- as.xts(data.frame(matrix(rnorm(N*M,mean=0,sd=0.05), N, M)), order.by = index(returns))
colnames(views) <- colnames(returns)
Run Code Online (Sandbox Code Playgroud)
让我们创建一些基本的投资组合.
pf <- portfolio.spec(assets = colnames(returns))
pf <- add.constraint(portfolio = pf, type = "full_investment")
pf <- add.constraint(portfolio = pf, type = "long_only")
pf <- add.objective(portfolio = pf, type = "return", name = "mean")
pf <- add.objective(portfolio = …
Run Code Online (Sandbox Code Playgroud) 我对另一个问题的回答感到困惑,这个问题说你不应该把代码组合带到编程工作面试中.
为什么不呢?其他人推荐这个; 它甚至是Peopleware中的"经典"故事之一:
"如果没有首先看到他表演,就会想到聘请一个变戏法者,这是荒谬的.这只是常识.然而,当你开始聘请工程师或设计师或程序员或团队经理时,常识规则经常被暂停.你不要求看设计或程序或任何东西.事实上,采访只是谈话."
那么,是什么给出的?当你出现代码组合时出现什么问题的"战争故事"?或者当你采访有一个候选人时?
我是一名刚毕业的学生,我希望从事网络开发工作.由于我从大学获得了相当多的编程经验,但在网络开发方面没有真正的编程经验,并且通常需要在Web开发中获得一个项目组合.
因此,我希望开始建立一些应用程序,以便有一些东西向潜在的雇主展示.我更喜欢后端的东西,虽然我对前端开发感觉很舒服.
有没有人对一些潜在的项目有任何想法,这些项目相对较快(因为我需要尽快找到工作!)建立,但展示出足够的编程知识/技能,让雇主印象深刻.
目前我也在学习使用zend框架,我希望能找到使用这种框架(mvc)的工作.
我最初的想法是像webmail应用程序或自定义CMS.
任何想法都会很受欢迎.
投资组合方差计算如下:
port_var = W'_p * S * W_p
Run Code Online (Sandbox Code Playgroud)
对于具有 N 资产的投资组合,其中
W'_p = transpose of vector of weights of stocks in portfolios
S = sample covariance matrix
W_p = vector of weights of stocks in portfolios
Run Code Online (Sandbox Code Playgroud)
我有以下 numpy 矩阵。
投资组合中股票权重的数组(向量)(有 10 只股票):
weights = np.array(
[[ 0.09],
[ 0.05],
[ 0.15],
[ 0.10],
[ 0.15],
[ 0.15],
[ 0.08],
[ 0.08],
[ 0.1 ],
[ 0.05]])
Run Code Online (Sandbox Code Playgroud)
股票收益的协方差矩阵:
covar = np.array([[ 0.00154474 0.00079555 0.00099691 0.00052596 0.0005363 0.00062005
0.00064031 0.00037494 0.00018826 0.00132809], …
Run Code Online (Sandbox Code Playgroud) initPortf
在R中使用包中的初始化投资组合函数时blotter
,我们可以初始化一个投资组合,例如:
currency("USD")
stock("SPY",currency="USD",multiplier=1)
b.strategy <- "bFaber"
initPortf(b.strategy,'SPY', initDate='1997-12-31')
Run Code Online (Sandbox Code Playgroud)
但是当我们想要再次初始化投资组合时,我们必须先删除投资组合b.strategy:
initPortf(b.strategy, "SPY", initDate = "1997-12-31") :
Portfolio bFaber already exists, use updatePortf() or addPortfInstr() to update it.
Run Code Online (Sandbox Code Playgroud)
此处无法rm()
使用,当我需要删除它时,我必须清除所有工作区。有没有什么功能可以删除呢?
我是 R 和投资组合优化的新手。我正在尝试优化包含 7 种资产的投资组合,使得资产号 3 和 4 的最小权重均为 0.35,并且所有 7 种资产的总和等于 1。以下是我尝试过的代码:
library(quadprog)
dmat <- cov(dr) #dr stores the daily return of the 7 assets and is a timeSeries object
dvec <- colMeans(dr)
c1 <- c(0,0,1,0,0,0,0)
c2 <- c(0,0,0,1,0,0,0)
amat <- t(rbind(matrix(1, ncol = ncol(dmat)), c1, c2)) #used transpose because earlier when I didn't use the transpose I got an error saying amat and dvec are not compatible
bvec <- matrix(c(1,0.35, 0.35), nrow =3)
meq <- 1
sol <- …
Run Code Online (Sandbox Code Playgroud) 我已经尝试了 3 天来了解如何在 python 中使用 cvxopt 模块来计算有效边界。我在以下位置找到的代码片段:https : //github.com/markharley/Markowitz/blob/master/markowitz.py
可能是说明我的问题的最佳方式,我在这篇文章的底部完整地包含了它。
使用现代投资组合理论维基百科页面上的方程式:
https://en.wikipedia.org/wiki/Modern_portfolio_theory#Efficient_frontier_with_no_risk-free_asset
我理解为什么第一次使用solvers.qp 使用:
solvers.qp(S, -q*pbar, G, h, A, b)['x']
Run Code Online (Sandbox Code Playgroud)
其中 q 是风险承受能力因子。然后代码继续使用 polyfit 计算最佳夏普比率的点,我也理解,但我迷路的地方是为什么现在的代码是:
# Calculate the optimal portfolio
wt = solvers.qp(opt.matrix(x1 * S), -pbar, G, h, A, b)['x']
Run Code Online (Sandbox Code Playgroud)
其中 x1 是最佳夏普比率点的回报。我不知道为什么突然间我们可以将 S(协方差矩阵)乘以 x1 并在 -pbar 项中去掉 q。
任何人都可以对此有所了解吗?抱歉,如果我没有正确解释这一点,任何澄清请求也可能有助于我让我的问题更清楚。
谢谢!
def optimal_portfolio(returns):
n = len(returns)
returns = np.asmatrix(returns)
N = 100
qs = [10**(-5.0 * t/N + 1.0) for t in range(N)]
# Convert to cvxopt matrices
S …
Run Code Online (Sandbox Code Playgroud)