public override Cashflow[] GetPayoff(Dictionary <Date, double> pricePath) { var prices = new Dictionary <Date, double>(pricePath); //merges fixings and monte carlo path foreach (var key in Fixings.Keys) { prices[key] = Fixings[key]; } var maxPrice = ObservationDates.Max(x => prices[x]); var minPrice = ObservationDates.Min(x => prices[x]); return(GetPayoff(new[] { minPrice, maxPrice, pricePath[ExerciseDates[0]] })); }