Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableSimpleFra"/> class.
 /// This is a special case for use with the factry for bootstrapping, as it
 /// uses no calendar logic. This is done by the factory.
 /// </summary>
 /// <param name="baseDate">The base date.</param>
 /// <param name="nodeStruct">A special class containing all salient data required.</param>
 /// <param name="fixingCalendar">The fixing calendar.</param>
 /// <param name="paymentCalendar">The payment calendar.></param>
 /// <param name="notional">The notional. The default value is 1.00m.</param>
 /// <param name="normalisedRate">Thhhe fixed rate as a decimal contained in a basic quotation.</param>
 public PriceableSimpleFra(DateTime baseDate, SimpleFraNodeStruct nodeStruct, IBusinessCalendar fixingCalendar,
                           IBusinessCalendar paymentCalendar, Decimal notional, BasicQuotation normalisedRate)
     : base(nodeStruct.SimpleFra.id, baseDate, notional, nodeStruct.BusinessDayAdjustments, normalisedRate)
 {
     SimpleFra           = nodeStruct.SimpleFra;
     FixingDateOffset    = nodeStruct.SpotDate;
     UnderlyingRateIndex = nodeStruct.RateIndex;
     SpotDate            = GetSpotDate(baseDate, fixingCalendar, nodeStruct.SpotDate);
     AdjustedStartDate   = GetEffectiveDate(SpotDate, paymentCalendar, nodeStruct.SimpleFra.startTerm, nodeStruct.BusinessDayAdjustments.businessDayConvention);//GetSpotDate();
     RiskMaturityDate    = GetEffectiveDate(SpotDate, paymentCalendar, nodeStruct.SimpleFra.endTerm, nodeStruct.BusinessDayAdjustments.businessDayConvention);
     YearFraction        = GetYearFraction(SimpleFra.dayCountFraction.Value, AdjustedStartDate, RiskMaturityDate);
     TimeToExpiry        = GetTimeToMaturity(baseDate, RiskMaturityDate);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableSpreadFra"/> class.
 /// </summary>
 /// <param name="baseDate">The base date.</param>
 /// <param name="nodeStruct">The nodeStruct.</param>
 /// <param name="fixingCalendar">The fixingCalendar.</param>
 /// <param name="underlyingRateIndex">The underlying rate index.</param>
 /// <param name="spread">The spread.</param>
 /// <param name="paymentCalendar">A paymentCalendar.</param>
 public PriceableSpreadFra(DateTime baseDate, SimpleFraNodeStruct nodeStruct, IBusinessCalendar fixingCalendar, IBusinessCalendar paymentCalendar,
                           RateIndex underlyingRateIndex, BasicQuotation spread)
     : base(baseDate, nodeStruct.BusinessDayAdjustments, spread)
 {
     Id                    = nodeStruct.SimpleFra.id;
     SimpleFra             = nodeStruct.SimpleFra;
     FixingDateOffset      = nodeStruct.SpotDate;
     UnderlyingRateIndex   = underlyingRateIndex;
     AdjustedStartDate     = GetSpotDate(baseDate, fixingCalendar, nodeStruct.SpotDate);
     AdjustedEffectiveDate = GetEffectiveDate(AdjustedStartDate, paymentCalendar, nodeStruct.SimpleFra.startTerm, nodeStruct.BusinessDayAdjustments.businessDayConvention);
     RiskMaturityDate      = GetEffectiveDate(AdjustedStartDate, paymentCalendar, nodeStruct.SimpleFra.endTerm, nodeStruct.BusinessDayAdjustments.businessDayConvention);
     YearFraction          = GetYearFractions()[0];
     TimeToExpiry          = GetTimeToMaturity(baseDate, RiskMaturityDate);
     SetSpread(spread);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableSimpleDiscountFra"/> class.
 /// This is a special case for use with the factry for bootstrapping, as it
 /// uses no calendar logic. This is done by the factory.
 /// </summary>
 /// <param name="baseDate">The base date.</param>
 /// <param name="nodeStruct">A special class containing all salient data required.</param>
 /// <param name="fixingCalendar">The fixing calendar.</param>
 /// <param name="paymentCalendar">The payment calendar.></param>
 /// <param name="notional">The notional. The default value is 1.00m.</param>
 /// <param name="normalisedRate">Thhhe fixed rate as a decimal contained in a basic quotation.</param>
 public PriceableSimpleDiscountFra(DateTime baseDate, SimpleFraNodeStruct nodeStruct, IBusinessCalendar fixingCalendar,
                                   IBusinessCalendar paymentCalendar, Decimal notional, BasicQuotation normalisedRate)
     : base(baseDate, nodeStruct, fixingCalendar, paymentCalendar, notional, normalisedRate)
 {
     ModelIdentifier = "SimpleDiscountAsset";
 }