亲爱的广场用户们,新年即将开启,我们希望您也能在 Gate 广场上留下专属印记,把 2026 的第一句话,留在 Gate 广场!发布您的 #我的2026第一帖,记录对 2026 的第一句期待、愿望或计划,与全球 Web3 用户共同迎接全新的旅程,创造专属于你的年度开篇篇章,解锁广场价值 $10,000 新年专属福利!
活动时间:2025/12/31 18:00 — 2026/01/15 23:59(UTC+8)
🎁 活动奖励:多发多奖,曝光拉满!
1️⃣ 2026 幸运大奖:从全部有效帖子中随机抽取 1 位,奖励包含:
2026U 仓位体验券
Gate 新年限定礼盒
全年广场首页推荐位曝光
2️⃣ 人气新年帖 TOP 1–10:根据发帖量及互动表现综合排名,奖励包含:
Gate 新年限定礼盒
广场精选帖 5 篇推荐曝光
3️⃣ 新手首帖加成奖励:活动前未在广场发帖的用户,活动期间首次发帖即可获得:
50U 仓位体验券
进入「新年新声」推荐榜单,额外曝光加持
4️⃣ 基础参与奖励:所有符合规则的用户中随机抽取 20 位,赠送新年 F1 红牛周边礼包
参与方式:
1️⃣ 带话题 #我的2026第一条帖 发帖,内容字数需要不少于 30 字
2️⃣ 内容方向不限,可以是以下内容:
写给 2026 的第一句话
新年目标与计划
Web3 领域探索及成长愿景
注意事项
• 禁止抄袭、洗稿及违规
我写了个机器人在 Polymarket 上「躺赚」:这是我的搭建逻辑
一位开发者分享如何打造 Polymarket 交易机器人,通过捕捉 BTC 15 分钟市场的价格波动,在几天内将 1,000 美元变成 1,869 美元,回测收益率达 86%。文章详细介绍机器人搭建逻辑、回测方法及其局限性。
(前情提要:预测市场龙头 Polymarket 宣布自建 L2,Polygon 的王牌没了?)
(背景补充:如何通过 Polymarket 套利实现年化 40% 收益?)
本文目录
几周前,我决定构建属于我自己的 Polymarket 机器人。完整版本花了我几个星期的时间。
我愿意投入这些精力,是因为 Polymarket 上确实存在效率漏洞,虽然市面上已经有一些机器人在利用这些低效获利,但还远远不够,这个市场的机会仍然远多于机器人的数量。
机器人搭建逻辑
该机器人的逻辑基于我过去手动执行的一套策略,为了提高效率,我将其进行了自动化。该机器人运行在「BTC 15 分钟 涨 / 跌(BTC 15-minute UP/DOWN)」市场上。
机器人运行着一个即时监控程序,能够自动切换到当前的 BTC 15 分钟轮次,通过 WebSocket 串流传输最优买价 / 卖价(best bid/ask),显示一个固定的终端 UI,并允许通过文字命令进行全面控制。
在手动模式下,你可以直接下单。
buy up / buy down :买入特定美元金额。
buyshares up / buyshares down :购买精确数量的股数,使用对用户界面友好的 LIMIT(限价)+ GTC(取消前有效)订单,按当前最优卖价(best ask)成交。
自动模式运行一个重复的两段式(two-leg)循环。
第一步,它仅在每轮开始后的 windowMin 分钟内观察价格波动。如果任何一方跌得够快(在大约 3 秒内跌幅至少达到 movePct),它就会触发「第一段(Leg 1)」,买入暴跌的那一方。
在完成 Leg 1 之后,机器人绝不会再次购买同一侧。它会等待「第二段(Leg 2,即对冲)」,并且仅在满足以下条件时触发:leg1EntryPrice + oppositeAsk <= sumTarget。
当满足此条件时,它购买相反的一侧。在 Leg 2 完成后,该循环结束,机器人返回观察状态,等待下一个使用相同参数的暴跌信号。
如果在循环过程中轮次发生了变化,机器人会放弃该打开的循环,并在下一轮中使用相同的设置重新开始。
自动模式的参数设置如下:auto on [sum=0.95] [move=0.15] [windowMin=2]
回测
机器人的逻辑很简单:等待暴力砸盘,买入刚跌完的那一方,然后等待价格稳定并通过购买相反一侧进行对冲,同时保证:priceUP + priceDOWN < 1。
但这个逻辑需要经过测试。它在长期内真的有效吗?更重要的是,机器人有很多参数(股数、总和、移动百分比、窗口分钟数等)。哪组参数集是最优的并能使利润最大化?
我的第一个想法是让机器人实盘运行一周并观察结果。问题是这耗时太长,且只能测试一组参数,而我需要测试很多组。
我的第二个想法是使用来自 Polymarket CLOB API 的线上历史数据进行回测。不幸的是,对于 BTC 15 分钟涨 / 跌市场,历史数据端点一直返回空数据集。没有历史价格跳动(ticks),回测就无法检测到「大约 3 秒内的暴跌」,无法触发 Leg 1,无论参数如何,都将产生 0 次循环和 0% 的投资回报率(ROI)。
经过进一步调查,我发现其他用户在获取某些市场的历史数据时也遇到了同样的问题。我测试了其他确实返回历史数据的市场,并得出结论:对于这个特定的市场,历史数据根本没有被保留。
由于这个限制,回测该策略唯一可靠的方法是在机器人运行时,通过记录即时最优卖价(best-ask)来创建我自己的历史数据集。
记录器将快照写入磁盘,包含以下内容:
随后,「记录回测(recorded backtest)」会重播这些快照,并确定性地应用相同的自动逻辑。这保证了能够获取检测暴跌和对冲条件所需的高频数据。
我总共在 4 天内收集了 6 GB 的数据。我本可以记录更多,但我认为这足以测试不同的参数集。
我开始测试这组参数:
我还应用了恒定的 0.5% 费率和 2% 的价差,以保持在保守的情景中。
回测显示 ROI 为 86%,在短短几天内 $1,000 变成了 $1,869。
然后我测试了较激进的参数集:
结果:2 天后投资回报率为 -50%。
这清楚地表明参数选择是最重要的因素。它可以让你赚很多钱,也可以导致重大损失。
回测的局限性
即使包含了费用和价差,回测仍有其局限性。
为了保持悲观(审慎),我应用了一条规则:如果 Leg 2 在市场关闭前未能执行,Leg 1 将被视为全损(total loss)。
这是刻意保守的,但并不总是符合现实:
虽然损失可能被高估了,但这提供了一个实用的「最坏情况」场景。
最重要的是,回测无法模拟你的大单对订单簿造成的冲击或吸引其他交易者围猎你的行为。在现实中,你的订单可以:
回测假设你是一个纯粹的流动性提取者(price taker),没有任何影响。
最后,它没有模拟频率限制(rate limits)、API 错误、订单被拒绝、暂停、超时、重连,或者机器人忙碌而错过信号的情况。
回测对于识别良好的参数范围极其有价值,但它不是 100% 的保证,因为一些现实世界的效果无法被建模。
基础设施
我计划在树莓派(Raspberry Pi)上运行该机器人,以避免消耗我主机的资源,并保持 24/7 全天候运行。
但这仍有显著的改进空间:
肯定还有其他我尚未发现的优化方法。目前,我正在学习 Rust,因为它正成为 Web3 开发中不可或缺的语言。
#####