示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableDeposit"/> class.
 /// </summary>
 /// <param name="baseDate">The base date.</param>
 /// <param name="amount">Notional Amount.</param>
 /// <param name="nodeStruct">The deposit nodeStruct.</param>
 /// <param name="businessDayAdjustments">The business day adjustments.</param>
 /// <param name="fixingCalendar">The fixing Calendar.</param>
 /// <param name="paymentCalendar">The payment Calendar.</param>
 /// <param name="fixedRate">The fixed rate.</param>
 public PriceableDeposit(DateTime baseDate, Decimal amount, DepositNodeStruct nodeStruct, IBusinessCalendar fixingCalendar,
                         IBusinessCalendar paymentCalendar, BusinessDayAdjustments businessDayAdjustments, BasicQuotation fixedRate)
     : base(nodeStruct.Deposit.id, baseDate, amount, businessDayAdjustments, fixedRate)
 {
     SpotDateOffset    = nodeStruct.SpotDate;
     Deposit           = nodeStruct.Deposit;
     AdjustedStartDate = GetSpotDate(baseDate, fixingCalendar, nodeStruct.SpotDate);
     RiskMaturityDate  = GetEffectiveDate(AdjustedStartDate, paymentCalendar, nodeStruct.Deposit.term, nodeStruct.BusinessDayAdjustments.businessDayConvention);
     YearFraction      = GetYearFraction(Deposit.dayCountFraction.Value, AdjustedStartDate, RiskMaturityDate);
 }
示例#2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableSpreadDeposit"/> class.
 /// </summary>
 /// <param name="baseDate">The base date.</param>
 /// <param name="nodeStruct">The nodeStruct.</param>
 /// <param name="fixingCalendar">The fixingCalendar.</param>
 /// <param name="spread">The spread.</param>
 /// <param name="paymentCalendar">A paymentCalendar.</param>
 public PriceableSpreadDeposit(DateTime baseDate, DepositNodeStruct nodeStruct, IBusinessCalendar fixingCalendar,
                               IBusinessCalendar paymentCalendar, BasicQuotation spread)
     : base(baseDate, nodeStruct.BusinessDayAdjustments, spread)
 {
     Id                    = nodeStruct.Deposit.id;
     Deposit               = nodeStruct.Deposit;
     FixingDateOffset      = nodeStruct.SpotDate;
     AdjustedStartDate     = GetSpotDate(baseDate, fixingCalendar, nodeStruct.SpotDate);
     AdjustedEffectiveDate = AdjustedStartDate;
     RiskMaturityDate      = GetEffectiveDate(AdjustedStartDate, paymentCalendar, nodeStruct.Deposit.term, nodeStruct.BusinessDayAdjustments.businessDayConvention);
     YearFraction          = GetYearFractions()[0];
     TimeToExpiry          = GetTimeToMaturity(baseDate, RiskMaturityDate);
     SetSpread(spread);
 }