%设置随机数状态
randn('state',0);
%生成三个长度为250服从几何布朗运动的路径
paths=AssetPaths(40,0.15,0.3,1,250 ,3);
plot(1:length(paths),paths(1,:),'r')
hold on
plot(1:length(paths),paths(2,:),'b')
hold on
plot(1:length(paths),paths(3,:),'k')
%%
%标底资产价格
Price=100;
%执行价格
Strike=95;
%无风险收益率(年化)10%
Rate=0.1
%剩余时间
Time=3/12;
%年化波动率
Volatility=0.5
[Call, Put] = blsprice(100, 95, 0.1, 0.25, 0.5)
%%
%标底资产价格
Price=100;
%执行价格
Strike=95;
%无风险收益率(年化)
Rate=0.1;%10%
%剩余时间
Time=3/12;%=0.25;
%年化波动率从0.1到0.5间隔0.01共41个数据点
Volatility=0.1:0.01:0.5;
% 数组Volatility的元素个数
N=length(Volatility)
Call=zeros(1,N);
Put=zeros(1,N);
for i=1:N
[Call(i), Put(i)] = blsprice(Price, Strike, Rate, Time, Volatility(i));
end
%看涨期权为虚线
plot(Call,'b--');
hold on
%看跌期权为实现,‘b’表示蓝色
plot(Put,'b');
%横坐标
xlabel('Volatility')
%纵坐标
ylabel('price')
%线标
legend('Call','Put')
%%
%标底资产价格
Price=100;
%执行价格
Strike=95;
%无风险收益率(年化)
Rate=0.1;%10%
%剩余时间
Time=3/12;%=0.25;
%年化波动率
Volatility=0.5;
[CallDelta, PutDelta] = blsdelta(Price, Strike, Rate, Time, Volatility)
%%
%标底资产价格60元到100元每间隔1元
Price=60:1:100;
%执行价格
Strike=95;
%无风险收益率(年化)
Rate=0.1;% 表示10%
%剩余时间从1个月到12月每间隔1个月
Time=(1:1:12)/12;
%年化波动率
Volatility=0.5; % 表示50%
% meshgrid将变量网格化
[Price,Time]=meshgrid(Price,Time);
[Calldelta, Putdelta] = blsdelta(Price, Strike, Rate, Time, Volatility);
%mesh(Price, Time, Calldelta);
%画网格图
mesh(Price, Time, Putdelta);
%X轴坐标
xlabel('Stock Price ');
%Y轴坐标
ylabel('Time (year)');
%Z轴坐标
zlabel('Delta');
%%
%TestImpliedVolatility
%市场价格
Price=100;
%执行价格
Strike=95;
%无风险利率
Rate=0.10;
%时间(年)
Time=1.0;
CallPrice=15.0;%看涨期权交易价格
PutPrice=7.0; %看跌期权交易价格
%调用ImpliedVolatility函数
[Vc,Vp,Cfval,Pfval]=ImpliedVolatility(Price,Strike,Rate,Time,CallPrice,PutPrice)
%%
Price=100;
Strike=95;
Rate=0.10;
Time=1.0;
%波动率从0到20%
Volatility=0:0.1:2.0;
n=length(Volatility);
Call=zeros(n,1);
Put=zeros(n,1);
%分别计算看涨期权价格与看跌期权价格
for i=1:n
[Call(i),Put(i)] = blsprice(Price, Strike, Rate, Time, Volatility(i));
end
%画子图
% subplot(2,1,1)其中“2,1”表示画一个2X1的矩阵图
%最后的参数“1”表示画第一个图,顺序是从上到下,从左到右。
subplot(2,1,1)
plot(Volatility,Call,'-*');
legend('CallPrice')
subplot(2,1,2)
plot(Volatility,Put,'-o');
legend('PutPrice')
%%
%标底资产价格
Price=100;
%执行价格
Strike=95;
%无风险收益率(年化)
Rate=0.1;%10%
%剩余时间
Time=1;%;
%看涨期权市价10元
Value=15;
%看涨期权 Class=1 (默认)
Volatility = blsimpv(Price, Strike, Rate, Time, Value)
%%
%标底资产价格
Price=100;
%执行价格
Strike=95;
%无风险收益率(年化)
Rate=0.1;%10%
%剩余时间
Time=6/12;%;
%看涨期权
flag=1;
%每阶段间个1个月
Increment=1/12;
%波动率
Volatility=0.5;
%调用binprice函数
[AssetPrice, OptionValue] = binprice(Price, Strike, Rate, Time, Increment, Volatility, flag)
%%
[Price,VarPrice,CI] = BlsMCIS(50,52,0.1,5/12,0.4,1000)
%%
[call,put]=blsprice(50,52,0.1,5/12,0.4)
%%
[Price,VarPrice,CI] = BlsMCIS(50,52,0.1,5/12,0.4,10000)
%%
blsmc1(50,52,0.1,5/12,0.4,10000)
%%
[call,put]=blsprice(50,50,0.1,5/12,0.4)
%%
[P,aux,ci]=DownOutPutMC(50,50,0.1,5/12,0.4,40,600,10000)
%%
randn('state',0)
[P,CI] = AsianMC(50,50,0.1,5/12,0.4,5,50000)
%%
[P,CI] = AsianMCCV(50,50,0.1,5/12,0.4,5,45000,5000)