Polybot 是 ent0n29 開源的 Polymarket 交易基礎設施。五個 Java 21 微服務 + ClickHouse 行情倉 + Redpanda 事件流 + Python 研究腳本,從紙上回測串到實盤下單,並以 replication_score 量化任何目標使用者的訂單流分布。這份手冊帶你從零安裝、跑完一筆 Up/Down complete-set 套利,並理解 replication_score 的計算機制。
ent0n29 在 README 把 Polybot 定位成「Open-source Polymarket trading infrastructure and strategy reverse-engineering toolkit」。兩個設計目標並列:前半是把整個 Polymarket 交易棧開源做出來,後半是反向工程任何一位使用者的策略。它是 AWARE 商業產品(trader intelligence + fund mirroring)的開源研究地基。
架構上它不是一個單機腳本,而是五個 Java 21 微服務:executor-service 負責下單與紙上/實盤雙模式,strategy-service 跑策略 runtime 與做市,ingestor-service 把市場與用戶交易吃進 ClickHouse,analytics-service 算複製分數與績效,infrastructure-orchestrator-service 管整條鏈的服務狀態。資料層用 ClickHouse 當行情倉,訊息匯流用 Redpanda(Kafka 相容),監控則是 Grafana + Prometheus + Alertmanager 一整套。
Polybot 把「策略複製」列為一級主題。research/ 目錄的 replication_score.py、replication_score_orders.py、sim_trade_match_report.py 是專門量化「候選機器人與目標使用者成交分布接近程度」的度量工具。用法是選定一位 Polymarket 目標使用者,以統計分數衡量訂單流的逼近程度,而非單純靠策略碰運氣。
前置環境是Amazon Corretto 21(或任一 Java 21+)、Maven 3.8+、Docker Engine 與 Docker Compose、Python 3.11+。Java 跑微服務,Maven 編譯,Docker 起 ClickHouse / Redpanda / Grafana / Prometheus,Python 負責 research/ 底下所有的策略複製與回測腳本。下面這段是 README 的 quick start,直接照貼即可。
repo 根目錄附了 .env.example,把它複製成 .env 再填值。重點分四組:Polymarket 憑證(若要走實盤)、Kafka / Redpanda 連線、ClickHouse 主機與帳密、Grafana 與 Slack 警報整合。預設模式是 paper trading,你不填 Polymarket 憑證也能跑完整個 ingest → analytics → 紙上下單的鏈路。
Polybot 由 Java 服務(撮合與策略執行)和 Python 腳本(研究與複製分析)兩層組成。優先理解三個核心元件:executor-service 的下單機制、research/replication_score.py 的訂單流比對邏輯、research/calibrate_maker_fill_model.py 將實盤成交時間餵回紙上模擬的方法。其餘元件均以此三者為基礎衍生。
| 你正在做什麼 | 主要元件 | 搭配腳本 |
|---|---|---|
| 觀察 Polymarket 即時行情 | ingestor-service + ClickHouse |
market_coverage_report.py |
| 把策略邏輯先在歷史資料上跑 | research/backtest/ |
run_simulation.py |
| 挑一位高手反向工程 | analytics-service |
replication_score.py + replication_score_orders.py |
| 準備上實盤,先校準時延 | executor-service(paper) |
calibrate_maker_fill_model.py |
Polybot 是給研究人員使用的工作站,非即裝即用的交易程式。以下十條使用模式來自 README、docs/STRATEGY_RESEARCH_GUIDE.md、docs/EXAMPLE_STRATEGY_SPEC.md 與目錄結構,涵蓋第一週常見的組態與工作流問題。
README 把 paper trading 明確定位成「實盤前的必經驗證」。預設模式為 paper,不填 Polymarket 憑證也能跑完整條 pipeline。此為設計決策,非功能限制。
來源 · README Disclaimerdocs 附有策略規格範本,按此格式描述策略邏輯,後續所有 Java 服務與研究腳本即可直接接入。建議先讀 STRATEGY_RESEARCH_GUIDE.md,再按 spec 寫第一版。
executor-service 內建一個針對 Up/Down binaries 的 complete-set arbitrage 策略,可作為新策略的程式碼參考。在 paper 模式執行一輪,即可理解整個下單回路。
來源 · README · Built-in Strategiessnapshot_report.py 設計為完全離線運作。將生產資料 dump 為快照檔後,不需服務連線即可計算指標,適合無網路環境使用。
此指標衡量成交分布的配對程度,而非獲利金額。複製目標使用者時,應優先確認分數是否收斂。PnL 高但分數低,通常代表成交結果與目標策略並不相符。
來源 · research/replication_score.pyreplication_score_orders.py 比 replication_score.py 更嚴格,逐筆對齊下單的決策序列。兩個分數並用,才能區分「策略邏輯吻合」與「事後成交碰巧相近」這兩種不同情況。
calibrate_maker_fill_model.py 估算掛單的實際成交時間分布,並將模型套回 paper 模式。跳過此步驟,backtest 的盈虧數字將脫離實盤條件。
repo 根目錄有兩份 yaml:docker-compose.analytics.yaml 與 docker-compose.monitoring.yaml,可單獨啟動。研究階段不需要 Prometheus,觀察線上狀態時可暫時略過 analytics。
執行 run_simulation.py 後接 paper_trading_dashboard.py,即可取得本機儀表板,無需啟動完整監控棧。適合早期迭代階段使用。
monitoring stack 預設支援 Slack 整合,設定欄位在 .env.example 已提供範本。實盤上線後,建議將策略偏差、ingestor 斷流、executor 失敗統一推送至 #polybot-alerts 頻道。
以下情境模擬:在一台乾淨的 Mac 上跑通 Polybot,步驟包含啟動服務、進入 paper 模式、擷取歷史行情、執行 complete-set 套利範本,並對一位 Polymarket 目標使用者計算複製分數。所有指令均來自 README 與 research 目錄的腳本。
整條 pipeline 跑完,Polybot 輸出的核心數據是與目標使用者的差距量化:成交分布是否接近、下單時點是否對齊、是否缺少特定事件訊號。這些指標比 PnL 數字提供更多可操作的診斷資訊。
從 clone 到第一份報告,流程經過五個服務、ClickHouse、Redpanda、一個成交時延模型,以及兩個 replication 分數。設計目的是量化策略與目標使用者的距離,而非提供交易建議。AWARE 商業層即以此量化流程為核心包裝成產品。
Polybot 已提供行情倉 + 事件流 + 策略執行 + 複製分析的完整基礎鏈。下一步是在此基礎上建立個人或團隊的工作站。以下五個方向可作為延伸參考。
1. 撰寫策略 spec。從 docs/EXAMPLE_STRATEGY_SPEC.md 開始,將策略邏輯按相同格式描述,接到 strategy-service。executor 與 analytics 無需更動,即可執行回測與績效報表。
2. 將研究腳本納入 CI。把 replication_score.py 與 sim_trade_match_report.py 配置為 GitHub Actions job,每次提交策略改動時自動執行,避免驗證步驟被跳過。
3. 將 Grafana 警報推送至 Slack。monitoring/ 與 .env.example 已預留 Slack 整合欄位。將策略偏差、ingestor 斷流、executor 失敗推送至 #polybot-alerts 頻道,實現 24/7 監控。
4. 作為 AWARE 商業層的後端基礎。Polybot 是 AWARE(trader intelligence + fund mirroring)的開源研究地基。需要可審計的後端參考實作時,可直接在此基礎上延伸。
5. 擴展至多市場版本。ingestor / strategy / executor 的介面設計為抽象層。將 Polymarket 介面替換為 Kalshi、PredictIt 或其他平台的 API,即可擴展至其他預測市場。
① docs/STRATEGY_RESEARCH_GUIDE.md:策略研究方法論,涵蓋資料準備、回測至複製分數的完整流程。
② docs/EXAMPLE_STRATEGY_SPEC.md:策略規格範本,撰寫第一版策略時可直接套用結構。
③ CONTRIBUTING.md:專案開發守則,提交 PR 與參與設計討論前先閱讀。