OpenClaw x Polymarket: Handen om je te leren hoe je een geautomatiseerde handelsmachine kunt bouwen Mensen

Wat is Polymarket?
Polymarket is de grootste voorspellingsmarkt ter wereld, waar gebruikers de kans op evenementen kunnen ruilen van sportwedstrijden tot politieke verkiezingen, van gecodeerde geldprijzen tot wetenschaps- en technologienieuws. De manier waarop de transactie plaatsvindt is vergelijkbaar met "dubbele macht": koopt een "ja" of "nee" token voor een bepaald resultaat en wordt beloond als het resultaat optreedt.
De belangrijkste sterke punten zijn:
- Volledig gedecentraliseerd.: Open en transparant op basis van de Polygon ketting
- Prijsontdekking in realtime: Marktprognoses zijn meestal nauwkeuriger dan traditionele peilingen
- API openen: Bied volledige transacties API ter ondersteuning van geautomatiseerde transacties
Voorbereidingen
Python-afhankelijkheid installeren
We hebben het nodig. py-clob-client Deze officiële SDK:
pip install py-clob-client requests python-dotenv
2. Toegang tot portefeuilles en API sleutel
Polymark ondersteunt twee soorten authenticatie:
- EOA Portemonnee(Betaal jezelf aan Gas)
- Proxy portemonnee(Gastloze transactie)
Hier is de eenvoudigste manier om de EOA portemonnee aan te tonen:
- Maak een veelhoek portemonnee (aanbevolen met MetaMask)
- Deposito USDC.e(voor handel) en klein POL(voor gas)
- Voor de portemonnee. Privésleutel
- SDK gebruiken
create_or_derive_api_creds()Methode om automatisch API-vouchers te genereren
3. OpenClaw Milieu
OpenClaw exec De tool voert de Python code uit en is zeer geschikt om dit geautomatiseerde script uit te voeren.
Kerncode bereikt
Basis: Monitor de Markt + Automatische Lijst
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
Vooruitgang: Gemiddelde terugkeer strategie machine Mensen
Het centrale idee van deze strategie is om het automatisch te kopen wanneer de prijzen afwijken van het gemiddelde en wachten op rendement.
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 integratie
Het is heel eenvoudig om deze robot in OpenClaw te draaien. U kunt de bovenstaande code opslaan als polymarket_bot.py, en dan uitvoeren in OpenClaw:
运行 python polymarket_bot.py
Attentie.
Risicotips
- Geprojecteerde marktvolatiliteit, gebruik alleen de fondsen die betaalbaar zijn
- We moeten eerst het netwerk testen.
- Robottransacties vereisen constant toezicht om extremen te voorkomen.
2. API-beperkingen
- API openen zonder aanmeldingscontrole
- Deal API heeft portemonnee en API sleutel nodig
- Kijk uit voor snelheidslimieten.
Gasoptimalisatie
- EOA-modus vereist POL-betaling Gas
- U kunt proxy portemonnees aanvragen om de Gasless transactie uit te voeren