[R-SIG-Finance] fPortfolio and leverage

giuseppe1.milicia at hsbcib.com giuseppe1.milicia at hsbcib.com
Thu Aug 21 19:12:22 CEST 2008


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:
> Brian,
> 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
> Sharpe-Markowitz
> 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."
> Cheers,
> // 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.
>> Regards,
>>    - Brian
>>> giuseppe1.milicia at hsbcib.com wrote:
>>> Guys,
>>> 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.


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 mailing list