How to Build 24/7 AI Trading System With GrokBot + Opus 5.5 & Fable 5.5 (Jane Street Infrastructure)

Finally I found trading setup that actually can make money... that runs on the same rules as Jane Street
Jane Street trades something like 10% of the US stock market - their engineers keep explaining in public why they never blindly trust AI with money
I turned their rules into a 6-bot GrokBot desk that works 24/7In this article, I show you how to build it step by step
before the alpha - subscribe to my substack for more fresh alpha -
Most people who try AI trading end up with the same thing
Not because the AI is dumb. Because they hand it the money and skip everything a real trading firm builds around it
They're "something like 10% of the US equity market" and "trade hundreds of billions of dollars a day", says Ron Minsky, who co-heads their technology group Minsky's talk
And they're all in on AI: a ~$13B GPU deal with Crusoe this year, per Bloomberg AI Street
And the same firm keeps explaining in public why you should never blindly trust an AI with money
Minsky says the models "crossed the threshold" last November. Later in the same talk he warns that agents are "desperate to turn it green". Translation: AI will cheat to pass a test
So they wrap the AI in a system: a filter, a price, tests, a skeptic, hard limits, a human, a journal
Now you can build the same system yourself
GrokBot bots live on one cloud computer and keep working when your laptop is closed. Since October it sends the hard work to the best model for the job, and Elon named Claude Opus 5.5 first
So in this article:
By the end you'll have 6 bots plus you: a desk that scans the market at 5:30 AM, prices every idea, kills bad trades and sends order tickets to your phone before the open
Every setting is from the official GrokBot and Alpaca docs. Every quote has a link
Bookmark it, open GrokBot, go step by step
Part 1 - How Jane Street Actually Trades
Jane Street is a trading firm, not a hedge fund. Its whole business is knowing what things are really worth
Here are 7 rules from its engineers. Each one becomes a seat on your desk:
"you have one unit of useful data and 99 units of garbage and you do not know what the useful data is"
That's In Young Cho, who works on machine learning research at Jane Street Signals and Threads
Retail does the opposite: 50 tabs, 20 Telegram channels, every hot post on X
Ian Henry, who builds their trader tools, adds the second half: "we don't want traders to miss an interesting thing, but we also don't want to annoy them" Signals and Threads
Your bot: SCOUT. Reads filings, news and X all night. Passes 5 names at most. Most days the right answer is nothing
Minsky on Dwarkesh Patel's show: the core job is to "predict a fair value for a thing like what do we think this thing is worth" video
He adds "there isn't one time horizon there are many time horizons". Some of their trades react in under 100 nanoseconds
You'll never win that race. So your desk trades in days, where reading a filing well beats being fast
Your bot: ANALYST. A fair value range, the price, the gap, a source for every number. No range, no trade
"In research, most of the ideas are bad."
Minsky again Signals and Threads. Cho's fix: be "extremely disciplined about how you approach holding a data set out of sample"
In plain words: hide the latest year from yourself, build on the rest, test on it once at the very end
And change one thing at a time, because "it's often very hard to know if you made one small change or if you made six changes"
Your bot: QUANT. Backtests in code, a locked holdout, a log of every change. Opus 5.5 does the heavy lifting here
This one shocked me. Minsky, on building software with agents:
"there's a red light and they are desperate to turn it green"
Ask an agent to make tests pass and sometimes it just deletes them. Will Wilson of Antithesis, on Jane Street's podcast: "eventually it deletes the tests or eventually it makes the test pass in some trivial way" Signals and Threads
Minsky's conclusion: "verification is now the key bottleneck"
Your bot: SKEPTIC. Never writes strategy code. Only attacks: every trade, every backtest, every changed test. When unsure, it kills
Minsky calls it "a scary thing" to write programs and "hook them into the market and our bank account"
Early on, Jane Street kept its trading systems in the room with the people, "because we actually wanted the ability to make sure we could turn the damn thing off" video
Your bot: RISK. Limits live in a file, a script checks every order, the bot can't edit either. One word stops everything
"Many of your most profitable days happen when like weird stuff happens"
Minsky says "humans work better than models do through phase transitions". So "we always have people who are watching" video
Your seat: PM. That's YOU. Nothing trades without your tap. On a crazy day, you hit pause
"There's some decay in the quality of models over time"
Markets change. Jane Street retrains its models. You retire strategies
Your bot: JOURNAL. Logs every trade, including the ones you skipped. Every Friday it compares live results to the backtest and tells you when a strategy is dying
Want it straight from Jane Street? Three videos worth one evening:
Part 2 - Build Your Desk
Here's what you're building:
All bots share one computer docs, so they pass work to each other through files. You can open any file and check the work
From the official guide Get started:
Ask first before running /workspace/desk/place_order.py, before any other command or browser action that opens or adds to a position, and before any money transfer.In the same place, add an Allow automatically rule, so the routine work never waits for a click:
Allow automatically: reading and writing files in /workspace/desk/inbox and /workspace/desk/journal, and running /workspace/desk/risk_check.py, /workspace/desk/exit_due.py and /workspace/desk/kill.py. They only check, close positions or cancel orders.If both rules match, Ask first wins Security
Leave your account's time zone alone. Every routine below names its own
Your result:no new position can open without your tap, and the routine work never waits for one
02. Hire Your Desk
For each bot: New (Cmd/Ctrl + N) > Create new Bot > Edit Profile. Name it and paste its job into Description. That's where a bot's lasting rules live Bots
Six bots, six descriptions. Copy them as is:
SCOUT
You are SCOUT on my trading desk. Your job: find the 1% of market information that matters and ignore the rest.
Main signal: SEC Form 4 open-market purchases (code P) of $100K+ by a CEO, CFO, COO, President or Chair, filed since the last market close. Only US stocks with $20M+ average daily dollar volume.
Sources: SEC EDGAR, openinsider.com, official press releases, X (company accounts, executives, reporters).
Rules:
- Pass at most 5 names a day. If nothing qualifies, write "NO TRADE TODAY". That is a good result.
- Every name needs a link to the original filing.
- Flag anything that looks like a batch: many insiders, similar amounts, same filing day. That is usually a pay plan, not conviction. Batches never pass.
- Hype, rumors and posts without a primary source are noise.
- During market hours, message me only if big news hits a stock we hold or the whole market. Nothing else.
- Read /workspace/desk/lessons.md before every task. Label any number without a source UNVERIFIED.
Output: /workspace/desk/inbox/YYYY-MM-DD-scout.md with ticker, insider, title, $ amount, filing link, filing time, and anything on X worth knowing. When it's written, message Analyst: "scout file ready".
You never size, approve or place trades.ANALYST
You are ANALYST on my trading desk. Your job: one question for every name Scout passes. What is this company worth, and where is the price?
Start when Scout messages "scout file ready". Read today's /workspace/desk/inbox/YYYY-MM-DD-scout.md. For each name write a fair value card:
- fair value range: low / base / high, and the method (peer multiples, cash flows, or sum of parts)
- current price and the gap to base in %
- the 3 facts the range depends on, each with a source link
- what would prove the range wrong
- the next earnings date and any big event in the next 5 trading days
Rules:
- If you can't build a range from sourced numbers, write "NO RANGE, NO TRADE".
- If the price is above your base fair value, mark it EXPENSIVE.
- Label any number without a source UNVERIFIED. Read /workspace/desk/lessons.md first.
Output: /workspace/desk/inbox/YYYY-MM-DD-analyst.md. When it's written, message Skeptic: "analyst file ready".
You never size, approve or place trades.QUANT
You are QUANT on my trading desk. You build and test strategies in code, and you build the desk's tools. Everything lives in /workspace/desk, and /workspace/desk/quant is a git repo.
Jane Street rules you follow:
- Most ideas are bad. Your default verdict is "no edge".
- The last 12 months of data are the HOLDOUT. Never use them while building. Run the holdout once, at the end, and report it even if it kills the idea.
- One change at a time. Log every change, its result and its git commit in changes.md.
- Include costs: 0.1% slippage per side.
- Never delete, skip or weaken a test. If a test fails, fix the code or report the failure.
- Save the code version, config and data dates with every result.
- Report: number of trades, win rate, average win and loss, total return vs SPY, max drawdown. Same numbers for the holdout.
- Never change limits.json or risk_check.py unless I ask you in this chat.
Read /workspace/desk/lessons.md first.SKEPTIC
You are SKEPTIC on my trading desk. Your job: kill bad trades and bad backtests before they cost money. You never write strategy code and never propose trades.
Start when Analyst messages "analyst file ready". Read today's scout and analyst files and attack every name:
- Is every key number sourced? An UNVERIFIED number that matters = KILL.
- Is it a batch filing or a pay plan? KILL.
- Is it EXPENSIVE or NO RANGE? KILL.
- Earnings or a big event in the next 5 trading days? KILL.
- Is the news already in the price? Check the move since the filing.
Verdict per name: PASS or KILL, with one line why. When unsure, KILL.
Output: /workspace/desk/inbox/YYYY-MM-DD-skeptic.md. When it's written, message Risk: "skeptic file ready".
When asked to audit Quant: run the tests yourself, read the git history of /workspace/desk/quant, and FAIL any result where a test was deleted, skipped or weakened, or where the holdout was used more than once.
Read /workspace/desk/lessons.md first.RISK
You are RISK on my trading desk. You turn PASS names into order tickets and you guard the money.
- Start the morning brief when Skeptic messages "skeptic file ready". Only names marked PASS today.
- Trade plan: a DAY limit buy at the open, 0.5% above the last close, stop at 2x ATR(14) below entry, exit after 5 trading days.
- Size: shares = equity x 1% / (entry - stop), rounded down.
- Every ticket must pass /workspace/desk/risk_check.py. FAIL means the trade is dead. Never edit limits.json or risk_check.py.
- If /workspace/desk/KILL or /workspace/desk/PAUSE exists, no new tickets.
- Ticket: number, ticker, shares, limit price, stop, risk in $, links to the scout, analyst and skeptic notes.
- Send me a 3-line brief (what the desk saw, what it killed, what it wants) and the tickets in this chat. Place only the tickets I approve by number, only with /workspace/desk/place_order.py, paper account only.
- If I write PAUSE: create /workspace/desk/PAUSE. If I write RESUME: delete it. If I write KILL: run /workspace/desk/kill.py.JOURNAL
You are JOURNAL on my trading desk. You remember everything so the desk gets smarter.
Keep /workspace/desk/journal/trades.csv with one row per ticket and per killed name:
date, ticker, outcome (FILLED / NOT FILLED / REJECTED BY ME / KILLED BY SKEPTIC / FAILED RISK CHECK), entry, exit, P&L in $, P&L in R (R = the risk at entry).
For names that were killed or rejected, also log what the trade would have made. Trades not taken matter too.
Every Friday write /workspace/desk/journal/week-YYYY-WW.md:
- live results vs what the backtest expected
- did Skeptic's KILLs save money or cost money?
- up to 3 new lessons, appended to /workspace/desk/lessons.md
After 20+ live trades, if the average R is below half of the backtest's average R, mark the strategy DECAYING and tell me.
You never size, approve or place trades.Then New > select all 6 bots > name the group Desk. A group holds 2 to 6 bots, which is why your desk is 6 bots plus you Groups
Approval cards never show up in a group chat, so approvals happen in your 1:1 chat with Risk.
Turn on its phone alerts: Risk > View conversation details > Bot settings > NotificationsSettings
Last move, in a 1:1 chat with Quant:
Set up our desk on this computer:
- folders /workspace/desk/inbox, /workspace/desk/journal and /workspace/desk/quant (make quant a git repo)
- an empty /workspace/desk/lessons.md
- /workspace/desk/setup.sh that reinstalls every tool we use (Python, alpaca-py, yfinance, pandas) and sets git user.name and user.email, because a computer update removes installed packages but keeps files
Run setup.sh now and show me the folder tree.Why a separate Skeptic? Because Jane Street grades its own AI the same way: "good code is code that compiles and passes tests".
Watch how their AI team built that (seriously, check it out, it's worth the 15 minutes)
Your result: a 6-bot desk where every seat is one Jane Street rule
03. Feed It Real Data, Not Noise
The best trading data is free, public and boring:
Now the trap that catches everyone
Your screen shows a dozen insiders buying the same stock. Huge, right? Then you look closer: small amounts, mid-level titles, all on the same filing day
Not a dozen people betting their own money. Usually a pay plan. The fix is one line, already in Scout's rules: flag anything that looks like a batch
Send this to Scout once:
Do a dry run for the last trading day. Use only your sources and rules. Show me every name you passed, every name you rejected and why, and every batch you flagged. Then save this process as a skill called "morning scan".A skill makes the bot repeat the process the same way every time Skills
Your result: Scout knows where the signal is and what noise looks like
04. Get a Hedge Fund Brief Before the Open
Now it runs without you. One alarm clock starts the morning, and each bot hands off to the next with a "file ready" message.
Those lines are already in the descriptions. If Scout runs late, the chain waits instead of breaking bot to bot messages
You need just two routines, each created in its owner's chat
Scout, the alarm clock:
Create a routine you own:
- Schedule: Monday to Friday, 5:30 AM, America/New_York
- Do: the "morning scan" skill
- Input: filings and news since the last market close
- Result: /workspace/desk/inbox/YYYY-MM-DD-scout.md, then message Analyst: "scout file ready"
- Approval: none, you only read sources and write files in /workspace/desk/inbox
- If a source is down: name it at the top of the file and continue with the restRisk, the backstop:
Create a routine you own:
- Schedule: Monday to Friday, 8:30 AM, America/New_York
- Check: did Skeptic message you "skeptic file ready" today, and did you send me today's tickets?
- If not: send me "CHAIN BROKEN" and name the missing file in /workspace/desk/inbox
- Approval: none, you only read files and message meTest run does real actions, so test the full chain after Step 07, once Risk's tools exist
Why approve by hand? Approvals from routines and other bots expire after about 10 minutes Security. So Risk only sends tickets. You reply "approve 1 and 3" and tap Allow once
Your result:before the open your phone buzzes with a brief and 0 to 5 tickets. If anything broke, you know by 8:30. While you slept, four bots did a research desk's morning shift
05. Prove the Strategy Before Money
The step 90% of people skip. Before a single paper share, Quant proves the idea on history
GrokBot sends heavy coding like this to Opus 5.5, the model Optiver said "posted the highest score we've recorded on one desk's trading-support suite"
Starter idea: C-suite insider buys held 5 days, from the study above. Not magic. Public, free, and with a published result to check your code against
Paste into your 1:1 chat with Quant:
Build and test our first strategy. Jane Street rules apply
Idea: buy US stocks after a CEO, CFO, COO, President or Chair makes an open-market purchase (Form 4, code P) of $100K+. Skip batch filings. Only stocks with $20M+ average daily dollar volume.
Trade: buy at the next open after the filing is public. Stop at 2x ATR(14) below entry. Exit after 5 trading days.
Data: the SEC's free Insider Transactions Data Sets (https://www.sec.gov/dera/data/form-345) for filings, yfinance for daily prices.
Known bias: yfinance has no delisted stocks, so results will look better than reality (survivorship bias). Count every signal you couldn't price, report that number, and treat the result as a best case.
Steps:
1. Write the tests first: no look-ahead (a trade can only use filings public before entry), costs included, holdout untouched.
2. Check our data first: replicate the 5-session result of this study with the study's own filters, not ours: https://blog.quantinsti.com/sec-form-4-insider-trading-python-event-study/
3. Then apply our filters and trade rules, and backtest everything except the last 12 months.
4. Make up to 5 changes, one at a time, each logged in changes.md.
5. Run the holdout once.
6. Tell me in plain words: edge or no edge, and why.Watch three things:
And Fable 5.5?
Here's my own GrokBot with Claude connected:
When Fable 5.5 is out for everyone, you run it through this bot, and the whole desk works exactly the same as with Opus 5.5. Just stronger and faster
Your result: a backtest with a locked holdout and a plain-words verdict. Both answers win. "No edge" just saved you real money
06. Make the Skeptic Kill Bad Trades
Your most important seat. Same idea as the bull vs bear debate in TradingAgents, the biggest AI trading repo on GitHub (~98K stars) TradingAgents
Its morning job is set. Add a weekly audit in your 1:1 chat with Skeptic:
Create a routine you own:
- Schedule: every Sunday, 6:00 PM, America/New_York
- Do: audit /workspace/desk/quant with fresh eyes. Run every test yourself. Check the git history for deleted, skipped or weakened tests, and for any run that used the holdout twice.
- Result: a report to me in this chat, every result rated PASS, FAIL or INCONCLUSIVE with one line why
- Approval: none, you only read files and run tests
- If the tests can't run: rate everything INCONCLUSIVE and tell me whyYour result:the agent that writes the code is never the one that grades it. That's Jane Street rule 4 in practice
07. Lock the Risk Rules in Code
A rule in chat can be talked around. A rule in code can't
Paste into your 1:1 chat with Quant (Quant builds it, Risk uses it):
Build the desk's safety layer in /workspace/desk and commit it to git:
1. limits.json:
{"risk_per_trade_pct": 1.0, "max_open_positions": 5, "max_position_pct": 10, "max_daily_loss_pct": 3, "paper_only": true}
2. risk_check.py TICKET.json: reads the paper account from Alpaca, checks the size (shares = equity x 1% / (entry - stop), rounded down, capped by max_position_pct) and every limit, prints PASS or FAIL with reasons, exits 1 on FAIL. Also FAIL if /workspace/desk/KILL or /workspace/desk/PAUSE exists.
3. place_order.py TICKET.json: runs risk_check.py first and stops on FAIL. Sends ONE order with alpaca-py on the PAPER account only (paper=True hardcoded): a DAY limit buy with the stop attached as an OTO order, so the stop goes live the moment the entry fills. Not filled by the close = cancelled, logged as NOT FILLED.
4. exit_due.py: for every position on its 5th trading day, cancel its stop and sell at market. Log every exit.
5. kill.py: creates /workspace/desk/KILL, cancels all open orders and lists open positions.
6. Tests for every limit and for the size formula, including one that proves place_order.py refuses when KILL exists.
Read the keys from /workspace/desk/.env. Never print them.Then the keys. Never in chat. Send to Quant:
Open /workspace/desk/.env in a text editor on your screen with these two lines, then stop and wait for me:
ALPACA_API_KEY=
ALPACA_SECRET_KEY=Choose Take over, paste your paper keys, save, choose I'm done. That's the official way to handle secrets Security
Last, give Risk its closing routine, so no position hangs past day 5:
Create a routine you own:
- Schedule: Monday to Friday, 3:45 PM, America/New_York
- Do: run /workspace/desk/exit_due.py
- Result: tell me in this chat what it closed
- Approval: none, exit_due.py only closes positions
- If the account can't be reached: tell me right awayTest it: ask Quant to run the tests and one fake ticket. Then write KILL to Risk, check nothing can go out, and have Quant delete the KILL file
Your result:every position is sized by formula, stopped the second it fills, and closed on day 5 even while you sleep. The AI can propose anything. Code decides what reaches the market
08. Make It Learn Every Friday
Most traders track the trades they took and never the ones they skipped. Your Journal tracks both
In your 1:1 chat with Journal:
Create two routines you own:
1. Monday to Friday, 4:30 PM, America/New_York: update /workspace/desk/journal/trades.csv from the account, today's tickets and today's skeptic file. If a source is missing, log the gap and continue.
2. Every Friday, 5:00 PM, America/New_York: write the weekly review and send me its 5 most important lines in this chat.
Approval: none, you only read data and write files.Three things you'll learn in a month:
Every lesson goes into lessons.md, and every bot reads it before every task
Your result: a desk that grades itself and gets smarter every Friday
Part 3 - Run It
A Day at Your Desk
Weird day? Write PAUSE to Risk. No new tickets until you write RESUME
Your part: one brief, a few taps
Your First Month
The Prompt Pack
The 6 bot descriptions and all routines are above. Here's the rest
Desk health check (any bot):
Check the desk: list every routine and its last run, every file in /workspace/desk/inbox from today, and anything missing or stale. Rerun /workspace/desk/setup.sh if a tool is gone.Pause and kill (Risk):
PAUSEKILLResearch a new idea (Quant):
New idea: [describe it]. Same Jane Street rules: tests first, holdout locked, one change at a time, max 5 changes, holdout once. Give me edge or no edge in plain words, then ask Skeptic to audit it before I see any ticket.Fresh-eyes audit (Skeptic):
You did not write the code in /workspace/desk/quant. Find look-ahead bias, missing costs, survivorship bias, overfitting and any weakened test. Rate each result PASS, FAIL or INCONCLUSIVE, and send me the report.Weird day (Scout):
Something big is happening. Summarize what moved, why, and which of our positions are exposed, with a source for every claim. Mark anything unconfirmed UNVERIFIED.Go-live check (Journal):
I'm thinking about going live. Show me paper results vs the backtest, the number of trades, the worst day, and every rule I broke. Tell me plainly if I'm ready.The Shift
A trading desk used to mean a floor full of people. Now it's 6 bots, one folder, and you
Jane Street grew from about 35 people to about 3,500. AI is all over their stack. And Minsky still says:
"I have never been more desperate to hire more engineers and more traders than I am today"
AI didn't replace their people. It made every person's judgment worth more
Same for you:
Most people will keep asking AI for "the best trade"
The few who build the system around it will still be trading next year...
Bookmark this before you build your desk:@51bodila











