Tauntaun

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.

Signals
4
Sources
ETFs Tracked
Paper Trades
View Live Signals ↓
Tauntaun
TAUNTAUN
BULLISH · LONG
The ugly thing that keeps you alive.
vs
Wampa
WAMPA
BEARISH · SHORT
The thing that hunts you.

Live Intelligence

Signal Feed

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.

Signals Last updated:
Loading signals...

Architecture

How It Works

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 Sources
FRED · RSS · GPR · ORALE
Fusion Engine
Conflict resolution · Confidence scoring
Execution
Alpaca paper trades · Position sizing
📊
FRED Macro
9 economic indicators from the Federal Reserve — unemployment, CPI, yield curve, payrolls, GDP, consumer sentiment, manufacturing, jobless claims, Fed balance sheet. Each maps to specific ETF trades.
FRED
📰
RSS News Scanner
8 feeds (BBC, Al Jazeera, CNBC, MarketWatch, Federal Reserve, Yahoo Finance, Seeking Alpha, Defense News). 9 theme detectors scan 200+ articles per run. Volume spikes against 7-day rolling average = something's happening.
RSS
🌍
Geopolitical Risk Index
The Caldara-Iacoviello GPR Index, published by Federal Reserve economists. 15,000+ daily observations back to 1985. Z-score based — when risk exceeds 2 standard deviations, that's crisis territory. Currently: crisis level.
GPR
🔮
Prediction market intelligence from our sibling system ORALE — tracking 733 whale wallets on Polymarket and nowcasting macro indicators against Kalshi. Translates prediction market signals into equity implications.
ORALE
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.

Execution

Trade Log

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.

⚠️ PAPER TRADING ONLY. This system is in validation phase using Alpaca's paper trading (simulated $100K). No real money is at risk. Past signals do not predict future performance. We show losses as prominently as wins — cherry-picking kills credibility.
Tauntaun (Long)
Wampa (Short)
$100K
Paper Capital
$0
API Cost / Day
Loading trades...

Build Log

The Journal

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.

DAY 001 · March 28, 2026 Build Lessons First Signals

The Tauntaun Wakes Up

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.

What We Built

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.

Lesson: GDELT Is Unreliable

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.

Lesson: The GPR Index Is Gold

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.

Lesson: Start With stdlib

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.

First Live Scan: 13 Signals

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.

The Decision: No AI (Yet)

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.

DAY 001 · March 28, 2026 Honest Assessment Lessons

9 Bugs Found Before Monday

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 Cache Bug (Severity: High)

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.

The Signal Conflict Bug (Severity: High)

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.

The Full List

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.

For the Nerds

Under the Hood

The full stack. No cloud services. No API costs. No AI tokens. A Mac Mini, Python, and free data sources.

🖥️
Infrastructure
Mac Mini M4 · macOS launchd daemon · Runs every 30 min Mon-Fri 6AM-1:30PM PT · 5-minute kill switch prevents hangs · Auto-restarts on crash · Zero cloud dependency
🐍
Stack
Pure Python 3.13 · uv package manager · httpx + urllib for HTTP · xlrd for GPR Excel parsing · feedparser for RSS · No ML libraries · No AI SDKs
🔐
Security
API keys in macOS Keychain (not env vars) · Private GitHub repo · No personal info in code · Trade data gitignored · Paper trading only — no real money access
💰
Cost
Near-zero operating cost · FRED API key (free) · RSS feeds (free) · GPR Index (free, published by Fed) · Alpaca paper trading (free) · ORALE data (local files)
🤝
Sibling system tracking 733 whale wallets on Polymarket · Macro nowcasting against Kalshi · Contrarian filter (the core edge) · Feeds into Tauntaun via bridge module
🗺️
Roadmap
Phase 1: Paper trading validation (2-3 weeks) · Phase 2: Add AI reasoning at proven failure points · Phase 3: Backtesting against 2022 rate hike cycle · Phase 4: Live trading (maybe)