Ejemplo n.º 1
0
 public static Curve GetXSlice(this VolatilitySurfaceData <Tenor, Tenor> surface, Tenor x)
 {
     return(new InterpolatedDoublesCurve(string.Format("Expiry {0}", x),
                                         surface.Ys.Select(t => t.TimeSpan.TotalMilliseconds).ToArray(),
                                         surface.Ys.Select(y => surface[x, y]).ToArray()
                                         ));
 }
Ejemplo n.º 2
0
        public static Curve GetYSlice(this VolatilitySurfaceData <Tenor, Tenor> surface, Tenor y)
        {
            var values = surface.Xs.Select(
                delegate(Tenor t) {
                double value;
                var have = surface.TryGet(t, y, out value);
                return(Tuple.Create(t.TimeSpan.TotalMilliseconds, have, value));
            }).Where(t => t.Item2);

            return(new InterpolatedDoublesCurve(string.Format("Swap length {0}", y),
                                                values.Select(t => t.Item1).ToArray(),
                                                values.Select(t => t.Item3).ToArray()
                                                ));
        }