086 引入马尔可夫链-《造个系统做金融》
第(2/3)页
李阳立刻动手。Python编辑器亮起,他先定义状态判定函数,再循环遍历每只个股的时间序列。屏幕上开始滚动输出状态标签:U(上涨延续)、W(上涨衰竭)、D(下跌延续)、B(下跌反弹)、S(盘整)。
几个小时后,初步状态序列生成完毕。李阳将其汇总为频次表,统计从一种状态转移到另一种状态的次数。例如,“W→D”出现了四百七十二次,“W→U”仅一百零三次。
“原始频次出来了。”他指着表格,“但有些转移路径极少发生,比如‘B→W’只有三次,直接算概率会不稳定。”
“加拉普拉斯平滑。”陈帆说,“给每个转移路径加一,避免零概率问题。然后归一化,得到最终的转移概率矩阵。”
代码再次运行。几分钟后,一个五乘五的矩阵成型。主对角线上的数值普遍偏低,说明市场一旦进入某种状态,往往不会停留太久。而“W→D”的概率高达0.68,“S→U”和“S→D”接近均衡,分别为0.41和0.39。
“有意思。”张远凑近屏幕,“也就是说,一旦出现上涨衰竭信号,超过三分之二的可能性会转入下跌延续。这不是情绪判断,是历史行为统计。”
“接下来验证。”陈帆切换到回测模块,“用这个模型去预测已知序列中的下一个状态,看看准确率。”
第一轮测试选取2017年全年数据,涵盖震荡与局部牛市。结果显示,整体预测准确率为56.3%,相比原有模型提升6.3个百分点。
不算高。
“样本太短。”陈帆摇头,“而且避开了剧烈转折期。我们要看的是牛熊切换时的表现。”
他重新划定测试区间:2000年1月至2001年6月。那是互联网泡沫破裂前后,创业板虽未设立,但中小市值个股波动剧烈,具备典型趋势逆转特征。
李阳更新参数,重新加载数据集。这次,系统逐日模拟状态转移,并与实际走势比对。
等待结果的几分钟里,没人说话。服务器风扇低鸣,终端光标缓慢前进。
“出来了。”李阳轻声说。
准确率:75.2%。在“上涨衰竭→下跌延续”这一关键路径上,命中率达到81.4%。
第(2/3)页