示例#1
0
        //The main body
        private void button1_Click(object sender, EventArgs e)
        {
            //Define the inputs
            double S0    = Convert.ToDouble(textBoxS0.Text);
            double K     = Convert.ToDouble(textBoxK.Text);
            double T     = Convert.ToDouble(textBoxT.Text);
            double r     = Convert.ToDouble(textBoxr.Text);
            double sigma = Convert.ToDouble(textBoxsigma.Text);
            int    N     = Convert.ToInt32(textBoxN.Text);
            int    steps = Convert.ToInt32(textBoxsteps.Text);
            bool   type;

            if (textBoxtype.Text == "true")
            {
                type = true;
            }
            else
            {
                type = false;
            }
            double[,] R = RandomNumber.RandCreator.Rand(N, steps);

            //Outputs
            textBoxPrice.Text = Convert.ToString(Option.PandStd(S0, K, sigma, r, T, steps, N, type, R)[0]);
            textBoxStd.Text   = Convert.ToString(Option.PandStd(S0, K, sigma, r, T, steps, N, type, R)[1]);
            textBoxDelta.Text = Convert.ToString(Greeks.Delta(S0, K, sigma, r, T, steps, N, type, R));
            textBoxGamma.Text = Convert.ToString(Greeks.Gamma(S0, K, sigma, r, T, steps, N, type, R));
            textBoxVega.Text  = Convert.ToString(Greeks.Vega(S0, K, sigma, r, T, steps, N, type, R));
            textBoxTheta.Text = Convert.ToString(Greeks.Theta(S0, K, sigma, r, T, steps, N, type, R));
            textBoxRho.Text   = Convert.ToString(Greeks.Rho(S0, K, sigma, r, T, steps, N, type, R));
        }
示例#2
0
        //The main body
        private void button1_Click(object sender, EventArgs e)
        {
            DateTime beforDT = System.DateTime.Now;  //开始监视代码运行时间

            //create objects
            RandomNumber randomnumber = new RandomNumber();
            Value        value        = new Value();
            Price        price        = new Price();
            Greeks       greeks       = new Greeks();

            //Define the inputs
            value.S      = Convert.ToDouble(textBoxS0.Text);
            value.K      = Convert.ToDouble(textBoxK.Text);
            value.T      = Convert.ToDouble(textBoxT.Text);
            value.R      = Convert.ToDouble(textBoxr.Text);
            value.Sigma  = Convert.ToDouble(textBoxsigma.Text);
            value.Trials = Convert.ToInt32(textBoxN.Text);
            value.N      = Convert.ToInt32(textBoxsteps.Text);

            if (call.Checked)
            {
                value.Type = true;
            }
            else if (put.Checked)
            {
                value.Type = false;
            }
            else
            {
                MessageBox.Show("Please select either call or put");
                return;
            }

            if (normal.Checked)
            {
                value.An = false;
            }
            else if (antithetic.Checked)
            {
                value.An = true;
            }
            else
            {
                MessageBox.Show("Please select method");
                return;
            }

            if (CV.Checked)
            {
                value.CV = true;
            }
            else
            {
                value.CV = false;
            }

            double[,] Rn = randomnumber.Rand(value.Trials, value.N);
            value.Rn     = Rn;

            //Outputs
            textBoxPrice.Text = Convert.ToString(price.Oprice(value)[0]);
            textBoxStd.Text   = Convert.ToString(price.Oprice(value)[1]);
            textBoxDelta.Text = Convert.ToString(greeks.Delta(value));
            textBoxGamma.Text = Convert.ToString(greeks.Gamma(value));
            textBoxVega.Text  = Convert.ToString(greeks.Vega(value));
            textBoxTheta.Text = Convert.ToString(greeks.Theta(value));
            textBoxRho.Text   = Convert.ToString(greeks.Rho(value));

            DateTime afterDT = System.DateTime.Now;  //停止监视
            //从afterDT中减去beforDT的时间
            TimeSpan ts = afterDT.Subtract(beforDT);

            textBoxTime.Text = Convert.ToString(ts);
        }
示例#3
0
        //The main body
        private void button1_Click(object sender, EventArgs e)
        {
            label_pro.Text = "Input";

            DateTime beforDT = System.DateTime.Now;  //开始监视代码运行时间

            //create objects
            RandomNumber randomnumber = new RandomNumber();
            Value        value        = new Value();
            Price        price        = new Price();
            Greeks       greeks       = new Greeks();

            //Define the inputs
            value.S      = Convert.ToDouble(textBoxS0.Text);
            value.K      = Convert.ToDouble(textBoxK.Text);
            value.T      = Convert.ToDouble(textBoxT.Text);
            value.R      = Convert.ToDouble(textBoxr.Text);
            value.Sigma  = Convert.ToDouble(textBoxsigma.Text);
            value.Trials = Convert.ToInt32(textBoxN.Text);
            value.N      = Convert.ToInt32(textBoxsteps.Text);

            if (call.Checked)
            {
                value.Type = true;
            }
            else if (put.Checked)
            {
                value.Type = false;
            }
            else
            {
                MessageBox.Show("Please select either call or put");
                return;
            }

            if (normal.Checked)
            {
                value.An = false;
            }
            else if (antithetic.Checked)
            {
                value.An = true;
            }
            else
            {
                MessageBox.Show("Please select method");
                return;
            }

            if (CV.Checked)
            {
                value.CV = true;
            }
            else
            {
                value.CV = false;
            }
            if (CVNO.Checked)
            {
                value.CV = false;
            }
            else
            {
                value.CV = true;
            }

            if (MT.Checked)
            {
                value.MT = true;
            }
            else
            {
                value.MT = false;
            }

            if (Nouse.Checked)
            {
                value.MT = false;
            }
            else
            {
                value.MT = true;
            }

            label_pro.Text = "Reading Your Data";
            inprogress(10);

            double[,] Rn = randomnumber.Rand(value.Trials, value.N, value.MT);
            value.Rn     = Rn;

            label_pro.Text = "Creating Random Number Array";
            inprogress(20);

            //Outputs
            textBoxPrice.Text = Convert.ToString(price.Oprice(value)[0]);
            label_pro.Text    = "Calculate Price";
            inprogress(30);

            textBoxStd.Text = Convert.ToString(price.Oprice(value)[1]);
            label_pro.Text  = "Calculate Std";
            inprogress(40);

            textBoxDelta.Text = Convert.ToString(greeks.Delta(value));
            label_pro.Text    = "Calculate Delta";
            inprogress(50);

            textBoxGamma.Text = Convert.ToString(greeks.Gamma(value));
            label_pro.Text    = "Calculate Gamma";
            inprogress(60);

            textBoxVega.Text = Convert.ToString(greeks.Vega(value));
            label_pro.Text   = "Calculate Vega";
            inprogress(70);

            textBoxTheta.Text = Convert.ToString(greeks.Theta(value));
            label_pro.Text    = "Calculate Theta";
            inprogress(80);

            textBoxRho.Text = Convert.ToString(greeks.Rho(value));
            label_pro.Text  = "Calculate Rho";
            inprogress(90);

            DateTime afterDT = System.DateTime.Now;  //停止监视
            //从afterDT中减去beforDT的时间
            TimeSpan ts = afterDT.Subtract(beforDT);

            textBoxTime.Text = Convert.ToString(ts);
            label_pro.Text   = "Calculate Time";
            inprogress(100);

            int core_num;

            if (value.MT == true)
            {
                core_num = System.Environment.ProcessorCount;
            }
            else
            {
                core_num = 1;
            }
            TextBoxCore.Text = Convert.ToString(core_num);
        }