///<summary> ///</summary> ///<param name="name"></param> public void RemoveMarket(string name) { if (RiskMarkets.ContainsKey(name)) { RiskMarkets.Remove(name); } }
///<summary> ///</summary> ///<param name="pricingStructureName"></param> ///<param name="riskName"> </param> ///<param name="perturbation"></param> private IList <IPricingStructure> GenerateRiskMarket(string pricingStructureName, string riskName, decimal perturbation) { var riskCurves = new List <IPricingStructure>(); var temp = SearchForPricingStructureType(pricingStructureName) as IRateCurve; //TODO Only works with Rate curves. if (temp != null) { //build the riskMarket riskCurves = temp.CreateCurveRiskSet(perturbation); var market = new MarketEnvironment { Id = pricingStructureName + '.' + riskName }; foreach (var rateCurve in riskCurves) { var id = rateCurve.GetPricingStructureId().Properties.GetValue <string>("PerturbedAsset", true); market.AddPricingStructure(id, rateCurve); } RiskMarkets.Add(pricingStructureName + '.' + riskName, market); } return(riskCurves); }