- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.AbstractTermStructureMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.components.AbstractProductComponent
-
- net.finmath.montecarlo.interestrate.models.FundingCapacity
-
- All Implemented Interfaces:
Serializable,Product,TermStructureMonteCarloProduct,MonteCarloProduct
public class FundingCapacity extends AbstractProductComponent
Models the notional dependent survival probability and default compensation of a funding capacity (funding provider) using a piecewise constant function for the instantaneous survival probability. The piecewise constant instantaneous survival probability has to be provided by a SortedMap<Double, Double> instantaneouseSurvivalProbability. This map defines the mapping \( x_{i} \mapsto q_{i} \). Defining \[ q(x) = q_{i} \text{\ for\ } x \in (x_{i-1}-x_{i}] \] thegetDefaultFactorsmethod of this class calculates for a given argument \( (t,x) \):- the effective survival probability
- \[ \frac{1}{x} \int_{a}^{a+x} q(\xi) \mathrm{d}\xi \], where a denotes the current level of fund provided by this capacity, and
- the effective default compensation factor R, such that
- \[ \frac{1}{x} \int_{a}^{a+R x} q(\xi) \mathrm{d}\xi \ = \ 1 \],
- Author:
- Christian Fries
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classFundingCapacity.DefaultFactors
-
Constructor Summary
Constructors Constructor Description FundingCapacity(String currency, RandomVariable intialCapacity, SortedMap<Double,Double> instantaneouseSurvivalProbability)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RandomVariablegetCurrentFundingLevel()RandomVariablegetDefaultCompensationForRequiredFunding(double time, RandomVariable fundingRequirement)FundingCapacity.DefaultFactorsgetDefaultFactors(double time, RandomVariable fundingRequirement)RandomVariablegetSurvivalProbabilityRequiredFunding(double time, RandomVariable fundingRequirement)RandomVariablegetValue(double evaluationTime, TermStructureMonteCarloSimulationModel model)This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.Set<String>queryUnderlyings()Returns a set of underlying names referenced by this product component (i.e., required for valuation) or null if none.-
Methods inherited from class net.finmath.montecarlo.interestrate.products.components.AbstractProductComponent
getExecutor, getValues
-
Methods inherited from class net.finmath.montecarlo.interestrate.products.AbstractTermStructureMonteCarloProduct
getFactorDrift, getValue, getValueForModifiedData
-
Methods inherited from class net.finmath.montecarlo.AbstractMonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.finmath.montecarlo.MonteCarloProduct
getCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData
-
-
-
-
Constructor Detail
-
FundingCapacity
public FundingCapacity(String currency, RandomVariable intialCapacity, SortedMap<Double,Double> instantaneouseSurvivalProbability)
-
-
Method Detail
-
getDefaultFactors
public FundingCapacity.DefaultFactors getDefaultFactors(double time, RandomVariable fundingRequirement)
-
getDefaultCompensationForRequiredFunding
public RandomVariable getDefaultCompensationForRequiredFunding(double time, RandomVariable fundingRequirement)
-
getSurvivalProbabilityRequiredFunding
public RandomVariable getSurvivalProbabilityRequiredFunding(double time, RandomVariable fundingRequirement)
-
getCurrentFundingLevel
public RandomVariable getCurrentFundingLevel()
-
queryUnderlyings
public Set<String> queryUnderlyings()
Description copied from class:AbstractProductComponentReturns a set of underlying names referenced by this product component (i.e., required for valuation) or null if none.- Specified by:
queryUnderlyingsin classAbstractProductComponent- Returns:
- A set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
-
getValue
public RandomVariable getValue(double evaluationTime, TermStructureMonteCarloSimulationModel model) throws CalculationException
Description copied from interface:TermStructureMonteCarloProductThis method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime. Note: For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. Cashflows prior evaluationTime are not considered.- Specified by:
getValuein interfaceTermStructureMonteCarloProduct- Specified by:
getValuein classAbstractTermStructureMonteCarloProduct- Parameters:
evaluationTime- The time on which this products value should be observed.model- The model used to price the product.- Returns:
- The random variable representing the value of the product discounted to evaluation time
- Throws:
CalculationException- Thrown if the valuation fails, specific cause may be available via thecause()method.
-
-