增长案例库 Maxed 归档 AI自动化变现与定价

我用 Grok Bot 重建套利机器人,如今每周赚 1.2 万(完整指南+代码)

I rebuilt my arbitrage bot with Grok Bot and now it makes $12k per week (full guide + code)

中文译文 · 19k 字

一句话摘要

用 Grok Bot 重建套利机器人每周赚 1.2 万

我用 Grok Bot 重建了我的套利机器人,现在它每周赚 $12k(完整指南 + 代码) August 23, 2026 · 17 min read · View source ↗ Grok Bot AI Side Hustle 我的套利机器人过去是一个巨大而纠缠的脚本。 现在它是一个 AI Agent 团队,每个各司其职,而且它已经做到 $66k PnL。 我用 Grok Build 重建了整件事,这让机器人更容易运行、更容易修复,而且比那个单体可靠得多。 公开钱包:[ https://polymarket.com/@l5zn1bwom8etsk?via=surfer ] 这是完整的构建,已更新,而且是进阶版,不是入门概览。 还是我一直鼓吹的那些久经沙场的骨架,但围绕专门的 Agent 重组,而不是一个大脑试图同时干所有事。 我建了 500 多个机器人来学到这些。其中 99% 都失败了。 这就是那 1% 能印钱的背后的架构,我要把每一块都展示给你,包括那些悄悄把人搞死的部分。 让我一步一步带你走一遍。 1. 为什么一个 Agent 团队胜过单个脚本 首先,整个重建的核心想法,因为它改变了一切下游的东西。 我的旧套利机器人是一个单体。 一个脚本负责找套利、查风险、算手续费、下单、管理退出。 一个大脑干五件活,而每件活都让另外四件更难推理。 当它出问题时,我分不清是哪一部分出了问题。 是扫描器误报了一个假价差?是风险检查放行了一条坏腿?还是手续费算错了?你没法隔离它,所以每个 bug 都是一场噩梦。 Grok Build 改变了整件事的形状。 它启动并行的子 Agent,所以你不是建一个纠缠的大脑,而是建一支由小专家组成的团队,每个只负责一件活,并干净地交接给下一个。 我的例子: > hunter agent 找到套利。 > risk agent 验证两条腿是否都能真正成交。 > fee agent 判断这个价差能否扛过成本。 > 执行层下单、追踪并管理这对仓位。 每一个都只有一件单一、可测试的活,而且从不搞砸。 而真正的赢面在于可调试性。 现在出问题时,我确切知道该看哪个 Agent,因为每个都有狭窄、明确的职责。 这正是我一直鼓吹的关于机器人本身的教训。 专家在他那一件事上每次都能碾压通才。 一颗为单一运算打造的芯片,胜过一颗什么都做的芯片。 我只是把同一条原则应用到了运行我机器人的 AI 上,整个系统就变得更敏锐、修得更快、更可靠。 单体是一个单点故障。 团队是五个小故障点,你可以分别单独检查,这在实践中意味着故障反而少得多。 2. 套利到底是什么(以及两种类型) 在写任何代码之前,先说机制,因为如果 Agent 不懂它们在猎什么,它们就是废物。 在一个二元 Polymarket 市场上,两边加起来应该正好是 $1。 Up 加 Down 等于一美元。 这是整套策略赖以成立的那条规则,它源于一个事实:一边在结算时一定会支付 $1,另一边一定会支付 $0。 但有时市场会打破这条规则: > Up 成交于 0.55 > Down 成交于 0.42 > 加起来是 0.97,不是 1.00 那 3 美分的价差,如果你能同时抓住两边,就是免费的钱。 你以 97c 锁定这对仓位,它在结算时保证价值正好 $1,无论市场朝哪边结算。 不预测。不承担方向性风险。只是你收集到的一个定价错误。 现在说初学者会漏掉的部分:这其实有两种。 简单套利,两边在同一个市场 一个 BTC 窗口上的 Up 和 Down 加起来小于一美元。最干净、最明显,也是竞争最激烈的,所以这些价差很小,而且几毫秒内就关闭。 组合套利,关联市场 两个逻辑上相连的独立市场。"A 队获胜"和"A 队赢 2 分以上"不可能互相矛盾,所以它们的价格必须遵守一条规则,当它们漂移时,你就在两个市场之间得到一个锁定仓位。猎这个的人更少,因为搜索空间巨大,所以价差更肥、持续更久。 hunter agent 可以被指向任意一种。 大多数人只建第一种,然后跟所有人抢残渣。 长期来看真正的钱,是教会你的 hunter 去发现第二种。 下面的一切对两种都适用,区别只在于 hunter 扫描什么。 3. 前置条件(进阶版) 和每个严肃机器人一样的基础,Grok Build 并不能替代它们。 Python 和 NumPy,以及理解生成了什么 你仍然需要处理 websocket、订单簿重建和快速向量化决策。现在 Grok Build 会写大部分,但如果你读不懂、推不动它产出的东西,你就会发布你找不到的 bug。工具抬高了你的天花板,它并没有消除理解你自己机器人的需要。 低延迟基础设施,位置放对 一台物理上靠近 Polymarket 基础设施的 VPS 或服务器。这对套利比对几乎所有其他策略都更重要,因为套利要求两条腿都成交,而它们之间的每一毫秒,都是一边可能移动、打破这对仓位的每一毫秒。选一个到他们服务器 ping 最低的云区域。一个遥远的主机不只是拖慢你,它会主动制造半成交的套利。 Polymarket API 访问和一个真钱包 拿到你的密钥,设置好 funder 钱包,从零余额开始干跑,让真实错误——资金不足、额度问题、被拒——尽早浮现,并成为你喂回给回测的数据。 干净的数据源,来自多个来源 Polymarket CLOB 和 Gamma 的 websocket,加上 Binance 和 Coinbase 之类的外部参考,用于对结算价做合理性检查。脏数据意味着假套利:你会看到一个并不存在的价差,因为一边的报价是陈旧的。 这里是 Grok Build 带来的转变: 你不再需要花好几天手写所有这些管道。 你用大白话把每一块描述给一个 Agent,它就去构建那个 worker、测试它、迭代它。 但架构决策、区域选择、数据源、钱包设置都由你掌握,而且你必须读懂并信任每个 Agent 在它碰到真钱之前产出的东西。 工具把几周的构建压缩成几天。 它没有压缩判断力。 4. HUNTER AGENT(代码) 第一个 Agent 的全部工作,就是不眠不休地扫描价差。 你没法手工做这个。价差很小,它们同时出现在几十个市场上,而且在几秒甚至更快内关闭。 所以这个 Agent 持续运行,在每一次订单簿更新时,检查每一对活跃仓位的两边相对于一美元的关系。 它运行的核心检查长这样: def find_arb(book_up, book_down, min_edge=0.02, fee=0.0): # you must BUY at the ask, not the bid - this trips up beginners up_ask = book_up.best_ask down_ask = book_down.best_ask # depth matters: a gap you can't fill in size is not a gap up_size = book_up.ask_size down_size = book_down.ask_size fillable = min(up_size, down_size) pair_cost = up_ask + down_ask + fee edge = 1.0 - pair_cost # guaranteed $1 payout minus what you paid if edge >= min_edge and fillable > 0: return { "up_price": up_ask, "down_price": down_ask, "edge": round(edge, 4), "max_size": fillable, } return None 注意两件大多数人都搞错的事。 第一,你在 ASK(卖价)买入,不是 bid(买价)。价差必须存在于你实际会支付的价格上,而不是中间价或买价。 第二,这个 Agent 检查 DEPTH(深度),而不只是价格。一个 5 美分的价差,后面只有 $3 的量,在手续费和精力之后几乎一文不值。真正的奖品是价差乘以可用量,所以 hunter 要报告它实际能成交多少。 这个 Agent 标记出符合条件的设置,直接交给 risk agent,连同最大可成交量。 它从不睡觉、从不眨眼、从不因为分心或疲倦而错过价差。 这恰恰是 AI Agent 真正擅长的:不知疲倦、专注的扫描。 不是去下注,而是去猎取设置。 Grok Build 让我把这个 worker 启动起来,用录制的订单簿数据测试它,并在价差阈值上迭代,所用时间只是我手写第一版的一小部分。 5. RISK AGENT——为什么"无风险"并不无风险(代码) 找到价差是容易的那 20%。 不被它搞垮是困难的那 80%,而这正是 risk agent 作为一个独立专职 worker 存在的全部理由。 这里是把"无风险"套利变成真实亏损的陷阱。 套利只有在两条腿都成交时才是无风险的。 成交一边、错过另一边,你就不再是在套利。 你现在是一个持有单边裸仓的方向性交易员,完全暴露在你本要中和的那个价格波动之下。 那条裸腿可能立刻朝对你不利的方向移动,于是"安全"的交易变成你当天最惨的一笔亏损。 这是套利机器人爆仓最常见的唯一方式,而且它几乎从不显现在一个天真的回测里,因为回测假设两条腿总是都能成交。 所以 risk agent 在开火之前运行一系列硬检查: def approve_trade(setup, book_up, book_down, inventory, max_imbalance=50): # 1. can BOTH legs actually fill at the flagged size? size = setup["max_size"] if book_up.ask_size < size or book_down.ask_size < size: return False, "insufficient depth on one leg" # 2. would this leave me dangerously lopsided? projected = inventory.net_exposure + 0 # arb should stay ~neutral if abs(projected) > max_imbalance: return False, "inventory too imbalanced" # 3. is one leg suspiciously cheap? (stale quote / adverse selection) if setup["up_price"] < 0.02 or setup["down_price"] < 0.02: return False, "leg price looks stale, likely fake gap" return True, "approved" 走一遍它实际在防什么。 两边都有深度 如果任意一条腿无法成交完整量,这对仓位就无法完成,所以它杀掉这笔交易。 库存平衡 套利应该让你保持市场中性。如果一次成交会让你失衡,那就是方向性风险在渗入,它会停。 可疑的便宜腿 一个好过头了的价格通常是一份陈旧报价,或者是一个迹象:你即将被逆向选择,因为你填在会输的那一边,因为有人知道些什么。Agent 把一个不现实的价差当作红旗,而不是礼物。 因为半成交的套利比没有套利更糟。 不交易,你什么都不亏。 一条裸腿,让你亏掉你本要防的那整件事,外加你在已成交那条腿上已经付掉的手续费。 这是独立构建者会跳过的纪律,因为当它正常工作时,它无聊且不可见。 这正是那种狭窄、关键、不光彩的工作,最适合交给它自己的专职 Agent,让它每次都不带懒惰或激动地跑同样的检查,哪怕是面对一个看起来很肥的价差。 6. FEE AGENT 和为什么 GTC 胜过 FAK(代码) 第三个 Agent 回答一个决定一切的问题:这个价差能否扛过成本? 因为一个 3 美分的价差没有任何可以挥霍的余地。 如果手续费吃掉了价差,你费了那么多劲却什么都没赚到,或者在滑点之后实际上亏了。 而这里有一个控制你手续费的杠杆,就是你的订单类型。 > FAK,fill-and-kill,是一种激进的吃单(taker)订单。它立即吃掉可用流动性,但你为这份特权付 taker 手续费,两条腿都付。 > GTC,good-till-cancelled,作为挂单(maker)订单停在订单簿上。你等着被成交,但你往往赚到 maker 返佣,而不是付手续费。 在薄的套利价差上,那个差别不是细节,它就是整笔交易。 fee agent 在放行任何东西之前跑真正的净额计算: def net_after_fees(setup, size, maker_rebate=0.0, taker_fee=0.0, use_gtc=True): gross = (1.0 - (setup["up_price"] + setup["down_price"])) * size if use_gtc: # resting maker orders: rebate is income, not cost costs = -(maker_rebate * size * 2) else: # aggressive taker on both legs costs = taker_fee * size * 2 net = gross - costs return net > 0, round(net, 4) 把同一个 3 美分的价差跑过两条路径,你会得到两个完全不同的生意。 用 FAK 激进地吃两条腿,taker 手续费可能吞掉整个价差,让你持平甚至为负。 把两条腿作为 GTC 挂单,赚返佣,同样的价差就能带着真利润结算,有时光是返佣就给价差显著加码。 所以 fee agent 强烈推动向 GTC 挂单靠拢,只在价差肥到足以吃掉 taker 手续费仍然盈利时才允许激进的 FAK,而这种情况很罕见。 但这里有一个它必须权衡的取舍。 GTC 意味着你要等待成交,而等待期间,价差可能关闭,或者一条腿在没有另一条腿的情况下成交。 这正是 risk agent 和 fee agent 必须协同工作的原因——fee agent 想要耐心的挂单,risk agent 确保那些挂单腿真的成对完成。 每一个 Agent 约束下一个。 那种咬合,是单体永远无法干净做到的,也是多 Agent 重建超越旧脚本的核心原因。 7. 执行、合并循环和资金周转速度(代码) 现在说几乎没人谈的部分:策略里隐藏的那一半,实际决定你月度 PnL 的部分。 一旦两条腿成交,你就持有一对完整仓位:一份 Up 份额和一份 Down 份额,以 97c 一起买入。 初学者的做法是等市场结算来收取那一美元。 这行得通,但它把你的资金冻结在市场整个存续期内,有时是几小时。 而冻结的资金是死钱,它没法去抓下一个价差。 这里是进阶做法。 一对完整仓位——一份 Up 加一份 Down——可以立刻合并回 $1 的抵押品,无需等待结算。 def recycle_pair(market, size): # you hold `size` Up and `size` Down after the arb filled # merge them back into USDC immediately - no waiting for resolution tx = merge_positions(market.condition_id, size) if confirm_on_chain(tx): return size # capital is liquid again, right now return 0 所以完整循环是:hunter 找到价差,risk 批准它,fee agent 确认它净额为正,执行者以 97c 成交两条腿,然后你立刻把这对仓位合并回 $1,装进口袋那 3c,资金在几秒内自由,去抓下一个。 这里才是真正的钱,而且是纯数学。 你的月度回报,是每笔交易那点微小价差,乘以你每天把同一笔资金周转多少次。 一个 3c 价差,一天在 $1,000 上捕获一次,微不足道。 同一个 3c 价差,在同一天、同一笔 $1,000 上周转 40 次,是一份真收入。 周转速度就是策略本身。价差只是每个周期的收益率。 这也正是为什么复制我的钱包毫无用处。 链上,有人看到买入、合并和一个在攀升的 PnL 数字。 他们看不到的是两条腿之间的时机、捕获返佣的订单路由、释放资金的合并节奏,或者杀死"某条腿无法成交"设置的风险逻辑。 等一笔交易出现在链上时,它捕获的那个价差早没了。 优势活在机器人的逻辑和时机里,从来不在可见的钱包里。 8. 回测、风险控制和部署 Agent 并不能让你免于证明机器人有效。如果有的话,套利要求一场更严酷的试炼,因为天真的回测在这里撒谎最多。 在真实订单簿数据上回测,绝不用价格线 套利完全取决于每一时刻实际的 bid、ask 和深度。一个对着收盘价的回测会给你显示从未可成交的价差。你需要自己录制的订单簿快照,两边,带深度。 在假设两条腿并不总是都成交的条件下重跑 这是杀死大多数套利策略的那道门,而它应该如此。建模错失的腿,建模一边成交而另一边移走,建模两次成交之间的延迟。一个真实的套利回测,假设你有时会卡在一条裸腿上,并把它计入价格。如果在这些条件下它仍然盈利,你才可能有点东西。 按订单类型显式建模手续费 分开回测 GTC 返佣路径和 FAK 手续费路径。同一个策略,作为 maker 可能盈利,作为 taker 可能亏损。 零余额干跑上线 让它试着开火,在资金不足上失败,并精确记录它本会做什么。每一次被拒,都是你的回测所缺失的一个真实世界信号。 只有当上线与回测在几个百分点内吻合时才部署 如果它们偏离,就假定是执行的问题——延迟、成交、腿的时机——直到被证明不是。 这里有一个真的提升我信心的 Grok Build 技巧。 用一个单独的 Agent 作为你回测的对抗性评审。 一个 Agent 构建回测,第二个 Agent 唯一的工作就是攻击它:寻找前视偏差,检查它是否假设了不可能的成交,质疑两条腿在那些价格上是否真的都能完成。 你信任的回测,是另一个 Agent 使尽浑身解数想摧毁却没能摧毁的那个。 然后是安全护栏,对套利来说这些没有商量余地,因为一条卡住的裸腿过夜就可能抹掉几周的成果: 一个 kill switch,在单日亏损越过硬上限时停止一切交易。 持续把状态落盘,这样崩溃重启绝不会重复成交一条腿,或忘掉一个未平仓的对子。 一个启动时的 pre-flight 检查——funder 地址、USDC 额度、gas 余额、实时数据源——任何一项不对就拒绝启动。 一个专门的"裸腿"监控,如果你持有任何未对冲的单边就尖叫,让你在它朝你移动之前行动。 把它们拼到一起 退一步,看看这次重建到底完成了什么。 策略本身没有变。 还是同一个套利:抓一个加起来小于一美元的对子,验证它是真的且可成交,便宜地锁定两条腿,合并回 $1,并尽可能快地周转资金。 变的是架构,而架构才是让它在规模下能活下来的东西。 一个纠缠、无法调试的脚本,变成了一支专注的 Agent 团队。 hunter 找到价差并定下规模。 risk agent 保证两条腿都能完成,并让你保持中性。 fee agent 强制要求价差扛过成本,并推向 maker 返佣。 执行者成交、合并、周转资金。 一个对抗 Agent 在你的钱之前就试着攻破回测。 每一块都是隔离的、可测试的、易修复的,这在实际中意味着整个系统坏得少得多。 Grok Build 让构建整支团队变得飞快,把过去几周的单体缠斗,变成几天里把专注的工作描述给专注的 Agent。 但要把分工搞得一清二楚,因为这是那些卖水的人撒谎的部分。 Agent 处理的是管道、扫描、检查、数学、执行。 而优势——策略设计、库存纪律、基础设施选址、判断哪些价差是真的——仍然是我的,也仍然是唯一真正要紧的部分。 Grok Build 移除了"构建"的障碍。 它没有把优势交给我,也不会把优势交给你。 它所做的,是让你用一小部分时间构建出一个正规、专业的多 Agent 系统,好让你把精力花在真正印钱的部分上——优势。 组建团队。 把优势留给自己。 如果你想深入了解我用的确切 Agent 工作流和提示词,我在我的频道里把整件事都拆解了。 在这里加入:[ https://t.me/+jCBHygDAJa9hMTJk ] 这里的一切都免费,而且会一直免费。 祝好运。 Tags: # X # Grok Bot # AI # Side Hustle # Side Hustle # Guide 相关文章 Grok Bot:一条真正赚钱的路 Memecoins 又流行起来了。炒作周期又转回来了,每个人的聊天里都满是"谁在什么上赚了钱"。所以我想测试一件事:如果你不是通过交易来迎接那个周期…… Grok Bot Crypto AI Side Hustle

原文参考:https://maxed.wiki/posts/i-rebuilt-my-arbitrage-bot-with-grok-bot-and-now-it-makes-12k-per-week-full-guide-code/ (Maxed.wiki,本页为站内中文整理)