Exemplo n.º 1
0
        //output all greek values
        public static double[] output(double S0, double K, double vol, double T, int N, double r, double del, bool type, bool optiontype, double dvol, double dr)
        {
            double delta = GreekValues.delta(S0, K, vol, T, N, r, del, type, optiontype);
            double gamma = GreekValues.gamma(S0, K, vol, T, N, r, del, type, optiontype);
            double vega  = GreekValues.vega(S0, K, vol, T, N, r, del, type, optiontype, dvol);
            double theta = GreekValues.theta(S0, K, vol, T, N, r, del, type, optiontype);
            double rho   = GreekValues.rho(S0, K, vol, T, N, r, del, type, optiontype, dr);

            double[] result = { delta, gamma, vega, theta, rho };
            return(result);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            OutputValues a = new OutputValues();

            Console.WriteLine("Enter S0: (double)");
            double S0 = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter K: (double)");
            double K = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter vol: (double)");
            double vol = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter T: (double)");
            double T = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter N: (int)");
            int N = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Enter r: (double)");
            double r = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter dividend: (double)");
            double dividend = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter type(call true, put false): (bool)");
            bool type = Convert.ToBoolean(Console.ReadLine());

            Console.WriteLine("Enter optiontype(Eur true, Ame false): (bool)");
            bool optiontype = Convert.ToBoolean(Console.ReadLine());

            //You can also choice to outprint all related data
            //Console.WriteLine("Underlying price:");
            //double[,,] c = a.output(S0, K, vol, T, N, r, dividend, type, optiontype);
            //PrintResults(c, 0);//underlying price
            //Console.WriteLine("Intrinsic price:");
            //PrintResults(c, 1);//Intrinsic price
            //Console.WriteLine("American price:");
            //PrintResults(c, 2);//American price
            //Console.WriteLine("Option price:");
            //PrintResults(c, 3);//all Option price
            Console.Write("Option price: ");
            double[,] op = GetValues.OptionPrice.optionprice(S0, K, vol, T, N, r, dividend, type, optiontype);
            Console.Write(op[0, N] + "\n");          //option price
            double[] greek = GreekValues.output(S0, K, vol, T, N, r, dividend, type, optiontype, 0.001, 0.001);
            Console.WriteLine("Delta: " + greek[0]); //delta
            Console.WriteLine("Gamma: " + greek[1]); //gamma
            Console.WriteLine("Vega: " + greek[2]);  //vega
            Console.WriteLine("Theta: " + greek[3]); //theta
            Console.WriteLine("Rho: " + greek[4]);   //rho
            Console.ReadLine();
        }