Docs · The decision engine

How an idea earns its existence.

EVA docs · September 2026

Between raw candles and a published card there are five gates, and most proposals die at one of them. This page walks the pipeline in the order the system runs it — what each layer contributes, what it is allowed to override, and where an idea gets killed.

1. What the read starts from

Each cycle begins by rebuilding the working charts from exchange data: H4 for higher-timeframe structure, H1 for the current range, M5 for entry precision, and daily bars for calendar anchors — the daily open, the Monday range, and weekly, monthly, quarterly and yearly opens with their prior-period highs, lows and midpoints. Onto these the context builder marks the objects the reader is allowed to cite: order blocks with their origin candles, sweep-failure patterns at prior extremes, supply and demand zones with their mitigation state, and the 24-hour range with its break state.

Three further inputs arrive as context rather than chart marks. A weekly ETH/BTC ratio read applies a soft tilt: when one asset is clearly stronger, longs in the weaker asset and shorts in the stronger one face an extra gate. Perpetual funding contributes a regime — persistent, not a spot reading. And any live macro posture is injected as text the model must respond to.

2. The structure read

Every 30 minutes the marked charts go to a vision model prompted as a disciplined structure trader. Its instruction set is strict: work top-down from H4 to M5, cite only detected features, and either produce a complete trade — direction, entry, stop beyond structure, staged targets, size — or say no_trade and explain what is missing.

Timeframes have fixed jobs. H4 sets structure and bias and can never be an entry; M5 is where entries live, inside a fibonacci band within the order block, with a deeper scale-in level beyond it. There is no reward for activity: abstention is a first-class output and it is the output 97.3% of the time.

3. The watchdog

Between full reads a programmatic watchdog scans every 60 seconds for a small set of mechanical patterns — an order-block retest inside the entry band, a sweep-failure at a marked level. It cannot invent context: it acts only within the structure the last full read established, respects the relative-strength tilt, and submits its proposals to the same validation as everything else. Trigger families are measured against replayed history, and families that do not carry their weight are turned off rather than tuned until they look good — one family currently carries a measured negative expectancy and is on that list.

4. Where macro can intervene

News does not propose trades. Its permissions are one-directional by design — it can reduce exposure, never create it.

SeverityWhat becomes possible
Below the floorStored and scored, but not shown to the decision. Most headlines never get past here.
At the inject floorActive context enters the prompt. The model must acknowledge it in writing or state it is not material; an empty response is a critic finding that blocks publication.
HighA directional posture blocks mechanical entries that fight it, and triggers a position-aware pass that can ratchet stops toward entry on open positions. Stops only ever move tighter.

Each event carries an expiry, so posture decays on its own rather than needing to be cleared. The standing instruction is that structure is primary: never flip a bias on a headline, and when macro conflicts with structure, prefer no trade or a tighter stop over a position in the other direction.

5. Validation, then audit

Every proposal — scheduled read or watchdog trigger — is re-checked by code against the raw candles before it can act:

  • Cited levels must exist where claimed. An order block that is not on the chart kills the idea.
  • A higher-timeframe zone cited as if it were an entry-timeframe one is caught by a specific check, not waved through.
  • Stops must sit beyond real structure; targets must be reachable; risk-reward must clear a floor.
  • Failures downgrade the proposal to no-trade, with the reason recorded.

An audit layer then scores the quality of the chart read itself — deductions for invented levels, misread structure, or output that had to be sanitized — and stores the score with the cycle. Scores ride along with any trade the cycle produced, so read quality can be studied against outcomes later.

6. Execution paths

BookPath
ICT Trades liveExchange orders on a capped sleeve. Entries rest at the planned level when price is away (the card says so, and reports back if the order fills, misses, or expires); brackets carry the stop and staged targets exchange-side; the stop trails behind each paid target.
ICT Trades researchThe same ideas applied to a simulated book, marked against spot on a polling clock. An internal research record used to study reads at volume, not to project returns.
Trade MillAn independent service consuming Eva's read over the API. Stance flips, severe headlines, funding switches and volatility spikes each mint structured cards with volatility-scaled brackets. Every idea publishes to a scored record; the live lane trades clip sizes under daily-loss and concurrency halts.
YieldGenNo brackets — collateralized lending and fixed-yield positions managed against health-factor floors, marked to a daily NAV snapshot.
Kalshi 15m Reversal & WickTwo mechanical rule-sets live on 15-minute event markets, taking directional bias from the stance API rather than running their own chart read.

7. The ledger closes the loop

Every gate writes its result: proposals with their validation verdicts, audit scores, the macro state at decision time, fills with timestamps, partial exits, stop moves, and final P&L. Closed live trades get an annotated chart rendered from the actual fills. Because analysis runs against this same ledger, the system's weaknesses are found by replaying its own record — that is how the stop-geometry question was surfaced on the flagship book, how the idea mill's bracket was rebuilt, and how weak watchdog families are retired. The engine improves by studying itself in public.