Every label inside the Info Box explained in full — what it shows, exactly how each state is calculated, and what it means for your trade decision.
The Info Box is a floating analysis card that opens when you click any pair in the D1 column of the Stochastic Dashboard. It delivers a complete trade-readiness verdict by aggregating signals from multiple independent engines — all computed live, directly from D1 bar data — into a structured, colour-coded popup that tells you not just what the market is doing, but whether right now is a valid time to act on it.
Click any cell in the D1 column of the Stochastic Dashboard. The Info Box opens centred on the chart (not near the clicked cell) using the chart's pixel dimensions to calculate its position. Only one D1 Info Box can be open at a time — opening a second pair's popup automatically closes the existing one first. It is dismissed with the ✕ CLOSE button at the bottom.
The Info Box has two visible panels rendered side by side. The Left Panel contains 14 individually labelled lines — covering session context, technical indicators, timing filters, currency bias, and the final trade grade. The Right Risk Panel appears to the right of the main popup border and shows the live JPY Bias, AUD Bias, Risk Sentiment, and Market Regime Engine states, each with a timer showing how long the current state has been active.
Rather than requiring you to open multiple indicators and timeframes, the Info Box consolidates every relevant signal for the D1 setup into a single panel. The popup answers three questions in order: Is there a valid signal? (Signal Age, Execution State), What kind of trade is this? (Trade Type, Trade Grade, Position Size), and Does the broader market support it? (Currency Alignment, Risk Sentiment, Market Regime).
A 3 px thick coloured border frames all four sides of the popup. The title bar sits immediately below the top border and the title text reads [Symbol] D1 INFO BOX — for example, GBPUSD D1 INFO BOX. Default styling uses a dark blue-grey background, gold border, and gold header text on a dark slate-gray header bar.
The Info Box contains two panels rendered simultaneously. The left panel's 14 lines stack vertically at 20 px intervals starting below the title bar. The right panel floats to the right of the main popup window, aligned at the same vertical origin, and contains 4 live market context items.
Left Panel Preview
Right Risk Panel
Panel Structure
Fixed 30 px header bar. Symbol name auto-populated from the clicked pair. Configurable background, font, size, and colour.
Immediate market context — which session you are in and whether today's D1 bar is net bullish or bearish from its open.
The three technical signal sources: D1 Stochastic momentum state, Keltner Channel band position, and Monday weekly range analysis.
How much of the daily range has been consumed, the closest key level and its pip distance, and how fresh the current signal is.
Whether now is an Optimal, Early, or Late window — and whether to approach this as a Scalp, Intraday, or Runner trade.
The auto-detected dominant currency (USD, JPY, AUD, or EUR) for this pair and whether the broader basket flow is a tailwind or headwind.
A / B / C grade synthesising all above signals, and the matching position size instruction: Normal, Reduced, or Skip.
Two independent EMA position labels — each showing Above/Below, time since last cross, and pip distance from the EMA. Toggled on/off per filter.
The 14 lines of the left panel are presented below in display order — exactly as they appear top to bottom in the popup. Each line has a specific formula, a defined set of possible states, and a colour-coding scheme that lets you read the popup in under five seconds.
The right-side panel floats immediately to the right of the main popup border. It is always visible regardless of which pair is clicked and shows four macro-level market context items with integrated state-change timers — displaying not just the current state, but how long it has been in effect.
Always displays JPY basket strength regardless of which pair the popup was opened from. Reads from the same GetJPYBiasVote() function used across the dashboard. The timer resets whenever the JPY state changes, showing how long the current JPY bias has been sustained — critical for judging whether risk appetite has recently shifted or has been established for hours.
Always shows AUD basket strength regardless of the clicked pair. AUD is the primary commodity and risk-appetite proxy in forex — it rises when global growth expectations are positive and falls when investors rotate to safety. Like JPY Bias, the timer tracks state persistence and resets on any state change.
Derived from the JPY + AUD combination. The logic is deliberately simple and binary: JPY and AUD move in opposite directions during risk events (JPY up + AUD down = risk-off; JPY down + AUD up = risk-on), making their combination a clean sentiment barometer. The timer shows how long the current risk state has been active.
The highest-level market environment signal in the popup. Adds USD directional flow to the JPY + AUD picture to determine whether the overall market is in a directional trending state, a fear-driven defensive state, or a rotation/chop. This is the "weather forecast" for the entire forex market and should contextualise all individual trade decisions.
The Trade Grade is the most complex calculation in the Info Box — a context-weighted synthesis that considers seven independent signals simultaneously. Understanding how grades are assigned helps you anticipate the grade before opening the popup and interpret edge cases correctly.
The grade logic applies conditions in strict top-down priority. The first rule that fires wins — no further conditions are evaluated. This prevents lower-priority checks from overriding hard disqualifiers.
If Execution = Late or Execution = No Signal, the grade is immediately C — regardless of every other signal. You cannot have a valid A or B grade while simultaneously having a late or missing signal. This prevents any form of FOMO entry rationalisation.
Execution = Optimal · Trade Type ≠ Scalp · Range 40–90% (Normal) · (Monday Clean OR Keltner Riding) · Currency Alignment ≠ Against. Every condition must be true simultaneously — a single failure drops the grade to B.
Execution = Optimal OR Early — AND at least one friction factor: Range outside 40–90%, OR Monday = Failed, OR Keltner = Inside Band, OR Alignment = Neutral. A valid execution window exists but something is working against the setup. Reduce size and require stronger confirmation.
Everything that failed all A and B criteria — including Scalp + Against alignment combinations, or any other configuration that doesn't qualify for A or B. Also catches any unexpected state combinations not explicitly handled above. The correct action is to skip or trade minimum size only.
| Signal | Grade A requires | Grade B requires | → Grade C if |
|---|---|---|---|
| Execution State | Optimal | Optimal or Early | Late or No Signal (hard cap) |
| Trade Type | Not Scalp | Any (friction flag) | Scalp + Against alignment |
| ADR Range | 40–90% Normal | Outside 40–90% (friction) | — |
| Monday Break | Clean break | Failed break (friction) | — |
| Keltner State | Riding band | Inside band (friction) | — |
| Currency Alignment | With (tailwind) | Neutral (friction) | Against (headwind) |
| Session | Not Asia (or Runner) | Asia cap → B max | — |
Two independently configurable EMA filters are embedded at the bottom of the popup, below the Position Size line. Each filter provides directional bias confirmation — including a critical stability detection feature that flags when a cross just occurred and the signal may not yet be reliable.
Default: EMA20 on M15. Reads the EMA value for this symbol and compares it to the current close. Tracks the last cross time per pair — persisted between popup opens. Displays: state (Above/Below), time in current state (Xh Ym), and pip distance from the EMA.
Default: EMA50 on M15. Identical logic to EMA1 but with independent period and timeframe tracking. Using a slower EMA (EMA50) on the same timeframe as EMA1 (EMA20) creates an effective dual-filter where both must agree Above/Below before treating the signal as fully confirmed. If EMA1 is Above but EMA2 is Below (or vice versa), the EMA filters are in conflict — an additional caution signal.