OpenClaw x Polymarket:手把手教你搭建自动交易机器人

什么是 Polymarket?
Polymarket 是全球最大的预测市场,用户可以交易各种事件的发生概率——从体育比赛到政治选举,从加密货币价格到科技新闻。交易方式类似于「二元期权」:买入某个结果的「Yes」或「No」代币,如果结果发生则获得奖励。
它的核心优势在于:
- 完全去中心化:基于 Polygon 链,公开透明
- 实时价格发现:市场预测往往比传统民调更准确
- API 开放:提供完整的交易 API,支持自动化交易
准备工作
1. 安装 Python 依赖
我们需要用到 py-clob-client 这个官方 SDK:
pip install py-clob-client requests python-dotenv
2. 获取钱包和 API Key
Polymarket 支持两种认证方式:
- EOA 钱包(自己付 Gas)
- 代理钱包(Gasless 交易)
这里演示最简单的方式——EOA 钱包:
- 创建一个 Polygon 钱包(建议用 MetaMask)
- 存入 USDC.e(用于交易)和少量 POL(用于 Gas)
- 获取钱包的 私钥
- 使用 SDK 的
create_or_derive_api_creds()方法自动生成 API 凭证
3. OpenClaw 环境
OpenClaw 可以通过 exec 工具执行 Python 代码,非常适合跑这种自动化脚本。
核心代码实现
基础版:监控市场 + 自动下单
import os
import time
import requests
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import OrderArgs, OrderType
from py_clob_client.order_builder.constants import BUY, SELL
HOST = "https://clob.polymarket.com"
CHAIN_ID = 137
PRIVATE_KEY = os.getenv("POLYMARKET_PRIVATE_KEY")
FUNDER_ADDRESS = os.getenv("POLYMARKET_FUNDER")
def init_client():
temp_client = ClobClient(HOST, key=PRIVATE_KEY, chain_id=CHAIN_ID)
api_creds = temp_client.create_or_derive_api_creds()
client = ClobClient(HOST, key=PRIVATE_KEY, chain_id=CHAIN_ID, creds=api_creds, signature_type=0, funder=FUNDER_ADDRESS)
return client
def get_markets(tag=None, limit=10):
url = "https://gamma-api.polymarket.com/markets"
params = {"active": "true", "closed": "false", "limit": limit}
if tag:
params["tagName"] = tag
resp = requests.get(url, params=params)
return resp.json()
def get_price(token_id):
url = f"https://gamma-api.polymarket.com/markets/{token_id}/price"
resp = requests.get(url)
return resp.json()
def place_order(client, token_id, price, size, side=BUY):
order = client.create_and_post_order(
OrderArgs(token_id=token_id, price=price, size=size, side=side, order_type=OrderType.GTC),
options={"tick_size": "0.01", "neg_risk": False}
)
return order
进阶版:均值回归策略机器人
这个策略的核心思想是:当价格偏离均值时自动买入,等待回归。
import logging
import time
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class MeanReversionBot:
def __init__(self, client, token_id, threshold=0.1, size=10):
self.client = client
self.token_id = token_id
self.threshold = threshold
self.size = size
def get_mid_price(self):
data = get_price(self.token_id)
return float(data.get("price", 0.5))
def check_and_trade(self):
mid_price = self.get_mid_price()
logger.info(f"当前中间价: {mid_price}")
if mid_price < 0.5 - self.threshold:
logger.info(f"价格偏低,买入!")
order = place_order(self.client, self.token_id, mid_price, self.size, BUY)
logger.info(f"订单已下单: {order}")
elif mid_price > 0.5 + self.threshold:
logger.info(f"价格偏高,卖出!")
order = place_order(self.client, self.token_id, mid_price, self.size, SELL)
logger.info(f"订单已下单: {order}")
else:
logger.info("价格在合理区间,不交易")
def run(self, interval=60):
logger.info(f"机器人启动,监控 token: {self.token_id}")
while True:
try:
self.check_and_trade()
except Exception as e:
logger.error(f"错误: {e}")
time.sleep(interval)
if __name__ == "__main__":
client = init_client()
markets = get_markets(tag="politics", limit=1)
if markets:
token_id = markets[0]["clobTokenIds"][0]
print(f"监控市场: {markets[0]['question']}")
bot = MeanReversionBot(client, token_id, threshold=0.15, size=5)
bot.run(interval=120)
OpenClaw 集成
在 OpenClaw 中运行这个机器人非常简单。你可以把上面的代码保存为 polymarket_bot.py,然后在 OpenClaw 中执行:
运行 python polymarket_bot.py
注意事项
1. 风险提示
- 预测市场波动大,请只用可承受损失的资金
- 建议先在测试网熟悉流程
- 机器人交易需要持续监控,防止极端行情
2. API 限制
- 公开 API 无需认证
- 交易 API 需要钱包和 API Key
- 注意速率限制
3. Gas 优化
- EOA 模式需要 POL 支付 Gas
- 可以申请代理钱包实现 Gasless 交易
延伸阅读:
一周AI大事件 2026年2月第4周
一周AI大事件|2026年2月第4周又到了每周一次的 AI 资讯汇总时间!过去一周 AI 领域发生了哪些大事?让我们一起...
OpenClaw 配合Ollama本地部署,超级简单一看就会!!
OpenClaw 配合 Ollama 本地部署,超级简单一看就会!!还在为调用云端大模型花销大而烦恼吗?还在担心数据隐私...
90% 的人都在错误使用 Claude Code:Anthropic 官方最佳实践全解析
90% 的人都在错误使用 Claude Code:Anthropic 官方最佳实践全解析Claude Code 是 An...
OpenClaw x Polymarket:手把手教你搭建自动交易机器人
什么是 Polymarket?Polymarket 是全球最大的预测市场,用户可以交易各种事件的发生概率——从体育比赛到...
GLM5、Kimi 2.5、Minimax M2.5、千问、豆包,国产大模型选哪个?
随着国产大模型的快速发展,GLM5、Kimi 2.5、Minimax M2.5、千问、豆包等产品纷纷崛起,让用户在选择时...