我们被要求在本周提供一个报告,该报告将结合金融统计,优化等数值方法。
分析师通常关心检测市场何时“发生变化”:几个月或几年内市场的典型行为可以立即转变为非常不同的行为。投资者希望及时发现这些变化,以便可以相应地调整其策略,但是这可能很困难。
让我们考虑一个简化的示例。牛市可以被定义股票市场普遍看涨且持续时间较长的市场。熊市对应于指延续时间相对较长的大跌并且有相对较高的波动性。
可下载资源
我们可以使用随机数来近似这种行为:它将在牛市和熊市期间生成某些股票或指数的 每日收益(或价格变化),每期持续100天:
金融市场的行为可以突然发生改变,如2015年A股市场的剧烈波动。也就是说,我们能观察到的股票的均值、方差和相关性均可能会发生突然变化,这些变化可能由宏观经济、政策或法规的根本变化引起的。意识到这一点对于时间序列建模具有极其重要的意义,因为我们可以根据市场的状态调整进行交易风格切换和工具选择(择时)。通过在特定的状态下(牛市、熊市、震荡)构建不同的投资组合来获取超额收益。同样,止损设置和技术指标的选择可能因大盘环境所处的状态不同而存在差异。
区制转移模型也称为状态空间模型或动态线性模型,其基本思路是,时间序列存在于两个或多个状态,每个状态都有自己的概率分布,并且一个状态到另一个状态的转换由另一个过程或变量控制。区制转移模型有三种类型:阈值模型(Threshold models)、预测模型(Predictive models)和马尔科夫转换自回归模型(Markov switching autoregressive models)。
阈值模型观察到的变量超过阈值会触发状态转换。例如,价格跌破200天移动均线将触发“看跌状态”或下降趋势。预测模型,可以使用机器学习算法之类的预测方法,将GDP,失业,长期趋势,债券收益率,贸易平衡等宏观经济变量作为输入,并预测下一时期的风险。当模型预测高风险数字时,市场处于高风险状态。当模型预测低风险数字时,市场处于趋势状态。马尔科夫转换自回归模型(MSAM),假定状态为“隐藏状态”,并假定潜在状态的的转换遵循同质一阶马尔可夫链,而下一个状态的概率仅取决于当前状态。可以通过最大似然法来估计从一个状态到下一个状态的转移概率,通过使似然函数最大化来估计参数值。
bull1 = normrnd( 0.10, 0.15, 100, 1);
bear = normrnd(-0.01, 0.20, 100, 1);
bull2 = normrnd( 0.10, 0.15, 100, 1);
returns = [bull1; bear; bull2];
牛市时期的平均数为正(与增长相对应),而熊市时期的平均数为负。还要注意,熊市(空头)比牛市更不稳定(波动更大)。
因为我们模拟了这些数据,所以我们知道它的行为方式。但是,投资者只是在这些市场发生时观察它们:
plot(returns)
xlabel('Day number')
ylabel('Daily change in price')
由于数据的波动性,可能难以检测何时熊市发生:上面的图看起来非常像是一个随机过程,而不是相邻的牛市/熊市/牛市时期。
马尔可夫区制转移(Markov regime switching)模型旨在阐明这些类型的问题。它将以上收益序列视为 由马尔可夫过程控制的 状态(区制)转移模型(MRS),以在状态之间进行转移。代码:
indep = ones(size(returns)); %虚拟解释变量
k = 2; %我们期望有多少种状态:牛市与熊市
S = [1 1]; % 多头和空头的均值和波幅均不同
% 此处省略了一些屏幕输出
生成的图向我们展示了几件事。首先,最上面的图确认了本来很难观察到的状态转移发生的时间。中间的图表明在第100天到第200天之间波动性增加(标准偏差增加)。最重要的是,底部图清楚地表明,市场分别在第100天和200天左右从多头转为空头(然后回落)。SpecOut变量包含有关估计参数的信息,这些参数描述了牛市和熊市以及控制两者之间转移的马尔可夫过程。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!