[prev in list] [next in list] [prev in thread] [next in thread] 

List:       r-sig-finance
Subject:    Re: [R-SIG-Finance] PortfolioAnalytics with turnover constraint
From:       "Bos, Roger" <roger.bos () rothschild ! com>
Date:       2018-01-18 17:47:27
Message-ID: 681a5b50464142fe966a976fb1c1a50d () USNYMMSG001 ! rth ! ad ! rothschild ! com
[Download RAW message or body]

That worked!  Thanks so much Ross. I really look forward to using this package.

-----Original Message-----
From: R-SIG-Finance [mailto:r-sig-finance-bounces@r-project.org] On Behalf Of Ross \
                Bennett
Sent: Thursday, January 18, 2018 12:26 PM
To: r-sig-finance@r-project.org
Subject: Re: [R-SIG-Finance] PortfolioAnalytics with turnover constraint

Roger,

The "assets" argument for the portfolio.spec function should be a vector.
You are passing in a data.frame object.

Try defining your wgts object as follows wgts <- c("CA" = .1, "CTAG" = .3, "DS" = .4, \
"EM" = .1, "EQM" = .1)

Best,
Ross


On Thu, Jan 18, 2018 at 11:06 AM, Bos, Roger <roger.bos@rothschild.com>
wrote:

> Dear All,
> 
> I am trying to use the PortfolioAnalytics package to run an
> optimization with a turnover constraint.  I didn't see any examples in
> the demos.  The example code below runs in I set the portfolio up using equal \
> weights: 
> init.portf <- portfolio.spec(assets=funds)
> 
> But if I instead try to use a named vector of initial weights, as
> described in the docs, as such:
> 
> init.portf <- portfolio.spec(assets=wgts) # Does not work with this
> line added
> 
> I get an error when I try to run the optimization:
> 
> 11:57:01  > minStdDev.DE <- optimize.portfolio(R=R,
> portfolio=init.portf, optimize_method="DEoptim", search_size = 2000)
> Show Traceback
> 
> Rerun with Debug
> Error in result[2, ] <- rep(1/length(seed), length(seed)) :
> incorrect number of subscripts on matrix
> 
> The portfolio.spec function did take in the initial weights properly,
> as shown using the print function:
> 
> 11:57:01  > print.default(init.portf)
> $assets
> CA CTAG  DS  EM EQM
> 1 0.1  0.3 0.4 0.1 0.1
> 
> Can anyone provide me with a working example using both initial
> weights and a turnover constraint?  I don't care it if uses DEoptim or
> some other optimizer, I just want to get started with something.
> 
> Thanks,
> 
> Roger
> 
> 
> library(PortfolioAnalytics)
> 
> data(edhec)
> R <- edhec[, 1:5]
> colnames(R) <- c("CA", "CTAG", "DS", "EM", "EQM") funds <- colnames(R)
> wgts <- data.frame("CA" = .1, "CTAG" = .3, "DS" = .4, "EM" = .1, "EQM"
> =
> .1)
> wgts
> 
> # Set up portfolio with objectives and constraints init.portf <-
> portfolio.spec(assets=funds) init.portf <- portfolio.spec(assets=wgts)
> # Does not work with this line added init.portf <-
> add.constraint(portfolio = init.portf, type="weight_sum", min_sum =
> .99, max_sum = 1.01) init.portf <- add.constraint(portfolio =
> init.portf, type="long_only") init.portf <- add.constraint(portfolio =
> init.portf, type="turnover", turnover_target = .2)
> 
> # Add an objective to minimize portfolio standard deviation init.portf
> <- add.objective(portfolio=init.portf, type="risk",
> name="StdDev")
> print.default(init.portf)
> 
> # Solve with DEoptim
> minStdDev.DE <- optimize.portfolio(R=R, portfolio=init.portf,
> optimize_method="DEoptim", search_size = 2000) minStdDev.DE
> 
> 
> 
> 
> 
> This message and any attachments are for the intended recipient's use
> only. This message may contain confidential, proprietary or legally
> privileged information. No right to confidential or privileged
> treatment of this message is waived or lost by an error in transmission.
> If you have received this message in error, please immediately notify
> the sender by e-mail, delete the message, any attachments and all
> copies from your system and destroy any hard copies. You must not,
> directly or indirectly, use, disclose, distribute, print or copy any
> part of this message or any attachments if you are not the intended recipient.
> 
> 
> 
> 
> _______________________________________________
> R-SIG-Finance@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R
> questions should go.

[[alternative HTML version deleted]]

_______________________________________________
R-SIG-Finance@r-project.org mailing list \
                https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.



This message and any attachments are for the intended recipient's use only. This \
message may contain confidential, proprietary or legally privileged information. No \
right to confidential or privileged treatment of this message is waived or lost by an \
error in transmission. If you have received this message in error, please immediately \
notify the sender by e-mail, delete the message, any attachments and all copies from \
your system and destroy any hard copies. You must not, directly or indirectly, use, \
disclose, distribute, print or copy any part of this message or any attachments if \
you are not the intended recipient.




_______________________________________________
R-SIG-Finance@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic