Financial Derivatives Toolbox | ![]() ![]() |
Syntax
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 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.
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
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
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
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
lsqlin
in the Optimization Toolbox User's Guide
portcons
in the Financial Toolbox User's Guide
![]() | hedgeopt | hjmprice | ![]() |