[R-SIG-Finance] fPortfolio and leverage
Brian G. Peterson
brian at braverock.com
Thu Aug 21 19:21:10 CEST 2008
then I would recommend downloading the source function file and changing
the code directly, or changing the constraint inside the debugger. The
debugger is interactive, so you could set sum(w_i)=2 or whatever you
need from inside the debugger.
Hopefully Yohan or Diethelm will chime in here and help out.
giuseppe1.milicia at hsbcib.com wrote:
> I don't think you can remove the target alpha. When you create a portfolio
> spec, it's there by default.
> I tried the constraints you mentioned:
> frontier = portfolioFrontier(Data, Spec,
> frontier = portfolioFrontier(Data, Spec,
> which puts the constraints on the single weights.
> In the second case there is no solution. In the first again all the weights
> add to 1
> I debugged the whole thing and it seems that .setBoxGroupConstraints fixes
> a budget constraints forcing the weights to add up to 1. It seems that the
> constratin sum(w_i)=1 is added automatically and cannot be removed.
> I guess I should really set up the QP problem myself if I want to
> experiment with the sort of thing... :(
> // Giuseppe
> "Brian G.
> <brian at braverock. To
> com> Giuseppe1 MILICIA/IBEU/HSBC at HSBC
> 21/08/2008 16:16 r-sig-finance at stat.math.ethz.ch
> Mail Size: 7779 Subject
> Re: [R-SIG-Finance] fPortfolio and
> Investment Banking Europe - IBEU
> The Chekhlov, Uryasev, and Zabarankin paper you reference can be found
> for anyone else who is playing along.
> Note how on page 8 of the paper, which you quote, they set limits on the
> total weight range to develop a particular leverage model, but not on
> the alpha or performance of the model.
> So, to your original example:
> # Load Data and Convert to timeSeries Object:
> Data = as.timeSeries(data(smallcap.ts))
> Data = Data[, c("BKE", "GG", "GYMB", "KRON")]
> # Set Default Specifications:
> Spec = portfolioSpec()
> setTargetAlpha(Spec) = 0.6
> # Allow for unlimiConstraints = "Short"ted Short Selling:
> Constraints = "Short"
> # Compute Short Selling Minimum Variance Portfolio
> frontier = portfolioFrontier(Data, Spec, Constraint)
> #I seem to get always weights adding up to 1, no matter what I do...
> #I tried:
> frontier = portfolioFrontier(Data, Spec, "maxsumW[1:22]=2")
> #Weights add up to 1 again.
> frontier = portfolioFrontier(Data, Spec, "minsumW[1:22]=2")
> frontier = portfolioFrontier(Data, Spec, "minsumW[1:22]=0.1")
> # The last two calls give back no portfolio. I wonder why?
> # Is it not possible to be leveraged/under invested?
> This suggests that you should remove your setTargetAlpha constraint, and
> see what the optimizer does only with constraints of maxsumW[1:22]=2
> *and* minsumW[1:22]=0.1, which I believe can be specified in your
> portfolioSpec() call.
> - Brian
> giuseppe1.milicia at hsbcib.com wrote:
>> You are right. But I was thinking of a slighly different setup for the
>> problem. Say you want to leverage at different levels for each of the
>> assets, with only a global risk target as goal. I thought that the
>> way out was to leave that to the portfolio optimizer. My assets are not
>> equities and I assume they are traded on margin.
>> I believe that approach was taken, for instance, in "Portfolio
>> with drawdown constraints" Checkhlov, Uryasec and Zabrankin.
>> From the paper:
>> "As for the technological constraints (8), we chose x_min = 0.2 and x_max
>> =0.8 . This choice was
>> dictated by the need to have the resultant margin-to-equity ratio in the
>> account within admissible
>> bounds, which are specific for a particular portfolio. In this futures
>> trading setup, these
>> constraints are analogous to the “fully-invested” condition from
>> theory. They define bounds on the leverage of the strategy and make an
>> efficient frontier to be
>> concave. If all positions are equal to the lower bound 0.2, then the sum
>> the positions equals
>> 0.2 ×32 = 6.4 and the minimal leverage equals 6.4. However, if all
>> positions are equal to the
>> upper bound 0.8, then the sum of the positions equals 0.8× 32 = 25.6 and
>> the maximal leverage
>> equals 25.6. The optimal allocation of weights picks both the optimal
>> leverage and proportions
>> between instruments."
>> // Giuseppe
>>> Brian G. Peterson wrote:
>>> your example can still account for leverage.
>>> the w vector can be interpreted as percentage allocations from your
>>> total dollars to invest.
>>> Your leverage is unconstrained from the optimization. Whether you have
>>> 100 euros to invest or 200 million euros to invest, you will still apply
>>> the weights from the output of the optimization.
>>> - Brian
>>>> giuseppe1.milicia at hsbcib.com wrote:
>>>> I'm playing a bit with fPortfolio and looking at the examples and unit
>>>> tests, it seems that the weights returned always sum up to 1.
>>>> I was wondering whether there is a way to have a leveraged portfolio
>>>> weights summing up to W > 1. Say I target a certain risk level R and I
>>>> want the weights to be totally unconstrained. From the docs I see that
>>>> Constraints = "Short" should given me unconstrained weights:
>>>> "Short": This selection defines the case of unlimited short selling.
>>>> each weight may range
>>>> between -Inf and Inf. Consequently, there are no group constraints.
>>>> budget constraints are
>>>> not included in the portfolio optimization.
> HSBC Bank plc may be solicited in the course of its placement efforts for a
> new issue, by investment clients of the firm for whom the Bank as a firm
> already provides other services. It may equally decide to allocate to its
> own proprietary book or with an associate of HSBC Group. This represents a
> potential conflict of interest. HSBC Bank plc has internal arrangements
> designed to ensure that the firm would give unbiased and full advice to the
> corporate finance client about the valuation and pricing of the offering as
> well as internal systems, controls and procedures to identify and manage
> conflicts of interest.
> HSBC Bank plc
> Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom
> Registered in England - Number 14259
> Authorised and regulated by the Financial Services Authority.
> SAVE PAPER - THINK BEFORE YOU PRINT!
> This transmission has been issued by a member of the HSBC Group
> "HSBC" for the information of the addressee only and should not be
> reproduced and/or distributed to any other person. Each page
> attached hereto must be read in conjunction with any disclaimer
> which forms part of it. Unless otherwise stated, this transmission
> is neither an offer nor the solicitation of an offer to sell or
> purchase any investment. Its contents are based on information
> obtained from sources believed to be reliable but HSBC makes no
> representation and accepts no responsibility or liability as to its
> completeness or accuracy.
More information about the R-SIG-Finance