楼主: accumulation
15578 61

[金融学] 想知道怎么预测未来么?——你应该了解的蒙特卡洛模拟   [推广有奖]

版主

大师

18%

还不是VIP/贵宾

-

TA的文库  其他...

金融学答疑文库

经济学与金融学课件

计量经济学与金融计量学数据

威望
4
论坛币
282743 个
学术水平
957 点
热心指数
1041 点
信用等级
815 点
经验
201043 点
帖子
5920
精华
7
在线时间
4209 小时
注册时间
2014-12-14
最后登录
2017-10-17
兴趣爱好
游泳、历史、象棋、台球、网球。

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

accumulation 学生认证  发表于 2015-5-17 01:13:09 |显示全部楼层

   我们在很多地方都可以看到蒙特卡洛模拟的身影,预测股价,预测股票的最大损失,预测结构性债券的价格。那么什么是蒙特卡洛模拟呢?蒙特卡洛模拟最牛的地方在哪里呢?

   首先介绍一下,蒙特卡洛模拟是一种统计学的方法,它是用来模拟大量数据的。如果你直接看这句话,会被直接干晕掉,啥叫统计学的方法,为啥要模拟大量数据?所以,了解一个陌生问题的第一步就是要问为什么,这符合所有人的思考习惯,我们接下来就来解答大家几个为什么。

第一个为什么:为什么要叫做蒙特卡洛模拟呢?

   蒙特卡洛模拟是二战期间,为解决原子弹研制工作中,裂变物质的中子随机扩散问题,美国数学家冯诺伊曼和乌拉姆等提出的一种统计方法,由于当时的工作是保密的,就给这种方法起了一个代号叫蒙特卡洛。蒙特卡洛在摩纳哥,是当时非常著名的一个赌城,赌博的本质就是算概率,所以就用赌城的名字为这种方法命名,而且又容易记忆。如果这种模拟方法再晚出现几年,估计它就会被叫做“拉斯维加斯模拟”或者“澳门模拟”了。

第二个为什么:蒙特卡洛模拟到底是什么?为什么会被用在金融里面?

   举个“栗子”,假如说昨晚万科股票的收盘价是10块钱,你想不想知道100天后的万科股价呢?肯定想知道,如果真知道了,那也就不用考CFA/FRM了。怎么知道呢?最简单的想法,如果我能找到一个递推式:

今天的股价=昨天的股价+0.2

   或者容许我学术一点,用一点公式,即St= St-1+0.2,这就表示今天比昨天涨两毛呗,我知道昨天的收盘价,就能知道今天的收盘价,然后就能找到100天之后的收盘价。但是这个递推式太不靠谱了,咱也不用考CFA/FRM了,就去买万科股票就好了,每天涨两毛钱。

   不要忘了股票像猴子一样上串下跳的,所以每天还会有一个“惊喜”,我们把这种惊喜叫做股票价格波动。股票价格每天的波动是多大我可不知道,所以是随机的,因此很自然的就能想到这个递推式里还得有一个随机项:

今天的股价=昨天的股价+今天股价波动

   数学表示就是St= St-1+e,e就代表每天股价的波动,它是个随机数,所谓随机数就是取值不确定的数。现在我们只需要用到最好理解的一种统计方法,就是发射随机数的方法,我就可以往前走了。比如最初万科的股价S0=10,如果此时我发射第一个随机数,e1=0.3,那么S1=10.3,我就往前走了一步,我再发射一个随机数e2=-0.4,S2=9.9,按照同样的方法,往前走100步,就可以找到100天之后万科的股价,这样就找到了这100天股价波动的一条路径。好了,那是不是100天之后万科的股价我只用这一条路径就估计到了呢?显然不是,条条大道通罗马,未来有无数可能性,这个路径是模拟出来的,只是未来众多可能性的一种。(这里你需要能看懂《星际穿越》的智商来理解未来的多种可能。)

   走到这里,大家肯定知道了,只模拟一种可能结果这太不靠谱了,我通过发射随机数的方法随机找到了100天后万科的股价,我就认为这是我的估计,那我的估计也太随意了。所以一条路径不靠谱,那很好办啊,我就用同样的方法模拟出100条、1000条路径出来,比如我模拟了1000条路径,那么我在第100天的时候,拿刀切一下,就会发现有1000个数据,有了这么大量的数据,最简单的,我可以求个平均数,这样估出来的万科的股价还是相对比较靠谱的。当然有了1000个数据,想干嘛都可以,我可以找到这1000个数据的分布,这样就可以考察更多的性质。这种模拟前进路径,目的是为了得到大量数据的方法就是蒙特卡洛模拟。

   当然随机数的发射也不是完全无规律的,一般做蒙特卡洛模拟先要根据历史数据的特征假设随机数的分布。比如我们发现股价的波动还是符合最常见的分布的(正态分布),那我们一般假设e也服从正态分布,这样才能告诉计算机怎么发射随机数。

