Beispiel #1
0
 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,
 };
Beispiel #2
0
        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");
        }
Beispiel #3
0
 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);
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
 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);
 }
Beispiel #6
0
 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,
 };
Beispiel #7
0
        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;
        }
Beispiel #8
0
 public VolSurfaceKey(string keyAsString, ICurrencyProvider currencyProvider)
     : this(keyAsString.Split(MagicChar)[0], keyAsString.Split(MagicChar).Length > 1?currencyProvider.GetCurrencySafe(keyAsString.Split(MagicChar)[1]):null)
 {
 }
Beispiel #9
0
 public VolSurfaceKey(TO_VolSurfaceKey transportObject, ICurrencyProvider currencyProvider)
     : this(transportObject.AssetId, currencyProvider.GetCurrencySafe(transportObject.Currency))
 {
 }