Пример #1
0
 private void priceCheck(double[] strikes)
 {
     for (int i = 0; i < N; i++)
     {
         double ivNormalComputed    = NormalFormulaRepository.impliedVolatilityFromBlackApproximated(FORWARD, strikes[i], T, SIGMA_BLACK[i]);
         double priceNormalComputed = NormalFormulaRepository.price(FORWARD, strikes[i], T, ivNormalComputed, PutCall.CALL) * DF;
         double priceBlack          = BlackFormulaRepository.price(FORWARD, strikes[i], T, SIGMA_BLACK[i], true) * DF;
         assertEquals(priceNormalComputed, priceBlack, TOLERANCE_PRICE);
     }
 }
Пример #2
0
        public virtual void implied_volatility_adjoint()
        {
            double shiftFd = 1.0E-6;

            for (int i = 0; i < N; i++)
            {
                double           impliedVol    = NormalFormulaRepository.impliedVolatilityFromBlackApproximated(FORWARD, STRIKES[i], T, SIGMA_BLACK[i]);
                ValueDerivatives impliedVolAdj = NormalFormulaRepository.impliedVolatilityFromBlackApproximatedAdjoint(FORWARD, STRIKES[i], T, SIGMA_BLACK[i]);
                assertEquals(impliedVolAdj.Value, impliedVol, TOLERANCE_VOL);
                double impliedVolP            = NormalFormulaRepository.impliedVolatilityFromBlackApproximated(FORWARD, STRIKES[i], T, SIGMA_BLACK[i] + shiftFd);
                double impliedVolM            = NormalFormulaRepository.impliedVolatilityFromBlackApproximated(FORWARD, STRIKES[i], T, SIGMA_BLACK[i] - shiftFd);
                double derivativeApproximated = (impliedVolP - impliedVolM) / (2 * shiftFd);
                assertEquals(impliedVolAdj.Derivatives.size(), 1);
                assertEquals(impliedVolAdj.getDerivative(0), derivativeApproximated, TOLERANCE_VOL);
            }
        }
Пример #3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test(expectedExceptions = IllegalArgumentException.class) public void wrong_forward()
        public virtual void wrong_forward()
        {
            NormalFormulaRepository.impliedVolatilityFromBlackApproximated(-1.0d, FORWARD, T, 0.20d);
        }
Пример #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test(expectedExceptions = IllegalArgumentException.class) public void wrong_strike()
        public virtual void wrong_strike()
        {
            NormalFormulaRepository.impliedVolatilityFromBlackApproximated(FORWARD, -1.0d, T, 0.20d);
        }