コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PriceableCaplet"/> 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="properties">The properties set This includes strike information.</param>
        /// <param name="fixingCalendar">The fixing/expiry calendar></param>
        /// <param name="paymentCalendar">The paymentCalendar calendar.</param>
        /// <param name="notional">The notional. The default value is 1,000,000.00m.</param>
        /// <param name="marketQuotes">The market quotes, including the volatility and possibly the fixed rate as a decimal contained in a basic quotation.</param>
        public PriceableCaplet(DateTime baseDate, RateOptionNodeStruct nodeStruct, NamedValueSet properties, IBusinessCalendar fixingCalendar,
                               IBusinessCalendar paymentCalendar, Decimal notional, BasicAssetValuation marketQuotes)
            : base(baseDate, nodeStruct.ResetDateAdjustment, nodeStruct.SimpleRateOption, notional, 1000000.0m, nodeStruct.BusinessDayAdjustments, marketQuotes)
        {
            Id                    = nodeStruct.SimpleRateOption.id;
            IsCap                 = true;
            IsDiscounted          = false;
            RateOption            = nodeStruct.SimpleRateOption;
            ResetDateOffset       = nodeStruct.ResetDateAdjustment;
            SpotDateOffset        = nodeStruct.SpotDate;
            UnderlyingRateIndex   = nodeStruct.RateIndex;
            AdjustedStartDate     = GetSpotDate(baseDate, fixingCalendar, nodeStruct.SpotDate);
            AdjustedEffectiveDate = GetEffectiveDate(AdjustedStartDate, paymentCalendar, nodeStruct.SimpleRateOption.startTerm, nodeStruct.BusinessDayAdjustments.businessDayConvention);
            OptionsExpiryDate     = GetFixingDate(AdjustedEffectiveDate, fixingCalendar, nodeStruct.ResetDateAdjustment);
            MaturityDate          = GetEffectiveDate(AdjustedStartDate, paymentCalendar, nodeStruct.SimpleRateOption.endTerm, nodeStruct.BusinessDayAdjustments.businessDayConvention);
            PaymentDate           = MaturityDate;
            YearFraction          = GetYearFraction(RateOption.dayCountFraction.Value, AdjustedEffectiveDate, MaturityDate);
            TimeToExpiry          = GetTimeToExpiry(baseDate, OptionsExpiryDate);
            //Set the strike scalar. This must be after the number of expiry dates has been set.
            var quotes = new List <BasicQuotation>(marketQuotes.quote);

            //For the default cap the spot rate is used.
            SetQuote("ForwardRate", quotes);
            SetQuote("Strike", quotes);
            //decimal? strike = properties.GetValue<decimal>("Strike", false);
            //Strike = (decimal)strike;
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableCaplet"/> 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="properties">The properties set This includes strike information.</param>
 /// <param name="fixingCalendar">The fixing/expiry calendar></param>
 /// <param name="paymentCalendar">The paymentCalendar calendar.</param>
 /// <param name="notional">The notional. The default value is 1.00m.</param>
 /// <param name="marketQuotes">The market quotes, including the volatility and possibly the fixed rate as a decimal contained in a basic quotation.</param>
 public PriceableDiscountFloorlet(DateTime baseDate, RateOptionNodeStruct nodeStruct, NamedValueSet properties, IBusinessCalendar fixingCalendar,
                                  IBusinessCalendar paymentCalendar, Decimal notional, BasicAssetValuation marketQuotes)
     : base(baseDate, nodeStruct, properties, fixingCalendar, paymentCalendar, notional, marketQuotes)
 {
     IsDiscounted = true;
     IsCap        = false;
 }