//public static Market CreateYieldCurveConfiguration(string curveId, string[] assetIdentifiers)
        //{
        //    var market = new Market {id = curveId};

        //    //Create the quotedAssetSet.
        //    var qas = QuotedAssetSetFactory.Parse(assetIdentifiers);

        //    //Create the curve information.
        //    var curve = new YieldCurve {id = curveId};

        //    //reate the valuation structure that contains qas.
        //    var curveValuation = new YieldCurveValuation {id = curveId, inputs = qas};

        //    //Set the market.
        //    market.Items = new[] { (PricingStructure)curve };
        //    market.Items1 = new[] { (PricingStructureValuation)curveValuation };

        //    return market;
        //}

        public static Market CreateFxCurveConfiguration(string curveId, string currency1, string currency2, string quoteBasis, FxRateSet quotedAssetSet)
        {
            //<QuoteBasisEnum>
            var basis = EnumHelper.Parse <QuoteBasisEnum>(quoteBasis, true);
            var quotedCurrencyPair = QuotedCurrencyPair.Create(currency1, currency2, basis);
            var currency           = CurrencyHelper.Parse(currency1);
            var market             = new Market {
                id = curveId
            };

            //Create the curve information.
            var curve = new FxCurve {
                id = curveId, name = curveId, currency = currency, quotedCurrencyPair = quotedCurrencyPair
            };

            //reate the valuation structure that contains qas.
            var curveValuation = new FxCurveValuation {
                id = curveId, spotRate = quotedAssetSet
            };

            //Set the market.
            market.Items  = new[] { (PricingStructure)curve };
            market.Items1 = new[] { (PricingStructureValuation)curveValuation };

            return(market);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the pricing structure.
        /// </summary>
        protected void CreatePricingStructure(EquityCurveIdentifier curveId, TermCurve termCurve, FxRateSet quotedAssetSet)
        {
            FpML.V5r10.Reporting.FxCurve fxCurve          = CreateEquityCurve(curveId);
            FxCurveValuation             fxCurveValuation = CreateEquityCurveValuation(curveId, quotedAssetSet, termCurve);
            var fpmlData = new Pair <PricingStructure, PricingStructureValuation>(fxCurve, fxCurveValuation);

            SetFpMLData(fpmlData, false);
        }
Ejemplo n.º 3
0
        private static Pair <PricingStructure, PricingStructureValuation> CreateFpmlPair(ILogger logger, ICoreCache cache, string nameSpace, DateTime baseDate,
                                                                                         EquityCurveIdentifier curveId, FxRateSet assetSet, TermCurve termCurve, IBusinessCalendar fixingCalendar, IBusinessCalendar rollCalendar)
        {
            FpML.V5r10.Reporting.FxCurve fxCurve          = CreateEquityCurve(curveId.Id, curveId.CurveName, curveId.Currency);
            FxCurveValuation             fxCurveValuation = CreateEquityCurveValuation(logger, cache, nameSpace, curveId, fixingCalendar, rollCalendar, baseDate, assetSet, fxCurve.id, termCurve);

            return(new Pair <PricingStructure, PricingStructureValuation>(fxCurve, fxCurveValuation));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates the pricing structure.
        /// </summary>
        protected void CreatePricingStructure(CommodityCurveIdentifier curveId, TermCurve termCurve, FxRateSet quotedAssetSet)
        {
            FpML.V5r10.Reporting.FxCurve yieldCurve          = CreateCommodityCurve(curveId);
            FxCurveValuation             yieldCurveValuation = CreateCommodiyCurveValuation(curveId, quotedAssetSet, yieldCurve.id, termCurve);
            var fpmlData = new Pair <PricingStructure, PricingStructureValuation>(yieldCurve, yieldCurveValuation);

            SetFpMLData(fpmlData, false);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Evaluates the implied quote.
        /// </summary>
        public NamedValueSet EvaluateImpliedQuote(ILogger logger, ICoreCache cache, string nameSpace, IBusinessCalendar fixingCalendar, IBusinessCalendar rollCalendar)
        {
            if (PriceableEquityAssets != null)
            {
                return(EvaluateImpliedQuote(this, PriceableEquityAssets.ToArray()));
            }
            FxCurveValuation curveValuation = GetEquityCurveValuation();

            PriceableEquityAssets = PriceableAssetFactory.CreatePriceableEquityAssets(logger, cache, nameSpace, curveValuation.baseDate.Value, curveValuation.spotRate, fixingCalendar, rollCalendar);
            return(EvaluateImpliedQuote(this, PriceableEquityAssets.ToArray()));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// </summary>
        /// <param name="fxRates">The spot rate.</param>
        /// <param name="curveId">The curve id.</param>
        /// <param name="termCurve">The bootstrapped term curve.</param>
        /// <returns></returns>
        private FxCurveValuation CreateEquityCurveValuation(EquityCurveIdentifier curveId, FxRateSet fxRates,
                                                            TermCurve termCurve)
        {
            var fxCurveValuation = new FxCurveValuation
            {
                baseDate               = IdentifiedDateHelper.Create(curveId.BaseDate),
                buildDateTime          = curveId.BaseDate,
                buildDateTimeSpecified = true,
                spotRate               = fxRates,
                id             = curveId.UniqueIdentifier,
                fxForwardCurve = termCurve,
                spotDate       = IdentifiedDateHelper.Create("SettlementDate", SettlementDate),
            };

            return(fxCurveValuation);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Creates the yield curve valuation.
        /// </summary>
        /// <param name="curveId"></param>
        /// <param name="quotedAssetSet">The quoted asset set.</param>
        /// <param name="commodityurveId">The commodity curve id.</param>
        /// <param name="forwardCurve">The curve</param>
        /// <returns></returns>
        protected static FxCurveValuation CreateCommodiyCurveValuation(PricingStructureIdentifier curveId, FxRateSet quotedAssetSet,
                                                                       string commodityurveId, TermCurve forwardCurve)
        {
            var yieldCurveValuation = new FxCurveValuation
            {
                baseDate               = IdentifiedDateHelper.Create(curveId.BaseDate),
                buildDateTime          = curveId.BuildDateTime,
                buildDateTimeSpecified = true,
                spotRate               = quotedAssetSet,
                id             = commodityurveId,
                definitionRef  = curveId.PricingStructureType.ToString(),
                fxForwardCurve = forwardCurve
            };

            return(yieldCurveValuation);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// </summary>
        /// <param name="baseDate">The base date.</param>
        /// <param name="commodityRates">The spot rate.</param>
        /// <param name="curveId">The curve id.</param>
        /// <param name="termCurve">The bootstrapped term curve.</param>
        /// <returns></returns>
        private static FxCurveValuation CreateCommodityCurveValuation(DateTime baseDate,
                                                                      FxRateSet commodityRates,
                                                                      string curveId,
                                                                      TermCurve termCurve)
        {
            var commodityCurveValuation = new FxCurveValuation
            {
                baseDate               = IdentifiedDateHelper.Create(baseDate),
                buildDateTime          = baseDate,
                buildDateTimeSpecified = true,
                spotRate               = commodityRates,
                id             = curveId,
                fxForwardCurve = termCurve
            };

            return(commodityCurveValuation);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Creates the equity curve.
        /// </summary>
        /// <param name="logger">The logger.</param>
        /// <param name="cache">The cache.</param>
        /// <param name="nameSpace">THe client namespace</param>
        /// <param name="equityId">THe underlying curve asset.</param>
        /// <param name="fixingCalendar"></param>
        /// <param name="rollCalendar"></param>
        /// <param name="baseDate">The base date.</param>
        /// <param name="fxRates">The spot rate.</param>
        /// <param name="curveId">The curve id.</param>
        /// <param name="termCurve">The bootstrapped term curve.</param>
        /// <returns></returns>
        private static FxCurveValuation CreateEquityCurveValuation(ILogger logger, ICoreCache cache, string nameSpace, EquityCurveIdentifier equityId,
                                                                   IBusinessCalendar fixingCalendar, IBusinessCalendar rollCalendar, DateTime baseDate, FxRateSet fxRates, string curveId,
                                                                   TermCurve termCurve)
        {
            DateTime settlementDate   = GetSettlementDate(logger, cache, nameSpace, equityId, fixingCalendar, rollCalendar, baseDate);
            var      fxCurveValuation = new FxCurveValuation
            {
                baseDate               = IdentifiedDateHelper.Create(baseDate),
                buildDateTime          = baseDate,
                buildDateTimeSpecified = true,
                spotRate               = fxRates,
                id             = curveId,
                fxForwardCurve = termCurve,
                spotDate       = IdentifiedDateHelper.Create("SettlementDate", settlementDate)
            };

            return(fxCurveValuation);
        }