← Kembali ke senarai

Tangan untuk mengajarkan cara membangun mesin perdagangan otomatis Orang

itadol5j

Orang Mesin Perdagangan Polimarket

Apa itu Polymarket?

Polymarket adalah pasar prakiraan terbesar di dunia, di mana pengguna dapat menukar kemungkinan terjadinya peristiwa — mulai dari kompetisi olahraga hingga pemilu politik, mulai dari harga uang yang dienkripsi hingga berita sains dan teknologi. Cara transaksi yang terjadi mirip dengan "dual power": beli a "yes" atau "no" token untuk hasil yang diberikan dan diberi imbalan jika hasilnya terjadi.

Kekuatan inti adalah:

  • Benar-benar terdesentralisasi.Buka dan transparan berdasarkan rantai Poligon
  • Penemuan harga real-timeRamalan pasar cenderung lebih akurat daripada jajak pendapat tradisional
  • Buka APISediakan API transaksi lengkap untuk mendukung transaksi otomatis

Persiapan

Pasang Ketergantungan Python

Kita membutuhkannya. py-clob-client Ini resmi SDK:

pip install py-clob-client requests python-dotenv

2. Akses ke Dompet dan Kunci API

Polymark wiki mendukung dua jenis autentikasi:

  • Dompet EOA(Pay diri Anda ke Gas)
  • Dompet Proksi Fax(Gassless transaksi)

Ini adalah cara paling sederhana untuk menunjukkan -- dompet EOA:

  1. Walet Poligon (disarankan dengan MetaMask)
  2. Deposit USDC.e(untuk perdagangan) dan kecil POL(untuk gas)
  3. Untuk dompet. Kunci Private
  4. Memanfaatkan SDK create_or_derive_api_creds() Metode untuk secara otomatis menghasilkan voucher API

3. Lingkungan OpenClaw

OpenClaw exec Alat ini mengeksekusi kode Python dan cocok untuk menjalankan skrip otomatis ini.

Kode Inti Core Dicapai

Basic: Pantau Daftar Pasar + Otomatis

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

Kemajuan: Mesin strategi pengembalian rata-rata Orang

Ide sentral strategi ini adalah untuk membelinya secara otomatis ketika harga menyimpang dari rata-rata dan menunggu untuk kembali.

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)

Integrasi OpenClaw

Ini sangat sederhana untuk menjalankan robot ini di OpenClaw. Anda dapat menyimpan kode di atas sebagai polymarket_bot.pyDan kemudian dieksekusi di OpenClaw:

运行 python polymarket_bot.py

Perhatian!

Kiat Risiko Penyakit

  • Ke volatilitas pasar yang diproyeksikan, hanya gunakan dana yang terjangkau
  • Disarankan untuk menguji jaringan terlebih dahulu.
  • Transaksi robot tanpa sengaja membutuhkan pengawasan konstan untuk mencegah ekstrem.

Hadang API 2.

  • Buka API tanpa otentikasi
  • Berikan API yang memerlukan dompet dan Kunci API
  • Watch out untuk batas kecepatan.

Pengoptimuman Gas Gas Tak Termanfaatkan

  • Mode EOA untuk EOA diperlukan Gas pembayaran POL
  • Anda dapat meminta dompet proksi untuk melakukan transaksi Gasless