Market Synthesis: AI Engine for Macro Imbalances
Built for investment teams that want earlier warning of market regime breaks, with reasoning they can audit.
Most large drawdowns do not come from small forecasting errors. They come from sudden shifts in policy, liquidity, correlation, or narrative.
Market Synthesis is designed to flag those shifts before they are obvious in price alone.
The core idea: Soros-style imbalance detection
The system is built around a simple market reality: when market narrative and structural reality diverge, price can move violently when that gap closes.
This is the same style of thinking behind classic macro dislocation trades:
Narrative"] -->|"diverges from"| B["βοΈ Structural
Reality"] B -->|"tension builds"| C["ποΈ Policy
Defense"] C -->|"credibility breaks"| D["π₯ Violent
Repricing"] D -->|"new consensus forms"| A style A fill:#eef4ff,stroke:#4f7ee8,color:#0f2b57 style B fill:#fef3c7,stroke:#d97706,color:#78350f style C fill:#fee2e2,stroke:#dc2626,color:#7f1d1d style D fill:#dcfce7,stroke:#16a34a,color:#14532d
Soros-style reflexivity cycle β Market Synthesis detects the gap between narrative and reality
Market Synthesis is designed to detect those high-tension setups early and score how actionable they are.
What this project does
Market Synthesis is a decision-support engine for macro and multi-asset teams.
Given an event context and relevant market narrative, it produces:
- a directional view (
long,short,neutral) - a confidence score (0-100)
- a structured explanation of why that view was reached
The goal is not to replace PM judgment.
The goal is to improve speed, consistency, and challenge quality in portfolio decisions.
Why this is more than βone model, one opinionβ
A single agent can sound convincing while missing the best counter-argument.
This framework forces internal disagreement before a conclusion is allowed.
Multi-stage orchestration flow (production logic)
Guardian / GNews / NYT APIs
Fetches real contemporaneous
news coverage"] ENRICH --> CLASS["π Classifier
Sonnet 4.5
Routes to 1 of 7 domains"] subgraph PARALLEL1["Round 1: Domain-Specific Debate (parallel)"] direction LR PROS["βοΈ Prosecutor
Haiku 4.5
Category-specific
argues FOR the gap"] DEF["π‘οΈ Defender
Haiku 4.5
Category-specific
argues AGAINST"] EXPERT["π¬ Domain Expert
Sonnet 4.5
Specialist analysis"] end CLASS -->|"routes Prosecutor + Defender
+ Expert by category"| PARALLEL1 PROS --> ADJ DEF --> ADJ EXPERT --> ADJ ADJ["βοΈ Adjudicator
Sonnet 4.5
Synthesizes all arguments
Direction + confidence + horizon"] subgraph PARALLEL2["Round 3: Post-verdict (parallel)"] direction LR TRADE["π― Trade Expression
Haiku 4.5
Maps verdict to correct
tradeable direction"] CAL["π Calibration Agent
Haiku 4.5
Adjusts probability for
ECE optimization"] end ADJ --> TRADE ADJ --> CAL TRADE --> OUTPUT["π Final Verdict
Direction Β· Confidence Β· Reasoning"] CAL --> OUTPUT style INPUT fill:#1d4ed8,stroke:#153ca8,color:#ffffff style ENRICH fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f style CLASS fill:#f0f9ff,stroke:#0284c7,color:#0c4a6e style PARALLEL1 fill:#eef4ff,stroke:#4f7ee8 style PARALLEL2 fill:#f0f9ff,stroke:#0284c7 style PROS fill:#dcfce7,stroke:#16a34a,color:#14532d style DEF fill:#fee2e2,stroke:#dc2626,color:#7f1d1d style EXPERT fill:#fef3c7,stroke:#d97706,color:#78350f style ADJ fill:#e0e7ff,stroke:#4f46e5,color:#312e81 style TRADE fill:#fef3c7,stroke:#d97706,color:#78350f style CAL fill:#f0f9ff,stroke:#0284c7,color:#0c4a6e style OUTPUT fill:#1d4ed8,stroke:#153ca8,color:#ffffff
8-agent adversarial orchestration β enrichment feeds real news into domain-specialized Prosecutor, Defender, and Expert agents
This creates practical advantages over single-agent output:
- Real news enrichment: debates are informed by actual contemporaneous coverage, not thin descriptions.
- Full domain specialization: all 3 debate agents (Prosecutor, Defender, Expert) use category-specific prompts β 7 Γ 3 = 21 specialized prompt templates.
- Lower one-sided bias: every thesis is stress-tested before scoring.
- Better calibration: confidence is corrected after adjudication, not guessed in one pass.
- Deterministic guardrails: when the systemβs own signals say βno trade,β direction is forced to neutral.
Why this matters for PMs, CIOs, and risk teams
- Faster escalation: identifies events that deserve immediate committee attention.
- Cleaner IC process: provides a structured prosecution-vs-defense brief in one artifact.
- Cross-team alignment: discretionary and risk functions review the same rationale.
- Portfolio protection: supports earlier hedging and exposure rebalancing.
Evidence snapshot
v38 full portfolio backtest (140 trades, 12 years, real news feeds, adversarial exit system, market-data-driven entry gates):
| Metric | Value |
|---|---|
| Coverage | 2014-01-01 to 2026-06-01 (12 years) |
| Dates of news indexed | 6,155 |
| Headlines indexed | 632,000+ (Guardian + NYT + GDELT + FOMC + EDGAR) |
| Trades executed | 140 |
| Win rate | 83.6% (117 wins / 23 losses) |
| Median P&L per trade | +10.7% |
| Mean P&L per trade | +54.8% (excl. Venezuela hyperinflation outliers) |
| Worst trade | -19.4% (bounded by vol-based stop-loss) |
| OOS validation (2023 onward) | 42 trades, 81% WR, +9.2% median |
| Cost per emitted signal | ~$0.04 (8 API calls per debate) |
Per-category performance (v38)
| Category | Trades | Win Rate | Mean P&L | Median P&L |
|---|---|---|---|---|
| Commodity | 46 | 100% | +23.5% | +10.3% |
| Geopolitical | 20 | 90% | +25.1% | β |
| Sovereign Debt | 30 | 80% | β | +17.5% |
| Central Bank | 16 | 69% | +35.7% | β |
| Currency Peg | 10 | 70% | +108.9% | β |
| Real Estate | 14 | 64% | +38.8% | β |
Net of costs (IBKR fee model)
| Metric | Value |
|---|---|
| Net win rate | 77.1% |
| Net median P&L | +9.81% per trade |
| Average cost drag | 2.46% per trade |
| Sharpe ratio | 0.457 |
Reading the numbers: these are real P&L numbers from a full backtest against yfinance historical prices. For each signal, the system enters a position in the category-appropriate instrument via an LLM instrument selector with coherence gate. The adversarial exit system (same debate structure as entry) runs periodically until the narrative-reality gap closes. A volatility-based stop-loss (3-sigma of 5-day returns) is the only mechanical override.
Commodity is the standout category at 100% win rate across 46 trades. Geopolitical runs at 90% over 20 trades. These are classic Soros-style setups where structural supply/demand imbalance or policy impossibility creates a clear gap that the market is slow to price.
Out-of-sample holds up: the 42 trades from 2023 onward (unseen during development) maintain 81% win rate and +9.2% median, confirming the system generalizes beyond the training window.
Entry gates are market-data-driven, not hard-coded rules. Each gate uses observable market signals (bond momentum, FX levels, equity drawdowns) to filter trades where the move is already priced in. This makes the gates generalizable and auditable.
Full methodology: Methodology | Full findings: Findings | Exit system: Exit System
Domain expert routing
Events are classified into 7 specialized categories, each with a purpose-built expert:
| Category | Expert Focus | v38 Trades |
|---|---|---|
| Commodity | Supply chains, physical markets, storage | 46 |
| Sovereign Debt | Debt sustainability, contagion, restructuring | 30 |
| Geopolitical | Sanctions, trade wars, regime changes, EM crises | 20 |
| Central Bank | Monetary policy, rate cycles, plumbing | 16 |
| Real Estate | Bubbles, valuations, reflexivity | 14 |
| Currency Peg | FX reserves, peg mechanics, carry trades | 10 |
| Market Structure | Leverage, short squeezes, flash crashes, LDI | β |
Practical deployment model
Use as a decision-support layer, not autonomous execution:
- weekly macro/risk review feed
- watchlist prioritization
- hedge scenario challenge
- pre-trade thesis stress test
Read next
- For Funds (business case + user guide)
- Tradability (entry/exit algorithm)
- Findings (v38 evidence)
- Methodology (pipeline architecture)
- Exit System (adversarial exits)
- Technical summary
research project