← กลับไปที่รายการ

OpenColution x Poly Market: มือที่สอนวิธีสร้างมนุษย์เพื่อการค้าอัตโนมัติ

itadol5j

ผู้ คน ที่ ทํา การ ค้า เครื่องจักร

โพลิมาร์เก็ตคืออะไร

การ แข่งขัน กีฬา และ การ แข่งขัน วิธีทําธุรกรรมนี้คล้ายกับ "อํานาจ": ซื้อเครื่องหมาย "ใช่" หรือ "ไม่ใช่" เพื่อผลลัพธ์ที่กําหนดให้ และได้รับรางวัลหากผลลัพธ์เกิดขึ้น

จุดแข็งหลักของมันคือ

  • เหมาะสมที่สุด: เปิดและโปร่งใสตามห่วงโซ่รูปหลายเหลี่ยม
  • การค้นพบราคาจริง▪ การ ทํานาย ตลาด มัก จะ ถูก ต้อง กว่า การ สํารวจ แบบ ดั้งเดิม
  • เปิด APIนําเสนอรายการเอพีไอที่สมบูรณ์ เพื่อรองรับการทําธุรกรรมอัตโนมัติ

การ เตรียม

ติดตั้งการขึ้นอยู่กับ Python

เราต้องการมัน py-clob-client SDK นี้อย่างเป็นทางการ:

pip install py-clob-client requests python-dotenv

2. เข้าถึงกระเป๋าคุมข้อมูลและกุญแจ API

เครื่องหมายหลายเหลี่ยม รองรับการตรวจสอบสิทธิ์สองประเภท:

  • กระเป๋าคุมข้อมูลของ EOA(จ่ายตัวเองให้แก๊ส)
  • กระเป๋าคุมข้อมูลของพร็อกซี(การทําธุรกรรมไร้เสียง)

นี่เป็นวิธีที่ง่ายที่สุดที่จะสาธิต กระเป๋าสตางค์ EOA

  1. สร้างกระเป๋าคุมข้อมูลแบบภาพหลายเหลี่ยม (แนะนําให้ใช้ร่วมกับ Matmask)
  2. ทิ้งลงถังขยะ ขนาด USDCEและขนาดเล็ก POL(สําหรับแก๊ส)
  3. สําหรับกระเป๋าสตางค์ กุญแจส่วนตัว
  4. ใช้ SDK create_or_derive_api_creds() วิธีการในการสร้างผู้รับรอง API โดยอัตโนมัติ

3. สภาพแวดล้อม OpenClax

อักขระ OpenCraw exec เครื่องมือประมวลผลรหัส Python และเหมาะกับการทํางานสคริปต์นี้โดยอัตโนมัติ

รหัสหลัก

พื้นฐาน: เฝ้าดูตลาด + รายการอัตโนมัติ

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

ความ ก้าว หน้า: เฉลี่ย ยุทธวิธี การ ตอบ กลับ

แนว คิด หลัก ของ กลยุทธ์ นี้ คือ ซื้อ โดย อัตโนมัติ เมื่อ ราคา หันเห ไป จาก เฉลี่ย แล้ว รอ ให้ กลับ.

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)

การละเมิดลิขสิทธิ์

มันง่ายมากที่จะควบคุมหุ่นยนต์ตัวนี้ใน OpenCraw คุณสามารถบันทึกรหัสด้านบนเป็น polymarket_bot.pyและดําเนินการใน OpenCraw

运行 python polymarket_bot.py

โปรดทราบ

เคล็ดลับความเสี่ยง

  • คาดการณ์ความผันผวนในตลาด โปรดใช้เฉพาะกองทุนที่มีค่าใช้จ่าย
  • ขอแนะนําให้เราทดสอบเครือข่ายก่อน
  • การซื้อขายหุ่นยนต์ ต้องเฝ้าระวังตลอดเวลา เพื่อป้องกันความสุดขั้ว

2. การจํากัด API

  • เปิด API โดยไม่การตรวจสอบสิทธิ์
  • จั่ว API ต้องการกระเป๋าคุมข้อมูลและกุญแจ API
  • ระวังขีดจํากัดความเร็ว

การ มอง ใน แง่ ดี ของ ก๊าซ

  • โหมด EOA ต้องการแก๊ส POL
  • คุณสามารถปรับใช้กระเป๋าคุมข้อมูลของพร็อกซีในการทําธุรกรรมแบบไม่มีแก๊สได้