120 lines
5.3 KiB
Markdown
120 lines
5.3 KiB
Markdown
# Polymarket-5min-bot
|
||
|
||
[English](./README.md) | **中文**
|
||
|
||
**联系方式**:[smith123_lee](https://t.me/smith123_lee)
|
||
|
||
> 面向 [Polymarket](https://polymarket.com) 加密货币「Up or Down」5 分钟预测市场的 Rust 套利机器人。
|
||
|
||
account运行界面
|
||
|
||
## 基本原理
|
||
|
||
Polymarket 的 Up/Down 市场每 5 分钟(UTC)开一个新窗口,每个市场有 YES 和 NO 两个结果代币。
|
||
|
||
理论上,持有等量 YES + NO 可在结算时兑换 1 USDC,因此:
|
||
|
||
```
|
||
YES 卖一价 + NO 卖一价 < 1 → 存在套利空间
|
||
```
|
||
|
||
机器人大致流程如下:
|
||
|
||
1. **发现市场** — 按配置的币种(如 btc、eth)自动查找当前 5 分钟窗口对应的 Up/Down 市场。
|
||
2. **监控订单簿** — 订阅 CLOB 订单簿,实时计算 YES + NO 的合计价格。
|
||
3. **执行套利** — 当合计价格低于阈值时,同时买入 YES 和 NO;可通过滑点、单笔上限、执行价差等参数控制下单行为。
|
||
4. **Merge 回收** — 若同时持有 YES 和 NO,可链上 Merge 合并为 USDC/pUSD,减少持仓风险。
|
||
5. **窗口收尾** — 接近窗口结束时,可自动取消挂单、Merge、并卖出剩余单腿仓位。
|
||
|
||
> 本程序连接真实市场与真实资金,使用前请充分理解风险。
|
||
|
||
|
||
|
||
## 快速开始
|
||
|
||
|
||
|
||
### 预编译可执行文件
|
||
|
||
如果你不会编译代码,请直接使用 **[Releases](../../releases/latest)** 中提供的预编译可执行文件:
|
||
|
||
1. 从 Releases 下载对应系统/架构的安装包
|
||
2. 复制 `.env.example` 为 `.env`,并填写必填项
|
||
3. 运行:
|
||
- Linux / macOS:`./polypulse`
|
||
- Windows:`polypulse.exe`
|
||
|
||
|
||
|
||
### 从源码编译
|
||
|
||
需要先安装 [Rust](https://rustup.rs)。
|
||
|
||
```bash
|
||
cp .env.example .env # 填写 .env 配置文件的必填项后启动
|
||
cargo run # 运行程序
|
||
```
|
||
|
||
详细参数说明见 `.env.example`,按 `[1]` ~ `[9]` 分区排列:越靠前越重要。
|
||
|
||
## 基础配置
|
||
|
||
|
||
|
||
### 必填
|
||
|
||
|
||
| 变量 | 说明 |
|
||
| -------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||
| `POLYMARKET_PRIVATE_KEY` | 签名私钥。邮箱/Magic 从 [reveal.magic.link/polymarket](https://reveal.magic.link/polymarket) 导出;浏览器钱包导出对应 EOA 私钥 |
|
||
| `POLYMARKET_PROXY_ADDRESS` | 资金托管地址(Settings 里的 Address,非 EOA),见 [polymarket.com/settings](https://polymarket.com/settings) |
|
||
|
||
|
||
|
||
|
||
### 签名类型 `SIGNATURE_TYPE`
|
||
|
||
按 **Settings 里资金钱包的类型** 选择,与「邮箱还是浏览器钱包注册」无必然对应:
|
||
|
||
|
||
| 值 | 适用场景 |
|
||
| ------------------ | -------------------------------------------------------- |
|
||
| `Poly1271`(**默认**) | V2 deposit wallet;邮箱/Magic 与浏览器钱包授权账号均适用 |
|
||
| `Proxy` | 仅 V1 旧 Magic 代理(Settings 地址须等于 ProxyFactory 从 EOA 推导的地址) |
|
||
| `GnosisSafe` | Gnosis Safe 多签 |
|
||
| `Eoa` | 纯 EOA 直连,无需 `POLYMARKET_PROXY_ADDRESS` |
|
||
|
||
|
||
**判断方法:** 保持默认 `Poly1271` 即可。若误设 `Proxy` 且下单报 `please use the deposit wallet flow`,说明账号已走 V2 deposit wallet,应改回 `Poly1271`(私钥与 `POLYMARKET_PROXY_ADDRESS` 无需改动)。
|
||
|
||
### Merge 所需(启用定时 Merge 或收尾时必填)
|
||
|
||
|
||
| 变量 | 说明 |
|
||
| ------------------------- | ---------------------- |
|
||
| `POLY_BUILDER_API_KEY` | Builder API Key |
|
||
| `POLY_BUILDER_SECRET` | Builder API Secret |
|
||
| `POLY_BUILDER_PASSPHRASE` | Builder API Passphrase |
|
||
|
||
|
||
以上三项在 Polymarket → Settings → Builder 获取。
|
||
|
||
### 常用可选项
|
||
|
||
|
||
| 变量 | 默认值 | 说明 |
|
||
| ------------------------------------- | ----------------- | --------------------------------- |
|
||
| `CRYPTO_SYMBOLS` | `btc,eth,sol,xrp` | 监控的币种,逗号分隔 |
|
||
| `ARBITRAGE_EXECUTION_SPREAD` | `0.01` | 执行阈值:`yes + no <= 1 - spread` 时下单 |
|
||
| `MAX_ORDER_SIZE_USDC` | `100.0` | 单笔最大下单量 |
|
||
| `RISK_MAX_EXPOSURE_USDC` | `1000.0` | 每轮最大风险敞口 |
|
||
| `MERGE_INTERVAL_MINUTES` | `0` | 定时 Merge 间隔(分钟),`0` 为关闭 |
|
||
| `WIND_DOWN_BEFORE_WINDOW_END_MINUTES` | `0` | 窗口结束前收尾(分钟),`0` 为关闭 |
|
||
| `RUST_LOG` | `info` | 日志级别 |
|
||
|
||
|
||
其余参数(CLOB 地址、签名类型、滑点、订单类型、持仓同步等)均有合理默认值,一般无需修改。完整列表与注释见 `.env.example`。
|
||
|
||
## 免责声明
|
||
|
||
本软件仅供学习与研究,不构成任何投资建议。加密货币与预测市场存在较高风险,可能导致资金损失。使用前请自行评估风险,并遵守 Polymarket 服务条款及当地法律法规。 |