标签: portfolio

Pandas:分配具有多个条件和日期阈值的列

编辑:

我在大熊猫数据框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 …

python finance portfolio dataframe pandas

11
推荐指数
1
解决办法
1426
查看次数

如何创建Django图库

我希望使用Django创建一个投资组合.我尝试过使用ImageField,但它只允许我上传和替换1张照片.

我是Python和Django编程的新手.如何创建模型以上传多个图像并在库中显示?谢谢.

python django portfolio image gallery

10
推荐指数
2
解决办法
2万
查看次数

r - 投资组合优化 - solve.QP - 约束条件不一致

我试图使用solve.QP来解决投资组合优化问题(二次问题)

共3项资产

有4个限制:

  1. 权重之和等于1
  2. 投资组合预期收益率等于5.2%
  3. 每个资产权重大于0
  4. 每个资产权重小于.5

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 r mathematical-optimization quadratic

9
推荐指数
1
解决办法
1万
查看次数

Portfolio Analytics包中的自定义预期回报

我在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)

optimization portfolio r r-portfolioanalytics

8
推荐指数
1
解决办法
1065
查看次数

将代码引入编程工作面试有什么问题?

我对另一个问题的回答感到困惑,这个问题说你不应该把代码组合带到编程工作面试中.

为什么不呢?其他人推荐这个; 它甚至是Peopleware中的"经典"故事之一:

"如果没有首先看到他表演,就会想到聘请一个变戏法者,这是荒谬的.这只是常识.然而,当你开始聘请工程师或设计师或程序员或团队经理时,常识规则经常被暂停.你不要求看设计或程序或任何东西.事实上,采访只是谈话."

那么,是什么给出的?当你出现代码组合时出现什么问题的"战争故事"?或者当你采访有一个候选人时?

portfolio

6
推荐指数
2
解决办法
7433
查看次数

好的投资项目

我是一名刚毕业的学生,​​我希望从事网络开发工作.由于我从大学获得了相当多的编程经验,但在网络开发方面没有真正的编程经验,并且通常需要在Web开发中获得一个项目组合.

因此,我希望开始建立一些应用程序,以便有一些东西向潜在的雇主展示.我更喜欢后端的东西,虽然我对前端开发感觉很舒服.

有没有人对一些潜在的项目有任何想法,这些项目相对较快(因为我需要尽快找到工作!)建立,但展示出足够的编程知识/技能,让雇主印象深刻.

目前我也在学习使用zend框架,我希望能找到使用这种框架(mvc)的工作.

我最初的想法是像webmail应用程序或自定义CMS.

任何想法都会很受欢迎.

php portfolio zend-framework

6
推荐指数
1
解决办法
5823
查看次数

Python 中 N 项资产的投资组合的投资组合方差

投资组合方差计算如下:

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)

python arrays portfolio numpy variance

5
推荐指数
1
解决办法
1万
查看次数

如何在 R 中的“blotter”包中使用 initPortf 后删除投资组合

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()使用,当我需要删除它时,我必须清除所有工作区。有没有什么功能可以删除呢?

portfolio r package

5
推荐指数
1
解决办法
942
查看次数

使用 R 中的 Quadprog 包进行投资组合优化中的权重约束

我是 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)

optimization portfolio r quadprog

5
推荐指数
1
解决办法
4684
查看次数

马科维茨投资组合优化的 cvxopt - 寻找最佳夏普比率的点

我已经尝试了 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)

portfolio cvxopt

5
推荐指数
0
解决办法
1441
查看次数