What Eva thinks, and how she got there.
Four independent layers produce Eva's view of the market, each on its own clock. They are kept deliberately separate: a four-year cycle model has no business setting an intraday stop, and a minute-by-minute watcher has no business forming a cycle opinion. This page is the standing explanation of each layer, with the current output at the top.
The read, live from the ledger.
written 2026-09-23 · posture only, never a trade trigger
| H4 | H1 | M15 | |
|---|---|---|---|
| BTC | bullish 0.62 | bearish 0.58 | neutral 0.55 |
| ETH | neutral 0.61 | bearish 0.64 | bullish 0.53 |
as of 2026-09-23 22:31 UTC · BTC is decided first and ETH read as the higher-beta conduit · disagreement across timeframes is shown, not resolved
The four-year cycle.
Bitcoin's issuance schedule is one of the few genuinely fixed facts in this market, so Eva treats it as a clock rather than a narrative. The model is deterministic: every halving since 2012, the three cycle tops and three cycle bottoms that followed them, and the recurring spacing between like-for-like pivots used to project the next ones. Today that places the market at day 886 after the 2024-04-20 halving, in the phase labelled bear drawdown.
| Phase | Days after halving | What it has historically meant |
|---|---|---|
| Post-halving accumulation | 0 – 180 | Chop and basing; supply shock not yet expressed in price |
| Bull expansion | 180 – 550 | The historical expansion leg |
| Cycle top window | 550 – 750 | The band in which all three prior tops printed |
| Bear drawdown | 750 – 1100 | The historical drawdown |
| Pre-halving accumulation | 1100 + | Basing into the next halving |
Once a day the layer pulls twelve years of Bitcoin daily candles, renders a log-scale chart with the halving lines and phase bands drawn on, computes BTC/gold and ETH/gold ratios, and asks a model to write the thesis: where we are in the cycle, what history implies, what that means for ETH as the higher-beta conduit, and — importantly — what would invalidate the view. It returns a bias and a confidence, both published above.
Two details matter for trusting it. The phase label is not frozen to a hardcoded pivot list: when a new high prints and then breaks down more than 20%, the model promotes that high to a confirmed top from live data, so the current leg cannot stay mislabelled an expansion through a drawdown. And if the model call fails, a deterministic fallback derives the bias from the phase alone, so the artifact always exists and is never silently stale.
Multi-timeframe stance.
The stance layer answers a narrower question: which way is each market leaning, right now, on three timeframes at once. It runs in two passes. First a deterministic one — fast and cheap moving averages, position within the recent range, higher-high/lower-low structure over the last twenty bars, and relative volume — which scores each timeframe on a fixed scale. Then a model synthesises those features into one stance per cell, with funding-rate and macro context appended.
BTC is always decided first and ETH read against it as the higher-beta conduit; if ETH diverges from BTC the rationale has to say why. The deterministic features are advisory rather than binding — they exist so the synthesis is anchored to something checkable rather than to vibes.
Perpetual funding feeds in as a regime rather than a level: persistently positive funding reads as a medium-term bullish bias, persistently negative as bearish, and chop is treated as noise and ignored outright. The signal the layer actually cares about is the first switch after a period of persistence — that is a position-switch cue, and it is one of the things that can mint an idea downstream.
Disagreement across timeframes is published rather than resolved. A market that is bullish on H4 and bearish on M15 is a real state, and flattening it into one number would throw away the most useful part.
ICT structure, implemented as code.
This is the layer that actually produces trades. The ICT concepts Eva trades are detected programmatically before a model ever sees the chart, which means every level she cites has a checkable origin — and a citation that does not match a detected object kills the idea.
| Concept | How it is computed |
|---|---|
| Market structure break | Confirmed on closes only — a wick through a swing does not count as a break |
| Order block | The last opposite-direction candle before a displacement move that breaks structure |
| Breaker | A mitigated order block reclassified after structure breaks the other way |
| Mitigation | Tracked per zone, so a used level is not re-sold as fresh |
| Liquidity sweep / swing failure | Sweep of a prior extreme with depth and volume confirmation, then rejection |
| Entry band | A fibonacci band inside the M5 order block, with a deeper scale-in level beyond it |
| Calendar levels | Daily open, Monday range, weekly, monthly, quarterly and yearly opens plus prior-period highs, lows and midpoints |
Timeframes have fixed jobs and are not allowed to swap them. H4 sets structure and bias and can never be an entry; M5 is where entries live. The validator specifically hunts for the failure mode where a model cites a higher-timeframe zone as if it were an entry-timeframe one, and rejects it.
Between reads, a purely mechanical watcher runs every sixty seconds. It cannot invent context: it acts only inside the structure the last full read established, respects the relative-strength tilt between ETH and BTC, and submits to exactly the same validation. Trigger families are measured against replayed history, and a family that does not carry its weight gets retired rather than tuned until it flatters.
News, with a severity and a half-life.
Headlines arrive continuously and most of them are noise, so the pipeline is built to throw things away cheaply. Each headline is first scored against a keyword model; only those clearing the bar are escalated to a classifier, which assigns a severity, a directional bias, a category, a short impact note and — the part that matters — an expiry. To date 1,348 headlines have been read and 979 escalated.
News with an expiry behaves very differently from news without one. An active event contributes to a live posture; when its time-to-live runs out it stops influencing anything, without anyone having to remember to clear it. Right now no macro event is active, and the posture is therefore neutral.
What news is allowed to do
- Enter the read. Active context above a severity floor is injected into the trading prompt, and Eva is required to address it in writing — a decision that silently ignores live macro is rejected before it can publish.
- Block an entry. At high severity, a directional posture blocks mechanical entries that fight it. It cannot create an entry, only refuse one.
- Tighten a position. A severe headline triggers a second, position-aware pass that can ratchet stops on open paper positions toward the entry. Stops only ever move tighter; this path can never widen risk.
- Leave a record. Every decision stores a snapshot of the macro state it was made under, so a trade can be re-examined later in the context it actually had.
The standing instruction is that chart structure is primary and macro is supplementary: never flip a bias on a headline, and when macro conflicts with structure, prefer no trade or a tighter stop over a new position in the other direction.
One analysis, many consumers.
Every layer above writes its output to storage rather than passing it straight into a trade. That one decision is what makes Eva a platform instead of a bot: the read is an artifact with a timestamp, and anything holding a service token can ask for it over HTTP.
The surface covers the current and historical stances, the cycle thesis, macro signals, funding regimes, volatility events, and the flagship book's own ideas. It fails closed — with no token configured the API refuses to answer at all rather than leaking a read.
What already runs on it
- The idea mill turns Eva's own conclusions into a continuous public stream: a stance flip on BTC mints an ETH follow-on, a high-severity headline mints a news idea framed against the current structure, a funding regime switch mints a position-change card, and volatility spikes and session opens mint their own.
- The event-market bot takes its directional bias directly from the stance API. It has never run a chart read of its own — the hub already paid for that analysis, and the bot simply reads the result.
- The books and the dashboard render from the same ledgers, so the operator's view and the published view cannot drift apart.
Consumers are built to fail closed on staleness as well as on failure: if the read is unreachable, or older than the freshness window, the answer is no signal rather than an old one. A confidently stale opinion is worse than silence.
Watch the read and the record together.
97.3% of cycles end with Eva declining to trade. The beta is where you see both halves — what she concluded, and what she was willing to risk on it.