FlatYieldCurve.java
package net.finmath.equities.marketdata;
import java.time.LocalDate;
import net.finmath.time.daycount.DayCountConvention;
/**
* Class to provide methods of a flat yield curve.
*
* @author Andreas Grotz
*/
public class FlatYieldCurve extends YieldCurve {
private static final int LONG_TIME = 100;
public FlatYieldCurve(
final LocalDate curveDate,
final double rate,
final DayCountConvention dayCounter) {
super(
"NONE",
curveDate,
dayCounter,
new LocalDate[] { curveDate.plusYears(LONG_TIME) },
new double[] {
Math.exp(
-rate * dayCounter.getDaycountFraction(
curveDate,
curveDate.plusYears(LONG_TIME)))
});
}
@Override
public FlatYieldCurve rollToDate(LocalDate date) {
assert date.isAfter(getBaseCurve().getReferenceDate()) : "can only roll to future dates";
return new FlatYieldCurve(
date,
getRate(getBaseCurve().getReferenceDate().plusYears(LONG_TIME)), getDayCounter());
}
}