



在第2章随机过程,讲解过利用公式直接计算得到股票的价格。众所周知,股票价格的变动经常被认为是一个随机的过程,下面,将用蒙特卡罗模拟来预测股票价格。如图3-7所示为利用蒙特卡罗模拟进行股价预测的流程图。首先基于历史数据估计模型的参数,然后利用蒙特卡罗模拟预测未来股价走势。
图3-7 蒙特卡罗模拟预测未来股价走势
在这里,假定已知某股票昨天股价为 S t- 1 ,日收益为 r ,那么今天的股价 S t 为:
通过式(3-7)可知,只要能够预测股票的日收益率,就可以得到股票的价格。股票的日收益率被认为是随机的,可以用一个随机过程来产生,在这里用维纳过程来模拟。日收益率为漂移项与波动项之和。漂移项为历史日收益率的平均值与方差的一半的差。波动项则为历史波动率与一个服从标准正态分布的随机数的积。
其中, ε ( t )是服从标准正态分布的随机数。
综合以上两式,可以得到预测今日股价的公式:
以苹果公司股票为例,首先需要确定式(3-9)的参数,也就是建模中的模型校准,一般可以通过分析历史数据得到。下面的代码,可以提取从2010年1月1日至2019年12月31日苹果公司股票的调整收盘价,并作图展示,如图3-8所示。
图3-8 苹果公司(AAPL)股票调整收盘价历史数据(2010.01.01—2019.12.31)
如下面代码,利用历史数据,可以计算股票的日对数收益率,如图3-9所示为日对数收益率的分布。
图3-9 苹果公司(AAPL)股票日对数收益率的分布
通过前面得到的日对数收益率,利用下面代码,可得到模型的参数。
模型的参数如下。
最后,利用校准得到的参数,可以进行蒙特卡罗模拟。下面为程序预测之后60天的股价变化情况,模拟次数设定为2000次。如图3-10(a)所示为2000次模拟的60天内每天的股价变化。如图3-10(b)所示为最后一天,即第60天时股价的分布情况。
图3-10 蒙特卡罗模拟股价
配合之前代码,以下代码绘制图3-10。