使用手冊

開源工具 · Polymarket / 流動性做市

Polymarket 流動性的被動做市工具。

lihanyu81/polymarket_lp_tool 實戰手冊。Polymarket 流動性提供(LP)的被動掛單監控與重新定價工具:依訂單簿深度與獎勵誘因調整既有限價單,過程不開新倉。Python 核心、實驗性 Rust 版、Telegram 與 Web 控制台。

polymarket_lp_tool 監控你在 Polymarket 已掛出的限價單,依訂單簿深度與流動性獎勵誘因自動重新定價,過程不建立新倉位。核心迴圈以 Python 實作,另附實驗性 Rust 重寫版;掛單規則、風控與成交通知都能透過 Telegram 指令或 Web 控制台操作。

lihanyu81/polymarket_lp_tool
星標
—
分支
—
授權
—
資料截至
—
閱讀時間
7 分
更新日期
開啟原始報告
GitHub Stars
261
Forks
49
核心語言
Python · Rust
授權條款
未標示

01這是什麼

被動做市, 不主動開新倉。

polymarket_lp_tool 是針對 Polymarket 流動性提供(LP)設計的被動掛單工具。它的職責很窄:監控你已經掛在市場上的限價單,依訂單簿深度與流動性獎勵區間自動重新定價,讓掛單持續落在能賺取獎勵的位置。它不會替你開新倉位,初始掛單仍需由你建立。

Polymarket 是運行於 Polygon 的 CLOB(中央限價訂單簿)預測市場,並對提供流動性的掛單發放獎勵。手動盯盤重新掛單既耗時又容易錯過區間,這支工具把「讀訂單簿 → 比對獎勵條件 → 調整既有掛單 → 偵測成交 → 通知」這條迴圈自動化。核心以 Python 實作(passive_liquidity/ 模組),另有一個實驗性的 Rust 重寫版 rust_mm_bot/,以 WebSocket 串接市場與用戶事件。

