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-Minute Beginner Pre-Flight Checklist
- ✓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
Never run a live trading bot on a home laptop that sleeps or drops Wi-Fi! We recommend RAKsmart Cloud VPS: (1) Choose Tokyo, Singapore, or Silicon Valley for ultra-low millisecond latency to OKX/Binance & Polygon RPCs; (2) Select Ubuntu 22.04 LTS (2 vCPU / 4GB RAM) for Docker Compose; (3) Bind your dedicated static IPv4 address to your exchange API whitelist.
Just Bought a VPS? How to Connect via SSH & Run Commands on Windows / Mac (3-Minute Guide)
Many first-time users get stuck right after buying a cloud server: 'Where do I type these terminal commands?' Follow these 5 simple steps:
• Server IPv4 Address (e.g.,
198.51.100.88คัดลอก)• SSH Port: Usually
22คัดลอก, or a custom security port like 22022คัดลอก / 62134คัดลอก shown in your panel• Username: Always
rootคัดลอก on Ubuntu• Root Password: Your initial server password
powershellคัดลอก, and hit Enter.• On Mac: Press Command ⌘ + Space, type
Terminalคัดลอก, and hit Enter.ssh -p PORT root@SERVER_IPคัดลอก (note lowercase -pคัดลอก; omitting a custom port causes Connection refusedคัดลอก):• Standard Port 22:
ssh -p 22 root@198.51.100.88คัดลอก• Custom SSH Port (e.g.
62134คัดลอก): ssh -p 62134 root@198.51.100.88คัดลอกAre you sure you want to continue connecting (yes/no)?คัดลอก, type the full word yesคัดลอก and press Enter.• Prompt 2 ([!] Why doesn't the cursor move when I type my password?!): When asked for
password:คัดลอก, Linux hides all characters (not even * asterisks appear) for security! Simply right-click in PowerShell (or press Cmd + Vคัดลอก on Mac) to paste your password invisibly, then press Enter!root@ubuntu:~#คัดลอก, you are inside your cloud server! Paste these setup commands once to install Docker, Git, and Python:docker compose ...คัดลอก commands: Simply right-click to paste into your SSH window and press Enter.• For Python (
.pyคัดลอก) scripts: Type nano bot.pyคัดลอก and hit Enter → Right-click to paste the code → Press Ctrl + O then Enter to save → Press Ctrl + X to exit → Run nohup python3 bot.py > bot.log 2>&1 &คัดลอก so your bot keeps running 24/7 even after you close your laptop!# 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")
Line-by-Line Plain-English Code & Command Breakdown
| Code / Command Line | Plain-English Explanation (What Does This Do?) |
|---|---|
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'). |
[!] Top 3 Beginner Pitfalls & Troubleshooting Guide
✕ 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 Quant Guide: Deploy a 0%-Fee Maker & Whale Copy-Trading Bot with py-clob-client
Complete engineering walkthrough: derive Polygon L2 CLOB credentials, query Gamma condition token IDs, subscribe to whale fills, and place gasless 0%-fee EIP-712 limit orders.
Quant VPS Security, API IP Whitelisting & Hard Drawdown Kill-Switch Engineering Guide
Production security checklist for quant traders: low-latency VPS selection, exchange API IP whitelisting, withdrawal-disabled keys, and automated 5% daily drawdown kill-switches.
AI LLM Probability Calibration + Half-Kelly Sizing: Step-by-Step DeepSeek / OpenAI / Ollama API Integration for +EV Orders
Complete step-by-step guide to connecting DeepSeek, OpenAI GPT-4o, or local Ollama LLMs via Python to parse breaking news into structured Bayesian likelihood ratios and Half-Kelly position sizes.
Freqtrade + FreqAI Docker Tutorial: Connect OKX / Binance, Download Historical Data & Audit Lookahead Bias
Step-by-step guide to deploying Freqtrade via Docker Compose, downloading multi-year OKX and Binance OHLCV data, running realistic fee-adjusted backtests, and running `lookahead-analysis`.
Hummingbot Market Making & Delta-Hedging Guide: Arbitraging Polymarket Odds vs. OKX / Binance Perps
How institutional desks combine Hummingbot V2 market-making controllers on OKX/Binance with Polymarket event contracts to construct delta-neutral macro volatility hedges.
NautilusTrader L2 Orderbook Backtesting Guide: Eliminating Slippage Illusions & Queue-Position Bias
How to run high-fidelity L2 orderbook tick backtests in NautilusTrader with realistic queue-position fills, latency modeling, and Walk-Forward validation.
Polymarket คืออะไร? คู่มือเทรดตลาดคาดการณ์ระดับโลก, ตามรอยวาฬ On-Chain และวิธีฝาก USDC สำหรับเทรดเดอร์ไทย
คู่มือใช้งาน Polymarket ฉบับภาษาไทย, อัตราต่อรอง CLOB แบบเรียลไทม์, การคำนวณ Half-Kelly และการโอน USDC ผ่านเครือข่าย Polygon
ในกลุ่มนักเทรดคริปโตและนักลงทุนชาวไทย คำค้นหาอย่าง «Polymarket คืออะไร», «วิธีเล่น Polymarket» และ «ตลาดคาดการณ์ Web3» กำลังได้รับความนิยมอย่างสูง Polymarket คือแพลตฟอร์มตลาดคาดการณ์แบบกระจายศูนย์ (Decentralized Prediction Market) ที่ใหญ่ที่สุดในโลกบนเครือข่าย Polygon ซึ่งผู้ใช้งานสามารถซื้อขายหุ้นความน่าจะเป็น ('ใช่' หรือ 'ไม่ใช่') ในราคาตั้งแต่ 1¢ ถึง 99¢ USDC สำหรับเหตุการณ์สำคัญทั่วโลก เช่น การปรับลดอัตราดอกเบี้ยของธนาคารกลางสหรัฐฯ (Fed), เป้าหมายราคา Bitcoin ทะลุ $150,000, การเลือกตั้งระดับโลก ไปจนถึงศึกฟุตบอลพรีเมียร์ลีกและยูฟ่าแชมเปียนส์ลีก
ผ่านเทอร์มินัล Poly Day ประเทศไทย (p.day/th/) คุณสามารถตรวจสอบความลึกของสมุดคำสั่งซื้อขาย CLOB แบบเรียลไทม์, ติดตามสัญญาณกระเป๋าวาฬ Smart-Money ที่ชนะมากกว่า 80%, คำนวณขนาดไม้ลงทุนด้วยสูตร Half-Kelly และเรียนรู้วิธีโอนเหรียญ USDC ผ่านเครือข่าย Polygon จาก Binance หรือ OKX ด้วยค่าธรรมเนียมเกือบเป็นศูนย์