// // simu2.cc Stochastic Volatility Option Pricing Model // #include #include #include #include "simu2.h" #define unifrand() ((double) rand()/((double) RAND_MAX)) #define MAX(a,b) (((a) > (b)) ? (a) : (b)) svprice::svprice(double ttm,int nper,double r,double initstd, double meanstd, double k, double sigstd) { npers = nper; tinc = ttm/(double) nper; r1per = 1.0 + r*tinc; sigma0 = initstd; meansigma = meanstd; sigmasigma = sigstd; kappa = k; c0 = kappa * tinc * meansigma; c1 = 1.0 - kappa * tinc; c2 = 1.0 - sigmasigma * sqrt(tinc)*0.5*sqrt((double) 12); c3 = sigmasigma * sqrt(tinc) * sqrt((double) 12); c4 = sqrt(tinc)*sqrt((double) 12);} double svprice::eurcall(double stock,double strike,long int nsimu) { long int i,n; double x; x=0.0; for(n=0;n