Survive the cold.
An autonomous trading intelligence system that fuses macro-economic data, geopolitical risk, news sentiment, and prediction market signals into executed trades. Fusing macro data, geopolitical risk, news sentiment, and prediction market signals into actionable trades.
Every signal the system has detected — from macro indicators to geopolitical risk to prediction market whale activity. Click any row to drill into the detail. Updated every 30 minutes during market hours.
Four independent data sources. One strategy engine. One goal: detect when the present disagrees with the market. The system detects when the present disagrees with the market — and acts on it.
Signal Fusion: When multiple sources independently agree → confidence scales up. RSS detects 57 military conflict articles + GPR at crisis z=2.25 → ITA confidence: 82.5% Conflict Resolution: Same symbol, opposite directions → net confidence. RSS says SHORT TLT (inflation) vs GPR says LONG TLT (safety) Net = too close to call → skip both. No guessing. Position Sizing: Confidence × max position size, capped by risk rules. Max 5% of portfolio per position · Max 10 concurrent positions · Max 50% invested Sector concentration limits · Stop loss at -5% · Take profit at +8% Cost: $0.00/day. Minimal operating costs (FRED key is free). Runs on a Mac Mini via launchd every 30 minutes. AI analysis added where data proves it helps.
Every trade decision the system has made — including dry runs during market-closed hours. Full attribution: which signals triggered it, at what confidence, for how much.
An honest record of building an autonomous trading system from scratch. What worked, what didn't, what we learned. No hype, no hindsight editing. The ugly truth about riding a tauntaun through a blizzard.
We've been running ORALE — a prediction market intelligence system — for days. Nowcasting macro indicators against Kalshi, tracking 733 whale wallets on Polymarket, finding contrarian edges in cheap tokens. The backtest showed 43 winning configs. But prediction markets are a sideshow. The real money moves through equities. Today we decided to stop watching and start trading.
Alpaca paper trading account connected. $100K in simulated capital, real market data, real fills. Zero risk while we prove the system works.
Four signal sources wired into one strategy engine:
1. FRED Macro — 9 economic indicators (unemployment, CPI, yield curve, payrolls, GDP, consumer sentiment, manufacturing, jobless claims, Fed balance sheet). Each maps to specific ETF trades. Yield curve inverts → short SPY, buy TLT.
2. RSS News Scanner — 8 feeds, 211 articles scanned on first run. 9 theme detectors: military conflict, oil/energy, trade wars, recession fear, inflation, rate cuts, sanctions, banking crisis, tech disruption.
3. GPR Index — The Caldara-Iacoviello Geopolitical Risk Index, published by Federal Reserve economists. 15,000+ daily observations back to 1985. Today's reading: 335 with a z-score of 2.25. Crisis level.
4. ORALE Bridge — Reads our existing nowcast and swarm data. Translates prediction market signals into equity implications.
Our original plan used GDELT for geopolitical monitoring. Reality: SSL timeouts, aggressive rate limiting, connection resets. The fix? RSS feeds. Ancient technology. Also bulletproof — no API keys, no rate limits, never down. Boring + reliable beats fancy + fragile.
Published by Fed economists, free to download, 40 years of daily data. At 335 with a z-score of 2.25, it's telling us geopolitical risk is in crisis territory. The RSS feeds independently confirmed why. Two different data sources, same conclusion. That's signal, not noise.
httpx had SSL issues with some APIs. Python's built-in urllib worked
everywhere. Start with stdlib. Add dependencies when you have a reason, not a preference.
The system's first read of the world: geopolitical crisis is real, defense and commodities up, equities down. ITA (defense) at 82.5% confidence from RSS + GPR converging independently. GLD (gold) at 77.1% from three separate sources agreeing on safe havens.
Run dumb. Collect data. Add intelligence where the data proves it's needed.
We considered adding AI analysis to every pipeline run. Cost: ~$2-3/day. We decided against it. Not because AI can't help, but because we don't yet know where it helps. The deterministic system will make mistakes. Those mistakes are data. After 2-3 weeks, we'll know exactly which trades failed because keyword matching couldn't interpret context. That's when AI gets added — with a measurable target, not a guess.
Before letting the system trade real paper money on Monday, we tore it apart looking for problems. Found 9. The scariest: the RSS scanner is effectively blind after its first run of the day, and the system could try to buy AND sell the same ETF simultaneously.
The RSS article cache deduplicates by title. Once we've seen an article, it's never counted again. First run: 211 articles, all new → detects military conflict spike. Second run: same articles still in feeds → "0 new" → no spike detected.
This means after the first scan of the day, the system is blind to developing stories. A war could escalate and we'd miss it because we already "saw" those articles.
RSS says SHORT TLT (inflation fears) while GPR says LONG TLT (flight to safety). The strategy engine treats these as separate candidates. It could try to buy AND sell TLT in the same run.
Fix: after fusion, net opposing signals. If LONG TLT is 0.48 and SHORT TLT is 0.57, net is SHORT with confidence 0.09 — too low to trade. Skip both. Conflicting signals cancel each other out.
1. RSS cache bug — blind after first daily scan [HIGH] 2. Signal conflicts — could buy AND sell same ETF [HIGH] 3. Clock check after signals — wastes 18 seconds [LOW] 4. GPR downloads 15K rows every 30 min [LOW] 5. Serial signal collection — could be parallel [MED] 6. Individual price lookups — could be batched [LOW] 7. Hardcoded price estimates go stale [MED] 8. ORALE data staleness not logged [LOW] 9. No limit orders for live trading [FUTURE]
Find the bugs before the bugs find your money.
The full stack. No cloud services. No API costs. No AI tokens. A Mac Mini, Python, and free data sources.