Esempio n. 1
0
        public BackPricingOption(string assetName, List <DateTime> avgDates, DateTime decisionDate, DateTime settlementFixingDate, DateTime payDate, OptionType callPut, string discountCurve, Currency ccy, double notional, Currency simulationCcy)
            : base(assetName, discountCurve, ccy, payDate, notional, simulationCcy)
        {
            _avgDates         = avgDates;
            _decisionDate     = decisionDate;
            _callPut          = callPut;
            _settleFixingDate = settlementFixingDate;
            _notional         = new Vector <double>(notional);

            if (_ccy.Ccy != "USD")
            {
                _fxName = $"USD/{_ccy.Ccy}";
            }

            AverageRegressor    = avgDates.Last() > decisionDate ? new LinearAveragePriceRegressor(decisionDate, avgDates.Where(x => x > decisionDate).ToArray(), RegressionKey) : null;
            SettlementRegressor = new LinearAveragePriceRegressor(decisionDate, new[] { _settleFixingDate }, RegressionKey);
        }
        public MultiPeriodBackPricingOption(string assetName, List <DateTime[]> avgDates, DateTime decisionDate, DateTime settlementFixingDate, DateTime payDate, OptionType callPut, string discountCurve, Currency ccy, double notional)
        {
            _avgDates         = avgDates;
            _decisionDate     = decisionDate;
            _callPut          = callPut;
            _discountCurve    = discountCurve;
            _ccy              = ccy;
            _settleFixingDate = settlementFixingDate;
            _payDate          = payDate;
            _assetName        = assetName;
            _notional         = new Vector <double>(notional);

            if (_ccy.Ccy != "USD")
            {
                _fxName = $"USD/{_ccy.Ccy}";
            }

            AverageRegressors   = avgDates.Select(avg => avg.Last() > decisionDate ? new LinearAveragePriceRegressor(decisionDate, avg.Where(x => x > decisionDate).ToArray(), RegressionKey) : null).ToArray();
            SettlementRegressor = new LinearAveragePriceRegressor(decisionDate, new[] { _settleFixingDate }, RegressionKey);
        }