net.finmath.montecarlo.interestrate.models.covariance.TermStructureFactorLoadingsModel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of finmath-lib Show documentation
Show all versions of finmath-lib Show documentation
finmath lib is a Mathematical Finance Library in Java.
It provides algorithms and methodologies related to mathematical finance.
/*
* (c) Copyright Christian P. Fries, Germany. Contact: [email protected].
*
* Created on 24.12.2016
*/
package net.finmath.montecarlo.interestrate.models.covariance;
import net.finmath.montecarlo.interestrate.TermStructureModel;
import net.finmath.stochastic.RandomVariable;
import net.finmath.time.TimeDiscretization;
/**
* A base class and interface description for the instantaneous covariance of
* an forward rate interest rate model.
*
* @author Christian Fries
* @version 1.0
*/
public interface TermStructureFactorLoadingsModel {
/**
* Return the factor loading for a given time and a term structure period.
*
* The factor loading is the vector fi such that the scalar product
* fjfk = fj,1fk,1 + ... + fj,mfk,m
* is the instantaneous covariance of the component j and k.
*
* With respect to simulation time t, this method uses a piece wise constant interpolation, i.e.,
* it calculates t_i such that t_i is the largest point in getTimeDiscretization
* such that t_i ≤ t .
*
* The component here, it given via a double T which may be associated with the LIBOR fixing date.
* With respect to component time T, this method uses a piece wise constant interpolation, i.e.,
* it calculates T_j such that T_j is the largest point in getTimeDiscretization
* such that T_j ≤ T .
*
* @param time The time t at which factor loading is requested.
* @param periodStart Period start of the component.
* @param periodEnd Period end of the component.
* @param periodDiscretization The period discretization associated with the realizationAtTimeIndex
* @param realizationAtTimeIndex The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).
* @param model The term structure model.
* @return The factor loading fi(t).
*/
RandomVariable[] getFactorLoading(double time, double periodStart, double periodEnd,
TimeDiscretization periodDiscretization, RandomVariable[] realizationAtTimeIndex,
TermStructureModel model);
/**
* @return the numberOfFactors
*/
int getNumberOfFactors();
}