MATLAB金融计算试题(2014级研究生用)
(上机操作使用)
一、利率期限结构(20分)
    已知国债面值是100美元,各期收益率为
国债品种
票息
到期日
当期收益
3个月
17-Apr-2013
1.15
6个月
17-Jul-2013
1.18
2年
1.75
31-Dec-2014
1.68
5年
3.00
15-Nov-2017
2.97
10年
4.00
15-Nov-2022
4.01
30年
5.375
15-Feb-2041
4.92
  试分析其利率期限结构。
MATLAB命令:
  bonds=[datenum('04/17/2013')  0    100;
    datenum('07/17/2013')  0      100;
    datenum('12/31/2014')  0.0175  100;
    datenum('11/15/2017')  0.03    100;
    datenum('11/15/2022')  0.04    100;
    datenum('02/15/2041')  0.0537  100];
yield=[0.0115 0.0118 0.0168 0.0297 0.0401 0.0492]';
settle=datenum('01/17/2013'); %结算日
[zerorates,curvedates]=zbtyield(bonds,yield,settle)
datestr(curvedates)
plot(zerorates)
运行结果:
zerorates =
    0.0115
    0.0118
    0.0168                           
    0.0302
    0.0418
    0.0550
curvedates =
    735341
    735432
    735964
    737014
    738840
matlab考试题库及答案    745507
ans =
17-Apr-2013
17-Jul-2013
31-Dec-2014
15-Nov-2017
15-Nov-2022
15-Feb-2041
二、期权定价(30分)
若股票现在价格为$50,期权执行价格为$52,无风险利率为0.1,股票波动标准差为0.4,期权的到期日为6个月,且若这一卖权在3.5月时有一次股息支付$2
(1)使用Black-Scholes定价公式计算欧式卖权和买权的价值;
MATLAB命令:
price=50;
strike=52;
rate=0.1;
time=6/12;
volatility=0.4;
[callprice,putprice]=blsprice(price,strike,rate,time,volatility)
运行结果:
callprice =
    5.8651
putprice =
    5.3290
(2)利用二项式期权定价(二叉树(CRR)模型定价数值解)计算看涨看跌期权价格;
MATLAB命令:
price=50;
strike=52;
rate=0.1;
time=6/12;
increment=1/12;
volatility=0.4;
flag=0;
dividentrate=0;
divident=2;
exdiv=3.5;
[price,option]=binprice(price,strike,rate,time,increment,volatility,flag,dividentrate,divident,exdiv)
运行结果:
得出二叉树每个交点处的资产价格和期权价值.
price =
  50.0000  55.8985  62.5172  69.9441  76.2699  85.6054  96.0836
        0    44.7755  50.0326  55.9315  60.5420  67.9524  76.2699
        0        0  40.1226  44.8084  48.0575  53.9398  60.5420
        0        0        0  35.9790  38.1474  42.8167  48.0575
        0        0        0        0  30.2809  33.9873  38.1474
        0        0        0        0        0  26.9787  30.2809
        0        0        0        0        0        0  24.0366
option =
    6.7016    3.9308    1.7652    0.4598        0        0        0
        0    9.6686    6.2275    3.1393    0.9412        0        0
        0        0  13.3762    9.5132    5.4560    1.9263        0
        0        0        0  17.5811  13.8526    9.1833    3.9425
        0        0        0        0  21.7191  18.0127  13.8526
        0        0        0        0        0  25.0213  21.7191
        0        0        0        0        0        0  27.9634
由结果可知,option第一行第一列就是看跌期权价格,该期权价格为6.7016元。
MATLAB命令:
price=50;
strike=52;
rate=0.1;
time=6/12;
increment=1/12;
volatility=0.4;
flag=1;
dividentrate=0;
divident=2;
exdiv=3.5;
[price,option]=binprice(price,strike,rate,time,increment,volatility,flag,dividentrate,divident,exdiv)
运行结果:
得出二叉树每个交点处的资产价格和期权价值.
price =
  50.0000  55.8985  62.5172  69.9441  76.2699  85.6054  96.0836
        0  44.7755  50.0326  55.9315  60.5420  67.9524  76.2699
        0        0  40.1226  44.8084  48.0575  53.9398  60.5420
        0        0        0  35.9790  38.1474  42.8167  48.0575
        0        0        0        0  30.2809  33.9873  38.1474
        0        0        0        0        0  26.9787  30.2809
        0        0        0        0        0        0  24.0366
option =
    4.9996    7.8792  12.0864  17.9441  25.1294  34.0369  44.0836
        0    2.1193  3.6809    6.2599  10.3427  16.3840  24.2699
        0        0    0.5473    1.0878    2.1622    4.2976    8.5420
        0        0        0        0        0        0        0
        0        0        0        0        0        0        0
        0        0        0        0        0        0        0
        0        0        0        0        0        0        0
由结果可知,option第一行第一列就是看涨期权价格,该期权价格为4.9996元。
    (3) 假设股票价格服从几何布朗运动,试用蒙特卡洛模拟方法计算该期权价格。
MATLAB命令:
s0=50;
K=52;
r=0.1;
T=0.5;
sigma=0.4;
Nu=1000;
randn('seed',0); %定义随机数发生器种子是0,
%这样保证每次模拟的结果相同
nuT=(r-0.5*sigma^2)*T
sit=sigma*sqrt(T)
discpayoff=exp(-r*T)*max(0,s0*exp(nuT+sit*randn(Nu,1))-K);%期权到期时的现金流
[eucall,varprice,ci]=normfit(discpayoff)
运行结果:
nuT = 
0.0100
sit =
    0.2828
eucall =
    6.1478
varprice =

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。