Beispiel #1
0
 ///<summary>
 ///</summary>
 ///<param name="name"></param>
 public void RemoveMarket(string name)
 {
     if (RiskMarkets.ContainsKey(name))
     {
         RiskMarkets.Remove(name);
     }
 }
Beispiel #2
0
        ///<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);
        }