← Înapoi la listă

OpenClaw x Polymarket: mâini pentru a vă învăța cum să construiască o mașină automată de tranzacționare People

itadol5j

Polymarket Trading Machine People

Ce este Polymarket?

Polymarket este cea mai mare piață prognozată din lume, în cazul în care utilizatorii pot tranzactiona probabilitatea de evenimente de la concursuri sportive la alegeri politice, de la prețuri de bani criptate la știri știință și tehnologie. Modul în care tranzacţia are loc este similar cu "dual power": cumpără un "da" sau "nu" token pentru un anumit rezultat şi este recompensat dacă rezultatul apare.

Punctele sale forte principale sunt:

  • Total descentralizat.: Deschis și transparent pe baza lanțului Polygon
  • Descoperirea prețurilor în timp real: Previziunile de piaţă tind să fie mai precise decât sondajele tradiţionale
  • Deschide API: Furnizarea de tranzacții complete API pentru a sprijini tranzacțiile automatizate

Preparate

Instalează dependența Python

Avem nevoie de ea. py-clob-client Acest SDK oficial:

pip install py-clob-client requests python-dotenv

2. Accesul la portofele și cheia API

Polimark suportă două tipuri de autentificare:

  • Portofelul EOA(Plăteşte-te la gaz)
  • Portofel Proxy(tranzacție fără gaz)

Iată cel mai simplu mod de a demonstra - portofelul EOA:

  1. Creați un portofel Polygon (recomandat cu MetaMask)
  2. Depozit USDC.e.(pentru comerț) și mici POL(pentru gaz)
  3. Pentru portofel. Cheie privată
  4. Utilizarea SDK create_or_derive_api_creds() Metoda de generare automată a cupoanelor valorice API

3. OpenClaw Mediu

OpenClaw exec Instrumentul execută codul Python și este bine potrivit pentru a rula acest script automat.

Codul de bază atins

Basic: Monitorizaţi piaţa + Listare automată

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

Progress: Mașină medie de strategie de returnare Oameni

Ideea centrală a acestei strategii este să-l cumpere automat atunci când prețurile deviază de la medie și așteaptă să se întoarcă.

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)

Integrare OpenClaw

Este foarte simplu pentru a rula acest robot în OpenClaw. Puteți salva codul de mai sus ca polymarket_bot.py, și apoi executați în OpenClaw:

运行 python polymarket_bot.py

Atenţie.

Sfaturi de risc

  • Volatilitatea pieței, vă rugăm să utilizați numai fondurile care sunt accesibile
  • Se recomandă să testăm reţeaua mai întâi.
  • Tranzacţiile robotice necesită supraveghere constantă pentru a preveni extremele.

2. Restrictii API

  • Deschide API fără autentificare
  • Deal API are nevoie de portofel și API Key
  • Ai grijă la limitele de viteză.

Optimizarea gazelor

  • Modul EOA necesită gaz de plată POL
  • Puteți aplica pentru portofele proxy pentru a efectua tranzacția Gasless