操作面分三層:run_passive_bot.py 啟動主迴圈;Telegram 機器人負責即時設定規則與查詢狀態;選用的 Flask Web 控制台(預設 http://127.0.0.1:8765)提供圖形介面。定價規則以 JSON 持久化,重啟後仍保留。

  1. 讀訂單簿深度

  2. 比對獎勵區間

  3. 重新定價既有掛單

  4. 偵測成交

  5. Telegram 通知

依訂單簿深度與獎勵誘因,重新定價既有限價單, 過程不建立新倉位。

— polymarket_lp_tool 的功能定位

02安裝

建立虛擬環境, 填入金鑰,啟動。

前置條件:Python 3、一個 Polygon 錢包私鑰,以及你的 Polymarket funder 位址。把 repo 取回後建立虛擬環境、安裝相依套件,再從範本複製 .env 並填入金鑰。

bash
# 進入專案、建立並啟用虛擬環境
cd polymarket_lp_tool
python3 -m venv .venv
source .venv/bin/activate

# 安裝相依套件
pip install -r requirements.txt

# 從範本建立 .env,填入 PRIVATE_KEY 與 POLYMARKET_FUNDER
cp .env.example .env

# 啟動被動做市主迴圈
./.venv/bin/python run_passive_bot.py

選用介面:Web 控制台與實驗性 Rust 版

除了純命令列,專案另提供一個 Flask Web 控制台,以及一個以 Rust 重寫、透過 WebSocket 串接市場與用戶事件的實驗性版本。兩者依需求啟動即可。

bash
# 啟動 Web 控制台,預設 http://127.0.0.1:8765
python run_web_panel.py

# 以模組方式啟動主迴圈(等同 run_passive_bot.py)
python -m passive_liquidity.main_loop

# 實驗性 Rust 版(rust_mm_bot/)
cd rust_mm_bot && PASSIVE_UI_MODE=web RUST_LOG=info cargo run

03能力總覽

每個模組只負責一件事。

核心邏輯拆在 passive_liquidity/ 之下,各模組對應做市迴圈的一個環節:擷取訂單簿、決定定價、管理掛單、追蹤獎勵、偵測成交。控制面則由 Telegram 與選用的 Web 控制台組成。下方依職責列出主要模組與進入點。

Data · 擷取

orderbook_fetcher.py

訂單簿擷取

讀取目標市場的訂單簿深度,作為重新定價的輸入資料。

Rewards · 獎勵

reward_monitor.py

獎勵監控

追蹤 Polymarket 流動性獎勵的區間與條件,判斷掛單是否落在可領獎位置。

Policy · 定價

simple_price_policy.py

定價策略

內建粗 tick 與細 tick 兩種重新定價邏輯,決定掛單的目標價格。

Orders · 掛單

order_manager.py

掛單管理

依策略更新或取消既有限價單,並偵測成交與部分成交。

Risk · 風控

風控過濾

風險控制

midpoint jump 過濾與防狙擊(anti-sniping)機制,降低不利成交。

Rules · 規則

custom_pricing_rules_store.py

自訂規則

透過 Telegram 設定的定價規則以 JSON 持久化,重啟後仍保留。

Control · 控制

Telegram Bot

即時控制

以 /set_rule、/get_rule、/clear_rule 設定規則,/status、/orders、/pnl 查詢狀態。

UI · 介面

web_panel/

Web 控制台

選用的 Flask 圖形介面,預設 http://127.0.0.1:8765,提供瀏覽器端監控。

從哪個進入點啟動

你要做什麼指令
啟動被動做市主迴圈python run_passive_bot.py
以模組方式啟動主迴圈python -m passive_liquidity.main_loop
開啟 Web 控制台(預設埠 8765)python run_web_panel.py
執行實驗性 Rust 版cd rust_mm_bot && PASSIVE_UI_MODE=web RUST_LOG=info cargo run

04操作要點 · Telegram 指令

用 Telegram 即時調整掛單。

以下要點均來自專案 README 與模組結構。控制面以 Telegram 為主:可在不重啟程式的情況下設定定價規則、查詢狀態與損益。下列指令與機制皆為官方文件所載,未經文件確認的用法不列入。

自訂定價規則

以 /set_rule <order_id> 為特定掛單設定定價規則,/get_rule 查詢、/clear_rule 清除。規則以 JSON 持久化,重啟後仍保留。

來源 · lihanyu81/polymarket_lp_tool README

狀態與損益查詢

/status 看執行狀態、/orders 列出目前掛單、/pnl 查損益。程式需要回應輸入時,以 /input <answer> 回覆。

來源 · README · Telegram 指令

粗 / 細 tick 兩段定價

simple_price_policy.py 內建粗 tick 與細 tick 兩種重新定價策略,對應不同的掛單調整幅度。

來源 · passive_liquidity 模組

成交與部分成交通知

程式會偵測掛單的成交與部分成交,並透過 Telegram 主動通知,免去手動盯盤。

來源 · README · 功能列表

防狙擊與跳動過濾

內建 midpoint jump 過濾與 anti-sniping 機制,在中間價劇烈跳動時抑制不利的重新掛單。

來源 · README · 風險監控

Web 控制台與 Rust 版

選用的 Flask 控制台預設在 http://127.0.0.1:8765;實驗性的 rust_mm_bot/ 以 WebSocket 串接市場與用戶事件。

來源 · README · run_web_panel.py / rust_mm_bot

05使用實例

啟動主迴圈, 用 Telegram 下規則。

以下示範一段典型流程:啟動被動做市主迴圈後,程式持續監控既有掛單;接著在 Telegram 為某張掛單設定定價規則、查詢狀態,並在成交時收到通知。指令與進入點均取自官方文件,實際輸出視市場與設定而異。

~/polymarket_lp_tool · passive liquidity


# source .venv/bin/activate
$ python run_passive_bot.py


# [載入 .env · PRIVATE_KEY / POLYMARKET_FUNDER 已讀取]
# [連線 Polymarket CLOB · Polygon]
# [掃描既有掛單 · 讀取訂單簿深度]
ok: passive loop started · 監控中


# [掛單偏離獎勵區間 → 觸發重新定價]
  # policy=fine(細 tick)· 取消舊單 → 掛入新價
  ok: repriced ✓


# ──────────── Telegram ────────────
$ You › /status
  claude: 運行中 · 監控掛單與獎勵區間 · 自上次重新定價 12s


$ You › /set_rule <order_id>
  claude: 請輸入此掛單的定價規則。
$ You › /input (你的定價規則參數)
  ok: 規則已儲存 · JSON 持久化 · 重啟後沿用


$ You › /orders
  claude: 列出目前掛單與其套用的規則 …


hl: 🔔 FILL · 掛單部分成交
# [偵測成交 → Telegram 通知 → 更新持倉]


$ You › /pnl
  claude: 回報目前損益與已累積的流動性獎勵 …

        

工具只重新定價既有掛單。 初始倉位與下單條件,仍由你決定。

— polymarket_lp_tool 的職責邊界

這段流程的重點

被動做市的價值在於持續把掛單維持在可領取獎勵的位置,而不主動建立方向性倉位。reward_monitor.py 判斷掛單是否落在獎勵區間,simple_price_policy.py 決定如何微調,order_manager.py 執行取消與重掛。

Telegram 是即時控制層:不需停掉程式就能改規則、查狀態。規則以 JSON 落地,因此重啟後設定不會遺失。成交與部分成交都會主動通知,無須持續盯著終端機。

06使用前須知

上線前, 先確認這些邊界。

07進階路徑

把工具調成你的策略。

核心邏輯集中在 passive_liquidity/ 之下,皆為純 Python,可直接閱讀與修改。下面的方向可作為調整與延伸的起點。

進階調整地圖

**1. 調整定價策略。**修改 simple_price_policy.py 的粗 tick / 細 tick 邏輯,改變掛單貼近中間價的程度與重新定價頻率。

**2. 管理 Telegram 規則。**以 /set_rule 為個別掛單設定規則,規則以 JSON 落地;可將規則檔納入備份或版本管理。

**3. 啟用 Web 控制台。**執行 python run_web_panel.py,在瀏覽器端(預設 http://127.0.0.1:8765)監控掛單與狀態。

4. 試用實驗性 Rust 版。rust_mm_bot/ 以 WebSocket 串接市場與用戶事件,延遲較低;屬實驗性質,評估後再用於正式環境。

**5. 檢視風控門檻。**檢查 midpoint jump 過濾與 anti-sniping 的參數,依目標市場的波動性調整觸發條件。

最該讀的三個位置

① README——安裝、Telegram 指令與功能總覽。 ② passive_liquidity/——主迴圈與定價、掛單、獎勵各模組原始碼。 ③ rust_mm_bot/——實驗性 Rust 重寫版。

依訂單簿與獎勵調整既有掛單, 把盯盤交給程式。

— polymarket_lp_tool 的用途定位