public string PublishCurve(object[][] structurePropertiesRange, object[][] publishPropertiesRange, object[][] valuesRange)
        {
            // Create curve
            IPricingStructure pricingStructure = PricingStructureFactory.CreatePricingStructure(Logger.Target, Cache, NameSpace, structurePropertiesRange, valuesRange);
            // Get properties needed
            Market        market           = GetMarket(pricingStructure);
            string        uniqueIdentifier = pricingStructure.GetPricingStructureId().UniqueIdentifier;
            NamedValueSet properties       = pricingStructure.GetPricingStructureId().Properties;

            // Save
            Publish(market, uniqueIdentifier, properties, publishPropertiesRange);
            return(uniqueIdentifier);
        }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RateBasisCurve"/> class.
 /// </summary>
 /// <param name="logger">The logger.</param>
 /// <param name="cache">The cache.</param>
 ///  <param name="nameSpace">The client namespace</param>
 /// <param name="properties">The properties.</param>
 /// <param name="refCurve">The reference parent curve id.</param>
 /// <param name="value">The values.</param>
 /// <param name="fixingCalendar">The fixingCalendar.</param>
 /// <param name="rollCalendar">The rollCalendar.</param>
 public RateBasisCurve(ILogger logger, ICoreCache cache, string nameSpace, NamedValueSet properties, IPricingStructure refCurve, Decimal value,
                       IBusinessCalendar fixingCalendar, IBusinessCalendar rollCalendar)
     : base(logger, cache, nameSpace, AdjustMarketQuotes(value, refCurve.GetFpMLData(), PropertyHelper.ExtractUniqueCurveIdentifier(properties)), properties,
            fixingCalendar, rollCalendar)
 {
     PricingStructureData = new PricingStructureData(CurveType.Child, AssetClass.Rates, properties);
     ReferenceCurveId     = refCurve.GetPricingStructureId();
 }
        ///<summary>
        /// Creates a market environment for use in calculations.
        ///</summary>
        ///<param name="marketName">The name of the market environment.</param>
        ///<param name="curve">The curve.</param>
        ///<returns></returns>
        public static IMarketEnvironment Create(string marketName, IPricingStructure curve)
        {
            var environment = new MarketEnvironment(marketName);
            var name        = (PricingStructureIdentifier)curve.GetPricingStructureId();

            environment.AddPricingStructure(name.UniqueIdentifier, curve);
            return(environment);
        }
Esempio n. 4
0
        ///<summary>
        /// Creates the specified curve type.
        ///</summary>
        ///<param name="structurePropertiesRange">The properties range. This must include all mandatory properties.</param>
        ///<param name="valuesRange">The values to be used for bootstrapping.</param>
        ///<returns>A handle to a bootstrapped pricing structure.</returns>
        ///<exception cref="NotImplementedException"></exception>
        private string CreatePricingStructure(object[,] structurePropertiesRange, object[,] valuesRange)
        {
            IPricingStructure pricingStructure = Engine.CreatePricingStructure(structurePropertiesRange.ToNamedValueSet(), valuesRange);
            string            structureId      = pricingStructure.GetPricingStructureId().UniqueIdentifier;

            Engine.SaveCurve(pricingStructure);
            return(structureId);
        }
        private static Market GetMarket(IPricingStructure pricingStructure)
        {
            string uniqueIdentifier = pricingStructure.GetPricingStructureId().UniqueIdentifier;
            var    fpml             = pricingStructure.GetFpMLData();
            Market market           = PricingStructureHelper.CreateMarketFromFpML(uniqueIdentifier, fpml);

            return(market);
        }