Go to file
2026-05-22 09:21:35 +08:00
data 1 2026-05-22 09:21:35 +08:00
deploy 1 2026-05-22 09:08:11 +08:00
src 1 2026-05-22 09:21:35 +08:00
tests 1 2026-05-22 09:21:35 +08:00
.dockerignore first commit 2026-05-22 00:38:22 +08:00
.gitignore first commit 2026-05-22 00:38:22 +08:00
docker-compose.yml 1 2026-05-22 09:08:11 +08:00
Dockerfile first commit 2026-05-22 00:38:22 +08:00
pyproject.toml first commit 2026-05-22 00:38:22 +08:00
README.md first commit 2026-05-22 00:38:22 +08:00

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。

安装

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"

观察指定市场

.venv/bin/updown-lab observe --slug btc-updown-5m-1779347700 --duration 60

输出会写入 data/observations.jsonl,每行是一条可回放的 JSON 快照。

发现当前候选市场

.venv/bin/updown-lab discover --limit 10

Gamma 的 recurring series 有时会返回尚未启用订单簿的未来市场,所以实盘观察前要看 acceptingOrdersenableOrderBookpriceToBeat 是否存在。

启动实时监控网站

.venv/bin/updown-dashboard --host 127.0.0.1 --port 8765

然后打开:

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 使用短期布朗运动近似:

z = (current_price - price_to_beat) / (sigma * sqrt(seconds_remaining))
fair_prob = normal_cdf(z)

其中 sigma 由最近价格收益率滚动估算,并设置了下限,避免临近结算时概率过度极端。

扣 taker fee 后的近似 edge

buy_up_edge = fair_prob - up_ask - fee(up_ask)
buy_down_edge = (1 - fair_prob) - down_ask - fee(down_ask)

Polymarket crypto fee 近似:

fee = 0.07 * price * (1 - price)

下一步

  • 用 DuckDB 回放页分析入场时机、滑点、手续费后 edge 和窗口胜率。
  • 增加进程锁/单实例启动保护,避免多个 dashboard 同时写一个 DuckDB 文件。
  • 用海外 VPS 长时间采集,比较 RTDS 延迟、边界 tick 命中率和 CLOB 盘口年龄。

海外 VPS 部署

部署脚本在 deploy/ 目录。推荐美国东部 Ubuntu VPS通过 SSH tunnel 访问本地绑定的 dashboard

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

本地访问:

ssh -L 8765:127.0.0.1:8765 user@YOUR_SERVER_IP