예제 #1
0
 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
 };
예제 #2
0
 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
 };
예제 #3
0
 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,
     });
 }
예제 #4
0
 Enumerable.SequenceEqual(FxFixingDates ?? Array.Empty <DateTime>(), swap.FxFixingDates ?? Array.Empty <DateTime>()) &&
예제 #5
0
 EqualityComparer <DateTime[]> .Default.Equals(FxFixingDates, swap.FxFixingDates) &&