Products & Services Solutions Academia Support User Community Company

Learn more about Financial Derivatives Toolbox   

hedgeslf - Self-financing hedge

Syntax

[PortSens, PortValue, PortHolds] = hedgeslf(Sensitivities,
Price, CurrentHolds, FixedInd, ConSet)

Arguments

Sensitivities

Number of instruments (NINST) by number of sensitivities (NSENS) matrix of dollar sensitivities of each instrument. Each row represents a different instrument. Each column represents a different sensitivity.

Price

NINST-by-1 vector of instrument unit prices.

CurrentHolds

NINST-by-1 vector of contracts allocated in each instrument.

FixedInd

(Optional) Empty or number of fixed instruments (NFIXED)-by-1 vector of indices of instruments to hold fixed. The default is FixedInd = 1; the holdings in the first instrument are held fixed. If NFIXED instruments will not be changed, enter all their locations in the portfolio in a vector. If no instruments are to be held fixed, enter FixedInd = [].

ConSet

(Optional) Number of constraints (NCONS)-by-NINST matrix of additional conditions on the portfolio reallocations. An eligible NINST-by-1 vector of contract holdings, PortHolds, satisfies all the inequalities
A*PortHolds <= b, where
A = ConSet(:,1:end-1) and b = ConSet(:,end).

Description

[PortSens, PortValue, PortHolds] = hedgeslf(Sensitivities, Price, CurrentHolds, FixedInd, ConSet) allocates a self-financing hedge among a collection of instruments. hedgeslf finds the reallocation in a portfolio of financial instruments that hedges the portfolio against market moves and that is closest to being self-financing (maintaining constant portfolio value). By default the first instrument entered is hedged with the other instruments.

PortSens is a 1-by-NSENS vector of portfolio dollar sensitivities. When a perfect hedge exists, PortSens is zeros. Otherwise, the best possible hedge is chosen.

PortValue is the total portfolio value (scalar). When a perfectly self-financing hedge exists, PortValue is equal to dot(Price, CurrentWts) of the initial portfolio.

PortHolds is an NINST-by-1 vector of contracts allocated to each instrument. This is the reallocated portfolio.

Examples

Example 1. Perfect sensitivity cannot be reached.

Sens = [0.44  0.32; 1.0 0.0];
Price = [1.2; 1.0];
W0 = [1; 1];
[PortSens, PortValue, PortHolds]= hedgeslf(Sens, Price, W0)

PortSens =

    0.0000
    0.3200

PortValue =

    0.7600

PortHolds =

    1.0000
   -0.4400

Example 2. Constraints are in conflict.

Sens = [0.44  0.32; 1.0 0.0];
Price = [1.2; 1.0];
W0 = [1; 1];
ConSet = pcalims([2 2])

% O.K. if nothing fixed.

[PortSens, PortValue, PortHolds]= hedgeslf(Sens, Price, W0,... 
[], ConSet)

PortSens =

    2.8800
    0.6400

PortValue =

    4.4000

PortHolds =

     2
     2

% W0(1) is not greater than 2.

[PortSens, PortValue, PortHolds] = hedgeslf(Sens, Price, W0,... 
1, ConSet)

??? Error using ==> hedgeslf
Overly restrictive allocation constraints implied by ConSet and 
by fixing the weight of instruments(s): 1

Example 3. Constraints are impossible to meet.

Sens = [0.44  0.32; 1.0 0.0];
Price = [1.2; 1.0];
W0 = [1; 1];
ConSet = pcalims([2 2],[1 1]);

[PortSens, PortValue, PortHolds] = hedgeslf(Sens, Price, W0,... 
[],ConSet)

??? Error using ==> hedgeslf
Overly restrictive allocation constraints specified in ConSet

See Also

hedgeopt

lsqlin in Optimization Toolbox documentation

portcons in Financial Toolbox documentation

  


Free Interactive Computational Finance CD

View demos and recorded presentations led by industry experts.

Now On Demand
Network with industry peers and learn the latest applications of the leading software product for computational finance.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS