⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tst_binomial_approximations.cc

📁 Financial Recipes
💻 CC
字号:
// file tst_binomial.cc// author: Bernt A Odegaardvoid test_binomial_pricing(){    cout << "Testing Binomial Pricing" << endl;    double spot = 100.0;    double exercise = 100.0;    double r = 0.1;    double sigma = 0.25;    double time_to_maturity=1.0;    int steps = 100;    cout << " Standard option prices" << endl;    cout << " european " << endl;    cout << " call: " << option_price_call_european_binomial(spot,exercise,r,sigma,time_to_maturity,steps) 	 << endl;    cout << " put: " << option_price_put_european_binomial(spot,exercise,r,sigma,time_to_maturity,steps) 	 << endl;    cout << " american " <<endl;    cout << " call: " << option_price_call_american_binomial(spot,exercise,r,sigma,time_to_maturity,steps) 	 << endl;    cout << " put: " << option_price_put_american_binomial(spot,exercise,r,sigma,time_to_maturity,steps) 	 << endl;    cout << " Option prices with continous payout " << endl;    double y=0.02;    cout << " american " <<endl;    cout << " call: " << option_price_call_american_binomial_payout(spot,exercise,r,y,sigma,time_to_maturity,steps) 	 << endl;    cout << " put: " << option_price_put_american_binomial_payout(spot,exercise,r,y,sigma,time_to_maturity,steps) 	 << endl;    cout << " Pricing with discrete dividends " << endl;    vector<double> dividend_times;     dividend_times.push_back(0.25);    dividend_times.push_back(0.75);    vector<double> dividend_yields;    dividend_yields.push_back(0.025);    dividend_yields.push_back(0.025);    cout << "Proportional dividends " << endl;    cout << " american call, dividends=2.5%, 2.5%, price= " 	 << option_price_call_american_proportional_dividends_binomial(	     spot,exercise,r,sigma,time_to_maturity,steps,	     dividend_times, dividend_yields) 	 << endl;    vector<double> dividend_amounts;     dividend_amounts.push_back(2.5);    dividend_amounts.push_back(2.5);    cout << "Discrete dividends: "  << endl;    cout << " american call, dividends 2.5 2.5, price= " 	 << option_price_call_american_discrete_dividends_binomial(	    spot,exercise,r,sigma,time_to_maturity,steps,	    dividend_times, dividend_amounts) 	 << endl;    cout << " done testing binomial pricing " << endl;};void test_binomial_partials(){    cout << "Testing binomial partials " << endl;    double S = 100.0;    double X = 100.0;    double r = 0.1;     double sigma = 0.25;    double time = 1.0;    int no_steps=100;    cout << " american call delta = " 	 <<   option_price_delta_american_call_binomial(S,X,r,sigma,time, no_steps) 	 << endl;    cout << " american put delta = " 	 <<   option_price_delta_american_put_binomial(S,X,r,sigma,time, no_steps) 	 << endl;    double delta, gamma, theta, vega, rho;    option_price_partials_american_call_binomial(S,X,r, sigma, time, no_steps,				     delta, gamma, theta, vega, rho);    cout << "CALL price partials " << endl;    cout << " Delta = " << delta << endl;    cout << " gamma = " << gamma << endl;    cout << " theta = " << theta << endl;    cout << " vega  = " << vega << endl;    cout << " rho   = " << rho << endl;    option_price_partials_american_put_binomial(S,X,r, sigma, time, no_steps,				     delta, gamma, theta, vega, rho);    cout << "PUT price partials" << endl;    cout << " Delta = " << delta << endl;    cout << " gamma = " << gamma << endl;    cout << " theta = " << theta << endl;    cout << " vega  = " << vega << endl;    cout << " rho   = " << rho << endl;  };void test_binomial_approximations(){    test_binomial_pricing();    test_binomial_partials();};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -