Beispiel #1
0
        public void ThetaFacts()
        {
            var t   = 1.0;
            var k   = 100;
            var f   = 100;
            var vol = 0.32;
            var rf  = 0.05;
            var cp  = OptionType.P;


            //theta closely matches numerical estimate
            var bumpT    = 1e-10;
            var PV1      = BlackFunctions.BlackPV(f, k, rf, t, vol, cp);
            var PV2      = BlackFunctions.BlackPV(f, k, rf, t - bumpT, vol, cp);
            var thetaEst = (PV2 - PV1) / bumpT;
            var theta    = BlackFunctions.BlackTheta(f, k, rf, t, vol, cp);

            Assert.Equal(thetaEst, theta, 3);


            //theta closely matches numerical estimate
            cp       = OptionType.C;
            PV1      = BlackFunctions.BlackPV(f, k, rf, t, vol, cp);
            PV2      = BlackFunctions.BlackPV(f, k, rf, t - bumpT, vol, cp);
            thetaEst = (PV2 - PV1) / bumpT;
            theta    = BlackFunctions.BlackTheta(f, k, rf, t, vol, cp);
            Assert.Equal(thetaEst, theta, 3);
        }