《金融计算》实验报告.docx
- 文档编号:20957484
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:25
- 大小:160.31KB
《金融计算》实验报告.docx
《《金融计算》实验报告.docx》由会员分享,可在线阅读,更多相关《《金融计算》实验报告.docx(25页珍藏版)》请在冰豆网上搜索。
《金融计算》实验报告
金融计算
实验报告
班级:
2013级信息与计算科学
学号:
姓名:
指导老师:
李峰
2016年6月
《金融计算》实验报告
开课实验室:
实训楼B-206
年级专业班
2013级信息与计算科学
日期
20160318
实验项目名称
多期复利算法
指导教师
李峰
一、实验目的
掌握多期复利终值的计算公式,并能够进行实际应用。
二、实验内容
案例:
26岁的外企白领王小姐,每月工资6000元,除去日常开销和朋友应酬所剩无几。
考虑到未来购车购房的需求,王小姐打算每月固定拿出1000元用于购买招商信诺运筹帷幄终身寿险(投资连结型),交满10年,既能投资又有年轻人必须的意外险保障,不再做个“月光族”。
这样一来,在每月扣取15元初始费用后,剩余的985元进入王小姐名下的保单账户,则在投资回报率分别为7%的假设下,其未来可能的个人账户价值是多少?
三、源程序清单
publicclassjisuan{
publicstaticvoidmain(String[]args){
doubler=0.07;//无风险年利率
doublet;//时间
doublec=985*12;//每一年的的本金
doublep;
doubleb=0;//收益
p=1+r;
for(t=1;t<=10;t++)
b=(c+b)*p;
System.out.println(b);
}
}
四、测试结果
教师评价
《金融计算》实验报告
开课实验室:
实训楼B-206
年级专业班
2013级信息与计算科学
日期
20160325
实验项目名称
固定收益证券定价算法
指导教师
李峰
一、实验目的
掌握固定收益证券定价公式,并能够进行实际应用。
二、实验内容
案例:
假设有一种面值为100,票面利率是10%,当时的市场年利率是9%,期限是3年,每年支付一次利息的债券,试计算该债券的价格。
三、源程序清单
publicclassjisuan{
publicstaticvoidmain(String[]args){
doublep=0;//债卷价格
doublet;
doubler=0.09;//利率
doubleT=3;//债卷期限
doubleCt=100*0.1;//利息
for(t=1;t p=p+Ct/(Math.pow(1+r,t)); p=p+(Ct+100)/(Math.pow(1+r,T)); System.out.println(p); } } 测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 20160325 实验项目名称 普通股定价算法 指导教师 李峰 一、实验目的 掌握普通股票定价公式,并能够进行实际应用。 二、实验内容 案例: 假设贴现率5%,每期的股息如下图所示,计算该股票的价格? 三、源程序清单 publicclassjisuan{ publicstaticvoidmain(String[]args){ doublev=0;//股票价格 intt; doubler=0.05;//贴现率 doubleT=7;//期限 double[]Ct={0.1,0.2,0.5,0.5,0.8,0.6,0.7};//股息 for(t=1;t<=T;t++) v=v+Ct[t-1]/(Math.pow(1+r,t)); System.out.println(v); } } 四、测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 20160401 实验项目名称 个人房贷的两种还款算法 指导教师 李峰 一、实验目的 掌握等额本金和等额本息两种还款算法,并能够进行实际应用。 二、实验内容 案例: 韩女士打算在保定源盛嘉禾二期买一套三居室住房,已经看好的户型面积啊131平米,目前单价7300元/平米。 韩女士在某高校工作,个人月收入8000,每年有公积金收入25000,孩子上幼儿园开销15000,家庭开销30000。 首套房首付款比例30%,公积金贷款利率4%,最多贷40万;商业银行贷款利率5.9%,贷款额度不能超过100万,贷款期限30年。 给出你的购房建议以及还款方式! 三、源程序清单 等额本息还款: #include"stdio.h" #include"math.h" voidmain() {floats,p,V,R1,R2,B,r1,r2,m,m1=0.0,m2=0.0; intT; intG; printf("住房面积: "); scanf("%f",&s); printf("单位面积价格: "); scanf("%f",&p); printf("公积金贷款额: "); scanf("%d",&G); printf("商业性贷款年利率: "); scanf("%f",&R1); printf("公积金贷款年利率: "); scanf("%f",&R2); printf("贷款时间(月): "); scanf("%d",&T); V=s*p*0.7; B=V-G; printf("贷款总额为%f元\n",V); printf("公积金贷款额为%d元\n",G); printf("商业性贷款额为%f元\n",B); r1=R1/12; r2=R2/12; m1=B*r1*(pow((1+r1),T))/(pow((1+r1),T)-1); m2=G*r2*(pow((1+r2),T))/(pow((1+r2),T)-1); m=m1+m2; printf("每月还款额为%f元\n",m); } 等额本金还款: #include"stdio.h" #include"math.h" voidmain() {floats,p,V,R1,R2,B,r1,r2,m,Gpermoney,Bpermoney,Bperbenjin,Gperbenjin,ALLpermoney,Glefthuankuane,Blefthuankuane; intT,t,G; printf("住房面积: "); scanf("%f",&s); printf("单位面积价格: "); scanf("%f",&p); printf("公积金贷款额: "); scanf("%d",&G); printf("商业性贷款年利率: "); scanf("%f",&R1); printf("公积金贷款年利率: "); scanf("%f",&R2); printf("贷款时间(月): "); scanf("%d",&T); V=s*p*0.7; Gperbenjin=G/T; B=V-G; Bperbenjin=B/T; printf("贷款总额为%f元\n",V); printf("公积金贷款额为%d元\n",G); printf("商业性贷款额为%f元\n",B); r1=R1/12; r2=R2/12; Glefthuankuane=G; Blefthuankuane=B; for(t=1;t<=T;t++){ Gpermoney=Gperbenjin+Glefthuankuane*r1;//Gpermoney公积金每月还款额Gperbenjin公积金每月还款本金额 Bpermoney=Bperbenjin+Blefthuankuane*r2;//Glefthuankuane公积金剩余还款本金额以B开头的同样的意思 ALLpermoney=Gpermoney+Bpermoney; printf("每个月还款额为%f元\n",ALLpermoney); Glefthuankuane-=Gperbenjin; Blefthuankuane-=Bperbenjin; } } 测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 20160408 实验项目名称 远期定价公式的算法 指导教师 李峰 一、实验目的 掌握无收益远期远期定价算法和有收益的远期定价算法,并能够进行实际应用。 二、实验内容 案例1: 考虑一个6个月的远期多头情况,标的资产是1年期贴现债券,远期的交割价为950元。 假设6个月的无风险利率为6%,债券的现价为930元。 试求远期的价值及远期合约生效时远期的价格分别是多少? 案例2: 考虑一种5年期债券,价格为900元。 假设这种债券的1年期远期的交割价格为910元。 在6个月后和12个月后,预计都将收到60元的利息。 第二个付息日正好在远期交割日之前。 已知6个月和12个月的无风险利率分别是9%和10%。 试计算这种远期的价值和价格? 三、源程序清单 案例一: #include"stdio.h" #include"math.h" voidmain() { floatf,F,S,K,r,t; printf("远期的现价: "); scanf("%f",&S); printf("远期的交割价格: "); scanf("%f",&K); printf("远期的期限(年): "); scanf("%f",&t); printf("远期的利率: "); scanf("%f",&r); f=S-K*exp(-r*t); printf("远期的价值为%f\n",f); F=S*exp(r*t); printf("远期的价格为%f",F); } 案例二: #include"stdio.h" #include"math.h" voidmain() { floatf,F,S,K,r,r1,r2,t,t1,t2,I,I1,I2; printf("远期的现价: "); scanf("%f",&S); printf("远期的交割价格: "); scanf("%f",&K); printf("远期的利息: "); scanf("%f",&I); printf("远期的期限(年): "); scanf("%f",&t); printf("远期的期限对应的利率: "); scanf("%f",&r); printf("远期的第一种付息时间(年): "); scanf("%f",&t1); printf("远期的第二种付息时间(年): "); scanf("%f",&t2); printf("远期的第一种付息时间对应的利率: "); scanf("%f",&r1); printf("远期的第二种付息时间对应的利率: "); scanf("%f",&r2); I1=I*exp(-r1*t1); I2=I*exp(-r2*t2); f=S-I1-I2-K*exp(-r*t); printf("远期的价值为%f\n",f); F=(S-I1-I2)*exp(r*t); printf("远期的价格为%f",F); } 四、测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 20160408 实验项目名称 外汇期货的定价算法 指导教师 李峰 一、实验目的 掌握外汇期货的定价算法,并能够进行实际应用。 二、实验内容 案例1: 考虑一外汇期货,其标的资产价格是$100,交割价格是$99,本国无风险年利率是10%,外汇的无风险年利率是0.2%,到期时间是6个月,试计算该外汇期货的价格。 三、源程序清单 #include"stdio.h" #include"math.h" voidmain() { floatf,F,S,K,t,r1,r2; printf("外汇期货标的资产的现价: "); scanf("%f",&S); printf("外汇期货标的资产的交割价格: "); scanf("%f",&K); printf("外汇期货的到期时间(年): "); scanf("%f",&t); printf("外汇期货的本国无风险利率: "); scanf("%f",&r1); printf("外汇的无风险年利率: "); scanf("%f",&r2); f=S*exp(-r2*t)-K*exp(-r1*t); F=S*exp((r1-r2)*t); printf("远期的价值为%f\n",f); printf("远期的价格为%f",F); } 四、测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 20160415 实验项目名称 对数正态分布的算法 指导教师 李峰 一、实验目的 掌握对数正太分布的算法,并能够进行实际应用。 二、实验内容 案例1: 一只初始价格为40美元的股票,该股票的收益率期望为每年16%,波动率为每年20%,则6个月之后的股票价格的概率分布是什么? 三、源程序清单 #include"stdio.h" #include"math.h" voidmain() { doublea,b,r,k,S,qw,fc,T,bzc,min,max; printf("股票的初始价格: "); scanf("%lf",&S); printf("期望收益率: "); scanf("%lf",&r); printf("波动率: "); scanf("%lf",&k); printf("周期: "); scanf("%lf",&T); qw=log(S)+(r-k*k/2)*T; fc=k*k*T; printf("股票的期望值为%lf,方差为%lf\n",qw,fc); bzc=sqrt(fc); a=qw-1.96*bzc; b=qw+1.96*bzc; min=exp(a); max=exp(b); printf("股票价格的概率分布为(%lf,%lf)\n",min,max); } 四、测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 实验项目名称 Black-Scholes期权定价模型的算法 指导教师 李峰 一、实验目的 掌握Black-Scholes期权定价的算法,并能够进行实际应用。 通过二分法,确定隐含波动率。 二、实验内容 案例1: 某金融机构卖出100000份无股息股票的欧式看涨期权,收入300000美元,假设股票价格49美元,期权执行价格为50美元,无风险利率5%,股票价格波动率每年20%,期权期限20周,股票的收益率期望为每年13%。 根据期权定价公式,该期权的理论价格应是多少? 案例2: 某欧式看涨期权价格1.875,标的资产价格21,执行价格20,无风险利率10%,期限3个月,计算隐含波动率? 三、源程序清单 案例一: #include"stdio.h" #include"math.h" #definepi3.14 #defineR0.2316 doublen(doublex){ doublev1; v1=1.0/sqrt(2*pi)*exp(-x*x/2); returnv1; } doubleN(doublex){ doublea1=0.3194; doublea2=-0.3566; doublea3=1.7815; doublea4=-1.8213; doublea5=1.3303; doublek,v2; k=1/(1+R*x); if(x>=0) v2=1-n(x)*(a1*k+a2*k*k+a3*k*k*k+a4*pow(k,4)+a5*pow(k,5)); else v2=1-N(-x); returnv2; } voidmain() { doubled1,d2,X,S,r,k,T,c; printf("看涨期权的价格: "); scanf("%lf",&S); printf("行权价格: "); scanf("%lf",&X); printf("无风险利率: "); scanf("%lf",&r); printf("价格波动率: "); scanf("%lf",&k); printf("周期: "); scanf("%lf",&T); d1=(log(S/X)+(r+k*k/2)*T)/(k*sqrt(T)); d2=d1-k*sqrt(T); c=S*N(d1)-X*exp(-r*T)*N(d2); printf("看涨期权的价格为%lf元",c); } 案例二: #include #include #include usingnamespacestd; //voidoption_price_partials_call_black_scholes(double&S,double&X,double&r,double&sigma,double&Delta,double&Gamma,double&Theta,double&Vega,double&time,double&Rho) //{ //doubletime_sqrt=sqrt(time); //doubled1=(log(S/X)+r*time)/(sigma*time-sqrt)+0.5*sigma*time_sqrt; //doubled2=d1-(sigma*time_sqrt); //Delta=N(d1); //Gamma=N(d1)/(S*sigma*time_sqrt); //Theta=-(S*sigma*N(d1)/(2*time_sqrt)-r*X*exp(-r*time)*N(d2)); //Vega=S*time_sqrt*N(d1); //Rho=X*time*exp(-r*time)*N(d2); //} doubleN(constdouble&x) { if(x>6.0){ return1.0; }; if(x<-6.0){ return0.0; }; doubleb1=0.31938153; doubleb2=-0.356563782; doubleb3=1.781477937; doubleb4=-1.821255978; doubleb5=1.330274429; doublep=0.2316419; doublec2=0.3989423; doublea=fabs(x); doublet=1.0/(1.0+a*p); doubleb=c2*exp((-x)*(x/2.0)); doublen=((((b5*t+b4)*t+b3)*t+b2)*t+b1)*t; n=1.0-b*n; if(x<0.0)n=1.0-n; returnn; } doubleoption_price_call_black_scholes(constdouble&S,constdouble&X,constdouble&r,constdouble&sigma,constdouble&time) { doubletime_sqrt=sqrt(time); doubled1=(log(S/X)+r*time)/(sigma*time_sqrt)+0.5*sigma*time_sqrt; doubled2=d1-(sigma*time_sqrt); doublec=S*N(d1)-X*exp(-r*time)*N(d2); returnc; } doubleoption_price_impied_volatility_call_black_scholes_bisections(constdouble&S,constdouble&X,constdouble&r,constdouble&time,constdouble&option_price) { constdoubleACCURACY=1.0e-5; constintMAX_ITERATIONS=100; constdoubleERROR=-1e40; doublesigma_low=1e-5; doublesigma_high=0.3; for(inti=0;i { doublesigma=(sigma_low+sigma_high)*0.5; doubleprice=option_price_call_black_scholes(S,X,r,sigma,time); doubletest=(price-option_price); //cout< if(fabs(test) returnsigma; } if(test<0.0){ sigma_low=sigma; } else{ sigma_high=sigma; } } returnERROR; } intmain() {doubleS=21;doubleX=20;doubler=0.10;doubletime=0.25; doublec=1.875; cout<<"隐含波动率: "; cout< return0; 四、}测试结果 教师评价 《金融计算》实验报告 开课实验室: 实训楼B-206 年级专业班 2013级信息与计算科学 日期 20160429 实验项目名称 蒙特卡洛模拟算法的期权定价 指导教师
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金融计算 金融 计算 实验 报告