主机风扇还在转,散热口的热气拂过桌角那张打印纸,纸页微微颤动。陈帆没走,背包搁在脚边,拉链半开,移动硬盘静静躺在夹层里。他重新坐回终端前,屏幕亮起,最后一行日志仍停留在“预测脚本仍在运行”。
系统没有停。
爬虫程序按设定周期抓取数据,最新一批行情刚入库。一条异常记录跳出:四川长虹,单日成交量激增47%,换手率逼近历史峰值。但MACD指标却在高位形成死叉,红柱持续缩窄,价格创新高而动能回落——典型的顶背离结构。
陈帆盯着K线图看了三秒,手指敲下快捷键,调出过去三个月的日线序列。他手动标注两个波峰:第一个高点19.3元,MACD面积大;第二个高点19.8元,创阶段新高,但MACD面积明显萎缩。价格上行乏力,量能虚浮,属于“假突破真出货”的典型信号。
他拨通电话,声音压得低:“张远,回机房。”
二十分钟后,张远拎着一袋面包撞开门,头发乱翘,嘴里还嚼着什么。李阳紧随其后,外套都没脱,径直走到自己工位,插上U盘。
“出事了?”张远问。
“长虹。”陈帆把屏幕转向他们,“量价背离,MACD顶背离成立。我们没有自动识别模块,这次是靠日志标记才注意到。”
李阳凑近看图,眉头皱起:“这种形态如果没人盯,很容易漏。”
“不能靠人盯。”陈帆打开开发环境,“今晚必须把‘顶背离识别’加进去。”
张远咽下嘴里的东西:“现在?刚比完赛,脑子都快炸了。”
“系统不会休息。”陈帆敲下第一行代码,“它只认规则。我们现在不补,下次就可能被市场教做人。”
三人分头行动。陈帆设计逻辑框架,提出“双峰对比法”:设定前后两个价格波峰区间,提取对应MACD柱状图的积分面积,若后者小于前者且价格更高,则判定为顶背离。
“关键是怎么定义‘波峰’。”李阳盯着代码界面,“滑动窗口太小会误判毛刺,太大又会漏掉真实转折。”
“用局部极值点。”陈帆说,“前后各五根K线,中间这根最高,且高出前后两根至少1.5%。”
李阳点头,开始编写波形分割算法。他利用数组缓存最近三十根K线数据,逐根扫描,标记符合条件的高点。张远则从数据库导出三年家电板块历史行情,筛选出七次已知顶背离案例,整理成验证集。
时间推移,机房只剩下键盘敲击声。陈帆不断调试参数,发现原始MACD计算周期沿用的是通用12/26/9设置,对长周期个股反应滞后。他改为10/20/5,缩短响应延迟。
凌晨一点,首次测试运行。系统扫描验证集,七例中识别出六例,漏判一次——那次背离幅度极小,价格仅高出前峰0.7%,MACD面积差异不足8%。
“误差在哪?”张远凑过来。
“阈值设太高。”陈帆调出数据对比,“我们要求价格差必须超1.5%,但有些主力出货很隐蔽,小幅拉高就能骗到散户。”
他修改条件,将价格差异下限降至1.0%,同时增加成交量权重:若第二峰成交量大于第一峰,但MACD面积缩小超过10%,也触发预警。
三点十七分,第二次回测开始。
屏幕上滚动着匹配结果。第一例,命中;第二例,命中;第三例……跳过。
“怎么又漏了?”张远皱眉。
陈帆暂停程序,查看原始K线。那天下跌前有两轮冲高,系统只抓了最后一个峰,忽略了前一个更明显的背离结构。
“问题在连续性判断。”他说,“得加上‘最近一次背离未解除前,禁止重复报警’的锁机制,避免干扰。”
李阳补充:“还要加时间间隔过滤,防止同一信号反复触发。”
四点整,新版模块编译完成。第三次回测启动。
这一次,七例全部命中,误报率为零。准确率89.6%。
“可以用了。”李阳松了口气,靠在椅背上。
陈帆立即将模块嵌入主系统,设定每小时扫描一次A股主板个股,优先筛查流通市值前五十的蓝筹股。五分钟后,首条预警弹出:四川长虹,顶背离确认,建议减仓。
“现在怎么办?”张远问。
“通知社团。”陈帆打开内部通讯列表,“所有持有长虹的成员,立即准备减仓。”
“就这么发出去?”张远迟疑,“凭一个图形?万一它是洗盘呢?你看大盘还在涨。”
“不是凭一个图形。”陈帆调出回测报告,“过去五年,这种形态出现七次,六次三天内跌幅超10%。这不是猜测,是统计规律。”
“可这次不一样……”
“每次人都说不一样。”陈帆打断,“但数据不会骗人。我们不做预测,只做应对。”
他拟定策略:分三批卖出。今日抛30%,明日再出40%,最后10%观察盘面决定去留。剩余30%机动仓位不参与操作。
消息发出后,群里炸开锅。
“真卖啊?我昨天才追进去。”
“是不是太草率了?我看券商研报还推荐呢。”
“你们那个系统到底靠不靠谱?”
陈帆没解释,只贴出两张图:一张是长虹K线与MACD对比,另一张是历史回测成功率统计表。
“信的,按计划执行。不信的,自行决定。”
十五分钟后,第一批成交回报陆续传回。七名成员完成首笔减持,合计卖出持仓三分之一。
第二天开盘,长虹小幅高开,盘中一度冲高至20.1元,不少人开始怀疑预警是否失效。
陈帆不动。
他让李阳监控龙虎榜数据,发现卖出席位中,三家机构席位合计净卖出超八千万。买方则是清一色游资和散户账户。
“筹码正在从机构向散户转移。”陈帆说,“这是出货的铁证。”
中午,第二批减持指令发出。
当天收盘,股价微跌0.8%,但成交量再次放大。
第三天,早盘集合竞价直接低开3%。开盘后抛压加剧,十分钟内跌停。
陈帆在群内发布最终指令:“剩余仓位,全部清出。”
交易完成时,账户显示:三日内股价累计下跌14.2%。未及时撤离的成员亏损普遍达9%-11%。而按系统指引操作者,平均在19.5元以上完成出货,规避了绝大部分损失。
机房内,三人围在屏幕前。
系统日志更新:“四川长虹顶背离事件响应完毕,风险规避成功。”
张远揉着太阳穴:“这比比赛还累。刚才群里有人问,能不能把这模块卖给券商。”
“现在还不行。”陈帆关闭预警界面,将新模块打包保存至U盘,“它只能处理单一形态,还没法应对复杂组合信号。”
李阳正打印测试报告,纸张一张张吐出,堆在打印机托盘上。
“不过。”陈帆站起身,活动肩颈,“至少证明了一件事——我们能从数据里挖出别人看不见的东西。”
他拔下U盘,塞进胸前口袋。服务器运行正常,爬虫脚本继续抓取晚间财经新闻。
张远打了个哈欠,忽然想起什么:“对了,王教授那边说实验室新到了一批服务器,算力比咱们这强十倍。”
陈帆看了他一眼:“等我们把底层数理逻辑跑通,再去借光。”(记住本站网址,Www.WX52.info,方便下次阅读,或且百度输入“ xs52 ”,就能进入本站)