99 lines
2.9 KiB
Markdown
99 lines
2.9 KiB
Markdown
# Polymarket BTC Up/Down Lab
|
||
|
||
只读可行性验证项目,用来研究 Polymarket BTC Up/Down 5m 市场是否存在足够稳定的定价偏差。
|
||
|
||
当前版本不会连接钱包、不会签名、不会下单。它做三件事:
|
||
|
||
- 从 Gamma API 读取事件、market、token id、`priceToBeat`。
|
||
- 从 Polymarket CLOB WebSocket 读取 Up/Down 增量盘口。
|
||
- 从 Polymarket RTDS Chainlink BTC/USD 获取实时价格,估算 `P(end >= priceToBeat)` 和扣费后的 taker edge。
|
||
- 将实时观测和盘口事件写入 DuckDB。
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
python3 -m venv .venv
|
||
.venv/bin/pip install -e ".[dev]"
|
||
```
|
||
|
||
## 观察指定市场
|
||
|
||
```bash
|
||
.venv/bin/updown-lab observe --slug btc-updown-5m-1779347700 --duration 60
|
||
```
|
||
|
||
输出会写入 `data/observations.jsonl`,每行是一条可回放的 JSON 快照。
|
||
|
||
## 发现当前候选市场
|
||
|
||
```bash
|
||
.venv/bin/updown-lab discover --limit 10
|
||
```
|
||
|
||
Gamma 的 recurring series 有时会返回尚未启用订单簿的未来市场,所以实盘观察前要看 `acceptingOrders`、`enableOrderBook`、`priceToBeat` 是否存在。
|
||
|
||
## 启动实时监控网站
|
||
|
||
```bash
|
||
.venv/bin/updown-dashboard --host 127.0.0.1 --port 8765
|
||
```
|
||
|
||
然后打开:
|
||
|
||
```text
|
||
http://127.0.0.1:8765
|
||
```
|
||
|
||
监控台会按 5 分钟 Unix 时间边界自动切换当前 BTC Up/Down 市场,实时展示价格、盘口、fair value、taker edge 和最近日志。实时网站的数据源是 `data/updown.duckdb`。
|
||
|
||
如果 live 市场的 Gamma 元数据暂时没有 `priceToBeat`,仪表盘会优先使用 RTDS 边界 tick 作为 `rtds_boundary`。只有中途启动且缺少边界 tick 时才会临时显示 `proxy_start`,这种样本不会计入可信回测。
|
||
|
||
## 策略口径
|
||
|
||
第一版 fair value 使用短期布朗运动近似:
|
||
|
||
```text
|
||
z = (current_price - price_to_beat) / (sigma * sqrt(seconds_remaining))
|
||
fair_prob = normal_cdf(z)
|
||
```
|
||
|
||
其中 `sigma` 由最近价格收益率滚动估算,并设置了下限,避免临近结算时概率过度极端。
|
||
|
||
扣 taker fee 后的近似 edge:
|
||
|
||
```text
|
||
buy_up_edge = fair_prob - up_ask - fee(up_ask)
|
||
buy_down_edge = (1 - fair_prob) - down_ask - fee(down_ask)
|
||
```
|
||
|
||
Polymarket crypto fee 近似:
|
||
|
||
```text
|
||
fee = 0.07 * price * (1 - price)
|
||
```
|
||
|
||
## 下一步
|
||
|
||
- 用 DuckDB 回放页分析入场时机、滑点、手续费后 edge 和窗口胜率。
|
||
- 增加进程锁/单实例启动保护,避免多个 dashboard 同时写一个 DuckDB 文件。
|
||
- 用海外 VPS 长时间采集,比较 RTDS 延迟、边界 tick 命中率和 CLOB 盘口年龄。
|
||
|
||
## 海外 VPS 部署
|
||
|
||
部署脚本在 `deploy/` 目录。推荐美国东部 Ubuntu VPS,通过 SSH tunnel 访问本地绑定的 dashboard:
|
||
|
||
```bash
|
||
deploy/sync_to_server.sh user@YOUR_SERVER_IP /opt/updown-dashboard
|
||
ssh user@YOUR_SERVER_IP
|
||
cd /opt/updown-dashboard
|
||
sudo bash deploy/install_ubuntu.sh
|
||
sudo bash deploy/install_systemd.sh
|
||
sudo systemctl start updown-dashboard
|
||
```
|
||
|
||
本地访问:
|
||
|
||
```bash
|
||
ssh -L 8765:127.0.0.1:8765 user@YOUR_SERVER_IP
|
||
```
|