コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableCommoditySpot"/> class.
 /// </summary>
 /// <param name="notionalAmount"></param>
 /// <param name="baseDate"></param>
 /// <param name="nodeStruct">The nodeStruct.</param>
 /// <param name="fixingCalendar">The fixingCalendar.</param>
 /// <param name="paymentCalendar">The paymentCalendar.</param>
 /// <param name="commoditySpotRate">The commodity SpotRate.</param>
 public PriceableCommoditySpot(DateTime baseDate, decimal notionalAmount, CommoditySpotNodeStruct nodeStruct,
                               IBusinessCalendar fixingCalendar, IBusinessCalendar paymentCalendar, BasicQuotation commoditySpotRate)
 {
     PaymentDiscountFactorCcy12 = 1.0m;
     PaymentDiscountFactorCcy1  = 1.0m;
     Ccy2CurveName   = string.Empty;
     Ccy1CurveName   = string.Empty;
     ModelIdentifier = "SimpleCommodityAsset";
     if (nodeStruct.Commodity != null)
     {
         Id = nodeStruct.Commodity.id;
     }
     NotionalAmount   = notionalAmount;
     CommodityAsset   = nodeStruct.Commodity;
     BaseDate         = baseDate;
     SpotDateOffset   = nodeStruct.SpotDate;
     RiskMaturityDate = GetSpotDate(baseDate, fixingCalendar, SpotDateOffset);
     SetRate(commoditySpotRate);
 }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PriceableCommoditySpot"/> class.
        /// </summary>
        /// <param name="notionalAmount"></param>
        /// <param name="baseDate"></param>
        /// <param name="term">The tenor.</param>
        /// <param name="nodeStruct">The nodeStruct.</param>
        /// <param name="fixingCalendar">The fixingCalendar.</param>
        /// <param name="paymentCalendar">The paymentCalendar.</param>
        /// <param name="commodityForward">The forward points.</param>
        public PriceableCommodityForward(DateTime baseDate, decimal notionalAmount, string term, CommoditySpotNodeStruct nodeStruct,
                                         IBusinessCalendar fixingCalendar, IBusinessCalendar paymentCalendar, BasicQuotation commodityForward)
        {
            PaymentDiscountFactorCcy12 = 1.0m;
            PaymentDiscountFactorCcy1  = 1.0m;
            Ccy2CurveName   = string.Empty;
            Ccy1CurveName   = string.Empty;
            ModelIdentifier = "SimpleCommodityAsset";
            if (nodeStruct.Commodity != null)
            {
                Id = nodeStruct.Commodity.id;
            }
            Tenor          = PeriodHelper.Parse(term);
            NotionalAmount = notionalAmount;
            CommodityAsset = nodeStruct.Commodity;
            BaseDate       = baseDate;
            SpotDateOffset = nodeStruct.SpotDate;
            //FixingCalendar = BusinessCenterHelper.ToBusinessCalendar(SpotDateOffset.businessCenters);
            var spotDate = GetSpotDate(baseDate, fixingCalendar, SpotDateOffset);

            RiskMaturityDate = GetForwardDate(spotDate, paymentCalendar, Tenor, SpotDateOffset.businessDayConvention);
            SetRate(commodityForward);
        }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PriceableCommoditySpread"/> class.
 /// </summary>
 /// <param name="identifier">The asset identifier</param>
 /// <param name="baseDate">The base date.</param>
 /// <param name="tenor">The tenor.</param>
 /// <param name="nodeStruct">The nodeStruct.</param>
 /// <param name="spread">The spread.</param>
 /// <param name="fixingAndPaymentCalendar">A fixing and payment Calendar.</param>
 public PriceableCommoditySpread(String identifier, DateTime baseDate, string tenor, CommoditySpotNodeStruct nodeStruct,
                                 IBusinessCalendar fixingAndPaymentCalendar, BasicQuotation spread)
     : base(baseDate, spread)
 {
     Id               = identifier;
     SpotDate         = GetSpotDate(baseDate, fixingAndPaymentCalendar, nodeStruct.SpotDate);
     CommodityAsset   = nodeStruct.Commodity;
     Tenor            = PeriodHelper.Parse(tenor);
     RiskMaturityDate = GetEffectiveDate(SpotDate, fixingAndPaymentCalendar, Tenor, nodeStruct.SpotDate.businessDayConvention);
     TimeToExpiry     = GetTimeToMaturity(baseDate, RiskMaturityDate);
     SetRate(spread);
 }