public IAssetInstrument Clone() => new AsianSwap { TradeId = TradeId, Notional = Notional, Direction = Direction, AverageStartDate = AverageStartDate, AverageEndDate = AverageEndDate, FixingDates = (DateTime[])FixingDates.Clone(), FixingCalendar = FixingCalendar, PaymentCalendar = PaymentCalendar, SpotLag = SpotLag, SpotLagRollType = SpotLagRollType, PaymentLag = PaymentLag, PaymentLagRollType = PaymentLagRollType, PaymentDate = PaymentDate, PaymentCurrency = PaymentCurrency, AssetFixingId = AssetFixingId, AssetId = AssetId, DiscountCurve = DiscountCurve, FxConversionType = FxConversionType, FxFixingDates = FxFixingDates == null ? null : (DateTime[])FxFixingDates.Clone(), FxFixingId = FxFixingId, Strike = Strike, Counterparty = Counterparty, HedgingSet = HedgingSet, PortfolioName = PortfolioName };
public IAssetInstrument Clone() { return(new AsianLookbackOption { TradeId = TradeId, Notional = Notional, Direction = Direction, ObsStartDate = ObsStartDate, ObsEndDate = ObsStartDate, FixingDates = (DateTime[])FixingDates.Clone(), FixingCalendar = FixingCalendar, PaymentCalendar = PaymentCalendar, SpotLag = SpotLag, SpotLagRollType = SpotLagRollType, PaymentLag = PaymentLag, PaymentLagRollType = PaymentLagRollType, PaymentDate = PaymentDate, PaymentCurrency = PaymentCurrency, AssetFixingId = AssetFixingId, AssetId = AssetId, DiscountCurve = DiscountCurve, FxConversionType = FxConversionType, FxFixingDates = FxFixingDates == null ? null : (DateTime[])FxFixingDates.Clone(), FxFixingId = FxFixingId, }); }
public IAssetInstrument Clone() => new MultiPeriodBackpricingOption { TradeId = TradeId, Notional = Notional, Direction = Direction, PeriodDates = PeriodDates, DecisionDate = DecisionDate, FixingDates = FixingDates.Select(x => (DateTime[])x.Clone()).ToList(), FixingCalendar = FixingCalendar, PaymentCalendar = PaymentCalendar, SpotLag = SpotLag, SpotLagRollType = SpotLagRollType, PaymentLag = PaymentLag, PaymentLagRollType = PaymentLagRollType, PaymentDate = PaymentDate, PaymentCurrency = PaymentCurrency, AssetFixingId = AssetFixingId, AssetId = AssetId, DiscountCurve = DiscountCurve, FxConversionType = FxConversionType, FxFixingDates = FxFixingDates?.Select(x => (DateTime[])x.Clone()).ToList(), FxFixingId = FxFixingId, CallPut = CallPut, Counterparty = Counterparty, PortfolioName = PortfolioName, SettlementDate = SettlementDate };
Enumerable.SequenceEqual(FixingDates ?? Array.Empty <DateTime>(), swap.FixingDates ?? Array.Empty <DateTime>()) &&
public Dictionary <string, List <DateTime> > PastFixingDates(DateTime valDate) => valDate <= FixingDates.First() ? new Dictionary <string, List <DateTime> >() : new Dictionary <string, List <DateTime> > { { AssetId, FixingDates.Where(d => d < valDate).ToList() } };
public Dictionary <string, List <DateTime> > PastFixingDates(DateTime valDate) => valDate <= FixingDates.Min(x => x.Min())? new Dictionary <string, List <DateTime> >() : new Dictionary <string, List <DateTime> > { { AssetId, FixingDates.SelectMany(x => x).Where(d => d < valDate).ToList() } };
Enumerable.SequenceEqual(FixingDates, option.FixingDates) &&
EqualityComparer <DateTime[]> .Default.Equals(FixingDates, swap.FixingDates) &&