Exemplo n.º 1
0
        // test diagonal part against finite difference approximation computed from pv
        public virtual void swap_exampleTest()
        {
            LocalDate    start    = LocalDate.of(2014, 3, 10);
            LocalDate    end      = LocalDate.of(2021, 3, 10);
            double       notional = 1.0e6;
            ResolvedSwap swap     = FixedIborSwapConventions.USD_FIXED_6M_LIBOR_3M.toTrade(RatesProviderDataSets.VAL_DATE_2014_01_22, start, end, BuySell.BUY, notional, 0.005).Product.resolve(REF_DATA);
            DiscountingSwapProductPricer pricer = DiscountingSwapProductPricer.DEFAULT;

            System.Func <ImmutableRatesProvider, CurrencyAmount> pvFunction = p => pricer.presentValue(swap, USD, p);
            System.Func <ImmutableRatesProvider, CurrencyParameterSensitivities> sensiFunction = p =>
            {
                PointSensitivities sensi = pricer.presentValueSensitivity(swap, p).build();
                return(p.parameterSensitivity(sensi));
            };
            CurrencyParameterSensitivities expected = sensitivityDiagonal(RatesProviderDataSets.MULTI_CPI_USD, pvFunction);
            CurrencyParameterSensitivities computed = CENTRAL.calculateCrossGammaIntraCurve(RatesProviderDataSets.MULTI_CPI_USD, sensiFunction).diagonal();

            assertTrue(computed.equalWithTolerance(expected, Math.Sqrt(EPS) * notional));
            CurrencyParameterSensitivities computedFromCross = CENTRAL.calculateCrossGammaCrossCurve(RatesProviderDataSets.MULTI_CPI_USD, sensiFunction).diagonal();

            assertTrue(computed.equalWithTolerance(computedFromCross, TOL));
        }
 /// <summary>
 /// Creates an instance.
 /// </summary>
 /// <param name="swapPricer">  the pricer for <seealso cref="Swap"/> </param>
 public VolatilitySwaptionCashParYieldProductPricer(DiscountingSwapProductPricer swapPricer)
 {
     this.swapPricer = ArgChecker.notNull(swapPricer, "swapPricer");
 }
 /// <summary>
 /// Creates an instance.
 /// </summary>
 /// <param name="swapPricer">  the pricer for <seealso cref="ResolvedSwap"/> </param>
 public DiscountingCmsPeriodPricer(DiscountingSwapProductPricer swapPricer)
 {
     this.swapPricer = ArgChecker.notNull(swapPricer, "legPricer");
 }
 /// <summary>
 /// Creates an instance.
 /// </summary>
 /// <param name="swapPricer">  the pricer for <seealso cref="Swap"/> </param>
 public VolatilitySwaptionPhysicalProductPricer(DiscountingSwapProductPricer swapPricer)
 {
     this.swapPricer = ArgChecker.notNull(swapPricer, "swapPricer");
 }
 /// <summary>
 /// Creates an instance.
 /// </summary>
 /// <param name="swapPricer">  the pricer for <seealso cref="Swap"/> </param>
 public NormalSwaptionPhysicalProductPricer(DiscountingSwapProductPricer swapPricer) : base(swapPricer)
 {
 }
Exemplo n.º 6
0
 /// <summary>
 /// Creates an instance.
 /// </summary>
 /// <param name="swapPricer">  the pricer for <seealso cref="Swap"/> </param>
 public NormalSwaptionCashParYieldProductPricer(DiscountingSwapProductPricer swapPricer) : base(swapPricer)
 {
 }
Exemplo n.º 7
0
 private SabrExtrapolationReplicationCmsPeriodPricer(DiscountingSwapProductPricer swapPricer, double cutOffStrike, double mu)
 {
     this.swapPricer   = ArgChecker.notNull(swapPricer, "swapPricer");
     this.cutOffStrike = cutOffStrike;
     this.mu           = ArgChecker.notNegativeOrZero(mu, "mu");
 }
Exemplo n.º 8
0
 //-------------------------------------------------------------------------
 /// <summary>
 /// Obtains the pricer.
 /// </summary>
 /// <param name="swapPricer">  the pricer for underlying swap </param>
 /// <param name="cutOffStrike">  the cut-off strike value </param>
 /// <param name="mu">  the tail thickness </param>
 /// <returns> the pricer </returns>
 public static SabrExtrapolationReplicationCmsPeriodPricer of(DiscountingSwapProductPricer swapPricer, double cutOffStrike, double mu)
 {
     return(new SabrExtrapolationReplicationCmsPeriodPricer(swapPricer, cutOffStrike, mu));
 }
 private BlackFlatCmsPeriodPricer(DiscountingSwapProductPricer swapPricer)
 {
     this.swapPricer = ArgChecker.notNull(swapPricer, "swapPricer");
 }
 /// <summary>
 /// Obtains the pricer.
 /// </summary>
 /// <param name="swapPricer">  the pricer for underlying swap </param>
 /// <returns> the pricer </returns>
 public static BlackFlatCmsPeriodPricer of(DiscountingSwapProductPricer swapPricer)
 {
     return(new BlackFlatCmsPeriodPricer(swapPricer));
 }