QR Pro Scanner is a live trading dashboard that watches 5 futures instruments across 3 timeframes simultaneously, looking for stochastic divergence setups in real time. When TradingView detects a qualifying setup, it fires a webhook to your local server, and the scanner displays the signal within 2 seconds.
The scanner is designed for active trading and streaming. Everything is color-coded and large enough to read on stream while you're focused on your charts.
What the Scanner Shows
- Live stochastic readings for all 4 indicators across every instrument and timeframe
- Signal status: WATCHING → ARMED → DIV → CONFIRM → BUY / SELL
- Context signals: CROSS, SURGE, COIL, BIAS, DEPTH on every cell
- Stochastic heat map showing average %D across all instruments and timeframes
- Live alert feed showing every signal as it fires with timestamps
- Session counts (total BUYs and SELLs per instrument)
- Market bias gauge showing bullish vs bearish signal ratio
Every BUY and SELL signal goes through 4 stages. No shortcuts. This multi-step confirmation is what makes the signals meaningful rather than noise.
What DIV Type Means
When a signal fires, the scanner shows which stochastic diverged:
- 9-3 — The fastest stochastic diverged first. Expect a sharper, quicker reversal
- 14-3 — The mid-speed stochastic diverged. Slightly slower but more reliable confirmation
- BOTH — Both 9-3 and 14-3 diverged. This is the strongest signal — two confirmations at once
The scanner uses 4 stochastics running simultaneously. Each one operates at a different speed. Together they give you a complete picture from the fastest momentum read to the macro directional bias.
Reading the Bars
Each stochastic bar in the scanner shows a colored fill from 0 to 100. The color changes based on zone:
| Color | Zone | Range | Meaning |
|---|---|---|---|
| ■ Green | Oversold | 0 – 20 | Extreme low — BUY setups activate here |
| ■ Lime | Low | 21 – 35 | Approaching oversold — watch for ARM |
| ■ Grey | Mid | 36 – 64 | Neutral — no setup active |
| ■ Orange | High | 65 – 79 | Approaching overbought — watch for ARM |
| ■ Red | Overbought | 80 – 100 | Extreme high — SELL setups activate here |
These are the primary signals displayed in the matrix for each instrument × timeframe cell.
Context signals appear as small badges inside each matrix cell. They don't fire trades on their own — they add depth to whatever the main signal is showing. The more context badges aligned with a main signal, the higher conviction the setup.
The heat map shows the average of all 4 %D lines for each instrument × timeframe combination in a single color-coded grid. It's your quick at-a-glance view of where everything stands without reading every bar.
| Color | Label | Average Value | What It Means |
|---|---|---|---|
| Green | OVERSOLD | 0 – 20 | All stochastics deep in oversold — BUY territory |
| Light Green | LOW | 21 – 35 | Stochastics are low but not extreme yet |
| White | MID | 36 – 64 | Neutral — no active setup |
| Orange | HIGH | 65 – 79 | Stochastics are elevated — approaching SELL territory |
| Red | OVERBOUGHT | 80 – 100 | All stochastics deep in overbought — SELL territory |
| Symbol | Full Name | Exchange | Session | Notes |
|---|---|---|---|---|
| ES | S&P 500 E-mini | CME | Nearly 24hr | Most liquid US equity futures. Benchmark instrument. Signals here often lead NQ and YM. |
| NQ | NASDAQ E-mini | CME | Nearly 24hr | Tech-heavy. Higher beta than ES — moves farther and faster. Confirms ES signals or shows divergence. |
| GC | Gold Futures | COMEX | Nearly 24hr | Non-correlated asset. Gold signals can reveal risk-off/risk-on sentiment diverging from equities. |
| BTC | BTC Futures | CME | Nearly 24hr | High volatility crypto futures. Often leads or lags equity signals. Good for cross-asset confirmation. |
| YM | Dow E-mini | CME | Nearly 24hr | Dow Jones futures. Less tech-heavy than NQ. Divergence between YM and NQ can signal sector rotation. |
Timeframes
| Timeframe | Best For | Signal Speed |
|---|---|---|
| 1m | Scalp entries, fast reversals, immediate execution | Fastest — fires and expires quickly. Act within 1–3 minutes. |
| 3m | Intraday swing entries, confirmed reversals | Medium — gives you 3–8 minutes to act. Better reward:risk than 1m. |
| 5m | Higher conviction swings, trend change confirmation | Slowest of the three — most reliable, best used for position sizing up. |
Requirements
- Windows PC with Node.js installed
- TradingView account (Pro or higher for webhook alerts)
- ngrok installed for the public webhook URL
- Project folder at:
C:\Users\jk-trader\Desktop\qr-dashboard\
Starting the Scanner
Double-click START_QR_SCANNER.bat on your Desktop. This opens two Command Prompt windows — one for the Node.js server, one for ngrok. Do not close either window while trading.
Updating ngrok URL
ngrok generates a new URL every time it starts. After starting:
Copy the ngrok URL
Look in the ngrok terminal window for the Forwarding URL — it looks like https://abc123.ngrok-free.app
Open the dashboard
Go to http://localhost:5173 in your browser
Update TradingView alerts
In TradingView, open each alert and update the webhook URL to the new ngrok URL + /webhook (e.g. https://abc123.ngrok-free.app/webhook)
You need 30 alerts total — 5 instruments × 3 timeframes × 2 directions (BUY and SELL). Each alert sends a JSON payload to the webhook.
Alert Message Format
Each TradingView alert must have the webhook URL set and this JSON format in the message body:
Alert Checklist
| Instrument | 1m BUY | 1m SELL | 3m BUY | 3m SELL | 5m BUY | 5m SELL |
|---|---|---|---|---|---|---|
| ES | ✓ | ☐ | ☐ | ☐ | ☐ | ☐ |
| NQ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ |
| GC | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ |
| BTC | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ |
| YM | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ |
✓ = completed. ES 1m BUY was your first alert — 29 remaining.
Double-click START_QR_SCANNER.bat
Launches both the Node.js server (port 3001) and ngrok tunnel. Both Command Prompt windows must stay open.
Copy the new ngrok URL
Look in the ngrok terminal for the https Forwarding URL. Copy it — you need it in step 4.
Open localhost:5173 in Chrome
This is the live scanner dashboard. You should see all 5 instrument cards in WATCHING state.
Update TradingView alert webhooks
Go into TradingView and update all 30 alerts to use the new ngrok URL. Format: https://[ngrok-id].ngrok-free.app/webhook
Open your 5-chart TradingView layout
One chart per instrument (ES, NQ, GC, BTC, YM) with the QR Pine Script applied to each.
Add scanner to OBS
In OBS: Sources → + → Browser Source → URL: http://localhost:5173 → Width: your stream width → Height: your stream height → OK.
Test with a curl command (optional)
Paste this into Command Prompt to verify the webhook is working before market open:
Go live
Market opens at 9:30am ET. Signals will begin appearing automatically as TradingView detects setups.
Highest Conviction Setups
- Multi-timeframe alignment: same instrument shows BUY (or SELL) on 1m, 3m, and 5m simultaneously
- DIV type is BOTH (9-3 and 14-3 both diverged) — two confirmations in one signal
- DEPTH score 70+ — stochastics are at extreme levels historically associated with strong reversals
- SURGE badge present alongside BUY or SELL — momentum engine fully engaged
- BIAS aligns with signal direction — trading with the macro trend, not against it
- COIL fired before or during ARMED — the spring is loaded for an explosive move
- Multiple instruments firing in the same direction at the same time (e.g. ES + NQ + YM all BUY)
When to Be Cautious
- BUY signal with BEAR BIAS — you're trading countertrend. Reduce size and take profits sooner.
- Signal on 1m only with no alignment on 3m or 5m — lower conviction, faster to fade
- Low DEPTH score (under 40) — stochastics weren't very extreme, reversal may be shallow
- No context badges at all — bare signal with no confirmation context
- Pre-market or low volume hours — signals can be erratic outside regular trading hours
- Major economic releases (FOMC, CPI, NFP) — signals may fire and immediately reverse
Using the Heat Map
Alert Feed
The right-side alert feed shows every signal chronologically with timestamps. Use it to spot patterns — if ES and NQ are both firing BUY signals within 30 seconds of each other, that's a strong inter-market confirmation. The market bias gauge at the bottom of the feed updates in real time and reflects the last 10 signals.
| Problem | Most Likely Cause | Fix |
|---|---|---|
| Signals not appearing on dashboard | ngrok URL changed after restart | Copy new ngrok URL and update all TradingView alerts |
| Dashboard shows blank / white screen | Error in App.jsx code | Press F12 → Console tab — look for red errors and report them |
| Dashboard not updating | Vite dev server stopped | Open qr-dashboard folder in Command Prompt and run npm run dev |
| Server not receiving webhooks | Node.js server stopped | Re-run START_QR_SCANNER.bat or run node server.js in the qr-dashboard folder |
| OBS browser source blank | localhost:5173 not running | Make sure Vite is running, then refresh the Browser Source in OBS |
| Webhook returns 404 | Wrong URL path | URL must end in /webhook — check your TradingView alert webhook field |
| All instruments show WATCHING | No alerts have fired yet | Normal before market open. Send a test curl command to verify the pipeline works. |