polymarket_lp_tool 監控你在 Polymarket 已掛出的限價單,依訂單簿深度與流動性獎勵誘因自動重新定價,過程不建立新倉位。核心迴圈以 Python 實作,另附實驗性 Rust 重寫版;掛單規則、風控與成交通知都能透過 Telegram 指令或 Web 控制台操作。
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 持久化,重啟後仍保留。
前置條件:Python 3、一個 Polygon 錢包私鑰,以及你的 Polymarket funder 位址。把 repo 取回後建立虛擬環境、安裝相依套件,再從範本複製 .env 並填入金鑰。
除了純命令列,專案另提供一個 Flask Web 控制台,以及一個以 Rust 重寫、透過 WebSocket 串接市場與用戶事件的實驗性版本。兩者依需求啟動即可。
PRIVATE_KEY 與 POLYMARKET_FUNDER 直接對應一個有資金的 Polygon 錢包。請勿將 .env 提交進版本控制,並在受信任的機器上執行。授權條款未在 repo 標示,商用或再散布前請先向作者確認。
核心邏輯拆在 passive_liquidity/ 之下,各模組對應做市迴圈的一個環節:擷取訂單簿、決定定價、管理掛單、追蹤獎勵、偵測成交。控制面則由 Telegram 與選用的 Web 控制台組成。下方依職責列出主要模組與進入點。
| 你要做什麼 | 指令 |
|---|---|
| 啟動被動做市主迴圈 | 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 |
以下要點均來自專案 README 與模組結構。控制面以 Telegram 為主:可在不重啟程式的情況下設定定價規則、查詢狀態與損益。下列指令與機制皆為官方文件所載,未經文件確認的用法不列入。
以 /set_rule <order_id> 為特定掛單設定定價規則,/get_rule 查詢、/clear_rule 清除。規則以 JSON 持久化,重啟後仍保留。
/status 看執行狀態、/orders 列出目前掛單、/pnl 查損益。程式需要回應輸入時,以 /input <answer> 回覆。
simple_price_policy.py 內建粗 tick 與細 tick 兩種重新定價策略,對應不同的掛單調整幅度。
程式會偵測掛單的成交與部分成交,並透過 Telegram 主動通知,免去手動盯盤。
來源 · README · 功能列表內建 midpoint jump 過濾與 anti-sniping 機制,在中間價劇烈跳動時抑制不利的重新掛單。
來源 · README · 風險監控選用的 Flask 控制台預設在 http://127.0.0.1:8765;實驗性的 rust_mm_bot/ 以 WebSocket 串接市場與用戶事件。
以下示範一段典型流程:啟動被動做市主迴圈後,程式持續監控既有掛單;接著在 Telegram 為某張掛單設定定價規則、查詢狀態,並在成交時收到通知。指令與進入點均取自官方文件,實際輸出視市場與設定而異。
被動做市的價值在於持續把掛單維持在可領取獎勵的位置,而不主動建立方向性倉位。reward_monitor.py 判斷掛單是否落在獎勵區間,simple_price_policy.py 決定如何微調,order_manager.py 執行取消與重掛。
Telegram 是即時控制層:不需停掉程式就能改規則、查狀態。規則以 JSON 落地,因此重啟後設定不會遺失。成交與部分成交都會主動通知,無須持續盯著終端機。
.env 內的 PRIVATE_KEY 對應實際的 Polygon 錢包。請妥善保管、切勿提交進版本控制,並在受信任的機器上執行。
rust_mm_bot/ 是實驗性重寫版,功能覆蓋與穩定度可能與 Python 版不一致;正式環境建議以 Python 版為主。
核心邏輯集中在 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 重寫版。