丹参

注册

 

发新话题 回复该主题

千变万化,存乎一心投资者眼中的蒙特卡洛模 [复制链接]

1#

“数字不能说明一切,但是一切都需要数字来证明。”——费波纳科利·切雅斯

这是屠夫的第篇原创,全文字

阅读时间8分钟,读完别忘了哦

金钱永不眠,屠夫问候各位早安。

更新频率超低(几乎按年计算),但是篇篇爆款的『硬币赌博』系列,把蒙特卡洛模拟玩了好多遍:

第1枚硬币,讲「赔率」第2枚硬币,讲「概率」第3枚硬币,讲「理性」第4枚硬币,讲「仓位控制」

可是关于蒙特卡洛模拟本身,每次屠夫都只有短短两句话:

蒙特卡洛模拟又叫统计模拟法……blablabla……

好学的朋友自然不甘心了,在交流群主动提问:

既然答应了就要做,今天咱们就来聊聊蒙特卡洛模拟。

01从求π值说起

提起圆周率π,多数人脱口而出的数字是“3.14”。

怎么求出来呢?

根据课本所说,无论是古希腊的阿基米德,还是古中国的刘徽、祖冲之,都是运用“迭代+数值逼近”的方法。

简单来说,是用圆的内接或外切多边形进行近似,求得圆周率π≈3.14。

有别的解法吗?

有,比如蒙特卡洛方法。

咱们先找一张正方形的纸,在上面画出它的内切圆(和4边都相切):

咱们在纸上随机打点,有的落在圆内(x个亮点),有的会落在圆外(y个暗点):

当我们打点的数量足够多时(比如上百万个),圆内点的个数(x)除以所有点的个数(x+y),就等于内切圆面积与正方形面积的比值:

x/(x+y)=S圆/S正方形

圆面积是S圆=π*r^2,正方形面积是S正方形=(2r)^2(因为正方形边长为2r),上述等式变成:

π=4x/(x+y)

而x和y都是已知的,套入上述公式就能求出π。

同样的招数,还可以用来求不规则图形的面积。

只要能确定“随机点是否在图形内”,就能求解

——完全不需要任何微积分知识:

是不是挺暴力的?

02为什么需要蒙特卡洛?

上面的例子很好地展示了蒙特卡洛模拟的特点:通过生成随机样本获得近似解。

随机样本的数量越多、越贴近现实,近似解会越逼近真实结果

——这是一种通过计算机“暴力运算”的办法。

蒙特卡洛模拟有两大优点:简单和快速。

简单,是因为省去了晦涩的数学推导,普通人易理解;

快速,是因为确定概率模型后的运算完全交给计算机。

优点是有了,什么情况下该用它呢?

你需要了解「直接法」和「间接法」。

所谓直接法,是给定一个模型,调整模型中的各个参数,模拟出尽可能多的结果。

『硬币赌博』系列是最典型的直接法:

只有正反两个结果,每局结果相互独立,赌徒资金相互独立,资金耗尽或为负出局

正反的概率、对错的赔率、最大最小下注额、每局下注策略、赌徒人数、赌博局数

每个赌徒结束时的资金余额情况

所谓间接法,是给定一个模型,随机模拟大量结果,反求和模型相关的某个参数。

上面求π值的例子,用的是间接法:

正方形面积公式+圆面积公式

落在内切圆里的点有x个,落在圆外的有y个

圆面积公式里的π

直接法的逻辑是:有模型,有参数,随机模拟的结果才是我要的。

间接法的逻辑是:有模型,有结果,模型相关的参数才是我要的。

无论是直接法还是间接法,蒙特卡洛模拟的基础是模型。

这种方法,其实有更深刻的思想内涵。

03蒙特卡洛背后的思维

蒙特卡洛方法以“建模”为基础,其实蕴含着两种关键性思维:抽象和拆解。

先说说「抽象」。

抽象思维的背后其实有两种逻辑:归纳和演绎。

归纳,是“从个别到一般”:从多个实例提取出规律。

演绎,是“从一般到个别”:将规律应用到具体实例。

比如说掷硬币这事——

咱们可以通过日常观察,得出“掷硬币通常只有正反两种结果”,这是归纳;

