matlab 期权图,欧式看涨期权定价作图|MATLAB 程序化交易(量化投资)|MATLAB技术论坛 - Powered by Discuz!...
function Call_Option_Pricing_Plot(varargin)
% copyright by fantuanxiaot
% 关注fantuanxiaot的量化分析新浪博客:http://blog.sina.com.cn/u/2029278253
% 期权定价作图的帽子图和三角图
% Rate年无风险收益率,K是执行价格,T是到期时间(以年计量)
% Sigma是年波动率,S是基期价格
% N是划分的时间段数
% 基于二叉树的期权定价作图
%% Call_Option_Pricing is begin
% 参数的输入
S=varargin{1};
K=varargin{2};
T=varargin{3};
Rate=varargin{4};
Sigma=varargin{5};
N=varargin{6};
% 单期收益率
r=Rate*T/360/N;
DeltaT=T/N;
% 初始化期权价格矩阵
Call_Option_Pricing_Matrix=zeros(N+1);
% 在Q测度下的风险中性概率
U=exp(Sigma*sqrt(DeltaT));
D=1/U;
P=(exp(r*DeltaT)-D)/(U-D);
% 最后一列的期权价值
for i=1:N+1
Call_Option_Pricing_Matrix(i,N+1)=max(0,S*D^(i-1)*U^(N+1-i)-K);
end
% 期权价值向前推移
% Call_Option_Pricing_Matrix形成了期权价格递归矩阵
for j=N:-1:1
for i=1:j
Call_Option_Pricing_Matrix(i,j)=exp(-DeltaT*r)*...
(Call_Option_Pricing_Matrix(i,j+1)*P+Call_Option_Pricing_Matrix(i+1,j+1)*(1-P));
end
end
%% Call_Option_Pricing_Hat_Plot is begin
% 期权定价的帽子作图
% 形成元胞位置矩阵:position_matrix
figure(1)
set(figure(1),'color','w')
hold on
xlim([-0.1 1.1])
ylim([-0.1 1.1])
for i=1:(N+1)
position_matrix{i,N+1}=[1 (N+1-i)/N];
end
for i=1:N
for j=1:i
position_matrix{j,i}=[(i-1)/N (i+1-j)/(i+1)];
end
end
% 形成二叉树基础图
hold on
for i=1:N
for j=1:i
position_1=[position_matrix{j,i};position_matrix{j,i+1}];
[arrowx,arrowy]=arrow_plot(gca,position_1(:,1),position_1(:,2));
annotation('textarrow',arrowx,arrowy,'headwidth',10,'color','m')
position_2=[position_matrix{j,i};position_matrix{j+1,i+1}];
[arrowx,arrowy]=arrow_plot(gca,position_2(:,1),position_2(:,2));
annotation('textarrow',arrowx,arrowy,'headwidth',10,'color','r')
end
end
hold on
% 基于Call_Option_Pricing_Matrix来标注期权价值
for i=1:(N+1)
for j=1:i
index=num2str(Call_Option_Pricing_Matrix(j,i));
pos=position_matrix{j,i};
text(pos(1),pos(2)+0.02,index,'fontsize',12,'fontname','Times New Roman');
end
end
title('欧式看涨期权定价的尖尖帽子图','fontsize',16,'fontname','楷体')
ylabel('Call Options Value','fontsize',16,'fontname','Times New Roman')
xlabel('时间分段','fontsize',16,'fontname','楷体')
hold off
%% Call_Option_Pricing_Triangle_Plot is begin
% 期权定价的三角形作图
clear position_matrix
figure(2)
set(figure(2),'color','w')
hold on
xlim([-0.1 1.1])
ylim([-0.1 1.1])
% 形成元胞位置矩阵:position_matrix
for i=1:(N+1)
position_matrix{i,N+1}=[1 (N+1-i)/N];
end
for i=1:N
high=0.5-(i-1)/N*0.5;
if i==1
delta=0;
else
delta=(1-2*high)/(i-1);
end
for j=1:i
position_matrix{j,i}=[(i-1)/N 1-high-(j-1)*delta];
end
end
% 形成二叉树基础图
hold on
for i=1:N
for j=1:i
position_1=[position_matrix{j,i};position_matrix{j,i+1}];
[arrowx,arrowy]=arrow_plot(gca,position_1(:,1),position_1(:,2));
annotation('textarrow',arrowx,arrowy,'headwidth',10,'color','g')
position_2=[position_matrix{j,i};position_matrix{j+1,i+1}];
[arrowx,arrowy]=arrow_plot(gca,position_2(:,1),position_2(:,2));
annotation('textarrow',arrowx,arrowy,'headwidth',10,'color','c')
end
end
hold on
% 基于Call_Option_Pricing_Matrix来标注期权价值
for i=1:(N+1)
for j=1:i
index=num2str(Call_Option_Pricing_Matrix(j,i));
pos=position_matrix{j,i};
text(pos(1),pos(2)+0.02,index,'fontsize',12,'fontname','Times New Roman');
end
end
title('欧式看涨期权定价的三角图','fontsize',16,'fontname','楷体')
ylabel('Call Options Value','fontsize',16,'fontname','Times New Roman')
xlabel('时间分段','fontsize',16,'fontname','楷体')
hold off
end
% 标注箭头函数
function varargout=arrow_plot(varargin)
if length(varargin{1})== 1 && ishandle(varargin{1}) && ...
strcmp(get(varargin{1},'type'),'axes')
hAx=varargin{1};
varargin=varargin(2:end);
else
hAx = gca;
end;
if length(varargin)==1
pos = varargin{1};
else
[x,y] = deal(varargin{:});
end
%%Get limits
axun = get(hAx,'Units');
set(hAx,'Units','normalized');
axpos = get(hAx,'Position');
axlim = axis(hAx);
axwidth = diff(axlim(1:2));
axheight = diff(axlim(3:4));
if exist('x','var')
varargout{1} = (x-axlim(1))*axpos(3)/axwidth + axpos(1);
varargout{2} = (y-axlim(3))*axpos(4)/axheight + axpos(2);
else
pos(1) = (pos(1)-axlim(1))/axwidth*axpos(3) + axpos(1);
pos(2) = (pos(2)-axlim(3))/axheight*axpos(4) + axpos(2);
pos(3) = pos(3)*axpos(3)/axwidth;
pos(4) = pos(4)*axpos(4)/axheight;
varargout{1} = pos;
end
set(hAx,'Units',axun)
end
matlab 期权图,欧式看涨期权定价作图|MATLAB 程序化交易(量化投资)|MATLAB技术论坛 - Powered by Discuz!...相关推荐
- matlab数组数据绘图命令,基本绘图命令、数组与数据拟合|Mathematica MathCAD 论坛|MATLAB技术论坛 - Powered by Discuz!...
2.2 基本绘图命令.数组与数据拟合 2.2.1 基本绘图命令 1. 二维作图函数Plot Plot[函数或函数组,{自变量,下限,上限},选项] 例:画y=sinx在[ ...
- matlab 做偏回归分析,偏最小二乘回归分析|MATLAB 数学统计与优化|MATLAB技术论坛 - Powered by Discuz!...
clear;clc; pz = load('pz.txt'); mu = mean(pz); % 均值 sig = std(pz); % 方差 rr = corrcoe ...
- 光伏出力预测的神经网络matlab编程,神经网络预测光伏出力|MATLAB 神经网络|MATLAB技术论坛 - Powered by Discuz!...
%晴天预测 clc; clear; %clear; close all; ptrain = Columns 1 through 8 93.6908 115.1887 22.5978 96.1 ...
- matlab rof算法,ROF|MATLAB 其它技术应用|MATLAB技术论坛 - Powered by Discuz!
谢谢您的回复 那个程序是下的 %% ROFdenoise % % This denoising method is based on total-variation, originally prop ...
- 常用零件形状 matlab,汽车零部件的形状优化|Simulink 快速原型、实时仿真和测试|MATLAB技术论坛 - Powered by Discuz!...
CAESES为复杂汽车零部件探索和优化设计提供综合软件解决方案.结合专业知识和CFD软件工具,CAESES不仅能大幅提升汽车零部件及产品的性能,还能大大节省时间和成本. CAESES是传统CAD和仿真 ...
- matlab 计算一组数据的方差分析,多因素方差分析|MATLAB 数学统计与优化|MATLAB技术论坛 - Powered by Discuz!...
一般来讲,使用anovan函数进行多因素方差分析时,调用格式是第二种形式,{A,B,C,D}里面是没有编码的形式,返回一个方差分析表的形式,不过如果要求精度高的话,似乎不能显示更多的小数点位数. 不过 ...
- 基于量子计算的无收益标的资产欧式看涨期权定价和delta风险分析
目录 1. 问题 1.1. 描述 1.2. 解读 2. 原理 2.1. BSM模型 2.2. 经典蒙特卡洛算法 2.3. 量子蒙特卡洛算法 2.4. 量子.量子计算和量子算法 2.5. 量子算法在金融 ...
- matlab 期权图,如何使用matlab计算期权价格
参考论文 期权定价理论是现代金融学中最为重要的理论之一,也是衍生金融工具定价中最复杂的.本文给出了欧式期权定价过程的一个简单推导,并利用Matlab对定价公式给出了数值算例及比较静态分析,以使读者能更 ...
- matlab 期权图,期权定价matlab程序.docx
1.三叉树法matlab程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
最新文章
- Ubuntu搭建Spark运行环境
- Matlab随笔之矩阵入门知识
- 神经网络早期的M-P(Warren McCulloch-Walter Pitts)模型
- flex 字体加载方式4
- LeetCode 38外观数列39组合总和
- VTK:参数化超环形用法实战
- nodejs 框架 中文express 4.xxx中文API手册
- 谷歌已推送 Android Q Beta 1
- python作业高级FTP(第八周)
- 使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
- 怎么把一个Java应用打包成Docker镜像
- [bzoj 3226]校门外的区间
- dicom文件的后缀_dcm文件扩展名,dcm文件怎么打开?
- 干货 | PyTorch常用代码段整理合集
- python 获取进程id_使用python 获取进程pid号的方法
- fly bird用java怎么写,java-flybird_wang-51CTO博客
- 工业物联网设计普遍存在哪些问题?
- 快速实现ARM和DSP的通信和协同工作
- 从Unix看文言文为什么短
- [组合数学] NC13611树 (逆元的计算)