针对 Polymarket 15 分钟加密货币涨跌市场的自动化「抄底 + 对冲」交易 — TypeScript、官方 CLOB 客户端,可在 BTC、ETH、SOL、XRP 上无人值守运行。
本方向活跃开发周期:2026-01-04 至 2026-04-02。
短期预测市场波动极快。当某一侧在几秒内急跌时,另一侧往往滞后 —— 若你能以足够低的价格同时买到两条腿,配对份额的总成本可能低于 1 美元,从而在结算前锁定结构性优势。
本机器人会持续监控这些市场,识别符合你阈值的剧烈波动,执行两腿周期(抄底 → 对冲),并跟踪盈亏 —— 还可选模拟模式,在动用真金白银前验证行为。
| 能力 | 说明 |
|---|---|
| 多标的 | 可交易一个或多个市场:btc、eth、sol、xrp(逗号分隔)。 |
| 自动发现 | 通过 Polymarket Gamma API 解析每个标的当前活跃的 15 分钟涨跌市场,并在每个新周期自动切换。 |
| 急跌检测 | 利用近期卖一(ask)历史,在短时间窗口内按你的波动阈值标记一条腿。 |
| 对冲逻辑 | 第一条腿成交后,当 腿1 入场价 + 对侧卖一 ≤ 你的价格和目标(如 0.95)时再买入第二条腿。 |
| 风控 | 若在 N 分钟内未出现有利对冲,可配置止损对冲。 |
| 结算 | 市场结束时核对输赢,生产环境可对链上赎回获胜头寸。 |
| 日志 | 向 stderr 输出活动,并追加写入 history 文件供复盘与审计。 |
新的 15 分钟轮次
│
▼
┌─────────────────┐ 涨或跌一侧快速下跌 ┌──────────────┐
│ 观察窗口 │ ─────────────────────────► │ 买入急跌侧 │
│ (前 N 分钟) │ │ (腿 1) │
└─────────────────┘ └──────┬───────┘
│
对侧卖一足够便宜 │
(合计 ≤ 目标) ▼
┌──────────────┐
│ 买入对冲腿 │
│ (腿 2) │
└──────┬───────┘
│
超时? ────────────────────────────────┤
▼
止损对冲路径
交易者模块的简化示意图;阈值可通过环境变量调节。
- 运行时: Node.js 16+
- 语言: TypeScript
- Polymarket:
@polymarket/clob-client(下单、鉴权),Gamma + CLOB HTTP API(市场、价格) - 链: Polygon(USDC、CTF 赎回流程)
- Node.js 16 或更高版本
- 兼容 Polymarket 的钱包;实盘需在 Polygon 上有 USDC,并明确 EOA 与代理(proxy) 签名方式(
.env中的SIGNATURE_TYPE)
git clone repo
cd polymarket-arbitrage
npm install
cp .env.example .env
# 编辑 .env — 见下方 [配置](#配置)
npm run build| 命令 | 用途 |
|---|---|
npm run dev |
使用 ts-node 从源码运行(开发)。 |
npm run typecheck |
仅做 TypeScript 检查,不生成 dist/。 |
npm run clean |
删除 dist/ 下的编译产物。 |
npm run sim |
模拟 — 记录交易日志,不下真实单(--simulation)。 |
npm run prod |
生产 — 真实 CLOB 下单(--production)。 |
npm start |
运行 dist/main.js;结合下方参数与 .env 使用。 |
实盘: 在 .env 中设置 PRODUCTION=true 并运行 npm run prod(或 node dist/main.js --production),避免进程停留在模拟模式。
将 .env.example 复制为 .env 并按需修改。
| 变量 | 作用 |
|---|---|
PRIVATE_KEY |
真实下单与赎回所必需。 |
PROXY_WALLET_ADDRESS |
如使用 Polymarket 代理/档案地址则填写。 |
SIGNATURE_TYPE |
0 EOA,1 Proxy,2 Gnosis Safe(示例中默认为 2)。 |
GAMMA_API_URL |
可选;默认 https://gamma-api.polymarket.com。 |
CLOB_API_URL |
可选;默认 https://clob.polymarket.com。 |
API_KEY / API_SECRET / API_PASSPHRASE |
可选;若你的环境需要 CLOB API 凭证则填写。 |
MARKETS |
例如 btc 或 btc,eth,sol,xrp(逗号分隔、小写)。 |
CHECK_INTERVAL_MS |
轮询价格的间隔(毫秒,默认 1000)。 |
MARKET_CLOSURE_CHECK_INTERVAL_SECONDS |
检查轮次是否结束的频率(秒,默认 20)。 |
DUMP_HEDGE_SHARES |
每条腿的份额数量。 |
DUMP_HEDGE_SUM_TARGET |
对冲时两腿价格和的上限(如 0.95)。 |
DUMP_HEDGE_MOVE_THRESHOLD |
视为急跌的最小比例跌幅(如 0.15 表示 15%)。 |
DUMP_HEDGE_WINDOW_MINUTES |
仅在每轮前 N 分钟内寻找急跌机会。 |
DUMP_HEDGE_STOP_LOSS_MAX_WAIT_MINUTES |
若 N 分钟内无有利对冲则走止损路径。 |
DUMP_HEDGE_STOP_LOSS_PERCENTAGE |
强制对冲时价格和的上限:max(腿1 + 对侧) = 1 + 该比例(默认 0.2)。 |
PRODUCTION |
false 为模拟;实盘请设为 true 并与 --production 一起使用。 |
src/
main.ts # 入口:发现市场、监控、周期切换
monitor.ts # 价格轮询与快照
dumpHedgeTrader.ts # 急跌 → 对冲 → 止损 → 结算跟踪
api.ts # Gamma、CLOB、下单、赎回、活动
config.ts # 环境变量加载
models.ts # 共享类型
logger.ts # history 文件 + stderr
本软件仅供教育与研究。预测市场与自动化交易存在重大财务风险,包括可能全部亏损。历史或模拟表现绝不代表未来结果。你须自行遵守适用法律、交易所条款与税务义务。文中内容不构成投资、法律或税务建议。
- 先跑模拟,在多轮次中检查
history.toml。 - 实盘初期使用较小的
DUMP_HEDGE_SHARES与较保守的阈值。 - 勿将私钥提交到版本库;已泄露的凭证应及时轮换。
核心开发(2026 年一季度):buffalu、bunghi、calvinzhou-rockx、Carlosted、cavemanloverboy、ch9xy、ChewingGlass、codemonkey6969、cryptogosu、cryptopapi997、danpaul000。
欢迎提 Issue 与 Pull Request:策略思路、更安全的默认值、测试与更清晰的文档对大家都有帮助。
本地流程与提交规范见 CONTRIBUTING.md。
Failed to fetch market/orderbook: 多为 API 或网络瞬时问题;确认端点与重试逻辑。- 生产环境下单失败: 核对
PRIVATE_KEY、SIGNATURE_TYPE与代理钱包设置是否与 Polymarket 账户一致。 - 找不到市场: 确认
MARKETS仅包含支持的标的(btc、eth、sol、xrp),并等待下一轮 15 分钟开盘。
条款见本仓库中的 LICENSE。