SAURON VISION

The All-Seeing Trading Intelligence Platform

Autonomous, multi-asset trading across stocks, forex, commodities, options, crypto, and CFDs — unified by a closed-loop intelligence engine that generates signals, gates risk across themes, executes through six brokers, grades every outcome, and feeds the result back into the next decision. Built end-to-end. 667 tests green.

Institutional-Grade · Production-Hardened · Fully Auditable
Scroll
0
Asset Classes
0
Broker Adapters
0
Signal Evaluators
0
Tests Passing

A Closed-Loop Intelligence Engine

Sauron isn't a signal feed or a bot framework — it's the synthesis of both, plus everything that connects them. Twelve evaluators fuse price, news, macro, COT, options flow and 13F filings into composite signals. A multi-dimensional risk gate prevents stacked exposure across asset classes. Six broker adapters route execution. Every trade is graded, every gate decision audited, every dollar tracked. Then the results feed back into how the next decision gets made.

Sauron's Eye Dashboard
Single real-time pane: live theme exposure (USD, equity, vol, currencies, sectors), open positions across every asset class, gate decisions, recent fills, bot health, 24h P&L. WebSocket push for instant updates — HTMX 10s poll as fallback.
Cross-Asset Orchestrator
A risk gate that thinks in themes, not just positions. Refuses new trades that stack USD-beta, equity-beta, vol-long, per-currency or per-sector exposure beyond your caps. Optionally size-weighted by notional. Closes never gated.
Self-Grading Loop
Every signal AND every bot trade is automatically graded in R-multiples, win rate, expectancy, holding period. A daily decay detector flags rules whose recent 7d underperforms their 30d baseline — before the drawdown gets real.
Strategy Evolution + AI Mutator
Phase-9 evolution mutates rule parameters; opt-in Claude-powered mutator proposes grounded changes given recent track record. Walk-forward backtester (with transaction costs + slippage) confirms before deployment. Auto-promotion through research → paper → live-small → live-full.
Compliance & Audit Trail
Append-only sha256 hash-chained AuditLogEntry captures every trade open, close, and gate reject. Tamper detection via verify-chain. FIFO/LIFO/HIFO tax-lot bookkeeping with Form-8949-ready CSV export. Daily pg_dump with 30-day retention.
Real-Time Notifications
Telegram, email, Discord, in-app bell — one toggle per channel. Fires on bot fills, orchestrator rejections, drawdown limits, track-record decay. Graceful degrade when credentials missing; Sentry catches what notifications can't.
EURUSD BUY 0.87
BTCUSD STRONG 0.94
XAUUSD HOLD 0.62
SPX SELL 0.81
SIGNAL RADAR

12 Evaluators.
One Composite Score.

The opportunity scanner fuses twelve evaluator kinds into multi-modal setups. Each setup is admin-editable, weighted, and emits an OpportunityFlag only when the composite score crosses your threshold. Every flag becomes a Signal that gets graded against its actual outcome — so the platform learns which evaluators carry weight in which regime.

  • price_pattern · macro_regime · macro_trend · volatility_regime
  • news_volume · news_sentiment · sentiment_snapshot · cot_report
  • options_flow · correlation_pair · institutional_filings · calendar_event
  • Apriori pattern miner auto-discovers high-lift combinations from history
  • Self-grading: every signal scored in MFE/MAE/realized_r/duration
NEURAL ARCHITECTURE

Calibrated AI
You Can Override

Specialised agents powered by Claude with multi-model consensus, RAG-augmented memory, and Brier-score calibration tracking. Every agent prediction is scored against real outcomes — bad agents lose trust automatically. AI is a layer that adds confidence, never gates execution. Four autonomy levels from Observe to Full Auto — you choose.

  • PreTradeSanity · SignalJournal · DecayInvestigator · AnomalyDetector
  • StrategyAdvisor · StrategyMutator · MacroInterpreter · NewsAnalyst
  • WeeklyReviewer · MarketCommentator · EarningsAnalyst · SpeechAnalyst
  • RAG over historical signals + per-agent Brier-calibration scoring
  • AI mutator (opt-in) proposes parameter tweaks grounded in track-record
ALPHA BENCH
EQUITY CURVE

Backtest the Bot,
Not Just the Rule.

Walk-forward backtester replays historical Signals through your AssetBotConfig — SL/TP %, cooldowns, sizing — and walks PriceData bars bar-by-bar to find each exit. With realistic transaction costs + slippage and an optional train/test split, you see how the bot would have done, not just whether the rule was profitable in theory. A config that wins on train but loses on test is overfit and not shippable. The Eye tells you that before any capital moves.

  • Walk-forward train/test split with overfit-aware scoring
  • Configurable transaction costs + entry/exit slippage
  • Per-trade R, win rate, profit factor, Sharpe-R, max drawdown
  • Auto-promotion: research → paper → live-small → live-full
  • Auto-demotion when post-promotion performance degrades

From Tick to Trade to Truth

Every trade flows through five stages. Each stage's output is logged, audited, and fed back to make the next decision smarter. No black box — every step is inspectable from the Eye.

