Beispiel #1
0
        public override void fetchResults(IPricingEngineResults r)
        {
            const double basisPoint = 1.0e-4;

            base.fetchResults(r);
            BasisSwap.Results results = r as BasisSwap.Results;

            if (results != null)
            {
                fairLongSpread_  = results.fairLongSpread;
                fairShortSpread_ = results.fairShortSpread;
            }
            else
            {
                fairLongSpread_  = null;
                fairShortSpread_ = null;
            }

            // Long fair spread should be fine - no averaging or compounding
            if (fairLongSpread_ == null && legBPS_[longNo_] != null)
            {
                fairLongSpread_ = longSpread_ - NPV_ / (legBPS_[longNo_] / basisPoint);
            }

            /* Short fair spread calculation ok if no averaging/compounding OR
            *  if there is averaging/compounding and the spread is added after */
            if (fairShortSpread_ == null && legBPS_[shortNo_] != null)
            {
                fairShortSpread_ = shortSpread_ - NPV_ / (legBPS_[shortNo_] / basisPoint);
            }
        }
Beispiel #2
0
 public override void fetchResults(IPricingEngineResults r)
 {
     base.fetchResults(r);
     BasisSwap.Results results = r as BasisSwap.Results;
 }