//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)); }
//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); }
//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); }