← Takaisin luetteloon

OpenClaw x Polymarket: Kädet opettaa sinulle, miten rakentaa automatisoitu kauppakone Ihmiset

itadol5j

Polymarket Trading Machine People

Mikä on Polymarket?

Polymarket on maailman suurin ennustemarkkina, jolla käyttäjät voivat käydä kauppaa urheilukilpailuista poliittisiin vaaleihin, salatuista rahan hinnoista tiede- ja teknologiauutisiin. Tapa, jolla liiketoimi tapahtuu on samanlainen kuin "kaksoisteho": ostaa "kyllä" tai "ei" token tietyn tuloksen ja palkitaan, jos tulos tapahtuu.

Sen keskeisiä vahvuuksia ovat:

  • Täysin hajautettu.: Avoin ja läpinäkyvä perustuu Polygon ketju
  • Reaaliaikainen hintalöydös: Markkinaennusteet ovat yleensä tarkempia kuin perinteiset kyselyt
  • API auki: Tarjoa täydellisiä tapahtumia API tukemaan automatisoituja tapahtumia

Valmisteet

Asenna Python-riippuvuus

Tarvitsemme sitä. py-clob-client Tämä virallinen SDK:

pip install py-clob-client requests python-dotenv

2. Pääsy lompakot ja API avain

Polymark tukee kahdentyyppisiä todennuksia:

  • EOA-lompakko(Maksa itsellesi kaasua)
  • Proxy-lompakko(Gasless Transaction)

Tässä on yksinkertaisin tapa osoittaa -- EOA lompakko:

  1. Luo Polygon lompakko (suositellaan MetaMask)
  2. Talletus USDC.e(kauppa) ja pieni POL(kaasu)
  3. Lompakosta. Yksityinen avain
  4. SDK:n käyttäminen create_or_derive_api_creds() Menetelmä API-setelien automaattiseksi tuottamiseksi

3. OpenClaw Environment

OpenClaw exec Työkalu suorittaa Python-koodin ja soveltuu hyvin tämän automaattisen skriptin ajamiseen.

Ydinkoodi

Perus: Tarkkaile markkinoita + Automaattinen listaus

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

Edistyminen: Keskimääräinen paluu strategia kone Ihmiset

Keskeinen idea tässä strategiassa on ostaa se automaattisesti, kun hinnat poikkeavat keskiarvosta ja odottaa paluuta.

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 Integration

On helppoa pyörittää tätä robottia OpenClaw'ssa. Voit tallentaa koodin yllä nimellä polymarket_bot.py, ja sitten suorittaa OpenClaw:

运行 python polymarket_bot.py

Huomio!

Riskivinkit

  • Ennakoitu markkinoiden volatiliteetti, käytä vain varat, jotka ovat kohtuuhintaisia
  • On suositeltavaa testata verkosto ensin.
  • Robottitapahtumat vaativat jatkuvaa valvontaa äärimmäisyyksien estämiseksi.

2. API-rajoitukset

  • Avaa API ilman todentamista
  • Deal API tarvitsee lompakon ja API Key
  • Varo nopeusrajoituksia.

Kaasuoptimointi

  • EOA-tila vaatii POL-maksun Kaasu
  • Voit hakea välityslompakot suorittaa Gasless tapahtuma