コード例 #1
0
        static public double CalcDeltaValue(
            InitialTerm.InitialParameter param,
            double forward,
            double strike,
            double volatility,
            InitialTerm.CallPutType type,
            InitialTerm.DeltaType deltaType)
        {
            var d1 = DFuncCalculator.CalcDValue(param, volatility, param.tau, forward, strike);
            var d2 = d1 - volatility * Math.Sqrt(param.tau);


            switch (deltaType)
            {
            case InitialTerm.DeltaType.PipsSpotDelta:
                return((int)type
                       * Math.Exp(-param.rateOfForeign * param.tau) * CDF((int)type * d1));

            case InitialTerm.DeltaType.PercentageSpotDelta:
                return((int)type
                       * Math.Exp(-param.rateOfDomestic * param.tau) * strike
                       / param.spotRate * CDF((int)type * d2));

            default:
                return(0.0);
            }
        }
コード例 #2
0
 static public double CalcOptionPrice(
     InitialTerm.InitialParameter param,
     double forward,
     double strike,
     double d1,
     double d2,
     InitialTerm.CallPutType type)
 {
     return((int)type * forward * Math.Exp(-param.rateOfForeign * param.tau)
            * Normal.CDF(0, 1, (int)type * d1)
            - strike * Normal.CDF(0, 1, (int)type * d2));
 }
コード例 #3
0
        public static double CalcInvCdf(
            InitialTerm.InitialParameter param,
            double volatility,
            double forward,
            double delta,
            InitialTerm.CallPutType type,
            InitialTerm.DeltaType deltaType)
        {
            Volatility = volatility;
            Forward    = forward;
            DeltaType  = deltaType;
            Number     = delta;

            var strikeCalculator = new StrikrCalcultor(param);

            return(UseBisection.Calc(
                       strikeCalculator.DeltaFunctionOfStrike,
                       0.5 * param.spotRate,
                       2.0 * param.spotRate));
        }