请选择 进入手机版 | 继续访问电脑版
楼主: fantuanxiaot
22690 113

[源码分享] [原创]期权定价的二叉树和三叉树作图   [推广有奖]

Ψ▄┳一大卫卍卐席尔瓦

大师

8%

还不是VIP/贵宾

-

威望
7
论坛币
-234475 个
通用积分
124.0224
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150207 点
帖子
7546
精华
32
在线时间
1327 小时
注册时间
2013-2-3
最后登录
2022-2-24

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

fantuanxiaot 发表于 2014-11-29 22:56:10 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
fantuanxiaot出品

Two_and_Three_Plot4.jpg


Two_and_Three_Plot3.jpg


Two_and_Three_Plot2.jpg


Two_and_Three_Plot1.jpg




主程序:


[a,b]=Two_and_Three(10,12,1,0.03,0.16,10)


代码如下:


本帖隐藏的内容

  1. function [Two_Call_Option_Pricing_Matrix,Three_Call_Option_Pricing_Matrix]=Two_and_Three(varargin)
  2. % copyright by fantuanxiaot
  3. % 关注fantuanxiaot的量化分析新浪博客:http://blog.sina.com.cn/u/2029278253
  4. % 期权定价作图的二叉树图和三叉树图
  5. % Rate年无风险收益率,K是执行价格,T是到期时间(以年计量)
  6. % Sigma是年波动率,S是基期价格
  7. % N是划分的时间段数
  8. % 参数的输入
  9. S=varargin{1};
  10. K=varargin{2};
  11. T=varargin{3};
  12. Rate=varargin{4};
  13. Sigma=varargin{5};
  14. N=varargin{6};
  15. % 单期收益率
  16. r=Rate*T/360/N;
  17. DeltaT=T/N;
  18. %% 二叉树期权定价矩阵:Two_Call_Option_Pricing_Matrix
  19. % 初始化期权价格矩阵
  20. Two_Call_Option_Pricing_Matrix=zeros(N+1);
  21. % 在Q测度下的风险中性概率
  22. U=exp(Sigma*sqrt(DeltaT));
  23. D=1/U;
  24. P=(exp(r*DeltaT)-D)/(U-D);
  25. % 最后一列的期权价值
  26. for i=1:N+1
  27. Two_Call_Option_Pricing_Matrix(i,N+1)=max(0,S*D^(i-1)*U^(N+1-i)-K);
  28. end
  29. % 期权价值向前推移
  30. % Call_Option_Pricing_Matrix形成了期权价格递归矩阵
  31. for j=N:-1:1
  32. for i=1:j
  33. Two_Call_Option_Pricing_Matrix(i,j)=exp(-DeltaT*r)*...
  34. (Two_Call_Option_Pricing_Matrix(i,j+1)*P+Two_Call_Option_Pricing_Matrix(i+1,j+1)*(1-P));
  35. end
  36. end
  37. %% 三叉树期权定价矩阵:Three_Call_Option_Pricing_Matrix
  38. % 初始化期权价格矩阵
  39. Three_Call_Option_Pricing_Matrix=zeros(2*N+1,N+1);
  40. U=exp(Sigma*sqrt(3*DeltaT));
  41. D=1/U;
  42. % 在Q测度下的风险中性概率
  43. PU=1/6-(r-(Sigma*T/N)^2/2)*sqrt(DeltaT/(12*(Sigma*T/N)^2));
  44. PM=2/3;
  45. PD=1/6+(r-(Sigma*T/N)^2/2)*sqrt(DeltaT/(12*(Sigma*T/N)^2));
  46. for j=1:(2*N+1)
  47. Three_Call_Option_Pricing_Matrix(j,N+1)=max(S*U^(N+1-j)-K,0);
  48. end
  49. for i=N:-1:1
  50. for j=1:(2*i-1)
  51. Three_Call_Option_Pricing_Matrix(j,i)=exp(-DeltaT*r)*(PU*Three_Call_Option_Pricing_Matrix(j,i+1)...
  52. +PM*Three_Call_Option_Pricing_Matrix(j+1,i+1)+PD*Three_Call_Option_Pricing_Matrix(j+2,i+1));
  53. end
  54. end
  55. %% 二叉树期权定价作图
  56. figure(1)
  57. set(figure(1),'color','w')
  58. hold on
  59. xlim([-0.1 1.1])
  60. ylim([-0.1 1.1])
  61. % 先形成期权定价位置元胞矩阵:position_matrix
  62. for i=1:(N+1)
  63. position_matrix{i,N+1}=[1 (N+1-i)/N];
  64. end
  65. for i=1:N
  66. high=0.5-(i-1)/N*0.5;
  67. if i==1
  68. delta=0;
  69. else
  70. delta=(1-2*high)/(i-1);
  71. end
  72. for j=1:i
  73. position_matrix{j,i}=[(i-1)/N 1-high-(j-1)*delta];
  74. end
  75. end
  76. for i=1:N
  77. for j=1:i
  78. position_1=[position_matrix{j,i};position_matrix{j,i+1}];
  79. hold on
  80. if mod(i,2)==0
  81. plot(position_1(:,1)+0.02,position_1(:,2),'go-','markersize',16,...
  82. 'markerfacecolor','g','markeredgecolor','w')
  83. position_2=[position_matrix{j,i};position_matrix{j+1,i+1}];
  84. plot(position_2(:,1)+0.02,position_2(:,2),'go-','markersize',16,...
  85. 'markerfacecolor','g','markeredgecolor','w')
  86. else
  87. plot(position_1(:,1)+0.02,position_1(:,2),'mo-','markersize',16,...
  88. 'markerfacecolor','m','markeredgecolor','w')
  89. position_2=[position_matrix{j,i};position_matrix{j+1,i+1}];
  90. plot(position_2(:,1)+0.02,position_2(:,2),'mo-','markersize',16,...
  91. 'markerfacecolor','m','markeredgecolor','w')
  92. end
  93. end
  94. end
  95. hold on
  96. if mod(N+1,2)==0
  97. for i=1:(N+1)
  98. pos=position_matrix{i,N+1};
  99. plot(pos(1)+0.02,pos(2),'go-','markersize',16,...
  100. 'markerfacecolor','g','markeredgecolor','w')
  101. end
  102. else
  103. for i=1:(N+1)
  104. pos=position_matrix{i,N+1};
  105. plot(pos(1)+0.02,pos(2),'mo-','markersize',16,...
  106. 'markerfacecolor','m','markeredgecolor','w')
  107. end
  108. end
  109. hold on
  110. for i=1:(N+1)
  111. for j=1:i
  112. index=num2str(Two_Call_Option_Pricing_Matrix(j,i));
  113. pos=position_matrix{j,i};
  114. text(pos(1),pos(2),index,'fontsize',10,'fontname','Times New Roman');
  115. end
  116. end
  117. title('欧式看涨期权定价的二叉树作图','fontsize',16,'fontname','楷体')
  118. ylabel('Call Options Value','fontsize',16,'fontname','Times New Roman')
  119. xlabel('时间分段','fontsize',16,'fontname','楷体')
  120. hold off
  121. %% 三叉树期权定价作图
  122. clear position_matrix
  123. figure(2)
  124. set(figure(2),'color','w')
  125. hold on
  126. xlim([-0.1 1.1])
  127. ylim([-0.1 1.1])
  128. % 三叉树的position_matrix生成
  129. % 三叉树位置元胞的最后一列生成
  130. for i=1:(2*N+1)
  131. position_matrix{i,N+1}=[1 (2*N+1-i)/(2*N)];
  132. end
  133. for i=1:N
  134. high=0.5-(i-1)/N*0.5;
  135. if i==1
  136. delta=0;
  137. else
  138. delta=(1-2*high)/(2*(i-1));
  139. end
  140. for j=1:(2*(i-1)+1)
  141. position_matrix{j,i}=[(i-1)/N 1-high-(j-1)*delta];
  142. end
  143. end
  144. hold on
  145. for i=1:N
  146. for j=1:(2*(i-1)+1)
  147. position_1=[position_matrix{j,i};position_matrix{j,i+1}];
  148. position_2=[position_matrix{j,i};position_matrix{j+1,i+1}];
  149. position_3=[position_matrix{j,i};position_matrix{j+2,i+1}];
  150. hold on
  151. if mod(i,3)==0
  152. plot(position_1(:,1)+0.02,position_1(:,2),'ro-','markersize',16,...
  153. 'markerfacecolor','r','markeredgecolor','w')
  154. plot(position_2(:,1)+0.02,position_2(:,2),'ro-','markersize',16,...
  155. 'markerfacecolor','r','markeredgecolor','w')
  156. plot(position_3(:,1)+0.02,position_3(:,2),'ro-','markersize',16,...
  157. 'markerfacecolor','r','markeredgecolor','w')
  158. elseif mod(i,3)==1
  159. plot(position_1(:,1)+0.02,position_1(:,2),'go-','markersize',16,...
  160. 'markerfacecolor','g','markeredgecolor','w')
  161. plot(position_2(:,1)+0.02,position_2(:,2),'go-','markersize',16,...
  162. 'markerfacecolor','g','markeredgecolor','w')
  163. plot(position_3(:,1)+0.02,position_3(:,2),'go-','markersize',16,...
  164. 'markerfacecolor','g','markeredgecolor','w')
  165. else
  166. plot(position_1(:,1)+0.02,position_1(:,2),'mo-','markersize',16,...
  167. 'markerfacecolor','m','markeredgecolor','w')
  168. plot(position_2(:,1)+0.02,position_2(:,2),'mo-','markersize',16,...
  169. 'markerfacecolor','m','markeredgecolor','w')
  170. plot(position_3(:,1)+0.02,position_3(:,2),'mo-','markersize',16,...
  171. 'markerfacecolor','m','markeredgecolor','w')
  172. end
  173. end
  174. end
  175. if mod(N+1,2)==0
  176. for i=1:(2*N+1)
  177. pos=position_matrix{i,N+1};
  178. plot(pos(1)+0.02,pos(2),'ro-','markersize',16,...
  179. 'markerfacecolor','r','markeredgecolor','w')
  180. end
  181. elseif mod(N,2)==1
  182. for i=1:(2*N+1)
  183. pos=position_matrix{i,N+1};
  184. plot(pos(1)+0.02,pos(2),'go-','markersize',16,...
  185. 'markerfacecolor','g','markeredgecolor','w')
  186. end
  187. else
  188. for i=1:(2*N+1)
  189. pos=position_matrix{i,N+1};
  190. plot(pos(1)+0.02,pos(2),'mo-','markersize',16,...
  191. 'markerfacecolor','m','markeredgecolor','w')
  192. end
  193. end
  194. hold on
  195. for i=1:(N+1)
  196. for j=1:(2*i-1)
  197. index=num2str(Three_Call_Option_Pricing_Matrix(j,i));
  198. pos=position_matrix{j,i};
  199. text(pos(1),pos(2),index,'fontsize',10,'fontname','Times New Roman');
  200. end
  201. end
  202. title('欧式看涨期权定价的三叉树作图','fontsize',16,'fontname','楷体')
  203. ylabel('Call Options Value','fontsize',16,'fontname','Times New Roman')
  204. xlabel('时间分段','fontsize',16,'fontname','楷体')
  205. hold off
  206. end
