IPI Globex
The same Bias, Push, states, tint, label and Ease plot as IPI, kept alive between 18:00 and 09:30 ET with inputs that exist overnight: VIX futures for fear, and your own contract's volume delta for aggression.
IPI Globex has no evidence behind it yet. Every number in IPI's testing came from regular-session data. This script reuses IPI's structure with different feeds, and the defaults are starting guesses. Run it with Diagnostics on, let the self-check accumulate, and treat it as an instrument under test until it has earned otherwise.
Why a separate script
IPI's feeds (TICK, ADD, VOLD, ABVD, TKCD, BATD) are computed from stock trades on the NYSE and NASDAQ. Between the 16:00 close and the 09:30 open they are frozen or absent. There is no setting that makes them exist. What does trade overnight is the thing you are trading, its volume, and VIX futures. IPI Globex is built from those three.
It is a separate indicator rather than a mode of IPI because the calibration is different (overnight moves are a fraction of RTH moves), the session logic is different (it starts at 18:00 and spans midnight and the weekend), and because folding an untested engine into a tested one would blur what the IPI numbers mean.
Install
- Paste the script into the Pine Editor and add it to a chart of ES1!, MES1!, NQ1! or MNQ1! (or a specific contract). It needs a futures symbol with volume. On a CFD or a cash index there is no volume; aggression drops out and the label tells you Push is fear-only.
- Use a 2 to 5 minute chart. 1-minute works but is coarser than it looks (see volume delta); 30 minutes is the maximum.
- Leave the session on Overnight and run IPI in a second pane. At 09:30 Globex stops and IPI starts.
Scoring begins at 18:15 ET by default: the 18:00 reopen is erratic, so the first fifteen minutes are skipped. The label reads, for example, IPI-G · ES1! · CBOE:VX1! · overnight.
What differs from IPI
| IPI (regular session) | IPI Globex (overnight) | |
|---|---|---|
| Hours | 09:35–16:00 ET | 18:15–09:30 ET (or 18:15–17:00 in full-day mode) |
| Fear | VIX or VXN index | VIX futures, CBOE:VX1! by default |
| Aggression | TICK, up/down-tick trades, trades at ask/bid | Your contract's volume delta from 1-minute intrabars |
| Breadth, money | In Bias (not in Push) | Absent: no overnight proxy, and no evidence they would help |
| Bias weights | Breadth 35, Money 35, Aggression 15, Fear 15 | Aggression 50, Fear 50 |
| Push weights | Aggression 40, Fear 60 | Aggression 40, Fear 60 (copied, untested) |
| Push window | 15 minutes | 30 minutes (overnight is thinner) |
| Fear beta | Clamped −15 to −1, default −6 | Clamped −10 to −0.5, default −3 (futures move less than spot per unit of ES) |
| Label warnings | Gap, range, disagreement, TICK programs, missing feeds | Range, disagreement, fear-gauge roll jump, missing volume, missing feeds |
| Evidence | Author's RTH tests, see IPI | None yet |
Everything not in this table is identical: the −100 to +100 scale, the adaptive RMS normalisation, the three-bar smoothing, the ±25 thresholds, the regime hysteresis, the nine states and their tints, the Ease plot, the self-check, the three alerts.
Fear from VIX futures
The VIX index itself is not published overnight, but VIX futures trade from Sunday 18:00 to Friday 17:00 ET with a short daily break. The fear residual is computed exactly as in IPI (the fear gauge's log move since the session anchor minus beta times price's log move), with the beta estimated from 5-minute futures-vs-futures returns and clamped to a lower-magnitude range.
Contract roll
VX1! is a continuous front-month series and jumps when the front month changes. A one-bar move of more than 8% is treated as a roll: the residual re-anchors at that bar, the bar is excluded from the beta estimate, and the label prints Fear gauge jumped >8% at HH:MM ET (roll?), residual re-anchored for the rest of the session. If you would rather avoid rolls at the cost of a slower gauge, set the fear symbol to CBOE:VX2!.
Aggression from volume delta
With no TICK overnight, aggression comes from the contract's own tape. For each chart bar, the script requests the 1-minute bars inside it and sums volume on up-closing minutes as buying and on down-closing minutes as selling (unchanged minutes split evenly). Two tilts come out of that, both in percent, both normalised like every other component:
- Session delta tilt (buy − sell) / (buy + sell) over the session so far, feeding Bias.
- Window delta tilt, the same over the Push window, feeding Push.
On a 1-minute chart the "intrabar" is the bar itself, so delta becomes bar direction × volume: it still works, but it is a much coarser read than real intrabar delta, which is one reason 2–5 minutes is recommended. And TradingView caps the total number of intrabars a script may request; past that limit on older history the script falls back to bar direction automatically. Live bars are unaffected.
Volume delta is not TICK. TICK counts how many stocks ticked up versus down across the whole market; delta counts aggressive buying versus selling in one contract. They measure different things and will not always agree. Whether delta carries the same forward information TICK showed in RTH is the central open question for this script, and the one the self-check exists to answer.
Sessions and the 9:30 handoff
- Overnight default
- 18:00–09:30 ET. Scoring stops at the cash open so IPI takes over in its own pane. The label shows
· last readingduring RTH. - Full Globex day
- 18:00–17:00 ET, straight through RTH. Nothing changes in the engine; this exists so you can compare volume-delta aggression against IPI's TICK-based aggression on the same bars.
A new session begins when the chart enters the session window, or after any gap of two hours or more, which handles the weekend in full-day mode. Calibration, the fear anchor, cumulative delta and the regime all reset at the session start. The Extended range warning scales the implied one-day move down to the session length (15.5 of 24 hours by default), so it fires on an overnight range that would be ordinary for a full day.
The label
| Line | When it appears |
|---|---|
| ⚠ Range is 1.2× the implied overnight move: don't chase | Session range exceeds the threshold (1.0× by default) of the fear-implied move scaled to the session length. |
| ⚠ Delta and fear disagree (28% aligned) | Less than 40% of the Bias weight points the same way. With only two forces this means they point opposite ways with similar size. |
| Fear gauge jumped >8% at 02:14 ET (roll?), residual re-anchored | A roll-sized one-bar move in the fear symbol was handled. Remains for the session. |
| ⚠ No volume on this symbol: Push is fear only | Loaded on a CFD or index. Switch to the futures symbol. |
| ⚠ No data for CBOE:VX1! (scored without) | Fear feed unavailable; Push is running on delta alone. |
| No DXY yet (ICE opens 20:00 ET) | Informational, between 18:15 and 20:00. |
Evidence
None. To be explicit about what that means: the Push weights, the Push window, the beta range, the delta construction and the thresholds were all carried over or guessed, not fitted to overnight data. The script is honest about this in its own header and tooltips.
The self-check is the way out. With Diagnostics in Data Window on, d_selfcheck_n counts non-overlapping 30-minute samples from one hour after the open to 30 minutes before the close, and d_selfcheck_r reports the correlation between Push and the next 30-minute return once there are 500 of them, roughly 45 overnight sessions on a 5-minute chart. d_leanHit% and d_alignedHit% give the directional hit rates for leans and for aligned leans. If r comes in near zero, the overnight edge is not there with these inputs and the weights should not be trusted; if the delta-based aggression is the weak leg, the Full Globex day mode lets you compare it with TICK during RTH on the same chart.
Settings
Only the settings that differ from IPI's are listed.
- Session Overnight
- Overnight (18:00–09:30) or Full Globex day (18:00–17:00).
- Fear gauge CBOE:VX1!
- Any symbol. VX2! rolls less violently but reacts less.
- Volume delta on
- Off makes Push fear-only, by choice rather than by missing data.
- Push window 30 minutes
- Longer than IPI's 15 because the overnight tape is thin.
- Skip first N minutes after 18:00 15
- Reopen warm-up.
- Force weights Bias 50 / 50 · Push 40 / 60
- Aggression and Fear only.
- Extended: range ÷ implied overnight 1σ 1.0
- Lower than IPI's 1.3 because the implied move is already scaled down to the session length.
Diagnostics adds d_cumDelta (session cumulative delta in contracts) and d_deltaWin% (the Push-window tilt) alongside the fear residual, beta, DXY correlation, range multiple, alignment and self-check series. Export adds x_upVol and x_dnVol per bar, plus fear, DXY, Bias, Push, state and regime.
Limits
- Untested. Said three times on this page on purpose.
- Thin tape. Between roughly 20:00 and 02:00 ET a few hundred contracts can set the delta tilt. The normalisation adapts to typical overnight size, but a thin window is a thin window.
- One contract, not the market. Delta on ES says what ES traders are doing, not what 500 stocks are doing. The forces are named the same as IPI's for continuity, not because they are equivalent.
- Roll handling is a heuristic. An 8% one-bar jump in VX1! is almost always a roll, but a genuine volatility shock on a thin bar could trip it, and the residual would re-anchor at exactly the wrong moment. The label tells you when it happened; check the bar.
- Not trading advice. As with IPI, this describes the tape. Decisions are yours.