楼主: chengzhifu2013
2932 19

[学科前沿] 20币请教一个小小的编程问题 [推广有奖]

  • 4关注
  • 97粉丝

Web of Science

已卖:3965份资源

院士

58%

还不是VIP/贵宾

-

威望
0
论坛币
65245 个
通用积分
191.2309
学术水平
467 点
热心指数
524 点
信用等级
449 点
经验
120314 点
帖子
3782
精华
4
在线时间
1851 小时
注册时间
2011-9-23
最后登录
2025-9-16

楼主
chengzhifu2013 发表于 2012-6-10 09:40:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一类基于股票的障碍期权,其标的股价在30天内累计有不少于20天低于障碍值就会被敲出(即期权生效)。     
为了找出这一期权被敲出的时刻,我的基本算法是:
(1)先模拟出m条不同的股价路径,各路径均有n期,时间步长δT为一天
(2)针对每一条路径,标记出该路径上所有股价St<障碍K的时刻t*
(3)找出各路径上t*~t*+29这段时间内的t*数目>or=20,筛选出所有所有被敲出的路径l(l<m)条
(4)逐个记录各敲出路径上最早满足该条件的时刻t**,于是得到l个期权敲出时刻t**     
     这个算法有不少问题,首要的是运行起来效率和速率都极低。可能是因为在上面第三步中过多重复。我的一个朋友建议我采用扫描程序,我在网上淘了半天找到了一个zigzag(matlab环境),但似乎又不合适。   
     请大牛们看还可不可以稍加改善。谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:小小的 障碍期权 sto 筛选出

回帖推荐

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

下面是我的算法: 1)先模拟出m条不同的股价路径,各路径均有n期,时间步长δT为一天; 2)针对每一条路径,该路径上所有股价St障碍K的时刻t*对应标记值0; 3)每一条路径对应一条由01组成的向量A,将此向量转化为“累计”形式B,也就是B(i)=A(1)+...+A(i); 4)该路径可以行权等价于存在t使B(t+29)-B(t)>=20; 一些个人看法: 时间步长δT为一天,也许会降低计算结果的精确性,建议将路径的总步数定为期权持续天数的整数倍, ...

stoneyl 发表于11楼  查看完整内容

Sorry that I cant type Chinese here I think the algo can be further simplified by setting B(0) = A(1) + A(2) + A(3) +...+A(30) B(i) = B(i-1) + A(i+30) - A(i) For all i>=1 The knock out condition will simply be the smallest i when B(i)>=20 Plus you can use low discepency random number generator to make it faster. If you are using C++, Boost will be a good choice http://www.boost.org/doc/lib ...
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
bashe2013 + 1 + 1 + 1 编程问题去专门论坛吧

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

本帖被以下文库推荐

沙发
leihengzhishang 发表于 2012-6-10 09:59:44
为什么是t*~t*+19?难道这三十天是以向下突破障碍开始计算的吗?

藤椅
leihengzhishang 发表于 2012-6-10 10:11:35
我觉得是不是可以在模拟路径的时候,同时记录低于障碍K的起点和次数。
然后接下来有两种思路:
(1)最后比较满足计数条件的一系列起点
(2)或者,记录第一条满足计数条件的路径的起点t*,之后出现起点早于t*的路径才需要计数,如果该路径满足计数条件,则更新t*。  最后t*则为所求。

板凳
chengzhifu2013 发表于 2012-6-10 14:36:31
leihengzhishang 发表于 2012-6-10 09:59
为什么是t*~t*+19?难道这三十天是以向下突破障碍开始计算的吗?
当然是,这样不就可以保证考察期为30天内嘛
Focus on the task at hand.

报纸
chengzhifu2013 发表于 2012-6-10 14:43:50
leihengzhishang 发表于 2012-6-10 10:11
我觉得是不是可以在模拟路径的时候,同时记录低于障碍K的起点和次数。
然后接下来有两种思路:
(1)最后 ...
看到兄台的留言,我才发现自己的表达有误,只好修改了原来的说法。我本意所得到的t**是每一条敲出路径上最小的t**,并不涉及不同路径上的t*之间的比较。具体还请见现在帖中内容。
Focus on the task at hand.

地板
xuruilong100 发表于 2012-6-10 18:43:22
下面是我的算法:
1)先模拟出m条不同的股价路径,各路径均有n期,时间步长δT为一天;
2)针对每一条路径,该路径上所有股价St<障碍K的时刻t*对应标记值1,该路径上所有股价St>障碍K的时刻t*对应标记值0;
3)每一条路径对应一条由01组成的向量A,将此向量转化为“累计”形式B,也就是B(i)=A(1)+...+A(i);
4)该路径可以行权等价于存在t使B(t+29)-B(t)>=20;

一些个人看法:
时间步长δT为一天,也许会降低计算结果的精确性,建议将路径的总步数定为期权持续天数的整数倍,也就是将一天分解为若干时间段。2)、3)、4)步可以对应的做修改,只标记一天中的某个价格(一般是最后一个,close price)
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
见路不走 + 5 + 5 热心帮助其他会员
chengzhifu2013 + 1 + 1 + 1 分析的有道理

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

7
chengzhifu2013 发表于 2012-6-10 19:45:22
xuruilong100 发表于 2012-6-10 18:43
下面是我的算法:
1)先模拟出m条不同的股价路径,各路径均有n期,时间步长δT为一天;
2)针对每一条路径 ...
谢谢,思路很清晰。请把您的解答贴到我的主帖(悬赏20币)中,我选为最佳答案。
Focus on the task at hand.

8
xuruilong100 发表于 2012-6-10 23:32:32
不必了,20个币小钱,领4天经验就有了
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chengzhifu2013 + 1 + 1 + 1 无私帮助他人

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

9
chengzhifu2013 发表于 2012-6-11 06:52:40
xuruilong100 发表于 2012-6-10 23:32
不必了,20个币小钱,领4天经验就有了
叫我怎么谢你呢?那给你多评点分吧,很感激你
Focus on the task at hand.

10
stoneyl 发表于 2012-6-11 13:19:06
Sorry that I cant type Chinese here
I think the algo can be further simplified by setting
B(0) = A(1) + A(2) + A(3) +...+A(30)
B(i) = B(i-1) + A(i+30) - A(i) For all i>=1
The knock out condition will simply be the smallest i when B(i)>=20
Plus you can use low discepency random number generator to make it faster. If you are using C++, Boost will be a good choice

http://www.boost.org/doc/libs/1_ ... om_number_generator
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chengzhifu2013 + 1 + 1 + 1 热心帮助其他会员

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

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

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-31 20:39