private static AsianSwap GetAsianSwap(this TO_AsianSwap transportObject, ICurrencyProvider currencyProvider, ICalendarProvider calendarProvider) => new AsianSwap { TradeId = transportObject.TradeId, Notional = transportObject.Notional, Direction = transportObject.Direction, AverageStartDate = transportObject.AverageStartDate, AverageEndDate = transportObject.AverageEndDate, FixingDates = transportObject.FixingDates, FixingCalendar = calendarProvider.GetCalendarSafe(transportObject.FixingCalendar), PaymentCalendar = calendarProvider.GetCalendarSafe(transportObject.PaymentCalendar), SpotLag = new Frequency(transportObject.SpotLag), SpotLagRollType = transportObject.SpotLagRollType, PaymentLag = new Frequency(transportObject.PaymentLag), PaymentLagRollType = transportObject.PaymentLagRollType, PaymentDate = transportObject.PaymentDate, PaymentCurrency = currencyProvider.GetCurrencySafe(transportObject.PaymentCurrency), AssetFixingId = transportObject.AssetFixingId, AssetId = transportObject.AssetId, DiscountCurve = transportObject.DiscountCurve, FxConversionType = transportObject.FxConversionType, FxFixingDates = transportObject.FxFixingDates, FxFixingId = transportObject.FxFixingId, Strike = transportObject.Strike, Counterparty = transportObject.Counterparty, HedgingSet = transportObject.HedgingSet, PortfolioName = transportObject.PortfolioName, };
public static IPriceCurve GetPriceCurve(this TO_PriceCurve transportObject, ICurrencyProvider currencyProvider, ICalendarProvider calendarProvider) { if (transportObject.ConstantPriceCurve != null) { return new ConstantPriceCurve(transportObject.ConstantPriceCurve.Price, transportObject.ConstantPriceCurve.BuildDate, currencyProvider) { Currency = currencyProvider.GetCurrencySafe(transportObject.ConstantPriceCurve.Currency), AssetId = transportObject.ConstantPriceCurve.AssetId, Name = transportObject.ConstantPriceCurve.Name, } } ; if (transportObject.BasicPriceCurve != null) { return(new BasicPriceCurve(transportObject.BasicPriceCurve, currencyProvider)); } if (transportObject.BasisPriceCurve != null) { return(new BasisPriceCurve(transportObject.BasisPriceCurve, currencyProvider, calendarProvider)); } if (transportObject.ContangoPriceCurve != null) { return(new ContangoPriceCurve(transportObject.ContangoPriceCurve, currencyProvider)); } throw new Exception("Unable to build price curve"); }
public ContangoPriceCurve(TO_ContangoPriceCurve transportObject, ICurrencyProvider currencyProvider) : this(transportObject.BuildDate, transportObject.Spot, transportObject.SpotDate, transportObject.PillarDates, transportObject.Contangos, currencyProvider, transportObject.Basis, transportObject.PillarLabels) { AssetId = transportObject.AssetId; Name = transportObject.Name; Currency = currencyProvider.GetCurrencySafe(transportObject.Currency); }
public RiskyFlySurface(TO_RiskyFlySurface transportObject, ICurrencyProvider currencyProvider) : this(transportObject.OriginDate, transportObject.ATMs, transportObject.Expiries, transportObject.WingDeltas, transportObject.Riskies, transportObject.Flies, transportObject.Forwards, transportObject.WingQuoteType, transportObject.AtmVolType, transportObject.StrikeInterpolatorType, transportObject.TimeInterpolatorType, transportObject.PillarLabels) { Currency = currencyProvider.GetCurrencySafe(transportObject.Currency); AssetId = transportObject.AssetId; Name = transportObject.Name; }
public FloatRateIndex(TO_FloatRateIndex transportObject, ICalendarProvider calendarProvider, ICurrencyProvider currencyProvider) { DayCountBasis = transportObject.DayCountBasis; DayCountBasisFixed = transportObject.DayCountBasisFixed; ResetTenor = new Frequency(transportObject.ResetTenor); ResetTenorFixed = new Frequency(transportObject.ResetTenorFixed); HolidayCalendars = calendarProvider.GetCalendarSafe(transportObject.HolidayCalendars); RollConvention = transportObject.RollConvention; Currency = currencyProvider.GetCurrencySafe(transportObject.Currency); FixingOffset = new Frequency(transportObject.FixingOffset); }
private static Forward GetForward(this TO_Forward transportObject, ICurrencyProvider currencyProvider, ICalendarProvider calendarProvider) => new Forward { TradeId = transportObject.TradeId, Notional = transportObject.Notional, Direction = transportObject.Direction, ExpiryDate = transportObject.ExpiryDate, FixingCalendar = calendarProvider.GetCalendarSafe(transportObject.FixingCalendar), PaymentCalendar = calendarProvider.GetCalendarSafe(transportObject.PaymentCalendar), SpotLag = new Frequency(transportObject.SpotLag), PaymentLag = new Frequency(transportObject.PaymentLag), Strike = transportObject.Strike, AssetId = transportObject.AssetId, PaymentCurrency = currencyProvider.GetCurrencySafe(transportObject.PaymentCurrency), FxFixingId = transportObject.FxFixingId, DiscountCurve = transportObject.DiscountCurve, PaymentDate = transportObject.PaymentDate, Counterparty = transportObject.Counterparty, FxConversionType = transportObject.FxConversionType, HedgingSet = transportObject.HedgingSet, PortfolioName = transportObject.PortfolioName, };
public BasisPriceCurve(TO_BasisPriceCurve transportObject, ICurrencyProvider currencyProvider, ICalendarProvider calendarProvider) { Instruments = transportObject.Instruments .Select(x => (IAssetInstrument)InstrumentFactory.GetInstrument(x, currencyProvider, calendarProvider)) .ToList(); Pillars = transportObject.Pillars; DiscountCurve = new IrCurve(transportObject.DiscountCurve, currencyProvider); //need to re-link via the active model Curve = PriceCurveFactory.GetPriceCurve(transportObject.Curve, currencyProvider, calendarProvider); BaseCurve = PriceCurveFactory.GetPriceCurve(transportObject.BaseCurve, currencyProvider, calendarProvider); Name = transportObject.Name; AssetId = transportObject.AssetId; BuildDate = transportObject.BuildDate; PillarLabels = transportObject.PillarLabels; Currency = currencyProvider.GetCurrencySafe(transportObject.Currency); SpotCalendar = calendarProvider.GetCalendarSafe(transportObject.SpotCalendar); if (transportObject.SpotLag != null) { SpotLag = new Frequency(transportObject.SpotLag); } CurveType = transportObject.CurveType; }
public VolSurfaceKey(string keyAsString, ICurrencyProvider currencyProvider) : this(keyAsString.Split(MagicChar)[0], keyAsString.Split(MagicChar).Length > 1?currencyProvider.GetCurrencySafe(keyAsString.Split(MagicChar)[1]):null) { }
public VolSurfaceKey(TO_VolSurfaceKey transportObject, ICurrencyProvider currencyProvider) : this(transportObject.AssetId, currencyProvider.GetCurrencySafe(transportObject.Currency)) { }