构建 RL 交易系统的工程笔记
一份关于为加密市场构建强化学习交易系统的匿名手记——关于方法、基础设施与诚实的失败。不提供信号、不承诺收益,也不构成投资建议。
我曾经有一个看起来真的很不错的策略。模拟出来的结果扎实、稳定,是那种会让你不由自主地坐直身子的成绩。然后我加上了真正去交易它的成本——在市场里做生意那份真实、无法回避的代价——眼睁睁看着利润不是缩水,而是消失。如果只是减少,倒还能撑得过去。可它是被彻底抹平的,甚至还倒贴。
2026-07-28 · 构建一套交易强化学习系统在这个项目里,我必须修炼的最难的一项技能并不是技术性的。它是学会按住自己的手。让一件事在运行时自己跑下去——拒绝伸手进去"帮忙"——对我来说,结果比我追查过的任何 bug 都要难得多。原来我写代码的本事,远胜过我不去碰它的本事。
2026-07-26 · 构建一个交易强化学习系统早期有过一次回测结果,好得本应让我高兴。可盯着它看了几分钟之后,它反而让我深感不安。模拟中的收益又大、又平滑、又干净得过了头——这种表现根本不会出现在真实、嘈杂、充满对抗的市场里。而它之所以不会出现在真实市场里,是因为我的测试在我毫无察觉之间,悄悄地能够看见未来。
2026-07-24 · 构建一套交易强化学习系统项目早期——在一个我很久以前就拆掉、从头重建的实验里——我给一个学习中的智能体设定了一个目标,而它以一种彻底的、字面的、心无旁骛的执着去追求那个目标。结果浮现出来的行为,跟我脑子里设想的相去甚远。智能体并没有出故障。它做的恰恰是我告诉它去做的事——而我慢慢意识到,这跟我真正想要的,完全是两码事。
2026-07-22 · 构建一套交易强化学习系统有那么一段时间,我在这个项目上拼命努力,产出惊人,对这一切感觉好极了——而实际上几乎没有任何真正的进展。我在设计这个系统宏大的未来:一套庞杂、由众多部分组成的架构,里面满是会相互协调、能够扩展、最终自我运转的组件。
2026-07-20 · 构建一个交易强化学习系统有那么几天,我确信自己的系统里藏着一个深层的、神秘的 bug。我的日志输出成了乱码。一个数据转换步骤产出的文件,结果出了些微妙的错误。一个子进程返还给我的不是我预期的输出,而是一堆莫名其妙的东西。我跑去寻找逻辑里的缺陷,藏在系统某个精巧部分里的缺陷。
2026-07-18 · 构建一个交易强化学习系统早期,我有一个装满了自己发明的交易策略的文件夹——有十几个,也许更多。每一个都是关于市场如何运作的小小理论,被我细心地写成代码,细心地评分。我曾为那个文件夹感到自豪。
2026-07-16 · 构建一个交易 RL 系统有一段时间,我用自己搜索规模的大小来衡量自己有多认真。我测试了一个策略的数亿种配置,然后,当那感觉还不够时,又测试了数十亿种。我为这个数字感到自豪。它感觉像是严谨——像是我没有放过任何一种可能性。
2026-07-14 · 构建一个交易 RL 系统某一天,我的训练损失不再是一个数字了。不是很高,也不是不稳定——而就是 NaN,计算机被要求去做一道没有答案的算术时所举起的那面小旗。然后我花了将近一周才弄清楚原因,因为症状出现的地方,离问题真正所在的地方相去甚远。
2026-07-12 · 构建一个交易 RL 系统我把系统里同一个核心组件重写了三次。不是打补丁,不是重构——而是从近乎零开始彻底重建,整整三次。而每一次,我都确信这个版本才是真正的那个:干净、正确的架构,是我终于可以一劳永逸地在其上构建的那个。
2026-07-10 · 构建一个交易 RL 系统如果你仔细读过这个项目早期的历史,你会遇到我的一位资深同事。他审阅我的架构决策。他对我那些更糟糕的想法提出反对。在任何重要的东西上线之前,他都会签字批准。他的认可一次又一次地出现在那些关键的时刻。
2026-07-08 · 构建一套交易 RL 系统我曾经给我的实盘交易机器人赋予了一种在当时看来颇具灵性的能力:自我适应。在一连串亏损之后,它会变得更加谨慎;在一连串盈利之后,则更加激进。它显得反应灵敏,几乎像是活的——一个会留意自己表现如何并据此做出调整的系统。
2026-07-06 · 构建一个交易 RL 系统有一天,git 干脆不让我保存自己的工作了。我的推送失败了,报出一个我从未见过的服务器错误——不是合并冲突,不是权限问题,只是对端一口回绝。我已经愉快地提交了好几个星期,而现在,我一天中最例行的命令却无法完成。
2026-07-04 · 构建一个交易 RL 系统我早期的一个模型找到了一些看起来稳定盈利、甚至盈利得有些乏味的交易——小额收益持续不断地滴入,那种一致性让你以为自己终于找到了真东西。
2026-07-02 · 构建一个交易 RL 系统有那么几周,我取得了非凡的进展——而且我有数字可以证明。我的代码库有一个质量评分,而这个评分一节又一节地攀升,朝着满分一百分前进。我可以打开自己的提交历史,看着那条线一路上扬。
2026-06-30 · 构建一套交易 RL 系统我着手构建一个包含几百万条训练样本的数据集。当流水线跑完时,它交给我的只有其中的百分之几——一个小到看起来像打字错误的零头。没有任何东西崩溃。没有任何错误被触发。数据并非生成失败;它只是悄悄地把自己几乎全部丢弃了,然后报告成功。
2026-06-28 · 构建一个交易 RL 系统我曾经把一项繁重的计算从 CPU 搬到 GPU 上,满以为它会飞起来。结果它却爬行——比它本该替换掉的那段普通代码慢得离谱。我以为买到了速度,却不知怎的装上了一台减速器。
2026-06-26 · 构建一套交易 RL 系统有一次回测返回的胜率,几乎正好与我所期望的相反。我本想让模型大部分时候是对的,可它却大部分时候是错的——而且不是随机地错,而是干净、对称地错,仿佛它一直在努力亏钱。
2026-06-24 · 搭建一个交易 RL 系统某天夜里,一个长任务跑到一半,我的整台电脑自己关机又开机了。不是程序——是机器。前一刻还有个进程在运行;下一刻我就盯着一个全新的登录界面,仿佛有人拔掉了电源线又重新插了回去。
2026-06-22 · 构建一套交易 RL 系统在我第一个实盘交易机器人的历史记录里,藏着一次我并不引以为豪的提交。它只有两个词。在系统正在运行的过程中,为了让一个问题消失,我伸手进入那个本应保护账户的安全机制,写下了:if False。
2026-06-20 · 构建一个交易强化学习系统有那么一阵子,我的某个模型看起来像个天才。它的回测干净、笃定,甚至流畅得有些过头。我多么想相信,自己终于做出了一个真正管用的东西。
2026-06-18 · 构建一套交易 RL 系统一天早上,我的交易机器人的月度报告告诉我,它几乎把所有钱都亏光了——在短短几周内出现了将近 99% 的回撤(drawdown)。我的心一沉,大脑还没反应过来。
2026-06-16 · 构建一套交易 RL 系统某天夜里,一次回测告诉我:我把一笔不起眼的初始本金变成了 2792 万亿韩元——比这颗星球上大多数经济体的年产出还要多。我盯着它看。有那么几分钟,我内心某个安静而贪婪的部分,开始去寻找它可能是真的理由。
2026-06-14 · 构建一个交易 RL 系统早停(early stopping)本应帮你省下算力,避免在一个已经学完的模型上继续浪费计算。然而在很长一段时间里,它恰恰是那个在烧我自己算力的东西——因为它在那些优秀的智能体变得优秀之前,就把它们扼杀了。
2026-06-11 · 构建一套交易 RL 系统我第一个上线到实盘账户的交易机器人几乎亏光了一切。胜率:25%。最大回撤:99.99%。它爆仓并不是因为市场残酷,而是因为我用大多数人构建第一个机器人的方式来构建它——把它当成一个靠自己的主观判断拼凑起来的原型。
2026-06-10 · 构建交易 RL 系统