예제 #1
0
        /// <summary>
        /// Construct the array of known prices.
        /// </summary>
        public override double[] GetKnownPrices(DateList resetDates, PriceFactorList factors, IAssetPrice assetPrice)
        {
            bool   isCompo       = !string.IsNullOrEmpty(fPayoffCurrency) && fPayoffCurrency != Currency && Payoff_Type == PayoffType.Compo;
            string assetCurrency = isCompo ? fPayoffCurrency : Currency;

            double[] knownPrices;
            double[] knownFxRates;
            AssetPriceFxRateList.GetRates(resetDates, factors.BaseDate, Known_Prices, out knownPrices, out knownFxRates);
            if (isCompo)
            {
                for (int i = 0; i < knownPrices.Length; ++i)
                {
                    knownPrices[i] *= knownFxRates[i];
                }
            }

            FillMissingKnownPricesFromRateFixings(knownPrices, resetDates, factors, assetPrice, assetCurrency);

            return(knownPrices);
        }
예제 #2
0
 protected CliquetOption()
 {
     Known_Prices = new AssetPriceFxRateList();
 }