コード例 #1
0
        public Dictionary <string, IVolSurface> GetATMVegaScenarios(double bumpSize, DateTime?LastSensitivityDate)
        {
            var o = new Dictionary <string, IVolSurface>();

            var lastBumpIx = Expiries.Length;

            if (LastSensitivityDate.HasValue)
            {
                var ix = Array.BinarySearch(Expiries, LastSensitivityDate.Value);
                ix         = (ix < 0) ? ~ix : ix;
                ix        += 2;
                lastBumpIx = Min(ix, lastBumpIx); //cap at last pillar
            }

            for (var i = 0; i < lastBumpIx; i++)
            {
                var volsBumped = (double[][])Volatilities.Clone();
                volsBumped[i] = volsBumped[i].Select(x => x + bumpSize).ToArray();
                o.Add(PillarLabels[i],
                      new GridVolSurface(OriginDate, Strikes, Expiries, volsBumped, StrikeType, StrikeInterpolatorType, TimeInterpolatorType, TimeBasis, PillarLabels)
                {
                    Currency = Currency,
                    AssetId  = AssetId
                });
            }

            return(o);
        }
コード例 #2
0
 public VolatilitiesTests()
 {
     objectToTest = new Volatilities(FakeDataBase);
 }