Polymarket
跟單機器人 建構指南
從零開始打造一套自動監控聰明錢、即時鏡像交易的跟單系統。涵蓋 CLOB V2 API、鏈上事件偵測、風控機制與 2026 最佳實踐。
什麼是跟單機器人?
Polymarket 跟單機器人(Copy Trading Bot)會即時監控您指定的目標錢包,並在偵測到新交易時,自動在您自己的錢包按比例鏡像下單。
監控目標錢包
持續掃描鏈上活動,偵測「聰明錢」地址的開倉、加倉、減倉與平倉行為。
比例計算倉位
根據您設定的資金比例或固定風險參數,計算對應的下單規模,而非盲目複製原始金額。
即時執行交易
透過 CLOB API 自動簽署 EIP-712 訂單並送出,盡可能降低滑點與延遲。
持倉同步管理
持續追蹤目標的倉位變化,持續同步您的部位以保持一致,並套用停損/停利邏輯。
2026 重要更新:CLOB V2
Polymarket 已於 2026 年 4 月完成重大基礎設施升級,推出 CTF Exchange V2 與重建後的 CLOB V2,並支援 TypeScript、Python、Go 三種語言的新版 SDK。若您沿用舊版機器人,必須更新 SDK 並以新的訂單結構重新簽署。舊版訂單已在維護視窗期間全數取消。
系統架構總覽
一套生產級跟單機器人由五大核心模組組成,各模組分工明確、可獨立測試與替換。
| 模組 | 主要職責 | 技術方式 | 建議語言 |
|---|---|---|---|
| Monitor(監控) | 偵測目標錢包的新交易 | Data API 輪詢 + WebSocket | TypeScript |
| Sizer(計算倉位) | 換算比例下單金額 | 投資組合比例或固定風險 | Python |
| Risk Manager(風控) | 執行前安全檢查 | 上限規則、黑名單市場 | 任意 |
| Executor(執行) | 簽署並送出訂單 | CLOB SDK + EIP-712 | TypeScript |
| Logger(記錄) | 持倉追蹤與績效分析 | MongoDB / PostgreSQL | 任意 |
Polymarket API 完整指南
Polymarket 提供三個不同層次的 API,機器人會同時使用全部三個。
| API | Base URL | 認證 | 主要用途 |
|---|---|---|---|
| Gamma API | gamma-api.polymarket.com |
免認證 | 市場列表、事件、搜尋、交易者公開資料 |
| Data API | data-api.polymarket.com |
免認證 | 錢包活動歷史(跟單偵測核心) |
| CLOB API | clob.polymarket.com |
需 L1/L2 認證 | 掛單、撤單、查詢持倉、訂單簿 |
雙層認證機制(L1 / L2)
- L1(EIP-712 私鑰簽名):用於一次性建立或衍生 API 憑證
- L2(HMAC-SHA256):用於所有後續下單、撤單、查詢操作
- 即使使用 L2,每筆訂單的 payload 仍須用私鑰進行 EIP-712 簽名
# 必要的 HTTP 標頭(下單時)
headers = {
"POLY_ADDRESS": wallet_address,
"POLY_SIGNATURE": hmac_sha256_signature,
"POLY_TIMESTAMP": str(int(time.time())),
"POLY_API_KEY": api_key,
"POLY_PASSPHRASE": api_passphrase,
}
跟單核心 API 端點
| 端點 | 用途 | 輪詢頻率建議 |
|---|---|---|
GET /activity?user=0x... |
取得目標錢包的交易歷史(偵測新單) | 每 2 秒(REST),或改用 WebSocket |
GET /book?token_id=... |
取得特定市場訂單簿 | 下單前即時查詢 |
POST /order |
送出新訂單(需 L2 + EIP-712) | 觸發型 |
DELETE /order/{id} |
撤銷特定訂單 | 觸發型 |
GET /positions |
查詢目前持倉 | 啟動時 + 定期同步 |
WebSocket 訂閱(推薦)
const ws = new WebSocket('wss://ws-subscriptions-clob.polymarket.com/ws/market');
ws.onopen = () => {
ws.send(JSON.stringify({
type: "market",
assets_ids: [tokenId_1, tokenId_2] // 訂閱多個市場
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
// data.event_type === "trade" 時觸發跟單邏輯
if (data.event_type === "trade") {
handleNewTrade(data);
}
};
分步驟實作
從環境設定到第一筆跟單成功,完整的建構流程。
環境準備與錢包設定
建立一個專用的 EOA 錢包(不要用主錢包),在 Polygon 主網充值 USDC(用於交易)與 POL(用於 gas)。錢包地址即為機器人的 funder address。新用戶使用 signatureType=3(deposit wallet),現有 Proxy/Safe 用戶可維持原有類型。
安裝 CLOB SDK
官方提供 TypeScript、Python、Go 三版 SDK(已支援 CLOB V2)。強烈建議使用 SDK 而非自行處理 EIP-712 簽名,可避免大量繁瑣的加密操作。
# TypeScript(推薦)
npm install @polymarket/clob-client ethers@5
# Python
pip install py-clob-client
初始化 CLOB 客戶端並衍生 API 金鑰
第一次執行時,SDK 會用私鑰衍生(或建立)L2 API 憑證(key, secret, passphrase),後續所有交易請求都用這組憑證的 HMAC 簽名認證。
import { ClobClient } from "@polymarket/clob-client";
import { ethers } from "ethers";
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!);
const client = new ClobClient(
"https://clob.polymarket.com",
137, // Polygon Mainnet chainId
wallet,
undefined,
0, // signatureType: 0=EOA, 1=Proxy, 2=Safe, 3=Deposit
funderAddress
);
// 衍生或建立 L2 API 憑證
let creds = await client.deriveApiKey().catch(() => null);
if (!creds) creds = await client.createApiKey();
監控目標錢包活動
透過 Data API 輪詢或 WebSocket 偵測目標錢包的新交易。建議同時採用:WebSocket 提供最低延遲(毫秒級),REST 輪詢作為備援以確保不漏單。
import requests, time
TARGET = "0xTARGET_WALLET"
last_seen = int(time.time()) - 60
while True:
resp = requests.get(
"https://data-api.polymarket.com/activity",
params={"user": TARGET, "type": "TRADE",
"limit": 50, "start": last_seen}
)
trades = resp.json()
for t in trades:
handle_new_trade(t)
last_seen = int(time.time())
time.sleep(2) # 每 2 秒輪詢一次
計算比例倉位並送出訂單
偵測到目標交易後,根據您的資金規模換算下單金額,查詢即時訂單簿確認流動性,再送出 FOK(Fill or Kill)或 GTC 訂單。
async function executeCopyTrade(trade: Trade) {
// 1. 計算比例金額(POSITION_MULTIPLIER = 0.1 代表跟 10%)
const copySize = trade.size * POSITION_MULTIPLIER;
if (copySize < MIN_TRADE_SIZE || copySize > MAX_TRADE_SIZE) return;
// 2. 風控檢查
const check = riskManager.checkTrade(trade, copySize);
if (!check.allowed) { console.warn(check.reason); return; }
// 3. 取得當前市場價格
const { price } = await clobClient.getPrice(trade.tokenId, "buy");
const priceWithSlippage = price * (1 + SLIPPAGE_TOLERANCE);
// 4. 建立並簽署訂單
const order = await clobClient.createOrder({
tokenID: trade.tokenId,
price: priceWithSlippage,
side: "BUY",
size: copySize / priceWithSlippage, // 換算股數
});
// 5. 送出訂單(FOK 模式)
return await clobClient.postOrder(order, OrderType.FOK);
}
部署到低延遲 VPS(24/7 運行)
本地電腦運行不可靠且延遲高。推薦部署到靠近 Polymarket API 伺服器的 VPS(愛爾蘭 Dublin 或美國東岸),可實現 0.4–0.8ms 延遲。使用 PM2 或 systemd 確保機器人持續運行並自動重啟。
# 使用 PM2 持久化運行(Node.js)
npm install -g pm2
pm2 start dist/index.js --name polymarket-bot
pm2 save
pm2 startup # 設定開機自動啟動
# 查看日誌
pm2 logs polymarket-bot --lines 100
風險控管
自動化交易會放大錯誤,完善的風控機制是保本的關鍵。
私鑰洩漏
永遠不要把私鑰寫入程式碼或提交到 Git。使用 .env 環境變數,並為機器人建立專用錢包,與主錢包完全隔離。
策略漂移
您跟隨的交易者可能改變策略、提高風險偏好或停止交易。需定期重新評估目標錢包的績效,設定自動停止跟隨條件。
市場流動性不足
小市場可能因跟單下單導致嚴重滑點。下單前查詢訂單簿深度,設定最大可接受滑點(建議 ≤2%)。
智能合約風險
Polymarket 雖已經過審計,CLOB V2 仍是相對新的基礎設施。只存入可以承受全損的資金。
API 限流
REST 輪詢過於頻繁會觸發限流。建議 REST 間隔 ≥2 秒,並實作指數退避重試機制(502/503/504)。
程式碼錯誤
務必在測試環境與小額資金下充分驗證。自動化會將程式錯誤的後果放大數十倍,上線前需完整審計。
風控參數建議設定
- POSITION_MULTIPLIER:0.05–0.1(每筆跟隨目標交易金額的 5–10%)
- MAX_TRADE_SIZE:單筆最高 $50–100 USDC(初期測試用)
- MAX_SESSION_NOTIONAL:每日最高累計下單金額(e.g. $500 USDC)
- MAX_PER_MARKET_NOTIONAL:單一市場最高曝險(e.g. $200 USDC)
- SLIPPAGE_TOLERANCE:最大接受滑點 0.02(2%)
2026 生態工具推薦
善用現有工具,可大幅縮短開發時間並提升跟單品質。
| 工具 | 類型 | 功能亮點 | 適合對象 |
|---|---|---|---|
| Stand.trade | 鯨魚監控 | 追蹤聰明錢地址、即時推播加減倉通知 | 選擇跟單目標 |
| Betmoar | 資訊整合 | 全市場儀表板、Telegram/Discord 下單、即時新聞 | 重度交易者 |
| Polytrader | AI 自動化 | LLM 運算合理機率、AI Agent 自主執行策略 | AI 輔助交易 |
| OpenClaw | 無代碼 | 免寫程式建立跟單機器人、視覺化儀表板 | 非技術背景用戶 |
| QuickNode | RPC 節點 | Polygon 高速 RPC 端點(含 HTTP + WSS) | 開發者基礎設施 |
| GitHub 開源 Bot | 開源框架 | 可審計程式碼、Supabase + Python 實作 | 開發者自建 |
2026 最佳實踐清單
上線前請逐項確認,每一項都是血淚經驗的總結。
🔐 安全性
- 專用錢包:為機器人建立獨立的 EOA 錢包,絕不使用主錢包
- 環境變數:私鑰與 API 憑證只存在
.env或 Vault,不進入版本控制 - 最小授權:L2 API Key 只授予必要的交易權限,定期輪換
- 程式碼審計:使用開源框架前審閱所有依賴套件的安全性
📡 技術基礎設施
- CLOB V2 SDK:確認使用最新版 SDK,2026/4 升級後舊版訂單結構已失效
- 低延遲 VPS:部署到都柏林(Dublin)或美東 VPS,確保對 Polymarket API 延遲 <1ms
- WebSocket + REST 雙軌:WebSocket 為主要訂閱,REST 輪詢作為備援,避免漏單
- 自動重試:實作指數退避重試(502/503/504/限流),不可重試的錯誤(401/403/重複)直接放棄
- RPC 端點輪換:使用多個備援 Polygon RPC,避免單點故障
📊 策略與風控
- 小額測試先行:MAX_TRADE_SIZE 從 $5–10 開始,確認行為正確後再調高
- 設定硬性上限:每日總曝險、單市場最高倉位、單筆最大下單金額三重保護
- 滑點管理:下單前查詢訂單簿,FOK 模式配合 2% 滑點容忍度
- 定期評估目標錢包:每週回顧跟單對象績效,及時更換表現退化的地址
- 回測驗證:利用 CLOB API 的歷史價格資料,在上線前進行策略回測
📝 監控與記錄
- 持久化日誌:所有成交記錄存入資料庫(MongoDB / PostgreSQL),定期備份
- 即時警報:異常狀況(API 錯誤率飆升、餘額不足、連線中斷)透過 Telegram 或 Discord 通知
- 績效追蹤:追蹤 PnL、勝率、平均滑點、每日成交量等關鍵指標
法律免責聲明
預測市場交易在部分地區受到監管限制。Polymarket 對美國及其他特定地區的用戶設有地理封鎖。在建構並使用跟單機器人之前,請自行確認您所在地區的法律合規性。本指南僅供技術教育目的,不構成任何投資建議。