예제 #1
0
 private OutrightSwap(string curve_, PointDef def_)
 {
   m_point = def_;
   CurveName = curve_;
   PointDefs = new[] { def_ };
   m_1 = xYyY.Get(CurveName, m_point);
 }
예제 #2
0
 private static string GetKey(string curveName_, PointDef AB_, PointDef CD_)
 {
   return (CD_.Multiplier == 1d && AB_.Multiplier == -1d)
     ? string.Format("{4} {0}y{1}y {2}y{3}y", AB_.StartYear, AB_.ForwardYears, CD_.StartYear, CD_.ForwardYears, curveName_)
     : string.Format("{4} {5}x{0}y{1}y {6}x{2}y{3}y", AB_.StartYear, AB_.ForwardYears, CD_.StartYear, CD_.ForwardYears, curveName_, CD_.Multiplier,
       AB_.Multiplier);
 }
예제 #3
0
 public static xYyY Get(string curve_, PointDef def_)
 {
   return Get(
     curve_: curve_,
     startYear_: def_.StartYear,
     forwardYear_: def_.ForwardYears);
 }
예제 #4
0
 private CurveSwap(string curveName_, PointDef CD_, PointDef AB_)
 {
   m_CD = CD_;
   m_AB = AB_;
   CurveName = curveName_;
   PointDefs = new[] {AB_, CD_};
   m_cdImpl = xYyY.Get(CurveName, m_CD);
   m_abImpl = xYyY.Get(CurveName, m_AB);
 }
예제 #5
0
 private ButterflySwap(string curvename_, PointDef w1_, PointDef belly_, PointDef w2_)
 {
   m_w1 = w1_; m_belly = belly_; m_w2 = w2_;
   CurveName = curvename_;
   PointDefs = new[] {w1_, belly_, w2_};
   m_bellyFrontImpl = xYyY.Get(CurveName, m_belly);
   m_w1FrontImpl = xYyY.Get(CurveName, m_w1);
   m_w2FrontImpl = xYyY.Get(CurveName, m_w2);
 }
예제 #6
0
 private static string GetKey(string curvename_, PointDef w1_, PointDef belly_, PointDef w2_)
 {
   return (w1_.Multiplier == -1d && belly_.Multiplier == 2d && w2_.Multiplier == -1d)
     ? string.Format("{6} Butterfly {0}y{1}y {2}y{3}y {4}y{5}y", w1_.StartYear, w1_.ForwardYears, belly_.StartYear, belly_.ForwardYears,
       w2_.StartYear,
       w2_.ForwardYears, curvename_)
     : string.Format("{6} Butterfly {7}x{0}y{1}y {8}x{2}y{3}y {9}x{4}y{5}y", w1_.StartYear, w1_.ForwardYears, belly_.StartYear,
       belly_.ForwardYears,
       w2_.StartYear, w2_.ForwardYears, curvename_, w1_.Multiplier, belly_.Multiplier, w2_.Multiplier);
 }
예제 #7
0
    public static OutrightSwap Get(string curve_, PointDef def_)
    {
      string key = GetKey(curve_, def_.StartYear, def_.ForwardYears);

      if (!_cache.ContainsKey(key))
        _cache.Add(key, new OutrightSwap(curve_, def_));

      return _cache[key];


      //return Get(curve_, def_.StartYear, def_.ForwardYears);
    }
예제 #8
0
 public static xYyY Get1YRolled(string curve_, PointDef def_)
 {
   return Get(curve_, def_.Roll1Y());
 }
예제 #9
0
    public static CurveSwap Get(string curveName_, PointDef CD_, PointDef AB_)
    {
      string key = GetKey(curveName_, AB_, CD_);

      if (!_cache.ContainsKey(key))
        _cache.Add(key, new CurveSwap(curveName_: curveName_, AB_: AB_, CD_: CD_));

      return _cache[key];
    }
 protected string getDisplayString(PointDef def_)
 {
   return getDisplayString(def_.StartYear, def_.ForwardYears);
 }
예제 #11
0
    public static ButterflySwap Get(string curvename_, PointDef w1_, PointDef belly_, PointDef w2_)
    {
      var key = GetKey(curvename_: curvename_, w1_: w1_, belly_: belly_, w2_: w2_);

      if (!_cache.ContainsKey(key))
        _cache[key] = new ButterflySwap(curvename_, w1_, belly_, w2_);

      return _cache[key];
    }