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.
Check-list de pré-vol de 3 minutes pour les débutants
- ✓An xAI Grok API Key from console.x.ai (with
x_searchCopier enabled for live X sentiment and fake-news verification) - ✓A dedicated Polymarket sub-wallet via https://poly.market/p-day (run
PAPER = TrueCopier for the first 7 days before touching live funds) - ✓A Linux VPS (e.g., RAKsmart) where API keys are written via
read -rsCopier into achmod 600 .envCopier file, never pasted into chat logs
Ne lancez jamais un bot de trading en direct sur un ordinateur portable domestique qui se met en veille ou qui perd le Wi-Fi ! Nous recommandons RAKsmart Cloud VPS : (1) Choisissez Tokyo, Singapour ou Silicon Valley pour une latence ultra-faible en millisecondes vers OKX/Binance et les RPC Polygon ; (2) Sélectionnez Ubuntu 22.04 LTS (2 vCPU / 4GB RAM) pour Docker Compose ; (3) Associez votre adresse IPv4 statique dédiée à la liste blanche de l'API de votre exchange.
Vous venez d'acheter un VPS ? Comment vous connecter via SSH et exécuter des commandes sur Windows / Mac (Guide de 3 minutes)
Beaucoup d'utilisateurs débutants se perdent juste après l'achat d'un serveur cloud : « Où est-ce que je tape ces commandes du terminal ? » Suivez ces 5 étapes simples :
• Adresse IPv4 du serveur (ex.
198.51.100.88Copier)• Port SSH : Généralement
22Copier, ou un port de sécurité personnalisé comme 22022Copier / 62134Copier affiché dans votre panneau• Nom d'utilisateur : Toujours
rootCopier sur Ubuntu• Mot de passe root : Votre mot de passe initial du serveur
powershellCopier et appuyez sur Entrée.• Sur Mac : Appuyez sur Command ⌘ + Space, tapez
TerminalCopier et appuyez sur Entrée.ssh -p PORT root@SERVER_IPCopier (notez que le -pCopier est en minuscules ; omettre un port personnalisé provoque une erreur Connection refusedCopier) :• Port standard 22 :
ssh -p 22 root@198.51.100.88Copier• Port SSH personnalisé (par ex.
62134Copier) : ssh -p 62134 root@198.51.100.88CopierAre you sure you want to continue connecting (yes/no)?Copier apparaît, tapez le mot complet yesCopier et appuyez sur Entrée.• Prompt 2 ([!] Pourquoi le curseur ne bouge-t-il pas quand je tape mon mot de passe ?!) : Lorsqu'on vous demande
password :Copier, Linux masque tous les caractères (même les astérisques * n'apparaissent pas) pour des raisons de sécurité ! Collez simplement votre mot de passe invisiblement en faisant un clic droit dans PowerShell (ou en appuyant sur Cmd + VCopier sur Mac), puis appuyez sur Entrée !root@ubuntu:~#Copier, vous êtes à l'intérieur de votre serveur cloud ! Collez ces commandes de configuration une seule fois pour installer Docker, Git et Python :docker compose ...Copier : Il vous suffit de faire un clic droit pour coller dans votre fenêtre SSH et d'appuyer sur Entrée.• Pour les scripts Python (
.pyCopier) : Tapez nano bot.pyCopier et appuyez sur Entrée → Faites un clic droit pour coller le code → Appuyez sur Ctrl + O puis sur Entrée pour sauvegarder → Appuyez sur Ctrl + X pour quitter → Exécutez nohup python3 bot.py > bot.log 2>&1 &Copier pour que votre bot continue de fonctionner 24h/24, 7j/7, même après avoir fermé votre ordinateur portable !# 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")
Explication ligne par ligne du code et des commandes en langage simple
| Code / Ligne de commande | Explication en langage simple (À quoi ça sert ?) |
|---|---|
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 .envCopier 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 SKIPCopier. |
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'). |
[!] Les 3 pièges courants pour les débutants et guide de dépannage
✕ Pitfall 1: Sending Every Raw Scanner Lead Directly to Grok x_searchCopier
The bill must scale with survivors, not with leads. Always run free hard_skip()Copier checks first so 90% of bad markets die for free.
✕ Pitfall 2: Letting the Bot Edit config.pyCopier Risk Constants on Its Own
Only humans edit config.pyCopier. Never let an autonomous routine widen stop-losses or raise MAX_TICKETCopier.
✕ Pitfall 3: Re-Running a Rejected Market Until the LLM Says GOCopier
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: SCANCopier (finds leads from Polymarket Gamma / whale wallets without opinions), VERIFYCopier (whose default answer is SKIPCopier), EXECUTECopier (sizes survivors off current cash and pool depth), and EXITCopier (enforces pre-written stops and ladders).
Part 2: Funnel Economics — Free Deterministic Code Skips First, Paid Grok x_searchCopier Last
Your AI API bill should scale with survivors, not with leads. In verify.pyCopier, hard_skip()Copier runs free deterministic checks first (liquidity < $50k, spread > 2.2¢, missing fields -> instant SKIPCopier). Only the 5% of leads that survive every hard rule trigger a Grok API call with x_searchCopier enabled to check for coordinated X bot hype or ambiguous UMA Resolution Rules.
Part 3: Write the Exit Before the Entry (exits.pyCopier) — 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.csvCopier vs trades.csvCopier, Zero-Echo Key Setup & Paper-to-Live Fences
Deploy on an isolated RAKsmart Linux VPS ↗, inject keys via read -rsCopier into a chmod 600 .envCopier file so secrets never land in chat transcripts, run PAPER = TrueCopier for 7 days on Polymarket ↗, and verify that tasks.csvCopier 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.
Guide Quant Polymarket CLOB : Déployer un bot de copié-trading de baleines et maker sans frais de 0 % avec py-clob-client
Parcours d'ingénierie complet : dériver les identifiants Polygon L2 CLOB, interroger les ID de jetons de conditions Gamma, s'abonner aux exécutations des baleines et passer des ordres limites EIP-712 sans frais de gaz et sans frais de 0 %.
Sécurité VPS Quant, Blanchiment d'IP des API et Guide d'Ingénierie des Dispositifs d'Arrêt (Kill-Switch) de Drawdown
Checklist de sécurité en production pour les traders quantitatifs : sélection de VPS à faible latence, blanchiment d'IP des API de bourse, clés sans retrait autorisé et dispositifs d'arrêt automatiques en cas de perte journalière de 5 %.
Calibration des probabilités LLM IA + Dimensionnement Half-Kelly : intégration étape par étape de l’API DeepSeek / OpenAI / Ollama pour des ordres +EV
Guide complet étape par étape pour connecter DeepSeek, OpenAI GPT-4o ou des LLM locaux Ollama via Python, afin d’analyser les actualités de dernière minute et de les convertir en rapports de vraisemblance bayésiens structurés et en tailles de position Half-Kelly.
Tutoriel Docker Freqtrade + FreqAI : Connecter OKX / Binance, télécharger des données historiques et auditer le biais de prévision
Guide étape par étape pour déployer Freqtrade via Docker Compose, télécharger des données OHLCV multi-annuelles de OKX et Binance, exécuter des backtests réalistes ajustés aux frais et exécuter `lookahead-analysis`.
Guide au Market Making et au Delta-Hedging avec Hummingbot : Arbitrager les cotes de Polymarket contre les Futures Perps d'OKX / Binance
Comment les bureaux institutionnels combinent les contrôleurs de market-making Hummingbot V2 sur OKX/Binance avec les contrats d'événement de Polymarket pour construire des hedges de volatilité macro neutres en delta.
Guide de backtest des carnets d'ordres L2 avec NautilusTrader : Éliminer les illusions de slippage et le biais de position dans la file d'attente
Comment exécuter des backtests de ticks de carnet d'ordres L2 haute fidélité avec NautilusTrader, en intégrant des exécutations réalistes basées sur la position dans la file, la modélisation de la latence et la validation Walk-Forward.
Poly Day (p.day) — Polymarket en France : Marché Prédictif, Cotes (Odds), Ballon d'Or, Avis et Statut ANJ
Guide complet sur Polymarket en France, le marché prédictif Web3, Ballon d'Or, Ligue des Champions et accès Polygon
De nombreux utilisateurs francophones recherchent « Polymarket France », « Polymarket interdit en france » ou « marché prédictif » pour comprendre comment consulter et négocier les probabilités mondiales en temps réel. Qu'il s'agisse de la politique française, des taux de la BCE et de la Fed, du Ballon d'Or (Polymarket Ballon d'Or) ou du cours du Bitcoin, le carnet d'ordres CLOB sur Polygon affiche les cotes les plus précises du marché.
Sur Poly Day France (p.day/fr/), vous pouvez suivre librement toutes les cotes Polymarket (Polymarket odds), analyser les portefeuilles de baleines et découvrir comment approvisionner un portefeuille non-custodial en USDC (Polygon) par virement SEPA gratuit depuis la France, la Belgique, la Suisse ou le Canada.