Exemplo n.º 1
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");
        }
Exemplo n.º 2
0
 public PriceCurve(TO_PriceCurve transportObject, ICurrencyProvider currencyProvider) : this(transportObject.BuildDate, transportObject.PillarDates, transportObject.Prices, transportObject.CurveType, currencyProvider, transportObject.PillarLabels)
 {
     Currency       = currencyProvider.GetCurrency(transportObject.Currency);
     CollateralSpec = transportObject.CollateralSpec;
 }