//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); }
/// <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); }
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)); }
/// <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); }
/// <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())); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }