《金融计算》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
金融计算
实验报告
班级: 2013级信息与计算科学学号:
姓名:
指导老师:李峰
2016年6月
《金融计算》实验报告
开课实验室:实训楼B-206
r=;
d oubl
e b2=;
d oubl
e b3=;
d oubl
e b4=;
d oubl
e b5=;
d oubl
e p=;
d oubl
e c2=;
d oubl
e a=fabs(x);
d oubl
e t=+a*p);
d oubl
e b=c2*exp((-x)*(x/);
d oubl
e n=((((b5*t+b4)*t+b3)*t+b2)*t+b1)*t;
n=*n;
i f(x r eturn n; } double option_price_call_black_scholes(const double &S,const double &X,const double &r,const double &sigma,const double &time) { d oubl e time_sqrt=sqrt(time); d oubl e d1=(log(S/X)+r*time)/(sigma*time_sqrt)+*sigma*time_sqrt; d oubl e d2=d1-(sigma*time_sqrt); d oubl e c=S*N(d1)-X*exp(-r*time)*N(d2); r eturn c; } double option_price_impied_volatility_call_black_scholes_bisections(const double &S,const double &X,const double &r,const double &time,const double &option_price) { c onst double ACCURACY=; c onst int MAX_ITERATIONS=100; const double ERROR=-1e40; double sigma_low=1e-5; double sigma_high=; for(int i=0;i { double sigma=(sigma_low+sigma_high)*; double price=option_price_call_black_scholes(S,X,r,sigma,time); double test=(price-option_price); double b2=; double b3=; double b4=; double b5=; double p=; double c2=; double a=fabs(x); double t=+a*p); double b=c2*exp((-x)*(x/); double n=((((b5*t+b4)*t+b3)*t+b2)*t+b1)*t; n=*n; if(x return n; } double max(double a,double b) { if(a>b)return a;else return b; }