SIGNAL
12 evaluators
fuse → composite
RISK GATE
5-dimension
orchestrator
EXECUTE
6 broker adapters
idempotent orders
GRADE
R-multiple, win-rate,
holding period
LEARN
decay alerts +
auto-promote/demote

Closed-loop means a rule that wins for 30 days then drifts negative for 7 will fire a notification, get auto-demoted from live-full back to live-small, and surface in the audit log — without anyone watching.

Feel the Orchestrator

Synthetic trades stream in from the left. Each carries a random USD-beta, equity-beta and sector load. Drop the caps and watch which trades the gate refuses in real time. This is the same logic gate_new_entry() runs against your actual bots once you're inside.

▶ ORCHESTRATOR_GATE · LIVE_SIM
PASS 0 REJECT 0 RATE 0%
Live Exposure
USD +0.0
Equity +0.0
Top sector
Bars centred on zero. Fill turns red when the next same-sign trade would breach your cap.
SIGNAL
ORDER
GATE
Decision Log ● LIVE
awaiting first trade…

Each row is a trade the gate just judged. Green = passed, red = refused, with the exact cap that tripped. Same logic as production gate_new_entry().

Six Brokers. One Adapter Pattern.

Every broker speaks the same duck-typed interface (ping · ticker · klines · order_book · market_order · account · balance). Routing per-symbol via the broker_router based on the instrument's asset_class. Encrypted credentials at rest (Fernet). Paper-mode default.

BINANCE
spot · futures · crypto
ALPACA
stocks · ETFs · paper/live
OANDA
forex · 28 pairs · practice
IBKR
options · futures · CFDs · stocks
PAPER
simulated · always-on default
+ MORE
add via duck-typed adapter
15min
Reconcile
Open positions checked vs broker every 15 min during market hours. Manual closes and liquidations are detected, not lost.
SHA-256
client_order_id
Deterministic order IDs prevent double-fills if a worker dies mid-call. Binance, Alpaca and OANDA dedup server-side.
06:30
UTC Snapshot
Daily decay scan at 06:15 UTC. Daily pg_dump at 03:30 UTC with 30-day retention. The platform looks after itself.

Every Decision.
Hashed. Forever.

The audit log is append-only and hash-chained. Every trade open, trade close, and gate rejection produces a row whose payload_hash = sha256(prev_hash · kind · canonical(data)). Mutating any past row breaks the chain — verify exposes the tamper. Combined with FIFO/LIFO/HIFO tax-lot bookkeeping and Form-8949 CSV export, the platform is ready for taxable-account live deployment.

  • save() refuses to update existing rows; delete() raises
  • verify_chain() walks forward, recomputes, flags any breaks
  • Tax lots: open on every BUY · consume on close · ST/LT (≥365d) auto-classified
  • Encrypted broker credentials (Fernet); paper-mode is the default
  • Sentry-instrumented; structured Celery + Django integration
kindtrade_open
preva1c4…
hash7e2b…
kindgate_reject
prev7e2b…
hash9f1d…
kindtrade_close
prev9f1d…
hashb34c…
AUDIT CHAIN

Production-Hardened

Battle-tested OSS. Multi-stage Docker build, non-root runtime, ASGI worker for Channels. gunicorn + uvicorn serving HTTP and WebSockets; Sentry-instrumented; Celery beat for the recurring tasks; Channels for the per-user Eye push; a pg_dump nightly with 30-day retention. The platform looks after itself.

Python 3.12 Django Channels HTMX PostgreSQL Redis Celery + Beat gunicorn + uvicorn Anthropic Claude Fernet Sentry SDK ib_insync pandas / numpy Docker cryptography pytest / Django test

Twelve Lenses. One Eye.

Each evaluator pulls from real data feeds (SEC, CFTC, FRED, news APIs, broker depth, etc.) and outputs a normalised score the scanner can compose. Add a new evaluator with one register_kind() call — the scanner picks it up automatically.

USD beta
Equity
Vol-long
▲ live theme exposure pulse from the orchestrator gate
SEC EDGAR
13F · insider · 10-Q
CFTC / COT
commitments of traders
FRED Macro
CPI · GDP · rates · DXY
News APIs
volume + sentiment
Options Flow
unusual activity scanner
Economic Calendar
earnings + central bank
Reddit / StockTwits
social sentiment snapshot
IBKR / Twelve Data
price + volatility regime

Ready to See
Everything?

Sauron starts in paper mode. Wire up your brokers when you've watched it run. Flip the orchestrator on when you're ready. Promote rules from research to live-full when their walk-forward backtest agrees with their live track record. Cautious by default — aggressive when you ask.

PAPER
Default Mode
No live trades until you flip mode="live" per config. Everything visible without a single broker key.
OPT-IN
Orchestrator
Risk gate is OFF by default. Enable on profile, set caps, watch the Eye. Flip off if it's too tight.
REVERSIBLE
Every Action
Rule pauses, allocator changes, stage promotions — all have propose/apply/rollback flows in the actuator.

SAURON VISION

Sauron Vision

SECOND GATE

ENTER PIN CODE

OPERATOR