How a 32-Agent AI Hedge Fund Beats a Single-Model Bot
Single-model bots have one model and one opinion. Real hedge funds have departments, vetoes, and an emergency reflex. iQntX is what happens when you port that org chart to AI agents.
The single-model bot's eulogy
Every retail trading forum has a thread that looks like this: "It worked for six months. Then last Thursday it took a position right before NFP, the spread blew out, the stop didn't fill at my level, and I lost 18% in three minutes."
The eulogy is always the same. The strategy was good. The risk management was bad.
But "the risk management was bad" is the wrong diagnosis. The risk management was the same model as the strategy, with a setting called "stop loss" in its config. When the model was wrong, the stop was in the wrong place. When the regime changed, the stop didn't recompute. When the bot was overconfident, nothing pushed back.
You cannot fix this by adding more parameters. You fix it by adding separation of concerns.
How real funds solve this
A real hedge fund is not one person with a really good Excel model. It is an org chart:
- The macro desk thinks about risk on / risk off and doesn't trade.
- The strategy desk identifies setups and doesn't decide size.
- The risk desk vetoes positions and doesn't generate ideas.
- The execution desk works the order and doesn't pick stops.
- The CIO sets the firm's stance and doesn't fire every trade.
- The compliance officer can stop everything.
Each role is owned by a different person (or team), with different incentives, different KPIs, and different lines of accountability. No single person owns the whole trade. This is what survives a 30-year career instead of a 30-day winning streak.
iQntX ports this org chart to 32 AI agents.
The 32-agent org chart, in one diagram
┌─────────────┐
│ CEO Agent │ sets stance, holds weekend
└──────┬──────┘
│
┌───────────────────┼───────────────────┐
│ │ │
┌──────▼──────┐ ┌───────▼───────┐ ┌─────▼─────┐
│ Macro │ │ Risk Dept │ │ Strategy │
│ Officer │ │ (5 agents) │ │ Dept │
│ (research) │ │ veto layer │ │ (10+ ag.) │
└─────────────┘ └───────────────┘ └─────┬─────┘
│
┌──────▼──────┐
│ Execution │
│ Dept (4) │
│ orders+sigs │
└──────┬──────┘
│
┌──────▼──────┐
│Intelligence │
│ Dept (8) │
│ self-learn │
└─────────────┘
┌────────────────────┐
│ Watchdog Process │ ← outside the org graph
│ L4 HALT override │ CEO cannot demote
└────────────────────┘
What each department actually does
CEO Agent (1 agent)
Sets the firm's stance: AGGRESSIVE / NORMAL / DEFENSIVE / LOCKDOWN. Holds positions over weekends or closes them. Declares code-red on broker margin events. Reads philosophy + macro + risk + strategy outputs and chooses the firm's posture.
Macro Officer (1 agent)
Independent research desk. Reads geopolitics, central bank commentary, broker mail, cross-asset shocks. Outputs an independent stance (RISK_ON / RISK_OFF / MIXED / CRISIS). Crucially, the Macro stance does not equal the CEO stance — they are two opinions, and divergence is itself a signal.
Risk Department (5 agents)
- EmergencyAgent — fail-closed reflex; watches invariants and escalates to L1–L4.
- PanicControlAgent — manages position closure during stance flips to DEFENSIVE/LOCKDOWN.
- RiskGateAgent — per-trade veto. Stance × size × DD headroom × correlation × news window × spread.
- ExposureManagerAgent — manages aggregate exposure across symbols and currency baskets.
- AdaptiveParamsAgent — adjusts risk-per-trade and SL/TP defaults based on recent regime.
Strategy Department (10+ agents)
- StrategistAgent — top-level setup proposal.
- StrategyBankAgent — maintains the active strategy bank (which setups are currently allowed for the active stance).
- StrategySwitcherAgent — rotates strategies as regime changes.
- ConfluenceAgent — combines multiple weak signals into a strong one.
- BacktestAgent — runs setup against historical data before signing.
- MeanReversionAgent, PatternsAgent, and 4 tier-1 to tier-4 expansion agents — specialized setup generators.
Execution Department (4 agents)
- TradesManagerAgent — orchestrates open positions (modify, partial close, BE).
- CoordinatorAgent — builds the final context for the EA (orders, parameters, stops).
- FactCheckerAgent — re-verifies inputs are still true at signing.
- DoubleCheckerAgent — blind second opinion from a different agent.
Intelligence Department (8 agents)
- NewsAgent — ingests Tier-1 economic events.
- CalendarAgent — maintains the trading calendar (holidays, half-days, sessions).
- JournalAgent — writes every decision to markdown + Postgres.
- SelfOptimizerAgent — nightly review of what worked / what failed.
- HourlyReportWriter, DailyReportWriter, WeeklyReportWriter, MonthlyReportWriter — auto-generated narratives.
That's 32 agents (one for each role above, plus tier-1–4 expansion agents). Each runs the same 10-step lifecycle. None is special.
The math of survival
Here is the survival argument in cold numbers. Suppose each independent veto gate catches 60% of bad trades the previous gate would have missed:
A single-model bot catches 60% of bad trades. A 3-gate system catches 93.6%. Adding the watchdog brings the catch rate to ~99% for the kind of bad trade that blows accounts.
These numbers are illustrative, not measured — the point is the compounding effect of independent filters. The math is the same whether the filters are humans or agents.
The 0.6 catch rate assumes each gate is independent. If the gates are correlated (e.g., all three are the same LLM with slightly different prompts), the compounding collapses. iQntX uses different agent types, different inputs, and different decision criteria per gate — Risk Gate checks numbers, FactChecker re-verifies inputs, DoubleChecker is a blind LLM. The independence is engineered.
The 10-step agent lifecycle
Every agent in the fund runs the same loop on every wake-up:
- Read philosophy — Reload
context/philosophy.md. - Read own context — Load this agent's working notes.
- Read active stance — Pull current CEO stance from
app_state. - Read the bus — Consume new messages on subscribed topics.
- Form a hypothesis — Apply skills (
skills/iqntx-*/SKILL.md). - Consult — Call the LLM Router with the relevant skill.
- Propose — Emit a draft message to the bus (unsigned).
- FactCheck — Wait for FactChecker re-verification.
- DoubleCheck — Wait for blind second opinion.
- Journal — Write the decision and outcome to disk + Postgres.
No agent skips a step. No agent is special. The Risk Gate runs the same 10 steps the Strategist does. The CEO runs the same 10 steps the StrategyBank does.
Inter-agent communication: a Postgres message bus
Agents do not call each other directly. Every message goes through public.agent_messages:
SELECT from_agent, to_agent, topic, payload, signed_by
FROM agent_messages
WHERE created_at >= NOW() - INTERVAL '5 minutes'
ORDER BY created_at;
This single table is the durable record of every signal in the fund. You can replay any minute of the fund's life by SELECTing the rows from that window. Postgres LISTEN/NOTIFY wakes consumers in real time, so the bus is low-latency despite being durable.
What this beats, and what it doesn't
iQntX is engineered to beat:
- Single-model bots that have nothing to veto them.
- Copy-trading services that have no audit trail of why a trade was taken.
- Discretionary trading under stress, where a 0.4% drift on Friday afternoon ends a prop account.
- Unsupervised EAs that auto-recover from halts without telling the operator.
It is not engineered to beat:
- Truly low-latency strategies (HFT, market-making) where 50–200 ms of decision latency is fatal.
- A senior discretionary trader who is not under stress and has decades of intuition.
- A real hedge fund with $1B+ AUM, which can afford a custom data infrastructure iQntX cannot replicate.
If you are competing in any of those niches, this is not the tool. If you are a retail or prop firm trader who wants institutional discipline at retail cost, this is exactly the tool.
What to read next
- Building Multi-Agent Trading Systems with Claude — the LLM-routing layer in detail.
- The Anatomy of a Drawdown — why survival is mathematically prior to return.
- Why Most MT5 EAs Fail (and What We Did Differently) — the EA-level story.
- Sharpe Ratio Explained for Retail Traders — the metric you should care about.
How to try it
iQntX is in private cohorts. Join the waitlist — early-access pricing locks at signup, and you can leave at any time.
Writes about multi-agent AI trading architecture, hedge-fund operations, and risk discipline for retail and prop-firm traders.
Questions readers ask about this
If you find a question we should add, send it to hello@iqntx.com.
Why 32 agents specifically — why not 10 or 50?
Because 32 maps to the role chart of a small institutional desk: a CEO, a research desk, five departments of 4–8 specialists each. Below 10 agents you don't have separation of concerns; above 50 you have message-bus overhead with diminishing returns. 32 is the smallest number that lets every concern have a dedicated owner without one agent doing two unrelated jobs.
Doesn't running 32 agents simultaneously cost a fortune in LLM calls?
It would if every agent called the API on every cycle. iQntX uses subscription-first routing — Claude Max x20 and Codex CLI take the majority of calls, with the per-token API used only as fallback. The cost-per-decision is roughly equivalent to a single API-call-per-decision system, because most agents are reusing prior reasoning from the journal.
What stops the agents from disagreeing forever?
Three mechanisms: max-depth on conversation chains (any agent loop terminates within N rounds), idempotency keys (the same proposal can't be re-emitted), and the FactChecker — a decision must be re-verified against current state before it's signed. If state has changed enough to invalidate the original premise, the conversation dies and a fresh proposal must be made.
What if the LLM hallucinates a trade?
The Strategy Department's proposal is one of three signatures required. The Risk Gate vetoes based on numerical state (drawdown, exposure, news window) that the LLM does not own. The FactChecker re-verifies inputs were still true at signing. A hallucinated trade has to pass three independent agents who can each reject it on objective grounds.
How does this beat a single LLM with good prompts?
A single LLM with good prompts is still one decision-maker. It has no veto, no second opinion, no emergency override. When market regime changes, the prompt doesn't know. When the LLM is overconfident, nothing pushes back. Separation of concerns is the only architectural answer that doesn't depend on the LLM being right every time.
Can you actually replay every decision?
Yes. The agent_messages table is an append-only log of every message ever sent between agents, with full payloads. context/journal/ is a markdown mirror of the same data, organized chronologically by date and instrument. SELECT * FROM agent_messages WHERE created_at BETWEEN ... AND ... reproduces any minute of the fund's life.
What's the minimum hardware to run this?
4 vCPU, 8 GB RAM, 60 GB SSD on a Windows 10/11 or Windows Server 2019+ machine. Most operators use a Windows VPS in their broker's preferred region. The 32 agents are coroutines in a single Python process under NSSM, so the actual concurrent CPU load is small.
Keep reading
RelatedWhat Is Multi-Agent Trading? (And Why It Beats Single-Model Bots)
What Is an AI Hedge Fund? (And How It's Different From a Trading Bot)
LLM Trading System Architecture: From Research Paper to Production
Ready to put this on autopilot?
The waitlist is your fastest path to a private cohort. We open in waves so the system never gets in front of itself.