[R-SIG-Finance] Problem with solver solveRquadprog in fPortfolio

Joshua Ulrich josh.m.ulrich at gmail.com
Sat Apr 17 14:41:11 CEST 2010


On Sat, Apr 17, 2010 at 7:33 AM, Peter Keller <podvalov at gmx.net> wrote:
> Yes, it almost works, and I had "quadprog" already installed.
>
> Unfortunately, after calling in my example (top post):
>
> ...
> Spec <- portfolioSpec()
> setSolver(Spec) <- "solve.QP"
> frontier <- portfolioFrontier(djiData.ret, Spec)
>
> I get now the error message:
>
> Error in rep(0, q) : invalid 'times' argument
>
> Tricky thing... Any idea what is the reason for that and how to solve it? Or
> better wait for new release of fPortfolio?
>

Rather than waiting for the CRAN release, could you use the
development version on R-forge?
It's easy to install via:
install.packages("fPortfolio",repos="http://r-forge.r-project.org")

If you can't do that, you could always revert back to the previous
version of quadprog that worked with the current version of fPortfolio
on CRAN.

Best,
--
Joshua Ulrich
FOSS Trading: www.fosstrading.com



> Kind regards,
>
> Peter
>
> Sarbo wrote:
>>
>> Try this:
>>
>>    library(quadprog)
>>
>>    Spec <- portfolioSpec()
>>    setSolver(Spec) <- 'solve.QP'
>>
>> "solve.QP " is the solver used by the "quadprog" package, but I suspect
>> you need to have the package loaded already in order for this to work.
>> However, since quadprog is part of the base R installation anyway, I doubt
>> you'll need to install it.
>>
>> On Sat, 2010-04-17 at 15:08 +0300, Peter Keller wrote:
>>>
>>> Thanks for the suggestion. I already tried to change the solver in
>>> fPortfolio, but I was not yet successful.
>>>
>>> As far as I know, you can change the solver in fPortfolio as follows:
>>>
>>> ...
>>> Spec <- portfolioSpec()
>>> setSolver(Spec) = "solveRquadprog"
>>> ...
>>>
>>> But this exactly leads to the Fortran error (because it's using package
>>> "Rglpk"?)... So, how do I change the solver with setSolver(Spec) to use
>>> package "quadprog" correctly?
>>>
>>> Unfortunately I did not find the correct function call in the fPortfolio
>>> eBook...
>>>
>>> Thanks for your help in advance,
>>>
>>> Peter
>>>
>>> Sarbo wrote:
>>> > In the meantime, why not use the "quadprog" package instead? It's
>>> > pretty
>>> > much the same thing, you just have to be a little more careful in
>>> > setting out the optimisation problem.
>>> > > On Sat, 2010-04-17 at 14:33 +0300, Peter Keller wrote:
>>> > >> Yohan,
>>> >>
>>> >> First of all thank you very much for your fast reply and
>>> >> clarification. >> I thought it could be an interface error, but of course I
>>> >> was not sure.
>>> >>
>>> >> Do you have already a rough idea when the new version of fPortfolio
>>> >> will >> be released?
>>> >>
>>> >> Have a nice weekend and best regards,
>>> >>
>>> >> Peter
>>> >>
>>> >> Yohan Chalabi wrote:
>>> >>>>>>> "PK" == Peter Keller <podvalov at gmx.net <mailto:podvalov at gmx.net>>
>>> >>>>>>> on Sat, 17 Apr 2010 14:07:29 +0300
>>> >>>    PK> Hi there,
>>> >>>    PK>
>>> >>>    PK> I have a serious problem with solver solveRquadprog in
>>> >>>    PK> fPortfolio.
>>> >>>    PK> Unfortunately, solveRquadprog is the standard solver in
>>> >>>    PK> fPortfolio and
>>> >>>    PK> pretty essential.
>>> >>>    PK>
>>> >>>    PK> How to replicate the problem on my PC:
>>> >>>    PK>
>>> >>>    PK> library(fPortfolio)
>>> >>>    PK> library(fEcofin)
>>> >>>    PK>
>>> >>>    PK> library(Rsymphony)
>>> >>>    PK> library(lpSolveAPI)
>>> >>>    PK>
>>> >>>    PK> djiData = as.timeSeries(DowJones30)
>>> >>>    PK> djiData.ret <- 100 * returns(djiData)
>>> >>>    PK> frontier <- portfolioFrontier(djiData.ret)
>>> >>>    PK>
>>> >>>    PK> I get then the error message:
>>> >>>    PK>
>>> >>>    PK> Error in .Fortran("qpgen2", as.double(Dmat), dvec =
>>> >>>    PK> as.double(dvec),
>>> >>>    PK> as.integer(n), :
>>> >>>    PK> Incorrect number of arguments (16), expecting 17 for qpgen2
>>> >>>    PK>
>>> >>>    PK> I’ve installed R version 2.10.1 on Windows 7 (32 bit) with
>>> >>>    PK> updated CTV
>>> >>>    PK> Finance.
>>> >>>    PK>
>>> >>>    PK> Interestingly, this problem only appeared after a
>>> >>>    PK> while. Initially,
>>> >>>    PK> everything worked fine, but suddenly, without doing something
>>> >>>    PK> special,
>>> >>>    PK> this error appeared. I already completely uninstalled R,
>>> >>>    PK> rebooted the PC
>>> >>>    PK> and re-installed R (including updated CTV Finance), but it
>>> >>>    PK> did not help
>>> >>>    PK> at all.
>>> >>>    PK>
>>> >>>    PK> I highly would appreciate any help. I already spent quite a
>>> >>>    PK> lot of time
>>> >>>    PK> to find a solution, but there is not a lot of help available.
>>> >>>    PK>
>>> >>>    PK> Best regards,
>>> >>>    PK>
>>> >>>    PK> Peter Keller
>>> >>>
>>> >>>
>>> >>> Hi Peter,
>>> >>>
>>> >>> The mentioned error is due to a change in the new version of
>>> >>> quadprog package and a direct call of the Fortran routine in
>>> >>> fPortfolio.
>>> >>>
>>> >>> We have already updated the devel version of fPortfolio on R-forge.
>>> >>> As
>>> >>> soon as we have run all test, we will upload a new version of
>>> >>> fPortfolio to CRAN.
>>> >>>
>>> >>> You can either wait until the new pkg is on CRAN or compile it from
>>> >>> source and get the devel code from R-forge. More info >>>
>>> >>> http://r-forge.r-project.org/scm/?group_id=156
>>> >>>
>>> >>> Regards,
>>> >>> Yohan
>>> >>>
>>> >>>
>>> >> _______________________________________________
>>> >> R-SIG-Finance at stat.math.ethz.ch
>>> >> <mailto:R-SIG-Finance at stat.math.ethz.ch> 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 at stat.math.ethz.ch
>>> > <mailto:R-SIG-Finance at stat.math.ethz.ch> 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.
>>>
>>
>
> _______________________________________________
> R-SIG-Finance at stat.math.ethz.ch 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.



More information about the R-SIG-Finance mailing list