net.finmath.montecarlo.interestrate.products
Class Portfolio
- java.lang.Object
-
- net.finmath.montecarlo.AbstractMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.AbstractLIBORMonteCarloProduct
-
- net.finmath.montecarlo.interestrate.products.components.AbstractProductComponent
-
- net.finmath.montecarlo.interestrate.products.Portfolio
-
- All Implemented Interfaces:
- java.io.Serializable, ProductInterface
public class Portfolio extends AbstractProductComponent
Implements the pricing of a portfolio of AbstractLIBORMonteCarloProduct products under a AbstractLIBORMarketModel. The products can be scaled by weights. The value of the portfolio is that of \( \sum_{i=0}^{n} weights\[i\] \cdot products\[i\] \text{.} \) Note: Currently the products have to be of the same currency.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description Portfolio(AbstractLIBORMonteCarloProduct[] products, double[] weights)Creates a portfolio consisting of a set of products and a weights.Portfolio(AbstractLIBORMonteCarloProduct product, double weight)Creates a portfolio consisting of a single product and a weight.Portfolio(java.lang.String currency, AbstractLIBORMonteCarloProduct[] products, double[] weights)Creates a portfolio consisting of a set of products and a weights.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.lang.StringgetCurrency()Returns the currency string of this notional.AbstractLIBORMonteCarloProduct[]getProducts()RandomVariableInterfacegetValue(double evaluationTime, LIBORModelMonteCarloSimulationInterface model)This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.double[]getWeights()java.util.Set<java.lang.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
getValues
-
Methods inherited from class net.finmath.montecarlo.interestrate.products.AbstractLIBORMonteCarloProduct
getFactorDrift, getValue, getValueForModifiedData
-
Methods inherited from class net.finmath.montecarlo.AbstractMonteCarloProduct
getValue, getValue, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, toString
-
-
-
-
Constructor Detail
-
Portfolio
public Portfolio(AbstractLIBORMonteCarloProduct product, double weight)
Creates a portfolio consisting of a single product and a weight. The currency of this portfolio is the currency of the product.- Parameters:
product- A product.weight- A weight.
-
Portfolio
public Portfolio(AbstractLIBORMonteCarloProduct[] products, double[] weights)
Creates a portfolio consisting of a set of products and a weights. Note: Currently the products have to be of the same currency.- Parameters:
products- An array of products.weights- An array of weights (having the same lengths as the array of products).
-
Portfolio
public Portfolio(java.lang.String currency, AbstractLIBORMonteCarloProduct[] products, double[] weights)Creates a portfolio consisting of a set of products and a weights. Note: Currently the products have to be of the same currency, namely the one provided.- Parameters:
currency- The currency of the value of this portfolio when callinggetValue.products- An array of products.weights- An array of weights (having the same lengths as the array of products).
-
-
Method Detail
-
getCurrency
public java.lang.String getCurrency()
Description copied from class:AbstractMonteCarloProductReturns the currency string of this notional.- Overrides:
getCurrencyin classAbstractMonteCarloProduct- Returns:
- the currency
-
queryUnderlyings
public java.util.Set<java.lang.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 RandomVariableInterface getValue(double evaluationTime, LIBORModelMonteCarloSimulationInterface model) throws CalculationException
This 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 classAbstractLIBORMonteCarloProduct- 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.
-
getProducts
public AbstractLIBORMonteCarloProduct[] getProducts()
- Returns:
- the products
-
getWeights
public double[] getWeights()
- Returns:
- the weights
-
-
DataMelt 3.0 © DataMelt by jWork.ORG