| Financial Derivatives Toolbox | ![]() |
Syntax
[PortSens, PortValue, PortHolds] = hedgeslf(Sensitivities, Price, CurrentHolds, FixedInd, ConSet)
Arguments
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 hedge possible is chosen.
PortValue is the total portfolio value (scalar). When a perfectly self-financing hedge exists, PortValue is equal to the value, 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.
PortHolds(FixedInd) = CurrentHolds(FixedInd) are appended to any constraints passed in ConSet. Pass FixedInd = [] to specify all constraints through ConSet.portcons are inappropriate, since they require the sum of all holdings to be positive and equal to one.hedgeself first tries to find the allocations of the portfolio that make it closest to being self-financing, while reducing the sensitivities to 0. If no solution is found, it finds the allocations that minimize the sensitivities. If the resulting portfolio is self-financing, PortValue is equal to the value of the original portfolio.
Examples
Example 1. Perfect Sensitivity Unreachable.
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. Conflicting Constraints.
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. Impossible Constraints.
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
lsqlin in the Optimization Toolbox User's Guide
portcons in the Financial Toolbox User's Guide
| hedgeopt | hjmprice | ![]() |