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); }