← Terug naar overzicht

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

itadol5j

Polymarket Trading Machine People

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:

  1. Maak een veelhoek portemonnee (aanbevolen met MetaMask)
  2. Deposito USDC.e(voor handel) en klein POL(voor gas)
  3. Voor de portemonnee. Privésleutel
  4. 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