复制代码


   
   
   
   


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:期权定价 二叉树 fantuanxiaot Copyright position 二叉树

回帖推荐

有机包子 发表于102楼  查看完整内容

楼主好勤奋!学习了!

sunyiping 发表于97楼  查看完整内容

学习学习!

hocuser 发表于92楼  查看完整内容

支持!!!!

wuhui1018 发表于82楼  查看完整内容

支持楼主连续不断的发类似这样的贴子.

chyb2012 发表于75楼  查看完整内容

谢谢分享

萧焚 发表于77楼  查看完整内容

1.他让我们先学tb,因为学生都是大二本科生,他自己还不教课。 2.他具体用的什么软件我不清楚,因为我后面没有去了,不过量化交易软件里应该算比较好的吧?我只是在网上了解过一些。 3.他应该是套利为主。做的期货。

晏几道 发表于76楼  查看完整内容

了解一下

slrosssss 发表于73楼  查看完整内容

学tb能赚一个亿。。感觉有点假

slrosssss 发表于72楼  查看完整内容

赞~学习学习

大王小王 发表于53楼  查看完整内容

感谢分享,楼主辛苦了。

zxxsm 发表于56楼  查看完整内容

Thank You For Sharing! Very Nice Work!

zbin7451f 发表于7楼  查看完整内容