第三个为什么:为什么蒙特卡洛模拟是金融研究里面的创新之举?

   蒙特卡洛模拟最伟大的地方在于它把一个社会科学的问题变得像自然科学一样。自然科学,比如化学、物理,最研究的时候最不缺的就是数据,因为你可以把自己关在实验室里,你让那个小车“哐哐哐”撞1万次,你就有1万个数据,变量细微的改变都可以研究的很全面。但是金融这种社会科学没办法做实验,这100天过去了,那么就只有100个数据,100天过去了就不可能再重走一次,因为时间没有办法重来一遍。所以研究金融市场的时候,数据量小、样本小是最大问题,但是蒙特卡洛模拟却可以解决这个问题,你走1000条路径就有1000个数据,走1万条路径就有1万个数据,它就像你关在实验室里做实验一样,可以获得大量样本。

   当然,从上面的分析我们也可以看出,它还有一个好处就是并不局限于历史数据,因为它得到的数据都是模拟出来的,并不是历史真实发生的数据,这样分析就可以更加全面一些。比如你只用历史数据做研究,是不可能预测出来会发生次贷危机的,因为历史上从来没有出现过,但是用模拟的方法就可以得到很多历史上并没有出现过的数据,可以做一个更全面的预测。

   以上是我们对蒙特卡洛模拟的介绍,当然随着信息技术的发展和分工的全面,我们金融分析师往往不需要自己建模,但是对于模型的原理还是需要有一定的认识,这样才能知道每一个模型不适用的范围,它蕴含的风险在哪里,以便更好的对未来作出预测。



支持楼主:购买VIP购买贵宾 购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
 
载入中......

回帖推荐

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

最简单的理解就是,模拟未来的几万次、几十万次股票价格运动的路径,然后计算出每条路径的最终价格(对于欧式期权和美式期权这类只与最终价格相关的期权而言),然后计算各个路径下的期权到期时价格,再取平均,得到的期权当期价格与BS期权定价公式(欧式期权情况下)结果的误差相差不大,在Financial Numerical Recipes in C++中有蒙特卡洛期权定价的源代码,感兴趣的话可以参考一下。

accumulation 发表于5楼  查看完整内容

蒙特卡洛模拟很多次,最终股票价格是不会收敛的,因为会得到多条不同的股票价格运动路径;而通过蒙特卡洛模拟得到的期权价格一般是收敛的,可以参见一下Financial Numerical Recipes in C++中的蒙特卡洛期权定价程序。

accumulation 发表于3楼  查看完整内容

你好,感谢您提出的两个精彩的问题。 第一,产生随机数e的相关参数选取问题,一般而言,股票价格S序列是不按照St=S(t-1)+e这样的方式(布朗运动)随机生成的,而是按照伊藤过程,即dS=μSdt+ΣSedt这样的规律生成的,即股价运动遵循几何布朗运动;其中,S为股价,μ为期望收益(漂移率),Σ为股价的标准差,e为服从期望为0、方差为1的正态分布的随机数,t为时间间隔;蒙特卡洛模拟时只要将微分转换为差分形式就可以了,不过,在 ...
已有 8 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
arthistory4 + 40 精彩帖子
wwqqer + 100 精彩帖子
h2h2 + 5 + 5 + 5 精彩帖子
sfhsky + 2 精彩帖子
aclyang + 20 精彩帖子
zhuosn + 4 精彩帖子
guo.bailing + 80 精彩帖子
zl89 + 80 精彩帖子

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

本帖被以下文库推荐

To hedge or to speculate,that ’s a problem.
stata SPSS
datacao 发表于 2015-5-17 06:46:10 来自手机 |显示全部楼层
accumulation 发表于 2015-5-17 01:13
我们在很多地方都可以看到蒙特卡洛模拟的身影,预测股价,预测股票的最大损失,预测结构性债券的价格。那 ...
有几个问题,望楼主解释一下:
第一,产生随机数e,如何选择相关参数,为什么?
第二,模拟得到数据的平均数收敛到第100天的股票价格吗?为什么?
已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
accumulation + 40 + 40 + 1 + 1 鼓励积极发帖讨论

总评分: 经验 + 40  论坛币 + 40  学术水平 + 1  热心指数 + 1   查看全部评分

回复

使用道具 举报

