These are the older docs. They cover the Score, Macro and Amatout pages, and several features described here have since been removed (CVD, the Z-score and sentiment alerts, the while-open alerts, the scanner, the old Home cards). The current docs are at Docs.
How It Works
AMAGEDON is a multi-page trading intelligence platform built around one goal: give you a clear, data-driven read of market conditions at any moment. It combines exhaustion scoring, macro context, gamma exposure, volatility regime, sector breadth, options flow, and global markets into a unified dashboard. Each page has a specific role β use them together for the full picture.
The Score page measures structural exhaustion on the current bar and identifies the setup direction (Fade Short / Fade Long). The Macro Dashboard provides the broader market environment β bias, volatility, yields, dollar, and sector rotation. The GEX page shows where dealers are positioned and how that affects volatility and breakout probability. The Levels page shows where volume actually traded, and whether price is inside or outside that range. The Amatout diagram gives the daily-timeframe exhaustion arc across months. No single page tells the whole story β the edge comes from reading them together.
π Home Dashboard β Command Center
The home page (/) is the single-screen radar for the session. It auto-refreshes every minute and runs 4 parallel API calls on load.
Session Clock
Sticky header shows the CME equity futures session status with a live countdown. Green = Regular or Extended hours. Amber = 1-hour break (5β6 PM ET). Gray = Weekend or fully closed. DST-aware β switches between EDT (UTC-4) and EST (UTC-5) automatically.
NQ Price Strip
Live NQ=F price, daily % change, and day high/low from the Schwab quotes API. Color: green when positive, red when negative.
NQ 4H and Daily Score Cards
At-a-glance exhaustion scores for both timeframes. Tapping either card opens the full Exhaustion Tracker. Shows the MoS X-Signal indicator if it has fired.
Gamma Exposure Indicators
Three gamma badges β NQ, ES, and SPCX β show the current GEX regime (POSITIVE or NEGATIVE) alongside the gamma flip level for each instrument. When both NQ and ES are in negative gamma, the Market Stress Score is automatically boosted by +15 points; if only one is negative, +8 points. This adjustment is shown inline on the stress card.
Market Stress Score
A 0β100 composite score that synthesizes VIX level, sector breadth, NQ leader performance, DXY, and real yields into a single risk-environment reading. Gamma-adjusted in real time. Labels: NORMAL (0β29) Β· ELEVATED (30β49) Β· HIGH (50β69) Β· EXTREME (70β100). Use it to size trades β avoid aggressive fades in EXTREME stress; in NORMAL, standard size applies.
Key Levels
Where price sits relative to the value area, and the nearest level above and below it. Tap through to the Levels page for the full volume profile and the session's structure.
AI Analysis
Tap the AI button to generate a synthesized market narrative. The model reads live score, macro bias, GEX regime, sector breadth, leaders, VIX, and DXY, then writes a plain-English read of current conditions and what to watch for. Tap β» to refresh on demand.
Navigation & App Shortcuts
Tap title to go Home
Every page header shows AMAGEDON in small caps above the page title. Tapping it takes you straight back to the Home dashboard from anywhere in the app.
Swipe between pages
On mobile, swipe left or right to move through the bottom-bar pages in order: Home β Score β Levels β GEX β Rotation. Swipe is disabled on GEX (that page uses horizontal scrolling internally).
β° Menu
The menu button opens one drawer listing every page. It is defined in a single place now, so a page cannot go missing from it β previously each page carried its own copy of the list and two of them had drifted out of date.
The bar along the bottom carries the five pages worth reaching for mid-session β Home, Score, Levels, Rotation and GEX β because the bottom of the screen is where a thumb actually reaches. Symbol and timeframe switches sit just above it for the same reason; they used to live in the top header, which is the furthest point from your hand. On a desktop there is no thumb to reach with, so both return to a sidebar and the flow of the page.
Desktop sidebar
On screens β₯ 768 px the bottom tab bar is replaced by a fixed left sidebar. The sidebar footer shows the live CME session status (RTH / ETH / BREAK / CLOSED, or Closed β holiday and Closed β early close on US market holidays and half days) and ET clock, updated every second.
Install as app (PWA)
AMAGEDON is a Progressive Web App. On iPhone/iPad tap Share β Add to Home Screen. On Android open the browser menu β Install App. Once installed it runs full-screen with no browser chrome and works offline for cached pages.
Composite Signal β Synthesis
The composite signal synthesizes three independent data streams into a single actionable verdict. It is not a replacement for reading the full score β it is a prioritization tool.
Inputs:
score = NQ 4H exhaustion score (0β100)
pts = NQ macro bias points (Β±8)
breadth = leaders breadth (green vs red count)
Logic:
score β₯ 72 + pts β€ β2 + breadth bear β STRONG SHORT SETUP Β· HIGH CONVICTION
score β₯ 72 + pts β€ β2 β SHORT SETUP Β· HIGH CONVICTION
score β₯ 72 + pts β₯ +2 + breadth bull β POTENTIAL REVERSAL Β· LOW β WAIT FOR CONFIRM
score β₯ 72 β EXHAUSTED β FADE Β· MODERATE
score β₯ 55 + pts β€ β2 β BUILDING SHORT EDGE Β· LOW
score β€ 20 + pts β₯ +2 β FRESH MOVE UP β NO SETUP YET Β· WAIT
score β€ 20 + pts β€ β2 β FRESH MOVE DOWN β NO SETUP YET Β· WAIT
else β WAIT FOR SETUP Β· NO EDGE
The composite is intentionally conservative β it only fires HIGH CONVICTION when exhaustion, macro, and breadth all agree. A single data stream being strong is not enough.
Market Scanner β All Symbols At Once
The scanner card on the Score page fetches the 4H exhaustion score for NQ, ES, MNQ, MES, QQQ, TQQQ, SPY, IWM, RTY, CL, GC, SI, ZN, 6E, and XRP simultaneously and ranks them so you instantly see where the most actionable setups are.
What each row shows
Symbol Β· inline score bar (0β100, red/amber/green) Β· mini price sparkline (last 20 bars) Β· numeric score Β· signal label Β· daily % change. The β prefix appears when an active MoS X-Signal has fired for that symbol.
Sort modes
Score (default) β highest exhaustion first. Use this to find fade candidates. Move β largest absolute % change first. Use this to see what is moving most today.
Deep-linking
Tapping any row opens the Exhaustion Tracker with that symbol pre-selected, so you go straight to the full breakdown without having to manually switch symbols.
Alerts & Notifications
π Real Alerts β Screen Off (Web Push)
True OS-level push notifications delivered to your device even when the screen is off and the browser is closed. Enable in Settings β Real Alerts. Once subscribed, the server checks every 5 minutes and fires a notification the moment a condition crosses its threshold.
Alert conditions
π΄ Unbacked excursionPrice outside the main session's value area on light volume (under 0.8Γ normal). Once per side per session.
π Gamma regime changeDealer gamma flips between positive and negative. Markets with options data only.
β οΈ Approaching the flipPrice within 1% of the gamma flip. Markets with options data only.
π― Score β₯ 75The structural exhaustion score crosses into βFade favoredβ.
π Volatility expandingRealized volatility over the last 5 four-hour bars rises past 1.5Γ its 20-bar level, from compressing or stable.
Market selector
In Settings, choose which of your markets to watch β any futures market or stock, up to 12. Each selected market is checked independently β conditions and alert state are tracked separately per instrument. You can receive an excursion alert on natural gas and a gamma alert on NQ at the same time.
Edge detection & re-arm
Each condition fires ONCE on a false β true crossing.
After it fires, the condition must clear (return to normal)
before the same alert can fire again.
Additional minimum: 1 hour between re-alerts of the same type per market.
This prevents whipsaw noise around a threshold.
Setup: open Settings β tap Enable Real Alerts β allow notifications when prompted. Then select your markets (NQ is on by default). Tap Save Markets if you change the selection after subscribing. No tab needs to be open β the server (Upstash QStash) handles all checks.
Toast banner
When a fresh MoS X-Signal fires (pineNorm β₯ 95% of threshold AND |MoS| β₯ 15 for the first time), a banner slides in at the top of the Exhaustion Tracker showing the signal side (FADE SHORT / FADE LONG) and the score. Tap β to dismiss. Works regardless of notification permission.
Signals only show as "fresh" once β on the next refresh where the condition was not met the bar before. If the X has been active for multiple bars, the banner won't re-fire to avoid spam.
Recession Radar
A collapsible panel on the Score page that aggregates six macro stress indicators into a single risk score (0β5). Each indicator scores 1 point when it crosses a warning threshold.
10Y β 2Y Spread+1 point if inverted (spread < 0). A yield curve inversion has preceded every US recession since 1955. Source: FRED DGS10 / DGS2.
HY Credit Spread+1 point if > 5%. High-yield spreads above 5% signal credit stress β companies can't refinance cheaply. Source: FRED BAMLH0A0HYM2EY.
Consumer Sentiment+1 point if UMich index < 60. Consumers pulling back predicts spending contraction 1β3 quarters ahead. Source: FRED UMCSENT.
CPI (YoY)+1 point if > 4%. Persistent inflation forces the Fed to keep rates high, stressing credit and consumer spending simultaneously.
Real Yield+1 point if real yield (Fed Funds Rate β Breakeven Inflation) > 2%. Positive real rates above 2% are historically restrictive β tightest financial conditions in decades. Source: FRED.
Unemployment Rate+1 point if > 5%. Rising unemployment above 5% confirms demand destruction is underway, not just feared. Source: FRED UNRATE.
LOW (0β1)Macro backdrop not signaling recession risk. Exhaustion signals operate in a normal environment.
CAUTION (2β3)Multiple stress flags β tighten position sizing on longs, give more room to short-side exhaustion signals.
ELEVATED (4β5)Broad macro stress β trade only high-quality setups (score β₯ 72, macro bias aligned). Avoid mean-reversion longs in this environment.
All FRED data has a 1-day lag. The radar is a structural, slow-moving indicator β it doesn't change intraday.
Market Breadth & Sectors
The Breadth panel on the Score page shows real-time participation across the 11 S&P 500 sectors via SPDR ETFs. It answers: is the market moving because of a few giants, or is the move broad-based?
Sector tiles
Each of the 11 sectors (XLK, XLC, XLY, XLV, XLI, XLF, XLP, XLE, XLB, XLU, XLRE) shows today's % change, color-coded green/red. Count of sectors up vs down shown at the top (e.g., "9 up Β· 2 down").
Rotation read
Money flowing to growthCyclicals (XLK, XLC, XLY, XLF, XLI) average significantly above defensives (XLU, XLP, XLV). Risk-on β trend signals carry more weight.
Money flowing to safetyDefensives outperforming cyclicals. Risk-off rotation β fade signals carry more weight, especially in negative gamma.
NeutralNo clear rotation β sectors mixed. No adjustment needed.
NYMO
NYSE McClellan Oscillator β breadth momentum across all NYSE-listed stocks. Positive = more stocks advancing than declining on a smoothed basis. Negative = broad selling pressure even if indices are flat. Extreme readings (above +60 or below β60) historically mark short-term turning points.
Stale Data Badge
Both the Exhaustion Tracker and Macro Dashboard display a data freshness indicator so you always know whether you're looking at live data or a stale snapshot.
Age < 5 min β no badge (data is fresh)
Age 5β15 min β amber STALE Xm pill
Age > 15 min β red STALE Xm pill
On the macro page the timestamp itself changes color (gray β amber β red). Tap the β» refresh button to force an immediate update.
Every metric row in the Exhaustion Tracker has a small ? button next to its label. Tapping it expands an inline explanation of what the indicator measures, how to interpret its current value, and why it contributes to the score. Tap again to collapse. Multiple tooltips can be open simultaneously. This replaces the need to cross-reference the Guide while actively reading a score.
Foundation β KAMA (Kaufman Adaptive Moving Average)
KAMA is a self-adjusting moving average. When price is trending efficiently it reacts fast (like a 3-period EMA). When price is choppy it slows down (like a 30-period EMA), filtering out noise. All momentum metrics β Z-score, autocorrelation, variance ratio, velocity β run on KAMA instead of raw close.
ER = |Close[n] - Close[n-3]| / Ξ£|Close[i] - Close[i-1]| (i = n-2..n)
SC = (ER Γ (2/3 - 2/31) + 2/31)Β²
KAMA[n] = KAMA[n-1] + SC Γ (Close[n] - KAMA[n-1])
ER (Efficiency Ratio) = 0 when choppy, 1 when straight line. SC (Smoothing Constant) is squared to exaggerate the contrast between trending and noise regimes.
The Score (0 β 100)
The headline number on the Score page. It answers one question: does the current structure favor fading this move, or letting it run? High means fade; low means stand aside and let the trend work.
0 β 24 Β TREND FAVORED25 β 39 Β LEANING TREND40 β 54 Β NEUTRAL55 β 74 Β LEANING FADE75 β 100 Β FADE FAVORED
It is a weighted average of six structural components, each scored 0β100. There is no oscillator anywhere in it β the score was rebuilt from dealer positioning, price structure, options pricing and the volume distribution, so that it derives from the same data the rest of the app shows.
Gamma Β· 19%Read from the GEX page's net dealer gamma (falling back to the greeks route only when that is unavailable). Long gamma means dealers absorb moves, so fades work. Short gamma means they amplify them and fades get run over. Within 1% of the flip β price and flip both measured on the ETF β it pulls toward neutral, because the regime can invert intraday.
Stretch Β· 19%The 5-bar move measured against the options-implied expected move, scaled to the same window. Past one implied move the tape has spent the range it was given.
Location Β· 19%Where price sits in the volume distribution, read together with participation. Inside value is a balanced auction whose edges fade toward the POC. Outside value splits in two: light volume makes it an excursion the auction rejects, heavy volume makes it acceptance β the same price, the opposite trade. A spent daily range nudges it toward reversion.
Structure Β· 17%Efficiency ratio and Hurst. A choppy, non-persistent tape rewards fading extremes; a clean trend punishes it.
Vol Regime Β· 14%Compressing volatility under long gamma pins price, which is the classic fade setup. Expanding volatility breaks reversion trades.
Complacency Β· 12%Flat skew means nobody is paying for protection, and realized running hot against implied means the market is underpricing movement.
Reading the card
Each component shows its own bar and a one-line reason, so the headline is never a black box β when it moves you can see which component moved it. The card also names the side a fade would take, from price's position relative to the value area, falling back to recent momentum when the volume profile is unavailable.
Coverage
Weights renormalize across whatever components have data. If an engine is unavailable the card reports coverage below 100% rather than letting a missing input drag the score toward zero and look like a trend signal. Treat anything under about 70% coverage as provisional.
Alerts
Crossing 75 pushes a notification carrying the score, the side to fade, and the component contributing most. It fires on the crossing only and re-arms after the score falls back, so a score that sits high does not repeat.
Levels β Volume Profile & Session Anatomy
Every other page describes the market's condition. This one describes its location β where contracts actually changed hands, and therefore which prices the auction is likely to defend or return to. It is built from one Schwab call: 5-minute bars over the ten days Schwab serves at minute resolution.
Value area β POC, VAH, VAL
Volume is accumulated at each price to build a distribution. The POC is the price with the most volume; the value area is the band around it holding 70% of the session's volume, bounded by VAH above and VAL below.
Inside valueBalanced two-way auction. The edges are the trade and the POC is the magnet.
Above valueEither the market is repricing higher, or it is probing. Volume decides which β see RVOL below.
Below valueSame question, other direction.
RVOL β the part that decides
Relative volume compares today's cumulative volume against the median of prior sessions at the same point in the session β not against a whole prior day, which would make every morning look quiet. It is the difference between the two readings that matters: price outside value on heavy volume is acceptance and fading it means shorting a trend day, while the identical price on light volume is an unbacked excursion the auction usually rejects. This is the logic the Score's Location component runs.
Naked POCs
A prior session's POC that no later session has traded back through. Unfinished business, and a magnet β price tends to revisit prices where large volume once traded but has not been retested. Only sessions later than the one being checked count, because a level already revisited carries no pull.
Initial balance & overnight range
The initial balance is the first hour of RTH. Range extension beyond it is the classic trend-day tell; a session that never leaves it is a balance day. The overnight range is the Globex high, low and midpoint β where the RTH open sits relative to it separates continuation from reversion. Futures sessions are rolled at 18:00 ET so an evening bar is filed under the correct trade date; equities use pre-market only, so their post-market bars are never counted as overnight.
HVN / LVN
High-volume nodes are shelves price grinds inside. Low-volume nodes are the thin pockets between them, which price crosses quickly β which is exactly why a stop resting in one tends to get taken.
What this is not
Volume-at-price is spread uniformly across each 5-minute bar's high-low range, because Schwab serves no tick data. Levels are accurate to the bucket width, not to the tick, and the response says so. Schwab's 10-day minute cap also means naked POCs older than about nine sessions cannot be seen at all.
Base Rates β Gap Fill & Range Budget
Base rates, not indicators. These answer a different kind of question from everything else here: not βwhat is the market doingβ but βwhen this setup appeared before, what actually happenedβ.
Gap fill
Today's overnight gap, and how often gaps of the same size and direction returned to the prior close within the session over the past year. Fill rate is strongly size-dependent β small gaps usually fill, large ones are usually breakaways β so a single blended βgaps fill about 70% of the timeβ number hides the only distinction that matters.
Why gaps are measured on QQQ, not NQ
A futures daily bar opens at the 18:00 Globex roll, so its open-against-prior-close is a settlement artifact of a few ticks, not a gap. The gap an RTH trader actually trades is the cash open against the cash close, so gap statistics run on the cash proxy β QQQ for NQ, SPY for ES. The range budget still uses the instrument you actually trade. Both are labelled in the response.
Gap size in ATR, not percent
Buckets are measured in ATR units so they mean the same thing on TQQQ as on SPY β a 1% gap is routine on one and large on the other. The ATR window ends before the day being classified, so a gap is never normalized by volatility that exists only because of that same gap. Raw percent is shown alongside.
Range budget
How much of a normal day's range price has already spent, against the 20-session average daily range. A market that has used its whole range by 11:00 is a different proposition from one that has used a third of it, whatever any oscillator says. This feeds the Score's Location component directly.
Read the sample size
Buckets holding fewer than 20 observations are flagged thin and greyed out. Read those as a hint, never as a rate. And note the hard limit: daily candles show whether a gap filled, never when β a time-to-fill base rate would need intraday history per day, which Schwab caps at 10 days.
Positioning β Put/Call, OI Walls & the Expected-Move Cone
Three readings pulled from the same options chain the GEX page already fetches. They sit on the GEX page because they answer questions gamma alone cannot.
Put/call β two ratios, not one
Open interest is accumulated positioning, a stock that moves slowly. Volume is today's flow. They routinely disagree, and the disagreement is the signal: a high OI ratio with a low volume ratio is an old hedge book nobody is adding to, while volume running far above the book means fresh hedging going on right now. When they diverge, the flow is the newer information. Index put/call sits near 0.9β1.0 in normal conditions because index puts are a standing hedge β only the extremes carry information.
OI walls β and why they are not gamma walls
These are the strikes holding the most open interest, deliberately not gamma-weighted. Gamma weighting collapses toward the money and hides a far strike carrying enormous OI β and that strike is exactly the one that acts as a barrier into expiry. Aggregated across every expiry in the 45-day window, because a wall two weeks out still shapes where price can go today. The GEX page's gamma walls answer a different question and both are worth reading.
The expected-move cone
The ATM straddle at each expiry is the market's own price for how far the underlying travels by that date. Listing every expiry gives a term structure rather than the single front-expiry number the Score uses. If the cone widens more slowly than root-time, the market is pricing near-term risk richer than time alone explains β the event-then-calm shape. Widening faster means the risk is priced further out.
Limits
Options are the cash proxy's (QQQ for NQ, SPY for ES) because the futures have no listed chain at Schwab; strikes are carried onto the futures scale by the price ratio, which is shown. Option volume resets daily, so the volume ratio is noisy before the cash open and most meaningful after midday. Any expiry without a two-sided market on both straddle legs is omitted from the cone rather than estimated.
Rotation β Relative Strength & Tape
Sector relative strength
Excess return over the benchmark, measured at 1, 5 and 20 sessions and blended 0.2 / 0.35 / 0.45. The 20-day carries most because rotation that only exists today is not rotation. The breadth page ranks sectors on a single day's percent change, which is mostly noise; this is the multi-horizon version. A sector without enough history reports null for that horizon and a coverage figure, rather than a partial number that would rank alongside complete ones.
Risk appetite
The spread between average cyclical RS (XLK, XLC, XLY, XLF, XLI) and average defensive RS (XLU, XLP, XLV, XLRE). Cyclicals leading is risk-on and gives trend signals more weight; defensives leading is risk-off and gives fades more weight.
Megacap participation β read the horizon
The megacap tier is one day only. It comes from a single batched quote rather than ten more history calls, so read it as participation today, not as leadership. What it does add for free is each name's position in its 52-week range β a long-horizon strength read no short lookback can see β and relative volume against the 10-day average.
Tape β trust the spread, not the imbalance
Spread in basis points is the reliable half: a real, hard-to-fake cost-of-entry and liquidity measure. Spreads widen before and during stress, and a spread several times its normal width genuinely means size will not fill where you expect.
Imbalance is the weak half and is labelled as such. It is top of book only β one price level each side, no depth β and displayed size is the easiest thing in the market to spoof. Treat a lopsided reading as a hint about the current instant, never as evidence of direction.
Futures are excluded outright: Schwab's quotes endpoint is unreliable for them, which is why the rest of this app reads futures prices from 1-minute bars. Quotes older than five minutes are flagged stale, because outside regular hours a two-sided market can be hours old.
NQ / ES Correlation Β· Current
Pearson correlation of log returns between NQ=F and ES=F over the last 80 aligned 30-minute bars (~10 Γ 4H periods). This matches the same multi-day window used by the Range Fade Bollinger Bands, so the two readings stay consistent. Timestamps are matched exactly between both series before computing.
r_i = ln(Close_i / Close_{i-1}) (log return for each bar)
Ξ£ (rNQ_i - ΞΌNQ)(rES_i - ΞΌES)
Ο = βββββββββββββββββββββββββββββββββββββββββ
β[ Ξ£(rNQ_i-ΞΌNQ)Β² Β· Ξ£(rES_i-ΞΌES)Β² ]
n = 80 bars (30m interval, ~10 Γ 4H periods lookback)
β₯ 0.85 β LockstepNormal regime. Both markets confirm each other.
0.70 β 0.84 β DivergingOne index lagging or rotating. Treat signals with caution.
< 0.70 β DecoupledSignificant divergence β macro event, options pressure, or index-specific flow.
TF Alignment Banner
Always fetches both 4H and Daily for the selected symbol simultaneously and shows both exhaustion scores side by side. Refreshes every 2 minutes independently of the main view. Use this to confirm signal strength before acting.
Both exhausted (β₯ 55)Strongest fade signal β both timeframes confirm. Highest conviction.
Both trending (< 35)Trend intact on both timeframes. Stay in trade.
Diverging (gap β₯ 30 pts)Timeframes disagree. Lower conviction β reduce size or wait.
BuildingExhaustion developing but not yet aligned. Watch closely.
Decorrelation Gauges
Two dual bars below the correlation banner. Each gauge shows both instruments side by side β left half is one market, right half is the other. Each side fills independently based on that instrument's own daily % move. Green = up, Red = down. The fill width (5β100%) shows how strong the move is relative to a 2% max scale.
How to read it
Both sides greenBoth instruments up β broad risk-on. NQ and ES both have tailwind. Good environment for longs.
Both sides redBoth instruments down β broad selling. Avoid longs, fade exhaustion signals on the short side.
Left red, right greenGC up + NQ up (gauge 1) or ES down + NQ up (gauge 2) β check which gauge and read accordingly.
Unequal fill widthsOne instrument moving much more than the other β the wider bar has the stronger move. That's where the conviction is.
Gauge 1 Β· Gold (GC) vs NQ β Risk Appetite
GC and NQ are naturally inversely correlated β when risk appetite is on, money flows into equities (NQ up) and out of safe havens (GC down), and vice versa.
Left = GC daily % change Right = NQ daily % change
GC red + NQ green β Risk-On Gold selling, equities bid
GC green + NQ red β Risk-Off Gold bid, equities selling
Both green β Unusual β stagflation / uncertainty
Both red β Liquidity crunch β everything selling
GC green, NQ redClassic risk-off. Gold surging, NQ under pressure. Size down on longs, fade bounces.
GC red, NQ greenClassic risk-on. Safe havens selling, equities bid. Confirms NQ long bias.
Same directionUnusual β macro uncertainty or liquidity event. Lower conviction on all signals until they diverge.
Gauge 2 Β· ES vs NQ β Index Rotation
NQ is dominated by Technology; ES is more balanced (Financials, Healthcare, Industrials carry significant weight). When sectors rotate, the two indexes diverge β the gauge shows you which one the market is favoring right now.
Left = ES daily % change Right = NQ daily % change
Both green, NQ wider β NQ leading β tech driving the tape
Both green, ES wider β ES leading β value/defensives in front
NQ green, ES red β Pure tech rally, defensives selling
ES green, NQ red β Rotation away from tech into value
Both red, ES less red β ES holding better β safer in ES shorts
NQ bar widerTech is leading. NQ has its own momentum β exhaustion signals on NQ carry higher conviction.
ES bar widerValue/defensives leading. NQ is fighting sector headwinds β ES is the safer long if you need to be in equities.
Equal fillIndexes moving in sync. No rotation signal β trade whichever has the higher exhaustion score.
Range Fade Β· Multi-Symbol
The Range Fade card uses a session VWAP Β± 2Ο bands + HMA(21) slope framework. It signals when price is at a statistical band extreme and the HMA confirms the reversion direction. Covers 15 symbols on 30-minute bars, always visible below the Decorrelation Monitor.
Session VWAP Bands
VWAP resets each day at the CME session open (6 PM ET). Bands are Β± 2 standard deviations of HLC3 displacement from VWAP across all bars in the session.
VWAP = cumSum(HLC3 Γ volume) / cumSum(volume) β resets 6 PM ET
Ο = sqrt( mean( (HLC3 β VWAP)Β² ) )
Upper = VWAP + 2Ο
Lower = VWAP β 2Ο
Zone threshold = 25% of band width from each extreme
UPPER zone: price β₯ Upper β 0.25 Γ (Upper β Lower)
LOWER zone: price β€ Lower + 0.25 Γ (Upper β Lower)
MID zone: everything between
HMA(21) Direction Filter
Hull Moving Average (period 21) on 30-minute bars. Only the slope direction is used β it confirms whether price momentum agrees with the expected reversion.
HMA(n) = WMA( 2 Γ WMA(n/2) β WMA(n), round(βn) )
period = 21 β sqrtN = 5-bar final WMA
slope = HMA[current] β HMA[previous]
UP = slope > 0
DOWN = slope < 0
Signal Logic
FADE SHORT βPrice in UPPER zone AND HMA slope is DOWN β price is statistically extended above VWAP and momentum is already turning. Target: VWAP.
FADE LONG βPrice in LOWER zone AND HMA slope is UP β price is statistically extended below VWAP and momentum is already turning. Target: VWAP.
β (no signal)Price in UPPER/LOWER zone but HMA does not confirm, or price is in the MID zone. No structural edge β wait for zone + HMA alignment.
Both conditions must be true simultaneously. A band touch alone without HMA confirmation is not a signal.
Score History Sparkline
A small line chart on the score card showing how the score has moved, with the latest point marked, the change since the previous sample, and the number of points held alongside their range. It answers the question a bare number cannot: is this score building or rolling over?A 57 on its way up from 40 means something quite different from a 57 falling back from 80.
Why it starts empty
The score depends on options positioning, and Schwab exposes no history for it β the GEX, skew and vanna readings from three days ago cannot be recovered. So unlike a price chart, this history cannot be backfilled; it accumulates from the moment the feature went live. Until there are two points the card says the trend is still building rather than drawing a flat line that would look like real data.
Sampling
Snapshots are stored at a rate matched to the timeframe β roughly every 5 minutes on 15m, 20 minutes on 4H, and 2 hours on Daily β keeping the most recent 60 points. That way the line spans a useful stretch of time instead of thousands of near-identical readings, and refreshing the page inside a sampling window does not pack the chart with duplicates.
A rising line into the fade zone means exhaustion is building. A peak rolling over suggests the reversal may already be underway. A flat line low in the range is a healthy trend with no exhaustion pressure.
π° News & Calendar Panel
π‘ News Tab
Live headlines fetched server-side from Yahoo Finance for NQ=F, ES=F, and Federal Reserve searches. Duplicates removed by UUID. Each headline is classified by keyword matching:
HIGH: trump, white house, federal reserve, powell, fomc,
rate decision, rate hike/cut, cpi, inflation, nfp,
gdp, tariff, trade war, sanctions, recession, war ...
MEDIUM: earnings, guidance, pce, retail sales, vix,
volatility, ism, pmi, nasdaq, s&p, sec, ipo ...
NORMAL: everything else
Results are sorted: HIGH first, then by publish time descending. Top 20 shown. High-impact rows are tinted red with a HIGH IMPACT badge.
π
Calendar Tab
Upcoming economic events from ForexFactory's public calendar for the current week and next week. No API key required. Covers all major currencies with High and Medium impact events.
β HighFOMC, NFP, CPI, PPI, GDP, ECB/BOJ/BOE rate decisions β direct market movers.
β MediumRetail Sales, PMI, consumer confidence β secondary data releases.
Events grouped by date. Shows forecast vs previous so you can gauge the expected surprise magnitude. Once released, actual value appears in green. All times in ET. Cached for 30 minutes.
High-impact events often cause temporary spikes that score as exhaustion β check the calendar before acting on a high score near a scheduled release time.
Section 1 β Move Quality
Answers: is there a real directional move behind this bar?
Move Z-Score (VWAP)
How far price has moved from the session VWAP in standard deviation units. Also used as context for exhaustion β direction matters.
lr = ln(KAMA[n] / KAMA[n-1])
ΞΌ = mean(lr[n], lr[n-1], lr[n-2])
Ο = stdev(lr[n], lr[n-1], lr[n-2])
Z = (lr - ΞΌ) / Ο
Noise|Z| < 1.0 β within normal fluctuation.
Strong|Z| > 1.5 β top 7% of moves. Quality point awarded.
Extreme|Z| > 2.0 β top 2.5%. Often precedes mean reversion.
Direction matters: a negative Z-score means buyers are present (price below VWAP β institutions buying the dip). A positive Z-score means sellers are present (price extended above VWAP). Z is context, not a gate β use it to read who is in control.
Trend Efficiency (Kaufman ER)
Net price displacement divided by total path length over 3 bars. 1.0 = straight line, 0.0 = pure chop.
ER = |Close[n] - Close[n-3]| / Ξ£|Close[i] - Close[i-1]| (i = n-2..n)
ChoppyER < 0.40 β meandering, breakouts likely false.
DirectionalER > 0.60 β straight-line move. Quality point awarded.
Bar Commitment (Body/Range)
Fraction of the bar's range that is body. Marubozu = 1.0, Doji = 0.0.
BE = |Close - Open| / (High - Low)
DojiBE < 0.30 β indecision.
Strong bodyBE > 0.60 β committed bar. Quality point awarded.
MarubozuBE > 0.80 β closes at extreme. Maximum commitment.
Section 2 β Exhaustion
Answers: is the move losing energy?
Price Stretch (KAMA Z-Score)
How far smoothed price has deviated from its own mean over the last 3 bars.
ΞΌ_k = mean(KAMA[n], KAMA[n-1], KAMA[n-2])
Ο_k = stdev(KAMA[n], KAMA[n-1], KAMA[n-2])
priceZ = (KAMA[n] - ΞΌ_k) / Ο_k
Near mean|priceZ| < 1.5 β no stretch signal.
Extreme|priceZ| > 2.0 β strongly stretched. Mean reversion risk.
Mean Reversion (AC1 β Lag-1 Autocorrelation)
Measures whether KAMA log returns self-reinforce (momentum) or alternate (mean-reversion). Negative = market fighting the trend.
r_t = ln(KAMA[t] / KAMA[t-1]) (log returns, last 12 bars)
ΞΌ = mean(r_t)
Ξ£ (r_t - ΞΌ)(r_{t+1} - ΞΌ)
AC1 = ββββββββββββββββββββββββββ
Ξ£ (r_t - ΞΌ)Β²
TrendingAC1 > 0.20 β momentum self-reinforcing.
Reversal regimeAC1 < -0.20 β active mean reversion.
Market Structure (Variance Ratio)
Hurst proxy. VR > 1.0 = trending structure. VR < 1.0 = mean-reverting structure. Computed on KAMA log returns.
r1_t = ln(KAMA[t] / KAMA[t-1]) (1-period returns)
r2_t = ln(KAMA[t] / KAMA[t-2]) (2-period returns)
VR = Var(r2) / (2 Γ Var(r1))
Trending market β VR > 1.0
Mean-reverting β VR < 1.0
Trending strongVR > 1.10 β structural momentum.
Mean-revertingVR < 0.80 β structure turning against the move.
Wick Rejection (WER)
Fraction of the bar that is wicks. High wicks = market actively rejecting the level.
WER = (High - Low - |Close - Open|) / (High - Low)
Clean bodyWER < 0.30 β directional move, no rejection.
Mostly wicksWER > 0.65 β level being actively rejected.
Bar Size Shrinking (Range Ratio)
Current bar range vs 5-bar average. Contraction = energy draining from the move.
BRC = (High - Low) / SMA(High - Low, 5)
ExpandingBRC > 1.20 β bars growing, conviction building.
Contracting fastBRC < 0.70 β sharp contraction. Move dying.
Momentum (KAMA 2nd Derivative)
The acceleration of the KAMA line. Negative = move still going but slowing down each bar.
mom1 = KAMA[n] - KAMA[n-1]
mom2 = KAMA[n-1] - KAMA[n-2]
Decel = mom1 - mom2
Decel > 0 β accelerating
Decel < 0 β decelerating
Section 3 β MM Hedge Signals
Proxy signals for when market maker delta hedging is nearing completion.
Volume vs Average (VER)
VER = Vol[n] / SMA(Vol, 3)
Dried upVER < 0.40 β volume collapsed. Institutional flow drying up.
NormalVER > 0.65 β healthy volume.
Price Velocity (VelRatio)
Current KAMA move vs its recent average. Collapse while price is at an extreme = move dying mechanically.
vel1 = |KAMA[n] - KAMA[n-1]|
velAvg = SMA(|KAMA[i] - KAMA[i-1]|, 3)
VelRatio = vel1 / velAvg
CollapsedVelRatio < 0.30 β velocity dropped sharply.
NormalVelRatio > 0.55 β price still moving at speed.
Hedge Completion (HC)
Composite of velocity collapse, wick rejection, and volume drop β three simultaneous signs of a completing hedge.
verFactor = max(0, 1 - min(VER, 1))
HC = (1 - min(VelRatio, 1)) Γ WER Γ verFactor
Not firingHC < 0.10
Signal firingHC > 0.20 β all three components aligned.
π Macro Dashboard
The Macro Dashboard provides top-down context for both NQ and ES trades. It does not generate entry signals β it tells you whether the macro environment is headwind, tailwind, or neutral, and which index has the structural advantage right now. Always check it before acting on a high exhaustion score.
Macro Bias
A composite score across five macro indicators. Each indicator casts a vote (0, Β±1, or Β±2). VIX and DXY can vote Β±2 in extreme conditions. The sum determines the overall bias label and color. Applies to both NQ and ES β sector rotation then tells you which one has the edge.
score = Ξ£ votes (VIX + 10Y rate + DXY + Gold + RUT)
β₯ +2 β BULLISH (green) macro tailwind for longs
0/Β±1 β NEUTRAL (amber) mixed signals, trade with caution
β€ β2 β BEARISH (red) macro headwind, be selective
When the exhaustion score is high (β₯ 65) AND the macro bias is Bearish β highest conviction fade. When exhaustion is high but macro is Bullish β be cautious, could be a healthy pause not a reversal.
VIX β Volatility Regime
The CBOE Volatility Index measures implied 30-day volatility on the S&P 500. It directly affects how exhaustion signals should be weighted.
VIX < 13 β ComplacentDealers unwind hedges, suppressing realized vol. Mean-reversion signals work best here. +1 Bullish vote.
VIX 13β20 β NormalStandard conditions. Signals are reliable. 0 Neutral vote.
VIX 20β28 β ElevatedIncreased hedging widens intraday swings. Allow more room on stops, reduce size 20β30%. β1 Bearish vote.
VIX 28β40 β FearfulFear-driven market. Vol itself is the price driver β technical signals are significantly less reliable. Size down hard, widen stops. β2 Bearish vote.
VIX > 40 β ExtremeCapitulation-level volatility. Signals are unreliable. Avoid aggressive fades β wait for VIX to peak and turn before re-entering.
Treasury Yields β 10Y & 5Y
The 10-year yield (^TNX) is the discount rate used to value long-duration tech stocks that dominate NQ. Rising yields = higher discount rate = lower present value for future earnings = NQ headwind. The 5Y (^FVX) is used to compute the yield curve spread.
Yield Curve Spread = 10Y β 5Y (informational only β no vote)
> +0.50% β Normal / steep
0 to +0.50% β Flat
< 0% β Inverted β historically precedes recessions 12β18 months out
10Y daily change votes directly: rising yield β Bearish; falling yield β Bullish. The yield curve spread is displayed for context but does not cast a vote. Growth-heavy indexes like NQ are more rate-sensitive than value indexes like ES.
DXY β US Dollar Index
Measures the dollar against a basket of six major currencies. NQ is inversely correlated to DXY on risk-off days: a strong dollar tightens global liquidity and compresses multinational earnings.
Rising > +0.4%Dollar strengthening sharply β tightens global liquidity, headwind for growth equities. β2 Bearish vote.
Rising +0.15% to +0.4%Mild dollar strength β adds pressure if yields also rising. β1 Mildly Bearish vote.
Flat Β±0.15%Neutral. No vote.
Falling β0.15% to β0.4%Dollar softening β mild tailwind for stocks. +1 Mildly Bullish vote.
Falling < β0.4%Dollar falling sharply β loosens global liquidity, clear tailwind for NQ and ES. +2 Bullish vote.
Risk Appetite β Gold & Russell 2000
These two instruments reveal where institutional money is flowing on the day.
Gold risingFlight-to-safety bid β institutional capital moving out of equities. Bearish for both NQ and ES; NQ tends to drop more.
Gold fallingRisk-on rotation out of havens. Bullish vote for equities.
RUT (^RUT) risingSmall caps leading = broad market risk appetite, not just mega-cap defensiveness. Bullish vote for NQ and ES.
RUT fallingSmall caps lagging = narrow rally or broad risk-off. Bearish vote.
Gold up + RUT down = risk-off rotation β strongest bearish macro read for both indexes.
Gold down + RUT up = broad risk-on β confirms longs in NQ and ES.
Using Macro with Exhaustion Scores
High score + Bearish macroBoth confirm. Highest conviction fade β full size is appropriate.
High score + Neutral macroExhaustion on the timeframe but no macro confirmation. Reduce size or wait for alignment.
High score + Bullish macroConflict β likely a pause, not a reversal. Tighten stops instead of fading aggressively.
Low score + Bullish macroBoth confirm trend continuation. Stay in trade β no exhaustion, macro is a tailwind.
Forward Bias β 5β15 Day Outlook
Everything else in this app tells you what is happening right now. The Forward Bias card in the Macro Dashboard tells you where the market is likely to lean over the next 5β15 trading days. It combines three independent, research-backed signals into a single verdict: BULLISH LEAN, BEARISH LEAN, or NEUTRAL.
How to use it: The forward bias does not tell you where to enter a trade today. It tells you which direction has a structural tailwind over the next two to three weeks. Use it as a tiebreaker β when intraday setups point both ways, favor the side that aligns with the forward bias.
PCR 10-Day EMA β Options Sentiment (Contrarian)
The CBOE equity-only put/call ratio measures how many put options (bearish bets) are being bought relative to call options (bullish bets). When retail traders panic and pile into puts, the ratio spikes. Research shows that extreme fear in the options market is a contrarian signal β the market tends to recover 5β12 trading days after a PCR spike.
The app uses a 10-day EMA to smooth out daily noise. The EMA is more reliable than a single-day reading because it captures persistent sentiment shifts, not just one panicky session.
EMA β₯ 1.00 β FEARPut buying is extreme. Retail is hedging hard or shorting aggressively. Historically contrarian bullish β the crowd is usually wrong at extremes.
EMA 0.65β1.00 β NEUTRALNormal put/call balance. No contrarian edge β options sentiment is not sending a directional signal.
EMA β€ 0.65 β GREEDCall buying is extreme β complacency. When everyone is positioned long and there is no fear left, the market is vulnerable to a pullback.
Source: CBOE equity-only put/call ratio (equitypc.csv). Updated end-of-day. This is the equity-only ratio β it excludes index options like SPX, which are dominated by institutional hedging and skew the signal.
VIX Term Structure β Near vs Medium-Term Fear
The VIX measures expected volatility over the next 30 days. But CBOE also publishes a 9-day version (VIX9D) and a 3-month version (VIX3M). Comparing these three gives you the term structure of fear β whether the market is more afraid of next week or of the next quarter.
CRISIS β VIX/VIX3M > 1.05Front-end backwardation. The market fears the present more than the future β this is a crisis regime. Historically precedes continued volatility and downside for 5β20 days.
SPIKE β VIX9D > VIXNear-term event fear. The 9-day vol is elevated above the 30-day β typically happens into FOMC, CPI, or earnings. Fear resolves after the event; slight bearish short-term, neutral medium-term.
NORMAL β Mild contangoVIX < VIX3M, VIX9D < VIX. Normal market structure β the market expects lower near-term vol than long-term. No directional edge from vol structure alone.
CALM β Deep contangoVIX9D well below VIX, VIX well below VIX3M. Vol market is pricing very low near-term risk β typical of trending, low-volatility bull markets. Slight forward bullish lean.
Ratios shown: VIX9D/VIX (front ratio) and VIX/VIX3M (term ratio). A front ratio above 1.0 = backwardation at the front end. A term ratio above 1.05 = crisis regime.
DIX β Dark Index (Institutional Dark Pool Flow)
DIX (Dark Index) is computed by SqueezeMetrics from FINRA short-sale volume data across S&P 500 stocks. It measures the fraction of S&P 500 volume that trades on dark venues (ATS / internalized) relative to lit exchange volume. Because institutions route large buy orders through dark pools to avoid moving the price, a high DIX reading indicates that institutional buyers are accumulating quietly.
This is a 10β20 day forward signal. When institutions are buying heavily in dark pools today, the price impact of that buying typically shows up in market prices over the following two to four weeks.
DIX > 45% β BuyingAbove-average dark pool buying. Institutions are accumulating. Contrarian bullish signal for the next 10β20 days β historically associated with above-average forward returns.
DIX 38β45% β NeutralNormal dark pool activity. No institutional signal β flow is within the historical average range.
DIX < 38% β SellingBelow-average dark pool volume. Institutions are not buying β possibly distributing. Contrarian bearish signal for the next 10β20 days.
Source: SqueezeMetrics (squeezemetrics.com), derived from FINRA ATS short-sale volume data. Updated end-of-day. If DIX is unavailable (data source offline), the card still shows PCR and VIX term structure β the verdict is computed from whatever signals are available.
How the Forward Verdict Is Computed
Each signal casts a vote: 0, Β±1, or Β±2. VIX votes β2 at β₯30; DXY votes Β±2 beyond Β±0.4%. The yield curve spread is informational only and does not vote.
Score β₯ +2: BULLISH LEANMultiple signals agree β 5β15 day tailwind. Favor long setups, buy dips rather than fade bounces.
Score = +1: MILD BULLISH BIASSlight edge. Use as a tiebreaker β prefer long setups when intraday signals are mixed.
Score = 0: NEUTRALNo clear multi-day edge. Trade the intraday technicals without a forward bias overlay.
Score = β1: MILD BEARISH BIASSlight headwind. Prefer short setups when mixed; avoid adding to longs on bounces.
Score β€ β2: BEARISH LEANMultiple signals agree β 5β15 day headwind. Reduce long exposure on bounces; favor fade setups.
Market Stress Score (0 β 100)
A second score on the home page alongside the exhaustion cards. It does not tell you direction β it tells you whether conditions are safe enough to trade at all. High stress means the market is chaotic or under forced selling. Low stress means conditions are calm and your directional setups (long or short) can be executed normally.
What Each Label Means
NORMAL Β· 0β29Trade freely. No unusual stress in the market environment.
ELEVATED Β· 30β49Some stress present. Be selective β smaller size, tighter stops.
HIGH Β· 50β69Conditions unfavorable. Trade very small or wait for stress to drop.
EXTREME Β· 70β100Stay flat. Forced selling likely β no clean edge exists in either direction.
How the Score Is Built (max 100 pts)
VIX Β· max 30 ptsβ₯17 = 6 pts Β· β₯22 = 14 pts Β· β₯28 = 22 pts Β· β₯35 = 30 pts. VIX is the biggest driver β a spike alone can push the score into HIGH.
Sectors red Β· max 25 ptsHow many of the 11 SPDR sectors are down more than 0.3%. Broad selling (8+ sectors red) adds the full 25 pts.
Leaders red Β· max 20 ptsHow many of the 7 NQ leaders (NVDA, AAPL, MSFT, AMZN, META, GOOGL, TSLA) are down more than 0.5%. Proportional to the count.
Dollar up + NQ down Β· max 10 ptsDXY rising more than 0.3% while NQ falls more than 0.3%. Dollar strength is driving the selling β not organic.
NQ + Gold + Bonds all red Β· 10 ptsAll three falling at the same time means someone is selling everything to raise cash. No safe haven exists β stay flat.
Fear & Greed <25 Β· 5 ptsCNN Fear & Greed in extreme fear territory adds a small bonus to the score.
The breakdown chips on the card show exactly which components fired and how many points each contributed.
Stress vs Direction
Low stress + Bearish macroClean environment for shorts. Conditions are calm, macro confirms direction.
Low stress + Bullish macroClean environment for longs. Trade with confidence.
Elevated stress + any directionReduce size. The environment is noisy β stops will be hit more often than normal.
Extreme stress + any directionDo not trade. Forced liquidation events don't respect technical levels.
π Sector Heatmap Β· NQ & ES
Two color-coded grids β one for the Nasdaq-100 (NQ) and one for the S&P 500 (ES). Each tile is a SPDR sector ETF traded on NYSE Arca. Tile width is proportional to that sector's actual weight in the index. Color reflects the ETF's daily % move: dark green = strong up, dark red = strong down, gray = flat (within Β±0.3%) β gray tiles are doing nothing meaningful today.
Tile Color Key
+2.0%+Strong green β sector surging. Major tailwind for any index it dominates.
+0.3% to +2%Green β sector up meaningfully. Positive contribution to implied index move.
β0.3% to +0.3%Gray β flat. Sector is not moving enough to matter today. Ignore it.
β0.3% to β1%Red β sector down. Negative drag on any index where it has significant weight.
β2.0%+Dark red β sector in sharp selloff. If this is XLK, NQ is under serious pressure.
The 11 Sectors β What They Are
Weights shift daily as prices move and indexes rebalance. Use the live Macro Dashboard heatmap for current proportions β the labels below show relative scale only.
| ETF | Sector | NQ role | ES role | Key holdings |
|---|
| XLK | Technology | Dominant | Large | MSFT, AAPL, NVDA, AVGO |
| XLC | Communication | Large | Medium | META, GOOGL, NFLX, TMUS |
| XLY | Cons. Discretionary | Large | Medium | AMZN, TSLA, HD, MCD |
| XLV | Healthcare | Small | Large | UNH, LLY, JNJ, ABBV |
| XLI | Industrials | Small | Medium | CAT, GE, HON, RTX |
| XLF | Financials | Minimal | Large | JPM, BRK-B, V, MA |
| XLP | Cons. Staples | Minimal | Medium | WMT, PG, COST, KO |
| XLE | Energy | Not in NQ | Small | XOM, CVX, COP |
| XLB | Materials | Not in NQ | Minimal | LIN, FCX, APD |
| XLU | Utilities | Not in NQ | Minimal | NEE, DUK, SO |
| XLRE | Real Estate | Not in NQ | Minimal | AMT, PLD, EQIX |
NQ is dominated by Technology β tech alone explains most of its daily moves. ES is more balanced: Financials and Healthcare carry significant weight in ES but almost none in NQ. That difference is why NQ and ES often diverge on financial or healthcare news.
Sector-Implied Move
The dashboard computes a sector-implied move for both NQ and ES by taking the weighted average of all sector ETF daily changes using each index's actual weights.
NQ implied = Ξ£ (XLK_chg Γ nqW) + (XLC_chg Γ nqW) + (XLY_chg Γ nqW) + ...
ES implied = Ξ£ (XLK_chg Γ esW) + (XLF_chg Γ esW) + (XLV_chg Γ esW) + ...
Implied > ActualSectors say the index should be higher than it is β something is holding it back (options flow, futures positioning). Potential catch-up trade long.
Implied < ActualFutures are ahead of the underlying sectors β index may be front-running or driven by futures speculation. Potential mean-reversion lower.
Implied β ActualNo divergence β sectors and futures are in sync. Trade the exhaustion signal with full confidence in price representation.
Reading the Heatmap for NQ vs ES Divergence
XLK green, XLF redTech leading, financials lagging β NQ outperforms ES. Favor NQ longs over ES longs.
XLF green, XLK redFinancials leading, tech lagging β ES outperforms NQ. Rotation from growth to value. NQ fades carry higher conviction.
XLU or XLP leadingDefensive sectors outperforming β risk-off rotation. Broad market caution, avoid new NQ longs.
XLE or XLB leadingEnergy/materials leading β inflation trade or commodity cycle. Neither NQ nor ES strongly implied; check DXY and yields.
All sectors greenBroad risk-on. Both NQ and ES have macro wind behind them β stay in long positions, raise targets.
All sectors redBroad selling β no safe rotations. High exhaustion scores carry maximum conviction. Size down or wait for a bounce to fade.
Coming Up Today β Economic Events
At the bottom of the Macro Dashboard, upcoming economic events for the day (and next day) are listed with live countdowns. HIGH-impact events (red border) include FOMC decisions, CPI, NFP, GDP. Each event shows forecast vs previous value.
NOWEvent is live β data just released or within the last 30 minutes. Card background changes to highlight it.
in Xm / in Xh YmCountdown to the event. Update positions or reduce risk before HIGH-impact events if the Score is elevated.
Fear & Greed Index (CNN)
CNN's composite sentiment gauge aggregates seven market indicators (momentum, strength, breadth, put/call, junk bond demand, market volatility, safe haven demand) into a single 0β100 score.
0β20 β Extreme FearHistorically bullish contrarian signal. When everyone is panicking, the market is often nearest a short-term bottom. Below 20 = look for stabilization signals before fading the down move.
21β40 β FearRisk-off sentiment dominant. Avoid aggressive longs; allow more room for short setups. Not extreme enough for a pure contrarian play.
41β60 β NeutralMixed sentiment. No contrarian edge from this indicator alone β trade the technicals.
61β80 β GreedComplacency building. Markets can remain greedy for extended periods, but tighten stops on longs and reduce size on new long entries.
81β100 β Extreme GreedComplacency at extremes. Historically bearish contrarian signal β tighten stops aggressively, reduce long exposure, watch for an exhaustion signal to confirm the fade.
Previous day shown for comparison.
Below 20 β historically bullish contrarian signal
Above 80 β complacency β tighten stops, reduce size
Source: CNN Fear & Greed Index (updated daily). A reading below 20 adds +5 pts to the Market Stress Score. Use alongside VIX and PCR β all three agreeing at extremes = highest contrarian conviction.
Global Markets β Overnight Tone
Four major international indexes give an overnight read on global risk appetite before the US cash session opens. Source: Yahoo Finance.
FTSE 100 (UK)London session. Financials and energy heavy β a rising FTSE signals European risk-on. Closes ~11:30 AM ET.
DAX (DE)Germany β export and industrial bellwether. Strong DAX reflects global trade confidence. Closes ~12:30 PM ET.
Nikkei 225 (JP)Tokyo session. Yen strength/weakness heavily affects it β Nikkei down + yen up = risk-off overnight signal.
Hang Seng (HK)Hong Kong β China proxy. Reflects risk sentiment around Chinese tech and real estate. Volatile around policy announcements.
Overnight tone rules:
2+ indices down > 1% β expect US gap-down pressure at open
2+ indices up > 1% β global risk-on β US likely to open constructively
Mixed β no directional read β trade the US open price action
Global markets are context, not triggers. They set the overnight tone β the US open reaction is what actually matters. A gap-down on a strong global overnight is a stronger fade long setup than one with a weak overnight.
Decision Card β Trading Decision Label
The Decision Card synthesizes macro indicators, exhaustion score, breadth, and sector leadership into a single actionable label with a confidence level.
Strong LongMacro bullish, score low, breadth broad, leaders green. Maximum long conviction β all streams aligned.
Lean LongMacro tailwind but not all layers confirmed. Moderate long bias β size 50β75% of normal.
NeutralMixed signals across streams. No directional edge. Wait for alignment before committing capital.
Lean ShortMacro headwind building, score elevated, some leaders rolling. Moderate short/fade bias.
Strong ShortAll streams bearish β macro, exhaustion, breadth, and leaders all confirm. Highest fade conviction.
High confidence3+ independent data streams agree. Trade at full size.
Moderate confidence2 streams agree, 1 is neutral or mixed. Trade at 50β75% size.
Low confidenceStreams disagree. Use as a tiebreaker only β do not initiate new positions on this alone.
Market Read β Plain-English Narrative
A plain-English summary generated from live data that narrates current market conditions. Updated each time macro data refreshes. Covers:
NQ vs ES rotationWhich index is leading and what sector is driving the divergence (tech vs financials/defensives).
Sector leadershipWhich sectors are outperforming and whether the leadership is cyclical (risk-on) or defensive (risk-off).
Leader spotlightsReal-time status on AAPL, NVDA, and MSFT β whether they are dragging or leading the tape. These three names alone account for a large fraction of NQ daily variance.
Breadth qualityWhether the move is broad (most sectors participating) or narrow (1β2 sectors carrying the index).
Implied vs actual divergenceWhether sector-implied move aligns with futures price β divergences signal potential catch-up or mean reversion.
Options Flow β‘ (Macro Page)
The Options Flow card (β‘ on the Macro page) scans QQQ, SPY, IWM, GLD, and USO option chains for unusual sweeps β large, aggressive options orders that cross the ask and often indicate institutional directional conviction.
Instruments coveredNQ (via QQQ), ES (via SPY), RTY (via IWM), GC (via GLD), CL (via USO). Call vs put premium is aggregated per futures equivalent.
Top 8 sweeps shownSorted by sweep score. Each sweep shows: premium size ($), whether the strike is OTM (out-of-the-money), and a sweep quality score (β
β
β
β
β
).
CALL BIASInstitutions are buying calls aggressively β bullish tailwind for that instrument. Treat like a bullish macro vote.
PUT BIASInstitutions are sweeping puts β bearish signal. Increases conviction on short/fade setups for that instrument.
OTM flagOut-of-the-money sweeps carry more directional conviction β OTM options have no intrinsic value, so buyers are purely betting on a move.
Options flow is a leading indicator β institutional players often position 1β5 days before a major move. A strong PUT BIAS sweep on NQ (via QQQ) combined with a high exhaustion score is one of the highest-conviction setups in the system.
AMAGEDON Strength β TradingView Indicator
Pine Script v6 indicator in its own pane. Uses raw close (not KAMA) for speed on live bars.
Verdict Logic
strScore = (|Z| > 1.5 ? 1 : 0) + (ER > 0.60 ? 1 : 0) + (BE > 0.60 ? 1 : 0)
exhScore = (Decel < 0 ? 1 : 0) + (BRC < 0.80 ? 1 : 0) + (WER > 0.60 ? 1 : 0)
exhScore>=2 AND strScore>=2 β EXHAUSTED β FADE RISK (red)
exhScore>=2 AND strScore<=1 β EXHAUSTED β LOW QUALITY β (orange)
strScore>=2 β TRENDING β HOLD (green)
else β MIXED β WAIT (grey)
Reintegration Section (Zone Edge)
Set a Fibonacci zone edge price to enable this section.
BPR = (Close - zoneEdge) / |closeAtBreakout - zoneEdge|
> 1.0 extending | 0.5-1.0 holding
0-0.5 fading | < 0 reintegrated
RV = (Close - Close[1]) / ATR(5) (ATR-normalised bar return)
Reading Signal Combinations
Strongest fadeScore β₯ 75 with price outside value on light volume, long gamma, choppy structure and compressing vol. Location, gamma and structure all pointing the same way at once β the components agree rather than one carrying the score alone.
Caution zoneScore 55β74 with price still inside value. The environment favors fading but nothing has left the range yet β wait for an excursion rather than fading on the setup alone.
Stay in tradeScore < 25 with short gamma, a clean trend and expanding vol. Dealers are amplifying the move; fading it is how you get run over.
Decay-dominated weekCharm several times larger than gamma into a short expiry. Expect drift toward the largest strikes rather than a directional push, regardless of what the score says.
Regime breakingVol flips from compressing to expanding while the score is high. The fade setup is decaying in real time β the volatility-expansion alert exists for exactly this.
Low coverageScore shown with coverage under 70%. One or more engines are down; the number is provisional and the missing component may be the one that mattered.
Index divergenceNQ/ES Decoupled while one shows high score. Trade the weaker instrument, not both.
Event riskHigh score right before a scheduled HIGH-impact calendar event β could be positioning, not exhaustion. Wait for the release.
All signals are based on the last closed bar. Auto-refreshes every 60 seconds. Use as context for your own analysis, not as mechanical entry signals.
MoS X-Signal β Momentum of Structure
A two-stage exhaustion system. The X fires first as a watch/loading alert. Full EXHAUSTED fires when MoS confirms the rollover. This avoids trading into a move that is still building.
Calculation
MoS = Score[bar] β Score[barβ1] (first derivative of score)
mosSmooth = SMA(MoS, 3) (3-bar smoothed momentum)
Stage 1 β X (Watch):
pineNorm β₯ 95% of threshold AND |MoS| β₯ 15
β score is near peak AND momentum is moving strongly in either direction
β shows as β on sparkline / WATCH SHORT β LOADING or A+ LONG label
Stage 2 β EXHAUSTED (confirmed):
pineNorm β₯ 95% of threshold AND mosSmooth β€ β14 AND direction matches
β MoS has rolled negative AND pineDispDir confirms the move
β red card, strongest fade signal
The X fires on |MoS| β₯ 15 β both bullish and bearish momentum qualify. It is a watch stage, not a trade signal. Full EXHAUSTED requires MoS β€ β14 (score declining) AND direction alignment.
Reading the X on the Sparkline
β solid (bright)pineNorm β₯ 95% threshold AND |MoS| β₯ 15 β watch stage. Score is near threshold with strong momentum. Loading for the EXHAUSTED signal.
β fadedCriteria met on a prior bar β still valid context, but not the freshest occurrence.
No XpineNorm below 95% or |MoS| below 15 β exhaustion building but not yet at watch stage.
Using the X with Gold Context
X + Gold Risk-OffGold bid while NQ sells β confirms the X as a macro-driven reversal, not just technical exhaustion.
X + Gold BullishBoth up β dollar debasement trade. X still valid but less clean; watch for NQ to diverge.
X + Gold Risk-OnGold selling, NQ bid β classic risk-on. X may be a false peak; be cautious fading.
Which Way? β Score vs Direction
The most common confusion: the score is 0, sentiment is 52, but everything looks bearish. What does it mean? The tracker has two independent layers β they answer different questions.
Layer 1 β Direction (HMA indicators)
These tell you which way the trend is going right now. They are always active β whether the score is 0 or 100.
Trend β DownHMA slope is negative β the moving average is falling. The structural bias is bearish.
Trend β UpHMA slope is positive β the moving average is rising. The structural bias is bullish.
BEAR CROSSPrice just crossed below the HMA. The trend recently turned bearish.
BULL CROSSPrice just crossed above the HMA. The trend recently turned bullish.
Below HMA βΌPrice is under the HMA line β price is in the bearish zone.
Slope Falling βHMA curve is declining β the trend is accelerating downward.
If Trend β, BEAR CROSS, Below HMA, and Slope Falling all show at once β the trend is firmly down. That is your direction.
Layer 2 β Exhaustion Score (0β100)
This tells you how much energy is left in that trend. It is not a direction indicator.
Score 0 β TREND FRESHNo exhaustion. The trend has plenty of room left. Stay with it β do not fade it.
Score 40β80 β BUILDINGExhaustion accumulating. The move is maturing. Start watching for a reversal setup.
Score β₯ 95 β EXHAUSTEDThe move has used up its energy. Signal fires β fade the trend direction.
Score 0 with Trend β Down = stay short. The trend is down and there is no exhaustion yet β nothing says it will stop. Score 95 with Trend β Down = cover short / look long. The down move is exhausted.
Layer 3 β Sentiment Oscillator (weekly buy dominance)
This measures cumulative weekly buy vs sell volume pressure. It only fires an exhaustion signal at the extremes.
Sentiment = cumBuyVol / (cumBuyVol + cumSellVol) Γ 100 (resets each Sunday 6 PM ET)
β₯ 70 β Overbought exhaustion (score β₯ 95) β buyers dominated all week, fade the up move
β€ 43 β Oversold exhaustion (score = 95) β sellers dominated, fade the down move
β€ 30 β Deep oversold (score = 100) β extreme selling exhaustion
50β69 β Neutral zone β NO SIGNAL regardless of which side is slightly winning
43β50 β Slightly oversold β building toward signal but not there yet
Sentiment at 52 does not mean "go long." It means buyers have slightly more volume this week β that is noise. The signal only fires at β₯ 70 or β€ 43. Everything between those levels is neutral.
Putting It Together β The Quick Read
Trend β + Score 0Stay short. Fresh bearish trend, no exhaustion. Do not fade it.
Trend β + Score 0Stay long. Fresh bullish trend, no exhaustion. Do not fade it.
Trend β + Score β₯ 95 + Sentiment β€ 43Down move exhausted. Signal to cover short or go long.
Trend β + Score β₯ 95 + Sentiment β₯ 70Up move exhausted. Signal to close long or go short.
Trend β + Score 50β90Trend maturing. Tighten stops, reduce size β do not add to the trade.
The score tells you when to act. The HMA / slope / cross tells you which direction to act in. You need both.
Exhaustion Signal Labels & Card Colors
The main card on the Exhaustion Tracker shows a signal label and changes color based on what stage the exhaustion has reached. Red = confirmed exhaustion zone. Purple = watch/developing. Neutral = fresh move, no setup yet.
Signal Hierarchy
EXHAUSTED β FADE SHORT/LONG (red card)Score β₯ threshold + direction match. The move is fully exhausted β highest conviction mean reversion setup. Card turns red.
SCORE BUILDING β WATCH SHORT/LONG (purple)Score β₯ threshold + MoS still positive. Not exhausted yet but approaching. Watch for MoS to roll negative.
ROLLING OVER β FADE SHORT/LONG (purple)Score β₯ threshold + MoS now negative. Structure rolling β exhaust gate not yet hit. Direction sets which side to fade.
OVERBOUGHT / OVERSOLD β WATCH (purple)Score β₯ threshold, MoS neutral. Exhaustion peaked but no directional confirmation yet. Watch, don't act.
BUILDING β WATCH FOR [threshold] (neutral)Score 35βthreshold. Energy building but no setup yet. Monitor β do not fade.
MIXED SIGNALS β WAIT (purple)Score < 35 but direction and sentiment disagree. Wait for both to align before acting.
FRESH MOVE UP/DOWN β NO SETUP YET (neutral)Score < 35. Move is too fresh to fade β exhaustion hasn't built. This is not a trend signal; it means wait.
Only EXHAUSTED turns the card red. All watch/developing signals are purple. Fresh move and building states are neutral β no card color change. This keeps false urgency out of the visual.
Direction Consensus
Every card shows a Dir line driven by a 4-indicator majority vote β no single lagging line, real-time data only.
Bar Vote 1: KAMA slope β adaptive momentum rising or falling?
Bar Vote 2: RSI vs 50 β price momentum: buyers or sellers in control?
Bar Vote 3: priceZ20 > 0 β is price above its 20-bar mean?
Bar Vote 4: Structure β higher highs/lows (bullish) or lower (bearish)?
Tick Vote 5: cumDelta > 0 β net buy vs sell tick pressure
Volume Vote 6: MFI vs 50 β volume-weighted money flow direction
β² Up β β₯ 3 of 6 votes up β consensus direction is bullish
βΌ Down β β₯ 3 of 6 votes down β consensus direction is bearish
This replaces the Hull Moving Average. Using 3 data dimensions (bar, tick, volume) makes the signal robust β price alone can lie when volume disagrees. Majority of 6 required (β₯ 3 up = bullish). Used to determine the fade direction and the DC Pro displacement bias.
Exhaustion Composite Score (P Β· M Β· Z + Macro)
The primary 0β100 score that answers: how complete is the exhaustion setup right now? See the live score on the Score page. It connects all data streams β Pine, MoS, Z-score, macro bias, VIX, breadth, and GEX β into a single number.
Three Components
P = pineNorm = min(score / threshold, 1) Γ 100
How close the raw pine score is to its threshold (0β100%)
M = mosNorm = 0 when MoS β₯ 0; min(βmosSmooth / 15, 1) Γ 100 when MoS < 0
How far MoS has rolled negative (0 while building, 100 when β€ β15)
Z = zNorm = min(|vwapZScore| / 1.31, 1) Γ 100
How extended price is from VWAP (context β negative Z = buyers, positive = sellers)
Formula
composite = min(P, M, Z) Γ 0.6 + avg(P, M, Z) Γ 0.4
The weakest component (min) has 60% weight β a composite above 80 requires
all three components to be elevated simultaneously.
0β39Setup incomplete. At least one component is weak β wait for all three to build.
40β69Building. Multiple components elevated but not all aligned. Watch closely.
70β100Strong setup. Pine score near threshold, MoS rolling over, and Z extended. Highest conviction.
Heat (H) is intentionally excluded from the composite β it is already a gate inside the individual exhaust signals and adding it here double-penalizes pullbacks. Use the three-bar PΒ·MΒ·Z composite as a setup quality filter, not as a trade trigger on its own.
GEX Dashboard β Gamma Exposure
Gamma Exposure measures how much dealers (market makers) need to hedge as price moves. It tells you whether the market has a structural tailwind (pinning) or headwind (amplification) based on options positioning.
How GEX Is Calculated
Dollar GEX per strike = Gamma Γ OI Γ 100 contracts Γ Spot
Calls add positive GEX (dealers long gamma β buy dips, sell rips)
Puts add negative GEX (dealers short gamma β sell dips, buy rips)
Net GEX = sum across all near-term strikes (β€45 days)
Futures price = ETF strike Γ live multiplier (futuresSpot / ETF spot)
Data via Schwab options chains. Proxies: NQβQQQ, ESβSPY, GCβGLD. (Schwab provides per-contract gamma directly β no Black-Scholes required.)
Regimes
Positive GammaNet GEX > 0. Dealers buy dips and sell rips β vol suppressed, price gravitates toward the gamma flip level. Breakouts are harder to sustain. Weight exhaustion signals more heavily.
Negative GammaNet GEX < 0. Dealers chase moves β volatility expands, directional squeezes more likely. Breakouts from Fibonacci zones more likely to persist. Give more room to strength signals.
Key Levels
Gamma FlipThe ETF strike (and its futures equivalent) where adjacent strikes change sign. Price above flip = positive gamma regime. Below = negative. The flip is the most important level to monitor.
Call WallsStrikes with the largest positive GEX. Act as resistance β dealers sell into price approaching these levels.
Put WallsStrikes with the largest negative GEX. Act as support in positive gamma regimes; become fuel for breakdown in negative gamma.
Using GEX with AMAGEDON
Negative gamma + Score β₯ 65Highest conviction setup. Structural amplification + exhaustion at the same time. Dealers will chase the move if it breaks.
Positive gamma + Score β₯ 65Fade the exhaustion but expect mean reversion back toward the flip level, not a full trend reversal.
Gamma Flip as Zone EdgeEnter the Gamma Flip (futures) into AMG-STR as your Zone Edge for Breakout PR tracking.
GEX History Chart
Below the Net GEX card, a bar chart records every fresh GEX fetch (up to 60 snapshots per symbol, stored locally on your device). Green bars above the zero line = positive gamma readings; red bars below = negative. A vertical accent line marks the most recent regime flip.
Flip markerVertical line on the chart showing the snapshot where GEX crossed from positive to negative (or vice versa).
Counts & streakSummary below the chart shows what % of your recorded readings were positive vs negative, and how many readings in a row the market has stayed in the current regime.
Local onlyHistory is saved in your browser's localStorage β it accumulates from the first time you refresh GEX data and persists across sessions on the same device.
GEX β Max Pain, PCR, ATM IV & Walls
Max Pain
The strike price where the total dollar value of expiring options (calls + puts) is minimized for option sellers (dealers). Price tends to gravitate toward max pain as expiration approaches because dealers hedge in ways that push it there. Most relevant in the final 2 days before expiration.
PCR Volume (Put/Call Ratio)
Total put volume divided by total call volume for the near-term expiry. Above 1.0 = more puts than calls traded = bearish lean. Below 0.7 = call-heavy = bullish lean. Values between 0.7β1.0 = neutral. PCR is a sentiment indicator, not a precision timing tool β use it to confirm the direction of an exhaustion signal, not to call tops or bottoms.
ATM IV (At-the-Money Implied Volatility)
The implied volatility of the closest strike to the current spot price. Green (<20%) = low vol, signals reliable, standard size. Amber (20β30%) = elevated vol, allow wider stops. Red (>30%) = high vol, reduce size 20β30% and be aware that exhaustion signals may fire early.
Gamma Walls (Positive & Negative Levels)
The strikes with the largest positive GEX (call walls) and largest negative GEX (put walls) near the current price. Each row shows the ETF strike, the equivalent futures price, and the GEX magnitude as a horizontal bar.
β² Positive wallsActs as resistance in a positive gamma regime β dealers sell into price approaching these strikes. In negative gamma, price can blow through them.
βΌ Negative levelsActs as support in a positive gamma regime; becomes a magnet and then accelerant in negative gamma β dealers chase price through these levels.
GEX Profile Chart
A horizontal bar chart of every strike's net GEX. Green bars extend right (positive GEX = support), red bars extend left (negative GEX = resistance/fuel). The yellow spot line marks the current ETF price. The width of a bar shows how much GEX is concentrated at that strike relative to the largest level.
Per-Strike GEX Table
Full breakdown of every strike within Β±5% of spot: call gamma, put gamma, call volume, put volume, net GEX (M$), delta-adjusted GEX, and gamma flow. The current spot row is highlighted in gold. Scroll horizontally on mobile. Use this to see exactly which strikes carry the most structural weight.
Dealer Positioning β The Greeks
On the Score page. Dealers take the other side of options trades and hedge in the underlying, and that hedging is mechanical and predictable. This card infers what they are being forced to do. All values come from the front options expiry with at least one day remaining β same-day expiries are excluded because their Greeks degenerate as time runs out.
Position
GEXGamma exposure. Positive (long gamma) means dealers trade against the move β they sell rallies and buy dips, which suppresses volatility and pins price near large strikes. Negative means they chase the move and amplify it.
DEXNet delta exposure in dollars β the directional lean of the open interest. Positioning, not prediction.
VannaDollars of delta per 1-point change in implied vol. This is the channel through which a volatility spike turns into forced buying or selling in the underlying.
CharmDollars of delta per day from time decay alone. It forces a hedge every day regardless of price, and it accelerates into expiry. When charm dwarfs GEX, the week is driven by decay drift rather than by price action.
ThetaDollars per day bleeding out of the long options book.
VegaDollars gained or lost per 1-point move in implied vol. Naturally shrinks as expiry approaches.
Volatility surface
ATM IVAnnualized volatility priced into at-the-money options β the marketβs own forecast of how much the underlying will move.
25Ξ SkewHow much more expensive downside protection is than equivalent upside. Equity indices normally carry a few points of positive skew; a flat reading means nobody is paying for crash insurance, which is a complacency signal and makes hedges cheap.
TermLater expiry IV minus front expiry IV. Positive (contango) is the calm default. Negative (backwardation) means the market is bracing for a near-term event.
Expected moveThe range priced in between now and expiry, taken from the at-the-money straddle. Roughly one standard deviation β price finishes inside it about two times in three. Use it to sanity-check whether a target is realistic.
Measured versus modelled
Schwab supplies delta, gamma, theta and vega per contract directly. Vanna and charm are second-order Greeks it does not provide, so they are derived with BlackβScholes from the chainβs own implied vol and days to expiry. They are reliable for reading the regime; treat the dollar magnitudes as good estimates rather than exact figures. Options data uses an ETF proxy β QQQ for NQ, SPY for ES, GLD for GC.
Volatility Regime
On the Score page, directly below Dealer Positioning. Where the Greeks card reports what the options market expects, this one measures what price has actually done, from a year of daily candles. The gap between the two is usually where the edge is.
Metrics
RV 20D / RV 5DAnnualized realized volatility from the last 20 and 5 daily closes. Compare them: when the 5-day is far below the 20-day, volatility has recently collapsed and the headline regime label is describing an event that has already passed.
ParkinsonVolatility estimated from daily high-low ranges instead of closes. When it sits below the close-to-close figure, the movement came from overnight gaps rather than from intraday range.
RegimeWhere 20-day realized vol ranks against every other 20-day window in the past year: Low, Normal, High or Extreme.
Z-ReturnTodayβs move in standard deviations against the recent norm. Beyond Β±2Ο is a genuinely unusual day.
ATR 14Average daily true range as a percent of price. Size stops against it β a stop inside one ATR gets taken out by ordinary noise.
Mom 20DPlain price change over the last 20 sessions.
VRPVariance risk premium: implied vol minus realized vol. Normally positive, because options usually cost more than the movement that follows. Negative means options look cheap. Read it against the 5-day realized figure as well β the 20-day window can keep a stale spike alive and overstate how cheap options really are.
HurstWhether moves persist or revert. Above 0.57 trends continue, below 0.38 they reverse, in between there is no memory. The bands are wider than the textbook values because the estimator is noisy at this sample size.
EfficiencyNet distance travelled divided by total path length over 20 bars. Near 1 is a clean one-way trend; near 0 means price wandered a long way to go nowhere, and breakouts tend to fail.
Data handling
Continuous futures series carry contract-roll gaps, and a single bad tick would sit in the tail of every window it touches and inflate realized vol for a month. Daily returns beyond 25% are treated as data artifacts rather than market moves β index futures are limit-bound well inside that β and the count of anything filtered is reported alongside the results.
Settings & Theme
Display Theme
Five color themes available in Settings. Each changes the entire app's color palette and is saved to localStorage.
DarkDefault. Near-black background (var(--bg)) with purple-tinted cards. Best for low-light and overnight sessions.
DimSofter dark with muted grays. Easier on the eyes for long sessions.
LightWhite background, dark text. Best for daylight or bright environments.
WarmSepia-toned dark theme. Reduces blue light for evening trading.
High ContrastPure black background, maximum color contrast. Best for readability in bright sunlight or for accessibility.
Data Sources
Schwab (futures prices, options chains) Β· Alpaca (equity quotes) Β· FRED (macro data, 1-day lag) Β· Yahoo Finance (indices, sectors, global markets) Β· CNN (Fear & Greed) Β· CBOE (VIX, PCR) Β· SqueezeMetrics (DIX). All data is for informational purposes only β not financial advice.
Market Intelligence Panel
Tap the π° button in the Exhaustion Tracker header to open the Market Intelligence panel. Five tabs give you a full picture of what is moving across all markets.
π‘ News
Live headlines from Yahoo Finance, CNBC, and MarketWatch. Articles are classified as HIGH (red dot), MEDIUM (orange), or NORMAL. HIGH-impact items include Fed speakers, CPI, NFP, tariffs, geopolitical events. Sorted high-impact first, then by recency.
β‘ Futures
Live prices and % change for 35 instruments across 7 groups: Equities (NQ, ES, YM, RTY, Nikkei, VIX), Bonds (10Y, 30Y, 2Y, Fed Funds), Metals (Gold, Silver, Platinum, Copper), Energy (WTI, Brent, Nat Gas, Gasoline), Agriculture (Wheat, Corn, Soybeans, Coffee, Sugar, Cotton), FX (Dollar, EUR, JPY, GBP, AUD, CAD, CHF), Crypto (BTC, ETH, SOL, XRP). Each card shows prev close, 5-day sparkline with direction arrows, 5d net %, and Expected Move (day + week).
Expected Move source β labelled IV (blue) or HV (grey): NQ uses VXN, ES uses VIX, GC uses GVZ, CL uses OVX β all CBOE annualised implied volatility indices. Formula: price x (IV/100) / sqrt(252) for daily 1-sigma move; x sqrt(5/252) for weekly. All other instruments use 5-day realised volatility (historical vol) as a proxy.
Movers tab is always-on: Futures Gainers/Losers sorted by % change (24/7), Crypto Trending from CoinGecko, and US Equity screener (most active, top gainers/losers) during US market hours only.
π₯ Trending
What the market is talking about right now. StockTwits trending symbols (by watchlist volume), Yahoo Finance trending searches, CoinGecko top 7 trending crypto coins, and Reddit r/WallStreetBets hot posts with score and comment count.
π Movers
Top movers from Yahoo Finance screener. Most Active by volume, Top Gainers, Top Losers β each showing symbol, name, price, and % change. Useful for spotting rotation and sector flows in real time.
π
Calendar
Upcoming economic events with expected vs actual values. HIGH impact events (red) include FOMC, CPI, NFP, GDP. USD events are bolded. Use alongside the News tab before a scheduled release to check if the Score is elevated due to positioning.
π Amatout β Compound Exhaustion Diagram
Amatout is the daily-timeframe exhaustion lens. Where the Exhaustion Tracker reads a single intraday bar, Amatout runs the full multi-factor scoring engine across months of daily OHLCV data and plots the result as three continuous curves. Use it to understand where we are in the exhaustion cycle over days and weeks, not minutes.
The Three Curves
Compound (green, thick)The full dynamicScore (RSI, MFI, multi-Z, volume Z-score, delta, wick, structure β scored 0β100 unsigned) multiplied by the sign of the 20-day price Z-score. Range: β100 to +100. Positive = price stretched up, bearish exhaustion (extended). Negative = price stretched down, bullish exhaustion (washed out). This is the primary signal.
Momentum (amber)The 20-day price Z-score scaled to Β±100 (priceZ / 3 Γ 100, capped). Answers: how statistically stretched is price relative to its recent history? A Z of Β±1 maps to Β±33; Β±2 maps to Β±67; Β±3 maps to Β±100. Confirms or denies the direction the compound is pointing.
Oscillators (silver)Average of (RSI β 50) Γ 2 and (MFI β 50) Γ 2. Positive = RSI and MFI above 50 β buyers still showing relative strength. Negative = RSI and MFI below 50 β sellers winning the short-term oscillator battle. This is the confirmation layer β the last to turn in most reversal setups.
Reading the Values
βΌ Washed out (negative)Price has been stretched to the downside. Selling exhaustion. Potential fade long setup β the market may be running out of sellers.
β² Extended (positive)Price has been stretched to the upside. Buying exhaustion. Potential fade short setup β the market may be running out of buyers.
Near zero (within Β±22)No meaningful exhaustion in either direction. No fade setup. Stay with the prevailing trend.
Chart zone backgrounds match: red when compound is positive (extended), green when negative (washed out). Month labels at the top color by the end-of-month compound reading so you can see how each month resolved.
Signal Cases β The Analysis Block
Fade long β high convictionAll three curves confirmed washed out: compound β€ β35, momentum β€ β30, oscillators β€ β25. Maximum alignment β every layer confirms the selling exhaustion. Enter on the next stabilization; stop below the recent swing low.
Fade short β high convictionAll three confirmed extended: compound β₯ +35, momentum β₯ +30, oscillators β₯ +25. Enter on the next rollover; stop above the recent swing high.
Setup buildingCompound and momentum aligned but oscillators have not confirmed. The most common intermediate state. The setup is forming but the market still has competing buyers (or sellers) active. Wait for oscillators to cross their confirmation threshold.
Divergence β no edgeCompound signals exhaustion but momentum is not confirming β statistical price stretch disagrees with the indicator exhaustion. Typically means a slow grind rather than a reversal catalyst. Stand aside.
No setup / Early signalCompound near zero, or only one layer showing exhaustion. Return when compound reaches Β±40 with at least one confirming layer.
Why Oscillators Lag β The Core Insight
RSI and MFI are relative strength oscillators β they measure whether recent closes are stronger or weaker than recent ranges, not where price is in absolute terms. In a downtrend, sellers push price lower but buyers absorb each dip, so RSI and MFI stay above 50 even as price falls. This is not a contradiction β it means the selling is orderly and demand is still present at lower levels.
The reversal setup becomes highest conviction when oscillators finally capitulate below zero β because that is when the last dip buyers have given up. With no buyers left absorbing the supply, there is nothing left to push price further. Maximum oscillator pessimism is the setup, not the warning.
"Setup building" (compound β62, momentum β42, oscillators +21):
Compound β62 β full exhaustion score confirms downside stretch
Momentum β42 β ~1.3Ο below 20-day mean, statistically confirmed
Oscillators +21 β RSI and MFI above 50 β buyers still absorbing each dip
What this means: sellers are losing energy but buyers haven't capitulated yet.
The dip is being bought. The grind continues until buyers exhaust too.
When oscillators cross below β20:
β Dip buyers have stopped absorbing
β All three layers confirm β high-conviction fade long
A "Setup building" reading is not an entry signal. It is a signal to watch closely and prepare. The analysis block tells you exactly what threshold the oscillators need to cross before the setup is complete.
Time Windows β 1M / 3M / 6M
The tabs change how much historical context is shown, not the current reading itself. The values in the series list always reflect today's reading (the last computed daily bar). What changes when you switch tabs is the sparkline trajectory next to each series label.
1MIs the current reading a recent spike or has it been building for weeks? Useful for timing β if compound reached β62 in the last 5 days, the setup is fresh. If it has been at β62 for 3 weeks, it may be stale.
3MWhere are we in the current exhaustion cycle? Shows the full arc β where compound peaked, where it turned, and how far through the move we are.
6MHow does this reading compare to prior extremes over the past half-year? Used to assess whether current exhaustion is historically significant or just moderate.
Using Amatout with the Exhaustion Tracker
Amatout: setup buildingCheck the intraday Exhaustion Tracker. Daily setup building + intraday score β₯ 65 = two-layer confluence. Highest quality entry environment β the daily context supports the intraday signal.
Amatout: high convictionDaily exhaustion fully confirmed. Look for the Exhaustion Tracker to fire on the next intraday push to mark the entry bar.
Amatout: no setupDaily signals are neutral. Any intraday exhaustion signal is against the grain β reduce size or skip entirely.
Amatout washed out + Macro Bias bearishThe macro environment is fighting the exhaustion reversal. Wait for macro to turn, or wait for the oscillators to fully confirm before fading.
Amatout runs on Yahoo Finance daily OHLCV (2 years of data). The compound score uses the identical methodology as the dynamicScoreForMoS in the Exhaustion Tracker β the difference is timeframe (daily bars vs intraday 4H/1H) and how direction is assigned (20-day price Z-score vs KAMA slope + HMA).
All signals are based on the last closed bar. Auto-refreshes every 60 seconds. Use as context for your own analysis, not as mechanical entry signals.