为广大坛友做出无私奉献!

cql1086 发表于52楼  查看完整内容

好牛逼的样子

Crsky7 发表于47楼  查看完整内容

高手啊!不知LZ的作图技术是从哪学的?

gssdzc 发表于45楼  查看完整内容

非常感谢分享

黍芹 发表于33楼  查看完整内容

看起来好牛逼呀

mike68097 发表于6楼  查看完整内容

支持!!!!

caihongchn 发表于28楼  查看完整内容

谢谢分享,看看!

繁清 发表于23楼  查看完整内容

你哪个学校?

yiweidon 发表于25楼  查看完整内容

图弄得很漂亮。

sxghp 发表于21楼  查看完整内容

楼主好勤勉,学习

莪的噯°迩罘懂 发表于12楼  查看完整内容

LZ下次可以搞个HJM,应该也不会太难!!!加油。。。

萧焚 发表于4楼  查看完整内容

应该是Matlab,请问用R怎么样?

萧焚 发表于2楼  查看完整内容

我暑假时选了一门课,后来时间冲突,后来没去。那个老师是搞量化交易的,自己拉投资,0.3的利润分成,他通过开课的方式寻找他看得上眼的人进入他的团队,当然我认为主要还是靠他自己和他带的研究生。他本人拿的应该是印第安纳波利斯大学(名字可能不对)的计算数学博士。他是我们学校金融学院的,我室友前三天和我说,他们的的一位任课老师和几个同学说,那位老师赚了一个亿,我认为这里的赚应该是指总收益。他是做的期货交易。 我 ...
已有 7 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
huizhang2000xzw + 5 + 5 精彩帖子
静水深流 + 20 精彩帖子
chenyi112982 + 100 + 5 + 5 精彩帖子
sxghp + 40 + 5 + 5 + 5 精彩帖子
weitingkoala + 60 + 20 + 5 + 5 + 5 精彩帖子
zbin7451f + 100 + 5 + 5 + 5 对论坛有贡献
离歌レ笑 + 3 + 3 + 3 精彩帖子