accumulation 学生认证  发表于 2015-5-17 09:17:37 |显示全部楼层
datacao 发表于 2015-5-17 06:46
有几个问题,望楼主解释一下:
第一,产生随机数e,如何选择相关参数,为什么?
第二,模拟得到数据的平均 ...
你好,感谢您提出的两个精彩的问题。
第一,产生随机数e的相关参数选取问题,一般而言,股票价格S序列是不按照St=S(t-1)+e这样的方式(布朗运动)随机生成的,而是按照伊藤过程,即dS=μSdt+ΣSedt这样的规律生成的,即股价运动遵循几何布朗运动;其中,S为股价,μ为期望收益(漂移率),Σ为股价的标准差,e为服从期望为0、方差为1的正态分布的随机数,t为时间间隔;蒙特卡洛模拟时只要将微分转换为差分形式就可以了,不过,在微分向差分转换的过程中将产生误差;因此,一般而言,随机数e的相关参数——描述波动率的方差或标准差,是根据历史数据估计出来的,或者是研究问题时给定的;
第二,模拟得到数据的平均数不会收敛到100天的股票价格;因为,在布朗运动St=S(t-1)+e以及几何布朗运动dS=μSdt+ΣSedt中,由于其过程是随机游走,因此模拟出的股价运动路径只是可能的一种,而不会产生收敛的效果;在金融经济学中,根据有效市场假说中的弱式形式,股票价格的随机游走特性,历史信息已经完全反映在股价中了,未来股价只与当期股价有关,使得股票价格具有不可预测性;因此,不会产生股价的收敛效果;但是,蒙特卡洛模拟在金融资产定价当中依然发挥了巨大的作用,如:为期权定价的问题中,通过蒙特卡洛模拟,可以得出与BS公式相近的结果,并且能为BS公式不能起到作用的美式期权定价;
关于蒙特卡洛模拟更多的内容,建议参考下列三本书:
1.John Hull的著作《期权期货及其他衍生产品》:http://bbs.pinggu.org/thread-3690738-1-1.html
2.金融工程中的蒙特卡洛方法:http://bbs.pinggu.org/thread-3704446-1-1.html
3.Financial Numerical Recipes in C++:http://bbs.pinggu.org/thread-452230-1-1.html
                                                    http://bbs.pinggu.org/thread-2669793-1-1.html
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
见路不走 + 5 + 5 + 1 + 1 + 1 精彩帖子

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

回复

使用道具 举报

chengzhifu2013 发表于 2015-5-17 11:16:43 来自手机 |显示全部楼层
accumulation 发表于 2015-5-17 09:17
你好,感谢您提出的两个精彩的问题。
第一,产生随机数e的相关参数选取问题,一般而言,股票价格S序列是 ...
其实楼主提到的用差分代替微分所引起的误差是可以通过减小时间间隔从而增加模拟路径来改善的。我关心的是,如果模拟求得的期权价值不收敛的话,怎么优化?除了利用对偶随机数等常见方法外
回复

使用道具 举报

accumulation 学生认证  发表于 2015-5-17 11:23:28 |显示全部楼层
chengzhifu2013 发表于 2015-5-17 11:16
其实楼主提到的用差分代替微分所引起的误差是可以通过减小时间间隔从而增加模拟路径来改善的。我关心的是 ...
蒙特卡洛模拟很多次,最终股票价格是不会收敛的,因为会得到多条不同的股票价格运动路径;而通过蒙特卡洛模拟得到的期权价格一般是收敛的,可以参见一下Financial Numerical Recipes in C++中的蒙特卡洛期权定价程序。
回复

使用道具 举报

chengzhifu2013 发表于 2015-5-17 12:17:09 来自手机 |显示全部楼层
期权会收敛的依据是什么?如果多次模拟的结果不收敛如何优化呢,简单点就行
回复

使用道具 举报

accumulation 学生认证  发表于 2015-5-17 12:24:49 |显示全部楼层
chengzhifu2013 发表于 2015-5-17 12:17
期权会收敛的依据是什么?如果多次模拟的结果不收敛如何优化呢,简单点就行
最简单的理解就是,模拟未来的几万次、几十万次股票价格运动的路径,然后计算出每条路径的最终价格(对于欧式期权和美式期权这类只与最终价格相关的期权而言),然后计算各个路径下的期权到期时价格,再取平均,得到的期权当期价格与BS期权定价公式(欧式期权情况下)结果的误差相差不大,在Financial Numerical Recipes in C++中有蒙特卡洛期权定价的源代码,感兴趣的话可以参考一下。
回复

使用道具 举报

chengzhifu2013 发表于 2015-5-17 12:39:45 来自手机 |显示全部楼层
思路都知道,几万次的小弟也做过,运行几次出来结果都有点不一样,,说实话当时收敛效果一般。话说收敛原理真的是楼主的小秘密么
回复

使用道具 举报

accumulation 学生认证  发表于 2015-5-17 12:44:41 |显示全部楼层
chengzhifu2013 发表于 2015-5-17 12:39
思路都知道,几万次的小弟也做过,运行几次出来结果都有点不一样,,说实话当时收敛效果一般。话说收敛原理 ...
不是,其实收敛原理我也不是很清楚,请参考《金融工程中的蒙特卡洛方法》这本书吧,网上有这本书的公开课。
已有 1 人评分经验 学术水平 收起 理由
chengzhifu2013 + 48 + 5 精彩帖子

总评分: 经验 + 48  学术水平 + 5   查看全部评分

回复

使用道具 举报

chengzhifu2013 发表于 2015-5-28 18:23:12 |显示全部楼层
accumulation 发表于 2015-5-17 12:44
不是,其实收敛原理我也不是很清楚,请参考《金融工程中的蒙特卡洛方法》这本书吧,网上有这本书的公开课 ...
非常感谢,恳请兄台把公开课的链接分享一下,小弟没找到。
回复

使用道具 举报

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

GMT+8, 2017-10-17 19:29