public class Swap extends AbstractAnalyticProduct implements AnalyticProduct, DescribedProduct<InterestRateSwapProductDescriptor>, Serializable
TimeDiscretization.
The swap is just the composition of two SwapLegs, namely the
receiver leg and the payer leg. The value of the swap is the value of the receiver leg minus the value of the payer leg.| Constructor and Description |
|---|
Swap(AnalyticProduct legReceiver,
AnalyticProduct legPayer)
Create a swap which values as
legReceiver - legPayer. |
Swap(Schedule scheduleReceiveLeg,
double spreadReceive,
String discountCurveReceiveName,
Schedule schedulePayLeg,
String forwardCurvePayName,
String discountCurvePayName)
Creates a swap with notional exchange.
|
Swap(Schedule scheduleReceiveLeg,
String forwardCurveReceiveName,
double spreadReceive,
String discountCurveReceiveName,
Schedule schedulePayLeg,
String forwardCurvePayName,
double spreadPay,
String discountCurvePayName)
Creates a swap with notional exchange.
|
Swap(Schedule scheduleReceiveLeg,
String forwardCurveReceiveName,
double spreadReceive,
String discountCurveReceiveName,
Schedule schedulePayLeg,
String forwardCurvePayName,
double spreadPay,
String discountCurvePayName,
boolean isNotionalExchanged)
Creates a swap with notional exchange.
|
| Modifier and Type | Method and Description |
|---|---|
InterestRateSwapProductDescriptor |
getDescriptor()
Return a product descriptor representing this product.
|
static double |
getForwardSwapRate(Schedule fixSchedule,
Schedule floatSchedule,
ForwardCurve forwardCurve) |
static double |
getForwardSwapRate(Schedule fixSchedule,
Schedule floatSchedule,
ForwardCurve forwardCurve,
AnalyticModel model) |
static double |
getForwardSwapRate(TimeDiscretization fixTenor,
TimeDiscretization floatTenor,
ForwardCurve forwardCurve) |
static double |
getForwardSwapRate(TimeDiscretization fixTenor,
TimeDiscretization floatTenor,
ForwardCurve forwardCurve,
DiscountCurve discountCurve) |
AnalyticProduct |
getLegPayer()
Return the payer leg of the swap, i.e. the leg who's value is subtracted from the swap value.
|
AnalyticProduct |
getLegReceiver()
Return the receiver leg of the swap, i.e. the leg who's value is added to the swap value.
|
double |
getValue(double evaluationTime,
AnalyticModel model)
Return the valuation of the product using the given model.
|
String |
toString() |
getValue, getValuepublic Swap(AnalyticProduct legReceiver, AnalyticProduct legPayer)
legReceiver - legPayer.legReceiver - The receiver leg.legPayer - The payler leg.public Swap(Schedule scheduleReceiveLeg, String forwardCurveReceiveName, double spreadReceive, String discountCurveReceiveName, Schedule schedulePayLeg, String forwardCurvePayName, double spreadPay, String discountCurvePayName, boolean isNotionalExchanged)
scheduleReceiveLeg - ScheduleFromPeriods of the receiver leg.forwardCurveReceiveName - Name of the forward curve, leave empty if this is a fix leg.spreadReceive - Fixed spread on the forward or fix rate.discountCurveReceiveName - Name of the discount curve for the receiver leg.schedulePayLeg - ScheduleFromPeriods of the payer leg.forwardCurvePayName - Name of the forward curve, leave empty if this is a fix leg.spreadPay - Fixed spread on the forward or fix rate.discountCurvePayName - Name of the discount curve for the payer leg.isNotionalExchanged - If true, both leg will pay notional at the beginning of each swap period and receive notional at the end of the swap period. Note that the cash flow date for the notional is periodStart and periodEnd (not fixingDate and paymentDate).public Swap(Schedule scheduleReceiveLeg, String forwardCurveReceiveName, double spreadReceive, String discountCurveReceiveName, Schedule schedulePayLeg, String forwardCurvePayName, double spreadPay, String discountCurvePayName)
scheduleReceiveLeg - ScheduleFromPeriods of the receiver leg.forwardCurveReceiveName - Name of the forward curve, leave empty if this is a fix leg.spreadReceive - Fixed spread on the forward or fix rate.discountCurveReceiveName - Name of the discount curve for the receiver leg.schedulePayLeg - ScheduleFromPeriods of the payer leg.forwardCurvePayName - Name of the forward curve, leave empty if this is a fix leg.spreadPay - Fixed spread on the forward or fix rate.discountCurvePayName - Name of the discount curve for the payer leg.public Swap(Schedule scheduleReceiveLeg, double spreadReceive, String discountCurveReceiveName, Schedule schedulePayLeg, String forwardCurvePayName, String discountCurvePayName)
scheduleReceiveLeg - ScheduleFromPeriods of the receiver leg.spreadReceive - Fixed spread on the forward or fix rate.discountCurveReceiveName - Name of the discount curve for the receiver leg.schedulePayLeg - ScheduleFromPeriods of the payer leg.forwardCurvePayName - Name of the forward curve, leave empty if this is a fix leg.discountCurvePayName - Name of the discount curve for the payer leg.public double getValue(double evaluationTime,
AnalyticModel model)
AnalyticProductAnalyticModel.getValue in interface AnalyticProductevaluationTime - The evaluation time as double. Cash flows prior and including this time are not considered.model - The model under which the product is valued.public static double getForwardSwapRate(TimeDiscretization fixTenor, TimeDiscretization floatTenor, ForwardCurve forwardCurve)
public static double getForwardSwapRate(TimeDiscretization fixTenor, TimeDiscretization floatTenor, ForwardCurve forwardCurve, DiscountCurve discountCurve)
public static double getForwardSwapRate(Schedule fixSchedule, Schedule floatSchedule, ForwardCurve forwardCurve)
public static double getForwardSwapRate(Schedule fixSchedule, Schedule floatSchedule, ForwardCurve forwardCurve, AnalyticModel model)
public AnalyticProduct getLegReceiver()
public AnalyticProduct getLegPayer()
public InterestRateSwapProductDescriptor getDescriptor()
DescribedProductgetDescriptor in interface DescribedProduct<InterestRateSwapProductDescriptor>Copyright © 2019. All rights reserved.