总评分: 经验 + 320  论坛币 + 20  学术水平 + 28  热心指数 + 28  信用等级 + 18   查看全部评分

本帖被以下文库推荐

萧焚 发表于 2014-11-30 02:25:53 来自手机 |显示全部楼层 |坛友微信交流群
我暑假时选了一门课,后来时间冲突,后来没去。那个老师是搞量化交易的,自己拉投资,0.3的利润分成,他通过开课的方式寻找他看得上眼的人进入他的团队,当然我认为主要还是靠他自己和他带的研究生。他本人拿的应该是印第安纳波利斯大学(名字可能不对)的计算数学博士。他是我们学校金融学院的,我室友前三天和我说,他们的的一位任课老师和几个同学说,那位老师赚了一个亿,我认为这里的赚应该是指总收益。他是做的期货交易。
我想问下,量化交易盈利困难么。那门课我去了几次,他不交东西,让我们自己先学tb,然后写出策略的可以给他看。被采纳并盈利的可以获得分成。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fantuanxiaot + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

萧焚 发表于 2014-11-30 02:27:24 来自手机 |显示全部楼层 |坛友微信交流群
这个用得什么软件写的?

使用道具

萧焚 发表于 2014-11-30 02:29:22 来自手机 |显示全部楼层 |坛友微信交流群
应该是Matlab,请问用R怎么样?

使用道具

mike68097 发表于 2014-11-30 06:52:02 |显示全部楼层 |坛友微信交流群
支持!!!!

使用道具

mike68097 发表于 2014-11-30 07:09:04 |显示全部楼层 |坛友微信交流群
支持!!!!

使用道具

zbin7451f 发表于 2014-11-30 07:25:13 |显示全部楼层 |坛友微信交流群
为广大坛友做出无私奉献!
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
fantuanxiaot + 2 + 4 + 4 + 4 精彩帖子

总评分: 论坛币 + 2  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

使用道具

herbert_seed 在职认证  发表于 2014-11-30 07:40:17 |显示全部楼层 |坛友微信交流群
感谢分享!

使用道具

dumeng201066 发表于 2014-11-30 07:48:53 |显示全部楼层 |坛友微信交流群
看看哈

使用道具

fantuanxiaot 发表于 2014-11-30 07:55:06 |显示全部楼层 |坛友微信交流群
萧焚 发表于 2014-11-30 02:25
我暑假时选了一门课,后来时间冲突,后来没去。那个老师是搞量化交易的,自己拉投资,0.3的利润分成,他通过 ...
matlab  欧美那里比较喜欢R语言和python  加油 加油

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-17 05:41