打开 Agent Trading 的新世界大门:一步一步搭一个能自己跑的交易系统
一个复制粘贴就能完成的教程。
作为热爱交易的人,我们或多或少都动过一个念头:能不能让 AI 帮我交易。
但这个念头通常停在念头阶段。不知道效果如何,不知道从哪开始,也不知道会踩到什么坑——于是一年过去,你还是在手动盯盘。这篇文章想解决的就是从念头到第一次真实成交之间的那段距离。文末有三段可以直接复制的 prompt,分别负责配环境、定策略、搭监控面板。你甚至可以先拉到最后,把它们贴进 Claude Code,跟着指引一步步做,回头再读前面的道理。
什么是 Agent Trading
简单说,就是让一个程序严格按照你的指示交易,而且几乎是任何指示。
这件事和你熟悉的 stop、limit 挂单不是一个量级。挂单只能表达一句话:到某个价格就动手。而 Agent 能理解的是有条件、有层次、跨标的的指令——PE 低于 18 就建仓,仓位占账户的百分之十五;RSI 连续三天低于 30,买入百分之十;A 股票相对 B 股票的比价跌破某个水平时,做多 A 同时做空 B。
它能把你平时在看的各种信号、各只股票之间的关系串起来。只要你能把一件事定量地描述出来,它就能执行,甚至包括消息面——前提是你能把「利好」变成一个可以计算的数字。这是挂单永远做不到的事。
为什么你真的需要它
在讲怎么做之前,先回答一个问题:你现在的交易决策,能不能写成一段别人照着做就能复现的文字。
如果不能,那你做的不是交易,是 Vibe Trading。
Vibe Trading 长这样。「这票最近跌得有点多了,感觉差不多到底了。」「这个消息应该是利好吧,先进一点。」「本来想止损的,但今天大盘不好,再等等。」每一条听起来都不算离谱,问题不在对错,而在于它没法被检验,也没法被复制。
你赚了钱,不知道是因为策略对,还是运气好、赶上大盘。你亏了钱,不知道是策略错,还是执行走样。下一次遇到类似情形,你依然只能靠当天的心情做决定。这就是 Vibe Trading 永远不会成为一把钥匙的原因——它无法重复,因此无法 compound。
复利的前提,是同一件事可以稳定地重复很多次,而且过去的经验能被总结、学习,然后用在未来的交易上。一个每次都在临场发挥的过程,本质上是一串互不相干的赌局,不是一个可以累积的系统。这就像还没有发明文字的原始人,每一代都从零开始,前人的经验一点都传不下来。你的交易经验如果只存在于当时的感觉里,五年之后,你还是在凭感觉。
所以 Agent 的价值,很大一部分并不在于自动化,而在于它逼你把经验严格化、然后才有可能积累和验证。它不接受「感觉差不多到底了」,它会追问:多少算差不多,用什么指标,什么周期,触发之后买多少,已经有仓位怎么办,错了什么时候认。
很多人在这一步就会发现,自己根本没有策略,只有一堆事后合理化的直觉。这是好消息。发现这一点,比继续凭感觉赚三个月要值钱得多。因为认知和策略上的复利,才是真正打开交易之路的那把钥匙。华尔街的量化团队早就证明了这条路走得通,他们把交易做成了一门可以稳定重复的生意——区别只在于,过去这扇门后面站着一整个工程团队,而在 AI 时代,它第一次向普通人敞开了。
动手之前,三个疑虑
第一个疑虑通常是:Agent 会不会乱交易。
它不会偏离你写的规则,这正是它相比人的优势,它不会因为今天心情不好就临时改主意。但它会以另一种方式出问题——程序 bug、接口断连、数据拉错,甚至悄无声息地停止运行。这类故障和人的情绪失控一样致命,只是形态不同,所以本文第 4 步和第 5 步会用相当篇幅讲怎么验证和怎么监控。有一个顺序不能颠倒:先在模拟盘上验证到行为完全符合预期,再上真钱。
第二个疑虑是:这东西到底赚不赚钱。
坦白说,这完全取决于你的策略赚不赚钱,Agent 本身不产生任何收益,它只负责严格执行。它能帮你的是回测,把策略放到历史数据上跑一遍,看它过去是什么表现。但这里要提前说清楚:回测赚钱不等于未来赚钱,而且回测恰恰是整个流程里最容易骗自己的环节。任何策略只要你愿意调参数,都能在历史数据上跑出一条漂亮曲线。
第三个疑虑最常见:我不会写程序,也没想好要做什么策略,是不是根本做不了。
正好相反,这篇教程就是为你写的。你不需要预先想好任何交易思路——文末的 Prompt 2 会让 Claude 先端三个现成的策略给你挑,每个都用大白话讲清楚它赌的是什么、什么时候会连续亏钱。你只要选一个,剩下的参数它会按保守的默认值填好,再一条条问你确认。跟着本文做完,再和它聊上半小时,你大概会有一种「原来还可以这么玩」的感觉。
第 1 步:选券商
这一步选错,后面全是白费力气,所以值得多花五分钟。
我的建议是 moomoo 或者富途。理由不只是功能,更是可控性——它的 OpenD 是一个跑在你自己电脑或云服务器上的网关程序。当 Agent 行为异常、连接卡住、状态错乱时,你有一个明确的、可重复的恢复动作:重启它。别的方案出问题时你手上什么都没有,只能等。能被重启的系统,比不能被重启的系统好维护一个数量级。它的市场覆盖也最广,美股港股 A 股新加坡一套接口全搞定。
用 OpenD 有两件事要记住。它必须一直运行,挂了 Agent 就断,而且是静默断开,所以打算长期跑就放云服务器,别放自己的笔记本。另外,重启 OpenD 不是急停开关——重启只恢复连接,它不会撤销已经挂出的订单,也不会平掉已有仓位。真正的紧急停止是另一回事,第 5 步会讲。
如果你不用 moomoo,Webull 是靠得住的次选。官方 OpenAPI,美股 L1 实时行情免费,通过 API 交易也不额外收费,还有 sandbox 测试环境。唯一的麻烦是 API 申请要等一两个工作日审核。
Alpaca 适合练手,不适合认真跑。它最容易起步,注册后立刻拿 key,不用等入金,想在一个下午之内把整套流程走通、看看自己到底想不想做这件事,它最省事。但免费档的实时行情只来自一家交易所,占全美成交量很小一部分,算出的价格和真实的全市场报价经常对不上。这不是「稍微不准」的问题——你的信号本身就是错的。很多人在免费档上模拟得好好的,上实盘发现完全不对,以为策略失效,其实数据从头就错了。要全量实时数据得订阅每月九十九美元的档位。
Robinhood 我不推荐,尽管它在 2026 年 5 月上线了官方 MCP,粘一个 URL 就能让 Agent 交易,听起来很美。两个硬伤:速度慢,以及今天卖出的钱要到下一个交易日才能再用。第二条基本判了日内交易的死刑。而且它是个黑盒,出问题既没有日志可查,也没有进程可以重启。
顺带说一个好消息。如果你看过老教程,可能记得账户不足两万五千美元不能频繁日内交易这条规则,也就是 PDT。这条规则已经在 2026 年 6 月 4 日取消了。但券商实施进度不一,FINRA 给了过渡期到 2027 年 10 月,在你的券商切换之前旧规则可能仍然适用,开户之后先确认一下。
第 2 步:配环境
这一步几乎不用你操心,交给 Claude 做就行。
先装好 Claude Code,用你的 Claude 账号登录。这里有个很多人不知道的事:你不需要 API key,Pro 或 Max 订阅本身就包含 Claude Code。登录之后连按 Shift+Tab,切换到自动接受模式,这样它写文件、跑命令时不会每一步都停下来问你,否则配个环境要点几十次同意。唯一的例外是等你接上真实资金账户之后,那之后就别开自动模式了,每一步都值得你看一眼。
然后把文末的 Prompt 1 整段复制进去,回车。它会自己判断你的系统,装好 OpenD 和 SDK,写测试脚本,跑通连接,中途只在真正需要你的时候开口,比如让你去 App 里点确认。你要做的事只有两件:回答它的提问,以及把报错原样贴回去。
这一步做完,你会看到两个东西——终端里显示出你的真实账户余额,哪怕是零,说明交易入口通了;终端里显示出 AAPL 的实时价格,说明数据入口通了。
有一个检查必须你亲自做,因为 Claude 做不了:看到实时价格之后,打开手机 App 对一下。正常情况下两边应该几乎一样,如果差了几分钱以上,说明你的数据源有问题,把这个情况告诉 Claude 让它排查。这个坑现在花五分钟发现,比上实盘之后发现便宜得多。
第 3 步:挑一个策略
这一步是整个流程里唯一需要你参与判断的地方,但你依然不需要预先想好任何东西。
把文末的 Prompt 2 贴进去,它会先给你三个经典的入门策略,每个都讲清楚四件事:它赌的是什么、什么情况下会赚钱、什么情况下会连续亏钱、大概多久触发一次交易。第三件事最重要,我在 prompt 里明确要求它不许美化。你挑一个,都不喜欢就说再来三个。
选好之后它不会拿一堆问题轰炸你,而是先按最常见、最保守的做法把所有参数定下来,然后一条条告诉你它定成了什么、为什么这么定,每条问你一句这样可以吗。你觉得没问题就过,觉得不对就改。你甚至可以全程回答「你决定就好」,它会用保守值,并且告诉你这个默认值保守在哪里。
聊完你会拿到两个文件。一份是 strategy_spec.md,人话版的规格,你能读懂。一份是 strategy.py,机器版的代码,程序能跑。先读规格那份,确认每一条都是你的意思再往下走——这份文档以后就是你和这套系统之间的合同,出了分歧以它为准。
判断规格够不够清楚有个简单标准:里面不能出现「感觉」「差不多」「看情况」这类词。随便挑一天的行情,你自己照着规格判断一遍,应该只有一个答案,买、卖,或者不动。如果你自己算都会犹豫,说明规格还不够,回去让它再问你几轮。
第 4 步:验证三部曲
这三步一步都不能跳,顺序也是固定的。跳步的代价通常是真金白银。
第一步是干跑,只说不做。让程序只打印它打算干什么,不真的下单,跑一周。每天的输出大概是这样一行:
2026-07-24 15:50 ET | AAPL 213.44 | RSI 45.2 | 无信号 | 持仓 0 | 决策:不动
每天看一眼这行字。这一阶段专门用来抓低级错误——时区搞错了、周末也在跑、同一个信号被重复触发。过关的标准是连续五天,每天你都看得懂它为什么这么决定。只要有一次「咦这是怎么回事」,就还不能往下走。
第二步是模拟盘,真的下单,但用假钱。moomoo 的模拟盘和实盘是同一套接口,切换只改一个参数,Claude 会帮你切。
这里有个常见误解要澄清:模拟盘检验的是工程,不是策略。它能告诉你订单发得出去、成交回报能正确解析、断线能重连、重启不会重复下单、撤单逻辑对不对。它不能告诉你这个策略赚不赚钱,因为模拟盘的成交是理想化的,没有真实滑点,也没有部分成交,流动性差的标的尤其失真。
至于跑多久,答案是至少完整经历一次买入、持有、卖出。你的策略两个月才触发一次,你就得跑两个月,这里没有捷径。一个只在有信号时被验证过的系统等于没被验证过——你不知道它在没有信号的日子里会不会乱动。过关的标准是完整走过一轮,并且中途你主动重启过一次,重启之后持仓状态正确、没有重复下单。
第三步是小额实盘,真钱,但很少。用输光了也不影响生活的钱,不是「亏了会心疼但能接受」,是「亏光了对我的生活没有任何影响」。
这一步会暴露三件模拟盘给不了你的东西:真实滑点,你会发现成交价和预期总有偏差;真实成交质量,限价单挂出去到底能不能成交;以及最重要的,你自己受不受得了。很多人到这一步才发现策略没问题,但看着 Agent 在下跌里买入而自己不去干预,比想象中难太多了。
过关的标准是跑满一个月,一次都没有手动干预过。如果你忍不住干预了,别自责——那说明你有一条规则还没写进去。回到第 3 步,把你当时干预用的那个理由告诉 Claude,让它加进规格里。
第 5 步:搭一个能对话的监控面板
自动化最大的风险不是亏钱,是你以为它在跑,其实它三周前就死了。面板存在的第一个理由,就是让你能在手机上一眼看出它是活的还是死的。
但光能看还不够。真正好用的面板上还坐着一个监督 Agent。你可以直接问它今天为什么没交易,它会翻日志告诉你原因。它也会主动盯着异常——发现券商持仓和本地记录对不上、发现连续报错,它会自动暂停交易,并在对话框里说清楚后果是什么。配上邮箱之后,成交、每日汇总、异常都会直接发到你邮箱,再配合 Claude 的手机端,你在外面也能随时看状态、随时和它讨论要不要调整。
面板上会有心跳时间、当前持仓和盈亏、券商与本地的对账结果、指标现值和距离触发还差多少、权益曲线、订单和异常记录,以及一个红色的急停按钮。
关于这个监督 Agent 的权限,有一条边界我建议你不要放松:它能读所有日志、能解释任何决策、能发现异常主动暂停、能提出修改建议,但它不能下单、不能撤单、不能平仓、不能改策略参数、也不能自己解除暂停状态。一个既能分析又能动手的 Agent,出错时你没有任何缓冲。分开之后,它负责发现问题和说清后果,做决定的始终是你。
关于急停按钮也有一件事必须记清楚:它做的事是让程序不再开新仓。它不会帮你平仓,也不会撤掉已经挂出去的单。真要清仓,还是得你自己去 App 里操作。别在出事的时候按错了指望。
面板搭好之后有四个测试要做,让 Claude 陪你走一遍。把策略程序停掉,面板必须变红报警。手动在 App 里买一股,面板必须提示对不上,而且监督 Agent 必须主动暂停交易。断开 OpenD,面板要显示数据过时,而不是显示零——显示零会让你以为自己爆仓了。最后用手机打开,不放大就能看懂,对话也能正常用。测试没过,等于没有面板。
第 6 步:慢慢加钱
小额实盘的结果和模拟盘对得上,就可以加了,每次不超过翻一倍。对不上就回第 4 步找原因,别用加仓来「再试试看」。
每次加钱之前问自己一句:过去这个月,我有没有因为这套系统睡不着觉。有的话,那就不是加仓的时候。
附录:三段 Prompt
用法是在 Claude Code 里连按 Shift+Tab 打开自动模式,然后把整段复制粘贴进去,回车。只有方括号里的内容需要你改。
Prompt 1:把环境配好
──────────────────────────────
帮我从零配置一个自动化交易环境,用 moomoo / 富途 OpenAPI。
我的情况:
- 我用的是 [moomoo / 富途],主要交易 [美股 / 港股 / A股]
- 编程水平:新手,请假设我什么都不会
请按这个方式带我:
1. 自己判断我的操作系统和环境,别问我不知道的事
2. 一次只推进一步,每步结束告诉我「你现在应该看到什么」
3. 需要我去 App 上点确认之类的,直接告诉我点哪里
4. 涉及 SDK 包名和接口参数时,先查官方文档,别凭记忆写
5. 我贴报错给你,你先用大白话解释这是什么问题,再动手修
目标(按顺序完成,每完成一个告诉我):
一、装好并启动 OpenD,完成登录和 API 协议
二、打通数据入口:能拿到 AAPL 的实时价格
完成后提醒我打开手机 App 对一下价格,差太多要排查
三、打通交易入口:能查到账户列表、余额、持仓
(交易接口需要单独解锁,用交易密码)
四、确认模拟盘能用:下一笔小额限价单,再撤掉它
五、确认恢复流程:关掉 OpenD 再重启,验证前面几步依然正常
并告诉我:重启 OpenD 会不会撤单、会不会影响持仓
最后给我:
- 一份配置清单(端口、账户 ID 等),方便以后排查
- 密码和密钥该怎么存,不要硬编码在代码里
- 接下来最容易踩的三个坑
注意:这个阶段只做「打通连接」,不要写任何交易策略。
我要是中途问策略的事,提醒我先把环境弄完。
现在开始。
──────────────────────────────
Prompt 2:挑一个策略
──────────────────────────────
我是新手,想做一个自动交易的策略,但我还没想好具体做什么。
请你来带我,不要问我「你想做什么」——我不知道。
第一步:给我三个选择。
列出三个最经典、最容易理解的入门策略,每个用大白话讲清楚:
- 它赌的是什么(一句话,不要术语)
- 什么情况下它会赚钱
- 什么情况下它会连续亏钱(这条必须写,不许美化)
- 大概多久触发一次交易
- 新手友好度打分
三个之外别给更多,选择太多我会瘫痪。
然后问我选哪个,我也可以说「都不喜欢,再来三个」。
第二步:我选好之后,你来填空。
不要拿一堆问题轰炸我。你先按最常见、最保守的做法把所有参数定下来,
然后一条一条告诉我你定了什么、为什么这么定,每条问我一句
「这样可以吗,还是要改」。至少要覆盖:
- 用什么指标、什么周期、什么阈值
- 什么时候检查
- 每次投入多少钱(新手请默认固定比例,不要用凯利公式)
- 已经有仓位时又触发怎么办
- 止损设在哪里
- 一天最多交易几次
我要是回答「你决定就好」,你就用保守的默认值,
并告诉我这个默认值保守在哪里。
第三步:写规格。
生成 strategy_spec.md,中文,我要能读懂。
标准:交给一个不懂交易的程序员,他能写出和我预期一致的程序。
第四步:写代码。
生成 strategy.py 实现这份规格。必须包含这些安全约束,一条都不能少:
· 每轮开始先检查 STOP 文件,存在就什么都不做
· 每轮先从券商拉真实持仓,不信任本地记录(防止重启后重复下单)
· 只在常规交易时段下单
· 一天最多下 N 单
· 任何异常(数据拉不到、接口报错)→ 不交易,记录并通知我
· 只交易规格里写明的标的,不许碰别的
· 挂单未成交要处理:下单后 X 分钟没成交就撤单,
并且撤单成功之前,不许再下同方向的新单
· 部分成交按实际成交数量记账,不能按下单数量记
· 行情要检查时间戳,超过 X 分钟没更新就当作拉不到,
不许用陈旧价格做决策
· 止损必填。如果我说不设止损,你要明确警告我最坏情况是
本金归零,并要求我再确认一次
每一轮都写日志,包括「什么都没做」的时候,
要记下当时的价格和指标值。
先做成干跑模式:只打印决定,不真下单。
我验证完你再帮我切模拟盘。
第五步:挑我的毛病。
写完后直说:这份规格里哪条模糊、哪条有歧义、
哪条可能让我意外亏大钱。别客气,我宁愿现在被泼冷水。
──────────────────────────────
Prompt 3:带监督 Agent 的监控面板
──────────────────────────────
帮我搭一个交易监控面板,带一个能对话的监督 Agent。
本地运行,但要能从手机访问。
数据来源:我的策略程序写的日志,以及直接从 OpenD 拉的真实账户状态。
第一部分:状态区
顶部横条:
- 心跳:「上次检查:X 分钟前」
30 分钟内绿色,30-90 分钟黄色,超过 90 分钟红色
- 红色急停按钮:点了创建 STOP 文件,策略程序停止交易
旁边一行小字:「仅停止新交易,不会平仓或撤单」
三个并排的小卡片(手机上自动竖排):
- 持仓:标的、股数、浮动盈亏
- 指标现值:当前值,以及距离触发还差多少
- 心跳状态
对账异常时,顶部直接变成红色横条:
「对账不一致 · 交易已自动暂停」
第二部分:监督 Agent 对话区(这是核心)
页面中间放一个对话框,我可以随时问它任何事。
它的角色是【监督者和解释者】,不是执行者。
它能做的:
- 读取所有日志、订单记录、账户状态、策略规格
- 解释任何一个决策:为什么买、为什么没买、为什么报错
- 主动指出异常,并说明这个异常的后果是什么
- 提出策略修改建议,写成提案给我看
它绝对不能做的:
- 不能下单、不能撤单、不能平仓
- 不能直接修改 strategy.py 或策略参数
- 不能自己解除 STOP 状态
严谨性要求(重要):
- 发现对账不一致、持仓异常、连续报错时,
要主动暂停交易并在对话区说明,等我确认后才恢复
- 说明后果时要具体。不要说「有风险」,要说
「如果继续跑,卖出信号会按 14 股平仓,留下 1 股裸仓」
- 所有结论必须基于日志里的实际记录。
查不到依据就直说「日志里没有记录」,不许猜
- 涉及钱的判断,宁可保守,宁可打扰我
对话区下方放两三个快捷问题按钮,比如
「今天为什么没交易」「解释最近这笔订单」「现在有什么风险」。
第三部分:数据区
- 权益曲线(按日)
- 最近 20 笔订单
- 最近 20 条异常日志
第四部分:订阅区(要醒目)
在页面底部、异常日志下方,放一个独立版块,不是页脚小字:
- 用带背景色的卡片,和上面的交易数据明显区分开
- 标题:「跟 Balder 学交易」
- 副标题:「策略拆解、实盘复盘、Agent 交易进阶」
- 两个并排按钮,字号和主界面按钮一样大,都在新标签页打开:
· 「订阅 X」
https://x.com/Balder13946731/creator-subscriptions/subscribe
· 「Substack」
https://baldertrader.substack.com/subscribe
- 卡片下方一行小字:「本面板仅供个人监控,不构成投资建议」
邮件通知
- 面板上放一个邮箱配置入口,填一次存到本地配置
- SMTP 发信,用应用专用密码(不是邮箱登录密码),存在 .env 里
- 三种邮件:每次成交、每天一封运行状况汇总、异常时立即发
- 成交邮件里要写明这笔交易触发的是规格里的哪一条规则
- 发信失败不能影响交易,但失败本身要记进异常日志
手机访问
- 布局响应式,手机上竖排,不放大就能读懂
- 对话框在手机上要好用,输入框不能被键盘挡住
- 告诉我怎么在手机上安全地打开这个面板
(比如局域网访问,或者 Tailscale 之类的方案)
- 绝对不要直接暴露到公网
技术细节
- 每 30 秒自动刷新状态区
- 拉不到数据时显示「数据可能已过时」并保留上次的值。
千万不要显示 0 或空白——我会以为自己爆仓了
- 时间统一美东时间,标注 ET
不要做的事
- 不要放下单按钮
- 不要放能直接改策略参数的地方
- 对话 Agent 不许有任何交易权限
- 除了急停按钮,面板不能改变任何交易行为
搭完之后带我做四个测试:
1. 停掉策略程序,看面板会不会报警
2. 我手动在 App 里买一股,看面板会不会提示对不上,
以及监督 Agent 会不会主动暂停交易
3. 断开 OpenD,看面板是显示「过时」还是错误地显示 0
4. 用手机打开,看排版和对话是否正常
──────────────────────────────
写在最后
这套东西真正的价值,不在于它能替你赚钱——它不能,它只能替你严格执行。价值在于它把你的每一个判断都变成了有记录、可检验的东西。三个月后你能翻出当时的推理,看看自己是对是错。这个能力,是 Vibe Trading 永远给不了你的。
也别急着上多标的、多策略。一个标的、一条规则、跑满三个月,你学到的东西比同时跑十个策略多得多。先跑通,再谈复杂度。
想继续深入的话,这两个地方我会持续更新:
X:https://x.com/Balder13946731/creator-subscriptions/subscribe
Substack:https://baldertrader.substack.com/subscribe
免责声明
本文为技术教程,介绍如何构建自动化交易系统,不构成任何投资建议、财务建议或证券推荐。文中提到的所有标的、指标、参数均为技术演示用途。
自动化交易存在重大风险,包括但不限于程序缺陷、网络中断、数据错误、AI 误判、回测过拟合、券商接口变更等,可能导致意外损失,损失可能超出预期。作者不对任何人依据本文内容所做的交易决策或产生的损失承担任何责任。
请在投入真实资金前充分测试,并只使用你能够承受全部损失的资金。如需投资建议,请咨询持牌专业人士。
券商政策、监管规则和各家 API 均可能变化,本文内容截至 2026 年 7 月,具体以各平台当前官方文档为准。


