Class ForwardRateAgreement
- java.lang.Object
-
- org.jquantlib.util.LazyObject
-
- org.jquantlib.instruments.Instrument
-
- org.jquantlib.instruments.Forward
-
- org.jquantlib.instruments.ForwardRateAgreement
-
- All Implemented Interfaces:
- Observable, Observer
public class ForwardRateAgreement extends Forward
Forward rate agreement (FRA) class1. Unlike the forward contract conventions on carryable financial assets (stocks, bonds, commodities), the valueDate for a FRA is taken to be the day when the forward loan or deposit begins and when full settlement takes place (based on the NPV of the contract on that date). maturityDate is the date when the forward loan or deposit ends. In fact, the FRA settles and expires on the valueDate, not on the (later) maturityDate. It follows that (maturityDate - valueDate) is the tenor/term of the underlying loan or deposit
2. Choose position type = Long for an "FRA purchase" (future long loan, short deposit [borrower])
3. Choose position type = Short for an "FRA sale" (future short loan, long deposit [lender])
4. If strike is given in the constructor, can calculate the NPV of the contract via NPV().
5. If forward rate is desired/unknown, it can be obtained via forwardRate(). In this case, the strike variable in the constructor is irrelevant and will be ignored.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jquantlib.instruments.Instrument
Instrument.Arguments, Instrument.Results, Instrument.ResultsImpl
-
-
Constructor Summary
Constructors Constructor and Description ForwardRateAgreement(Date valueDate, Date maturityDate, Position type, double strikeForwardRate, double notionalAmount, IborIndex index)ForwardRateAgreement(Date valueDate, Date maturityDate, Position type, double strikeForwardRate, double notionalAmount, IborIndex index, Handle<YieldTermStructure> discountCurve)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description InterestRateforwardRate()booleanisExpired()voidperformCalculations()This method performs the actual calculations and set any needed results.DatesettlementDate()doublespotIncome(Handle<YieldTermStructure> incomeDiscountCurve)doublespotValue()-
Methods inherited from class org.jquantlib.instruments.Forward
businessDayConvention, calendar, dayCounter, discountCurve, forwardValue, impliedYield, incomeDiscountCurve
-
Methods inherited from class org.jquantlib.instruments.Instrument
errorEstimate, NPV, setPricingEngine
-
Methods inherited from class org.jquantlib.util.LazyObject
addObserver, countObservers, deleteObserver, deleteObservers, freeze, getObservers, notifyObservers, notifyObservers, recalculate, unfreeze, update
-
-
-
-
Constructor Detail
-
ForwardRateAgreement
public ForwardRateAgreement(Date valueDate, Date maturityDate, Position type, double strikeForwardRate, double notionalAmount, IborIndex index)
-
-
Method Detail
-
settlementDate
public Date settlementDate()
- Overrides:
settlementDatein classForward
-
isExpired
public boolean isExpired()
-
spotIncome
public double spotIncome(Handle<YieldTermStructure> incomeDiscountCurve)
- Specified by:
spotIncomein classForward
-
forwardRate
public InterestRate forwardRate()
-
performCalculations
public void performCalculations()
Description copied from class:InstrumentThis method performs the actual calculations and set any needed results.- Overrides:
performCalculationsin classForward- See Also:
LazyObject.performCalculations()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG