EN

BigWaves Pattern Inspector

道指盘中急跌之后某只标的会怎么走,这个事件研究工具把 36 年里每次急跌后的走势叠在一张图上比较,已在线运行一年多。

BigWaves Pattern Inspector 只关心一个很具体的问题:道琼斯指数(^DJI)在盘中出现一次急跌之后,某一只标的在之后的 30 天里会怎么走,这些事后的走势是否相似?它在道指 36 年的日线里找出这样的日子,把相邻的几天合并成一次事件,再把每次事件之后的走势画在同一张图上。它从 2025 年 8 月起一直在这个网站上运行。

可调的事件定义

事件研究(法)通常只做一次,写在一个 notebook 里,事件的定义也只有一种。我希望把事件的定义做成可以改动的参数(即跌多少点才算一次,两个触发日相隔多近就算作同一次),比较也要直观,结果马上能看到,这样关于大跌之后会怎样的任何一个猜想,几秒钟就能查一遍。

后端与前端

后端是一个小型的 Flask 服务,建立在 pandas,yfinance 与 TA-Lib 之上。它缓存了 ^DJI 从 1990 年起的日线序列,只有当请求的范围超出缓存时才补取超出的部分。事件的判据是当天的开盘价减最低价(Open − Low)超过阈值;合并窗口之内的几个触发日算作同一次事件,日期取第一天。对于每一次事件,后端取出所选标的的行情,并在前面多取 60 天作为指标的预热期,算出指数移动平均(EMA)8/21,相对强弱指标(RSI)14 与 MACD,再裁剪到事件后窗口,以 JSON 返回给图表。

前端用 Vue 3 与 Tailwind 写成,图表用的是 TradingView 的 lightweight-charts。叠加模式(Overlay)把每次事件按触发之后的第 1,2,3 天对齐,各条路径便叠在一起;时间线模式(Timeline)则把各个窗口按时间顺序接起来,每次事件的窗口用底色标出。

叠加模式:每次事件之后 SPY 的走势按触发后的天数对齐,上涨的用绿色,下跌的用红色
叠加模式,2000 年以来道指每次盘中跌 1,000 点之后 SPY 的走势(合并窗口 15 天),按触发后的天数对齐。
时间线模式:同样的事件窗口按日期顺序接起来,K 线上叠着 EMA,下面是 RSI 与 MACD 面板,每个窗口有底色
时间线模式,同样的事件按时间顺序排列,每个窗口用底色标出。

用途和局限

BigWaves 是看图的工具,不是模型:在做任何正式分析之前,先把每次事件之后的条件路径放到同一条百分比或以 100 为基准的坐标轴上,使它们可以互相比较。它也有一个缺陷:触发条件是固定的指数点数,而道指跌 1,000 点在 2000 年是比今天大得多的一次波动,因此在默认的 2000 年至今的窗口里,不同年代的事件并不能严格比较。正确的做法是用滚动波动率归一化之后的对数收益率来触发;点数阈值之所以保留,是因为这个问题最初就是这样问的。

我做的事。 后端从头到尾是我写的(每一次提交都是我的),我把它打包成容器,由 gunicorn 运行,nginx 在前面做代理,并维持运行了一年多;Vue 前端以静态构建的形式放在同一台主机上。

线上地址 zhezhang.info/charts。在线时长即容器启动至今的时间,没有收集任何使用数据。