而将这条规律设定为限制条件,从而让每次模拟结果都服从于它,这是演绎。

一般人只能捕捉现象,投资者需要把握本质。

现象和本质之间的来回切换,需要抽象思维。

从已观察过的「现象」中提炼出「本质」,再生成更多未观察过、但服从「本质」的新的「现象」,就是蒙特卡洛方法的精髓。

再聊聊「拆解」。

我们身处一个VUCA世界:集易变性(Volatility),不确定性(Uncertainty),复杂性(Complexity)和模糊性(Ambiguity)于一体。

现实问题大多是复杂而模糊的,这需要我们进行逐步分析,把问题拆解成一个个相对简单的因子。

就拿π值计算的例子来说吧,面积公式S圆=π*r^2和S正方形=(2r)^2其实就是一个拆解的过程。

借助这两个公式,图形面积被拆解成π、半径r和边长2r,我们才能在后面的计算中把π值和圆内点个数x、圆外点个数y建立起联系,从而求出π。

一般人害怕复杂和模糊,投资者善于分析挖掘。

财务分析里经典的「杜邦分析法」,就是运用拆解思维将笼统庞大的ROE(净资产收益率)进行解构,转换成若干个易理解、好衡量、可提升的指标。屠夫在第一次学习的时候,由衷地折服于这套方法背后的拆解思维。

蒙特卡洛以“建立模型”为基础,对抽象思维和拆解思维有很高要求。

抽象,是以归纳演绎,联通现象和本质;

拆解,是靠分析挖掘,对复杂问题解构。

投资者固然需要提升自己的思维能力,但是光讲这些也未免太“虚”了。

蒙特卡洛模拟有更具体的投资应用吗?

有!

04投资里的蒙特卡洛

投资年限长点的人,应该听说过压力测试。

所谓压力测试(StressTesting),是指将资产组合置于某个特定的极端情况,测试该组合在这种情境下的表现状况。

比如利率突然上升个BP(BasePoint),又或者某类货币突然贬值30%,再或者股市暴跌50%,都可以作为压力测试的假设条件。

这些极端情况可以是历史曾经发生过,也可以是未发生过的,毕竟

——撞上冰山前,泰坦尼克号从未撞过冰山。

没错,这种“大开脑洞”的情形,真的很适合蒙特卡洛模拟。

就拿上面的例子来说,我们可以对未来一年的沪深做一些假设*:

上涨20%以上的概率为20%上涨10%~20%的概率为30%上涨不超过10%的概率为35%下跌10%~20%的概率为10%下跌20%以上的概率为5%*屠夫注:以上数据纯属瞎拍,实际假设前请至少参考一下历史数据

而通过历史数据回测,得知你的投资组合相对于沪深的β值约为1.25*。

将上述假设的上涨/下跌幅度乘以1.25,就能计算出你的组合在未来一年的收益期望。

*屠夫注:也就是说,沪深上涨1时组合上涨1.25,下跌1时组合下跌1.25

把更多因子考虑进去,可以建立一个更复杂(也可能更脆弱)的模型。

通过各个因子的概率分布,我们可以模拟出成千上万种可能性,再去检查我们的投资组合是否在所有可能性下都安然无恙。

回过头来重看《可怕的凯利公式》一文,其实是对仓位控制策略的一次压力测试。

在这个测试里,「固定下注」和「马丁格尔」都只能做到线性回报(只能靠堆砌时间来增加获利),只有「凯利公式」做到指数回报,实现真正的复利效应。

除此之外,马丁派战术还有一定的破产爆仓风险(0人只有个活到第1万局),而凯利公式相当安全(0人全部活到最后),这可是个非常重要的决策依据。

怎么样,蒙特卡洛模拟还是挺有帮助的吧?

05写在最后

为了减少对阅读者的数学和编程背景要求,本文省略了很多细节。

真要考究起来,这个话题的篇幅足以够小论文。

可咱们又不是做学术研究,所以屠夫也就省了这种功夫啦。

对于只为学习方法、升级认知的人而言,本文把蒙特卡洛方法和背后的思维,大致讲明白了。

在实际应用中,蒙特卡洛模拟还能有很多有趣的玩法,留给大家自己摸索,细细品味。

分享 转发
TOP
发新话题 回复该主题