#include "euro_opt_diff_BDT.cpp" #include "Point.cpp" #include "Curve.cpp" #include "SdeIntegrator.h" #include #include #include #include #include void main(){ vector time; time.push_back(0.);time.push_back(0.12);time.push_back(0.25); time.push_back(0.37); vectorfrwd; frwd.push_back(0.106);frwd.push_back(0.160);frwd.push_back(0.170); frwd.push_back(0.1835); vectorvol; vol.push_back(0.26);vol.push_back(0.220);vol.push_back(0.170); vol.push_back(0.1835); double S = 100.0; double K = 100.0; double B_maturity = 2.0; double O_maturity = 1.0; int points_curve = 100; int num_sim = 10; Spline spline; double* t = spline.spline_time_array(points_curve,B_maturity); double* yield = spline.spline_array(time,frwd,points_curve,B_maturity); double* yield_prime = spline.spline_prime_array(time,frwd,points_curve,B_maturity); double* sigma = spline.spline_array(time,vol,points_curve,B_maturity); double* sigma_prime = spline.spline_prime_array(time,vol,points_curve,B_maturity); double r = yield[0]; euro_option_diff_BDT option; //option only parameters option.set_O_maturity(O_maturity); option.set_strike(K); option.set_face(S); //bond parameters option.bond.set_B_maturity(B_maturity); option.bond.set_time(t); option.bond.set_yield(yield); option.bond.set_yield_prime(yield_prime); option.bond.set_sigma(sigma); option.bond.set_sigma_prime(sigma_prime); option.bond.set_r0(yield[0]); option.bond.set_r(option.bond.get_r0()); option.bond.set_dt(B_maturity/points_curve); option.bond.sde.set_X0(option.bond.get_r0()); option.bond.set_SDE(); int min=num_sim; TwoCurve curve; curve=option.bond.gen_AverBondandIRvsMaturity(num_sim,points_curve,S); double option_price=option.calculate_call_aver(num_sim,points_curve); }