Grok × Polymarket 4-Step Multi-Agent Trading Desk: SCAN · VERIFY · EXECUTE · EXIT Pipeline That Filters Out 90% of Bad Trades
The best agent on a quantitative trading desk has never placed a trade — its entire job is to say NO. Learn how to replace fragile single-prompt FOMO bots with an institutional 4-Agent Desk (SCAN -> VERIFY -> EXECUTE -> EXIT) for Polymarket CLOB & crypto markets: run free deterministic code filters first, invoke Grok `x_search` only on survivors, size off live cash + pool depth, and enforce 5 pre-written exit rules (`exits.py`) with full `tasks.csv` skip auditing.
初心者向け 3分でできる事前チェックリスト
- ✓An xAI Grok API Key from console.x.ai (with
x_searchコピー enabled for live X sentiment and fake-news verification) - ✓A dedicated Polymarket sub-wallet via https://poly.market/p-day (run
PAPER = Trueコピー for the first 7 days before touching live funds) - ✓A Linux VPS (e.g., RAKsmart) where API keys are written via
read -rsコピー into achmod 600 .envコピー file, never pasted into chat logs
スリープモードになったりWi-Fiが切れたりする自宅のラップトップで本物のトレードボットを実行するのは絶対にやめてください!ここではRAKsmart Cloud VPSを強くおすすめします:(1) OKX / Binance / Polygon RPCとの超低ミルisecondな遅延を保つため、東京、シンガポール、またはシリコンバレーを選択;(2) Docker Compose用にUbuntu 22.04 LTS (2 vCPU / 4GB RAM)を選択;(3) 取引所APIのホワイトリストに、割り当てられた固定IPv4アドレスを紐付けてください。
VPS だけ購入したばかり? Windows / Mac から SSH 接続してコマンドを実行する方法(3分ガイド)
初めて使う人の多くがクラウドサーバー購入直後に「このターミナルコマンドはどこに入力すればいいの?」と迷子になります。以下の簡単な5ステップに従ってください:
• サーバー IPv4 アドレス(例:
198.51.100.88コピー)• SSH ポート: 通常は
22コピー ですが、パネルに表示されるカスタムセキュリティポート(例: 22022コピー / 62134コピー)であることも• ユーザー名: Ubuntu では常に
rootコピー です• ルートパスワード: サーバーの初期パスワード
powershellコピーと入力し、Enterキーを押します。• Mac の場合:Command ⌘ + Spaceキーを押して、
Terminalコピーと入力し、Enterキーを押します。ssh -p PORT root@SERVER_IPコピー を実行してください(小文字の-pコピーに注意。カスタムポートを指定しないとConnection refusedコピーエラーになります):• 標準ポート22の場合:
ssh -p 22 root@198.51.100.88コピー• カスタムSSHポート(例:
62134コピー)の場合: ssh -p 62134 root@198.51.100.88コピーAre you sure you want to continue connecting (yes/no)?コピーと問われたら、完全な単語yesコピーを入力してEnterキーを押します。• プロンプト2([!] パスワードを入力してもカーソルが動かないのはなぜ?!):
password:コピーと問われた場合、Linuxではセキュリティのため、入力した文字が一切表示されません(*マークすら出ないのです!)。PowerShellでは右クリック、MacではCmd + Vコピーキーを押してパスワードを見えない状態で貼り付け、Enterキーを押してください!root@ubuntu:~#コピーに変わったら、あなたのクラウドサーバーの中にいる状態です。Docker、Git、Pythonをインストールするには、以下のコマンドを一度貼り付けて実行してください:docker compose ...コピーのコマンドの場合:SSHウィンドウ内で右クリックして貼り付け、Enterキーを押すだけ。• Python(
.pyコピー)スクリプトの場合:nano bot.pyコピーと入力してEnter → 右クリックでコードを貼り付け → 保存するにはCtrl + Oを押してからEnter → 終了するにはCtrl + X → 最後にnohup python3 bot.py > bot.log 2>&1 &コピーを実行して、ノートPCを閉じても24時間365日Botが動き続けるようにします!# 1. Update Ubuntu packages and install Git, Curl, and Python3
apt update -y && apt install -y curl git python3-pip python3-venv
# 2. One-line official Docker & Docker Compose installation
curl -fsSL https://get.docker.com | sh && systemctl enable --now docker
# 3. Verify Docker Compose is ready
docker compose version
# ==============================================================================
# poly_grok_desk.py — 4-Agent Quantitative Trading Desk (SCAN·VERIFY·EXECUTE·EXIT)
# Philosophy: "The best agent on a trading desk has never placed a trade.
# Its whole job is to say NO."
# Safe Setup (Never echo API keys into terminal history):
# mkdir -p /workspace/desk && cd /workspace/desk
# read -rs -p "xai key: " K && printf 'XAI_API_KEY=%s\n' "$K" > .env && unset K
# chmod 600 .env
# ==============================================================================
import csv, json, os, time
from collections import Counter
# 1. CONFIG (You edit this file. The bot NEVER edits config constants itself.)
MODEL = "grok-4.7"
PAPER = True # Paper mode first: real orderbooks, real prices, simulated fills
START_BALANCE = 1000.0 # Dedicated sub-wallet bankroll ($1,000 USDC)
SCANNERS = ["SCAN-1", "SCAN-2", "SCAN-3", "SCAN-4"]
LEADS_PER_RUN = 12 # Cap per 5-min run so a busy minute never burns API budget
SKIP_IF = {
"min_liquidity_usd": 50_000, # Pool liquidity < $50k -> instant free SKIP
"max_spread_cents": 2.2, # Bid-Ask spread > 2.2¢ -> instant free SKIP
"min_age_min": 30, # Market too fresh / unindexed -> SKIP
"max_hours_to_resolve": 168, # Capital efficiency: skip dead-money > 7 days out
"max_ticket_share": 0.01, # Your order size is NEVER > 1% of orderbook liquidity
}
MIN_X_CONFIDENCE = 0.72 # Grok x_search confidence below 0.72 -> SKIP
SIZE_PCT = 0.15 # Bet 15% of current available cash (capped at $200 & 1% of pool)
MIN_TICKET, MAX_TICKET = 20.0, 200.0
MAX_OPEN = 5 # Max 5 concurrent slots (5 × $200 = $1,000)
SESSION_LOSS_HALT_PCT = 15.0 # Circuit breaker: down 15% from session start -> halt new entries
EXIT = {
"hard_stop_pct": -18.0, # Price drops 18% -> exit 100% immediately
"ladder": [(15.0, 0.50), (35.0, 0.50)], # Take profit ladder: +15% sells half, +35% sells rest
"trail_pct": 12.0, # After first take: exit if price pulls back 12% from peak
"time_stop_min": 720, # 12h flat (< +2%) -> free the slot ("Dead money is a loss")
"time_stop_min_pct": 2.0,
"liq_drop_pct": 40.0, # Orderbook depth drops 40% since entry -> exit 100% now
}
# 2. VERIFY STEP: Free Deterministic Code Checks FIRST, Paid Grok X-Read LAST
X_READ_PROMPT = """
You are VERIFY, the final gatekeeper on a Polymarket quantitative desk.
This market already passed all hard code checks (liquidity >= $50k, tight spread, valid window).
Search X (Twitter) for the event and audit the UMA Resolution Rules. Judge ONLY what code cannot see:
1. Ambiguous / subjective UMA resolution criteria (wordplay risk or disputed oracle source)
2. Coordinated bot hype on X (dozens of fresh accounts posting identical fake breaking news)
3. Whether the official primary source (Fed / AP / League scoreboard) has actually confirmed
RETURN ONLY JSON: {"verdict": "GO" | "SKIP", "confidence": 0.0-1.0, "why": "one concise line"}
Unsure is SKIP. Anything not valid JSON is SKIP.
"""
def hard_skip(f: dict) -> str | None:
"""Facts are code. A missing field is ALWAYS a skip, never a guess."""
req = ["price", "liq_usd", "spread_cents", "age_min", "hours_to_resolve", "uma_disputed"]
if any(f.get(k) is None for k in req): return "missing_data"
if f["uma_disputed"]: return "uma_dispute_active"
if f["liq_usd"] < SKIP_IF["min_liquidity_usd"]: return "thin_liquidity"
if f["spread_cents"] > SKIP_IF["max_spread_cents"]: return "wide_spread"
if f["age_min"] < SKIP_IF["min_age_min"]: return "too_fresh"
if f["hours_to_resolve"] > SKIP_IF["max_hours_to_resolve"]: return "dead_money_horizon"
return None
def size_order(cash_usdc: float, liq_usd: float) -> float:
"""Sized off the balance you have NOW + capped at 1% of pool depth."""
usd = cash_usdc * SIZE_PCT
usd = min(max(usd, MIN_TICKET), MAX_TICKET, liq_usd * SKIP_IF["max_ticket_share"])
return round(usd, 2)
# 3. EXIT STEP: Written BEFORE Entry (Runs every 5 minutes on all open positions)
def evaluate_exit(pos: dict, cur_price: float, cur_liq: float, now_ts: float) -> tuple[float, str] | None:
if cur_price <= 0:
return (1.0, "market_halted")
peak = max(pos["peak"], cur_price)
pct = (cur_price / pos["entry"] - 1.0) * 100.0
age_min = (now_ts - pos["opened_ts"]) / 60.0
if cur_liq < pos["liq0"] * (1.0 - EXIT["liq_drop_pct"] / 100.0):
return (1.0, "liquidity_pulled_40pct")
if pct <= EXIT["hard_stop_pct"]:
return (1.0, "hard_stop")
if pos["steps"] < len(EXIT["ladder"]):
target_pct, frac = EXIT["ladder"][pos["steps"]]
if pct >= target_pct:
return (frac, f"take_profit_+{target_pct:.0f}pct")
if pos["steps"] > 0 and cur_price <= peak * (1.0 - EXIT["trail_pct"] / 100.0):
return (1.0, "trailing_stop_from_peak")
if pos["steps"] == 0 and age_min >= EXIT["time_stop_min"] and pct < EXIT["time_stop_min_pct"]:
return (1.0, "time_stop_dead_money")
return None
if __name__ == "__main__":
sample_lead = {"slug": "fed-cuts-25bps-nov", "price": 0.984, "liq_usd": 420_000,
"spread_cents": 0.4, "age_min": 1440, "hours_to_resolve": 18, "uma_disputed": False}
skip_reason = hard_skip(sample_lead)
ticket_usdc = size_order(1000.0, sample_lead["liq_usd"]) if not skip_reason else 0.0
print(f"[VERIFY] hard_skip={skip_reason} -> Survivor sent to Grok X-Read | Ticket=${ticket_usdc} USDC")
一行ずつ、わかりやすい言葉でコードとコマンドの解説
| コード / コマンドライン | わかりやすい解説(これは何をする?) |
|---|---|
read -rs -p "xai key: " K && printf 'XAI_API_KEY=%s\n' "$K" > .env && unset K
|
Zero-echo secret injection: writes your xAI key into .envコピー without echoing to terminal history or AI chat transcripts. |
SKIP_IF = {"min_liquidity_usd": 50_000, "max_spread_cents": 2.2, ...}
|
Hard deterministic filter thresholds that kill 90%+ of low-quality markets for free before calling Grok. |
def hard_skip(f: dict) -> str | None:
|
Enforces 'facts before opinions' — any missing field or thin orderbook returns a final SKIPコピー. |
usd = min(max(usd, MIN_TICKET), MAX_TICKET, liq_usd * SKIP_IF["max_ticket_share"])
|
Sizes each survivor off current cash while capping exposure at $200 and 1% of orderbook liquidity. |
if cur_liq < pos["liq0"] * (1.0 - EXIT["liq_drop_pct"] / 100.0): return (1.0, "liquidity_pulled_40pct")
|
Pre-written exit trigger: dumps 100% of the position immediately if orderbook depth drops 40% from entry. |
if pos["steps"] == 0 and age_min >= EXIT["time_stop_min"] and pct < EXIT["time_stop_min_pct"]:
|
Time-stop exit: frees the slot if a position stays flat for 12 hours ('Dead money is a loss too'). |
[!] 初心者がよく陥る3つの落とし穴とトラブルシューティングガイド
✕ Pitfall 1: Sending Every Raw Scanner Lead Directly to Grok x_searchコピー
The bill must scale with survivors, not with leads. Always run free hard_skip()コピー checks first so 90% of bad markets die for free.
✕ Pitfall 2: Letting the Bot Edit config.pyコピー Risk Constants on Its Own
Only humans edit config.pyコピー. Never let an autonomous routine widen stop-losses or raise MAX_TICKETコピー.
✕ Pitfall 3: Re-Running a Rejected Market Until the LLM Says GOコピー
A skip is final. Re-prompting VERIFY to get the answer you want turns your desk back into FOMO with an API key.
Part 1: Why Single-Prompt Bots Fail — Replace FOMO with a 4-Agent Trading Desk
Everyone's first bot is the same: one agent, one prompt ('find a market, check news, buy, sell the top'). That's not a quantitative agent — that's your FOMO with an API key. A real trading desk splits every trade into four strict roles inside one codebase: SCANコピー (finds leads from Polymarket Gamma / whale wallets without opinions), VERIFYコピー (whose default answer is SKIPコピー), EXECUTEコピー (sizes survivors off current cash and pool depth), and EXITコピー (enforces pre-written stops and ladders).
Part 2: Funnel Economics — Free Deterministic Code Skips First, Paid Grok x_searchコピー Last
Your AI API bill should scale with survivors, not with leads. In verify.pyコピー, hard_skip()コピー runs free deterministic checks first (liquidity < $50k, spread > 2.2¢, missing fields -> instant SKIPコピー). Only the 5% of leads that survive every hard rule trigger a Grok API call with x_searchコピー enabled to check for coordinated X bot hype or ambiguous UMA Resolution Rules.
Part 3: Write the Exit Before the Entry (exits.pyコピー) — Dead Money Is a Loss Too
Most retail traders decide when to sell while staring at a green or red candle. On this desk, five exit triggers exist before entry: 40% liquidity drop pull-out, hard stop, stepped profit ladder, peak trailing stop, and a time stop that frees flat capital slots.
Want built-in trailing stops and automated grid ladders without coding? Use Pionex's 16 Free Cloud AI Trading Bots ↗.
Part 4: Auditing tasks.csvコピー vs trades.csvコピー, Zero-Echo Key Setup & Paper-to-Live Fences
Deploy on an isolated RAKsmart Linux VPS ↗, inject keys via read -rsコピー into a chmod 600 .envコピー file so secrets never land in chat transcripts, run PAPER = Trueコピー for 7 days on Polymarket ↗, and verify that tasks.csvコピー logs 90%+ skips before enabling live execution.
Headline Quant Guides Directory (With Reading Level, Time & Code Stack)
Start from L1 Beginner Essentials and progress to L4 Institutional Tick Backtesting. Every guide includes reading difficulty, estimated reading time, and production-ready code:
Beginner $1,000 Quant Starter Combo Deep-Dive: How Much Can You Earn Monthly Running Polymarket Penny Clipper & LP Bots?
Complete quantitative breakdown for first-time algorithmic traders starting with $1,000 USDC: ranking all 4 Polymarket open-source bot strategies by risk-adjusted edge, modeling 3 realistic monthly profit tiers ($60–$180/mo or 6%–18% monthly ROI) using 5×$200 position splitting, and enforcing the 3 iron survival rules.
Pionex Cloud AI Bots vs. Self-Hosted Polymarket Bots (CloddsBot / Grok Desk): 6 Key Differences & Dual-Engine Allocation Guide
Both are called 'quant trading bots,' yet Pionex's 16 built-in cloud bots and self-hosted open-source Polymarket bots (`CloddsBot`, `polymarket_lp_tool`, `Grok 4-Step Desk`) operate on completely different market mechanics. Pionex harvests crypto volatility and perpetual funding rates with zero code and massive liquidity capacity, while self-hosted Polymarket bots snipe $1.00 deterministic event settlement discounts and Daily LP Rewards with zero correlation to Bitcoin price swings.
Pionex AI Quantitative Trading Complete Guide: 16 Free Built-In Grid Bots, Funding-Rate Arbitrage & Polymarket Delta Hedging
Don't want to maintain a Linux VPS? Master Pionex's 16 free built-in AI trading bots (PionexGPT strategy generator, AI Infinity Grid, Spot-Futures Funding Rate Arbitrage, and 0.05% maker/taker fees) and learn how to pair Pionex BTC/ETH grids with Polymarket event tail-hedges.
CloddsBot & Polymarket LP Bot Complete Guide: Deploy 119-Skill AI Arbitrage, Penny Clipper & Daily Liquidity Rewards Bots
Why pay $5,000+ for black-box bots when the best Polymarket trading engines are MIT open-source on GitHub? Full deployment guide to `alsk1992/CloddsBot` (3.1k⭐, 119+ skills including cross-market arbitrage, Penny Clipper expiry decay, and smart-money copy trading) and `lihanyu81/polymarket_lp_tool` (passive LP market-making for daily USDC rewards).
Grok × Polymarket 4-Step Multi-Agent Trading Desk: SCAN · VERIFY · EXECUTE · EXIT Pipeline That Filters Out 90% of Bad Trades
The best agent on a quantitative trading desk has never placed a trade — its entire job is to say NO. Learn how to replace fragile single-prompt FOMO bots with an institutional 4-Agent Desk (SCAN -> VERIFY -> EXECUTE -> EXIT) for Polymarket CLOB & crypto markets: run free deterministic code filters first, invoke Grok `x_search` only on survivors, size off live cash + pool depth, and enforce 5 pre-written exit rules (`exits.py`) with full `tasks.csv` skip auditing.
Polymarket CLOB 定量ガイド: py-clob-client による 0% 手数料のメイカー&クローンコピートレーディングボットのデプロイ
エンジニアリング完全ガイド: Polygon L2 CLOB の認証情報を導出、Gamma の条件トークン ID を照会、クローンフィリングに購読、ガスレスな 0% 手数料の EIP-712 指値注文を発行する方法。
クオンツ用VPSセキュリティ、APIのIPホワイトリスト、ハードなドローダウン(損失)キルスイッチのエンジニアリングガイド
クオンツトレーダーのための本番環境セキュリティチェックリスト: 低遅延VPSの選定、取引所APIのIPホワイトリスト化、出金無効キー、自動的な日次5%ドローダウンキルスイッチ。
AI LLM確率キャリブレーション + ハーフ・ケリー法サイズ設定: +EV注文のためのDeepSeek / OpenAI / Ollama APIの段階的統合ガイド
DeepSeek、OpenAI GPT-4o、またはローカルOllama LLMをPython経由で接続し、突発ニュースを構造化ベイズ尤度比とハーフ・ケリーポジションサイズに変換する完全な段階的ガイド。
Freqtrade + FreqAI Docker チュートリアル: OKX / Binance 接続、過去データダウンロードとルックアヘッドバイアス監査
Docker Compose 経由で Freqtrade をデプロイし、OKX と Binance の複数年分 OHLCV データをダウンロードし、手数料調整付きリアリスティックバックテストを実行し、`lookahead-analysis` を実行するステップバイステップガイド。
Hummingbotでの市況作動(マーケッティング)とデルタヘッジングガイド: PolymarketのオッズとOKX/Binanceの先物(パープ)間の裁定
機関投資家がOKX/Binance上のHummingbot V2マーケッティングコントローラーとPolymarketのイベント契約を組み合わせて、デルタニュートラルなマクロボラティリティヘッジを構築する方法。
NautilusTraderでのL2注文板バックテストガイド: スリップ(約定ずれ)の錯覚とキューポジション(順番)バイアスの排除
リアルなキューポジションでの約定、レイテンシモデリング、ウォークフォワード検証を用いて、NautilusTraderで高忠実度のL2注文板ティックバックテストを実行する方法。
Poly Day (p.day) — ポリマーケット(Polymarket)とは?予測市場の日本での合法性・使い方・株価とリアルタイムオッズ
「ポリマーケットとは」「polymarket 日本 合法 / 違法」「予測市場 日本」の疑問解消と国内取引所からのPolygon USDC送金手順
日本国内でも「ポリマーケット(Polymarket)」「ポリマーケットとは」「polymarketとは」「予測市場 日本」の検索数が急増しています。ポリマーケットはPolygonブロックチェーン上で稼働する世界最大の分散型予測市場(Prediction Market)であり、日銀の政策金利・ドル円相場、衆議院選挙、米大統領選・FRB利下げ、ビットコイン価格、大谷翔平やワールドカップまで、あらゆるイベントの確率が1¢〜99¢のリアルタイム価格として取引されています。
よく検索される「polymarket 日本 合法」「polymarket 違法」「予測市場 日本 合法」については、Poly Day日本語版(p.day/ja/)のような情報端末でリアルタイム確率やクジラ動向を閲覧・分析することは日本国内から100%完全に合法で自由に行えます。また「ポリマーケット 株価」を探す方もいますが、Polymarketは現在未上場のWeb3プロジェクトであり、株式ではなくイベント結果のシェア(1株=的中時$1.00 USDC償還)をCLOB板取引で売買する仕組みです。