Signal Analyzer Guide
"Plans fail for lack of counsel, but with many advisers they succeed." — Proverbs 15:22
The PBF Signal Analyzer (V5 Beta) is a real-time NQ futures setup detector running inside NinjaTrader 8. It scores every potential setup across 8+ confluences, flags hard-block conditions, and surfaces highest-conviction signals during the kill zone — the 9:45–11:00 ET window where most of the day's edge lives.
Contents
- What It Does
- Installation & Activation
- Signal State Progression
- Tier System
- Score Breakdown (Full Weight Table)
- Setup IDs
- Time Filters
- Conflict Flags & Hard Blocks
- ATM Strategy Templates
- Kill Zone Strategy (9:45–11:00)
- V5 Quality Strip
- 1M Sniper Note
- Key Settings Reference
- HIT / STOPPED Trade Summary Card
- EMA200-BOUNCE + FAILED-ENGULF Setups
- ES Correlation Scoring
- Live VIX in the Quality Strip
- Golden Rules
What It Does
- Tier classification — every signal scored A (highest), B, or C based on score + conflict count
- RTH + Rolling Delta — both delta timeframes must align for full credit; strong opposition triggers hard-block
- ATR-adaptive R:R — auto-scales target: HV (>25 pts) → 1:5, Normal → 1:3.5, LV (<12 pts) → 1:2.5
- ORB + Cornerstone confluence — overlays opening range with prior-day levels, IB, VWAP, VP nodes
- Counter-Delta Hard-Block — kills setups when both delta readings strongly oppose direction (≥300 contracts NQ default)
- Live web app — view signals from any browser, tied to your Supabase account, 7-day session
- Google Sheets logging — every fired signal auto-logs with outcome tracking (HIT/STOPPED + P&L)
Installation & Activation
Full walkthrough in Getting Started. Quick path:
- Download
PBFIndicators.zipfrom your account - NT8 → Tools → Import → NinjaScript Add-On → select the ZIP
- Add
PBFSignalAnalyzerV5Betato your NQ 5-minute chart - First load opens browser to
profitbyfaith.com/activate→ click Approve → indicator unlocks within 15 seconds
@NQ). It pulls daily and weekly data internally — you do not need separate timeframe panels.
proxy badge, the proxy is active; when live ticks are flowing, the badge disappears and you're on real tick delta.
Signal State Progression
Every signal moves through a defined state machine. You cannot be in two states at once.
| State | Meaning | Your action |
|---|---|---|
| WAITING | Pre-market or ORB building (9:30–9:45) | Do nothing — indicator is arming |
| WATCHING | ORB is set, scouting for setups | Eyes on screen, ATM template selected |
| APPROACHING | Price within 3 pts of a key level | Hand on ATM — prepare to execute |
| ACTIVE | Signal fired — trade is live | Execute or pass within 3 seconds |
| HIT ✓ | Target reached — overlay shows trade summary card (entered → exited, P&L pts) | Congratulations — resets to WATCHING in ~30 seconds (live) or 1 bar (backtest) |
| STOPPED ✗ | Stop hit — overlay shows trade summary card with loss detail | Step away 2 min — tilt kills accounts. Resets in ~30 sec |
Tier System
| Tier | Score | Label | Est. Win Rate | Action |
|---|---|---|---|---|
| A ★ | 75+ | STRONG | ~62% | Take — use runner template (FUND-2C / EVAL-2C) |
| B | 65–74 | MODERATE | ~55% | Take — standard template (CORE / EVAL-1C) |
| C | 55–64 | MOD/WEAK | ~48% | Selective only — skip if any conflict active |
| — | <55 | Filtered | — | Indicator does not fire — no action |
Est. win rate = score × 0.72 + 8 (backtested estimate, not a guarantee)
Score Breakdown — Full Weight Table
Every potential setup is scored 0–100+. The final score is capped and mapped to tier. Hard blocks can override any score.
| Confluence | Points | Notes |
|---|---|---|
| EMA 200 align (price side = direction) | +15 | Macro trend confirmed |
| Counter-EMA | −15 | Against macro trend — hard filter if enabled |
| MTF EMA 15m align | +10 | 15-min timeframe agrees |
| Counter-MTF 15m | −10 | Hard filter condition if combined with counter-EMA |
| VWAP align | +10 | Price on correct side of intraday fair value |
| Counter-VWAP | −8 | Soft conflict — still fires if score high enough |
| POC proximity | +10 | Setup at or near volume-weighted anchor |
| Value Area (VAH/VAL) | +8 | Setup at VA edge — high conviction breakouts |
| Opposing Value Area | −10 | Value area is working against the setup |
| Initial Balance (IB H/L) | +6 | IB confluence — first 60 min range |
| Prior Day High / Low | +8 | PDH/PDL — major daily magnets |
| Pre-Market High / Low | +8 | PMH/PML — overnight battlefield |
| ATR quality (range supports R:R) | +6 | Room to target within the session range |
| ATR too tight | −10 | Not enough range to reach target without stop |
| FVG nearby (Fair Value Gap) | +6 | Structural magnet in direction of trade |
| Cumulative Delta align | +8 | Order flow confirms direction |
| Counter-Delta | −8 | Order flow opposing — reduces conviction |
| RVOL ≥ 1.5× | +12 | Strong volume — breaks are sustained |
| RVOL ≥ 1.2× | +6 | Active volume |
| RVOL < 0.8× | −12 | Thin volume — flag as Low RVOL conflict |
| Kill Zone (9:45–11:00) | +5 | Prime window bonus |
| Power Hour (15:00–16:00) | +3 | Secondary window bonus |
| Lunch (12:00–14:00) | −15 | Chop penalty — <65 signals blocked |
| Session momentum | +5 | Trending day confirmation (RVOL + directional bias) |
| EMA 200 touch + hold (NEW) | +12 | Any setup where bar wick touched EMA 200 zone and close held above/below — adds to any setup type |
| ES EMA 200 bias agrees (NEW) | +8 | ES 5-min EMA 20 is on same side of EMA 200 as NQ direction — macro alignment confirmed |
| ES EMA 200 diverges (NEW) | −8 | ES trend opposes NQ direction — adds "ES Divergence" conflict chip |
| ES session momentum agrees (NEW) | +5 | ES EMA 20 position relative to EMA 200 confirms NQ trade direction |
Setup IDs
Each signal carries a setup ID that tells you exactly what the indicator detected:
| Setup ID | Description |
|---|---|
ORB-BREAK-LONG | Break above ORB high with volume confirmation |
ORB-BREAK-SHORT | Break below ORB low with volume confirmation |
VAH-RETEST | Value Area High acting as support on pullback |
VAL-RETEST | Value Area Low bounce (prior resistance → support) |
PDH-RETEST | Prior Day High — major daily level test |
PDL-RETEST | Prior Day Low — major daily level test |
VWAP-BOUNCE | Intraday fair-value reversion |
EMA-PULLBACK | EMA 200 continuation — trend pullback entry |
PMH-RETEST | Pre-Market High test after RTH open |
PML-RETEST | Pre-Market Low test after RTH open |
IB-REJECT | Price wicked outside IB but closed back inside — rejection from the boundary |
EMA200-BOUNCE (NEW) | Price in trend, bar wick touched the EMA 200 zone (±8 ticks) and close held above/below — high-conviction continuation entry |
FAILED-ENGULF (NEW) | Outside Bar Trap (Al Brooks): bar[2] makes a strong directional move, bar[1] fully body-engulfs it in the opposite direction — trap and reversal |
Time Filters
| Window | ET Hours | Score Effect |
|---|---|---|
PRE_MARKET | 4:00 – 9:30 | No signals — indicator in WAITING state |
ORB | 9:30 – 9:45 | WAITING — ORB building, no signals fire |
KILL_ZONE | 9:45 – 11:00 | +5 bonus ★ — primary session |
MORNING | 11:00 – 12:00 | Normal — no adjustment |
LUNCH | 12:00 – 14:00 | −15 penalty · signals <65 blocked |
AFTERNOON | 14:00 – 15:00 | Normal — no adjustment |
POWER_HOUR | 15:00 – 16:00 | +3 bonus — secondary session |
Conflict Flags & Hard Blocks
Conflict chips appear in the web app's conflict banner. Multiple chips = reduced conviction.
| Flag | Meaning | Severity |
|---|---|---|
| Counter-EMA | Direction opposes EMA 200 macro trend | Hard filter — skip |
| Counter-MTF | Against 15-minute EMA trend | Hard filter when combined with Counter-EMA |
| Counter-VWAP | Below/above intraday fair value | Soft — reduce size |
| Counter-delta | RTH + rolling delta both oppose direction | Strong warning — hard block if ≥300 contracts |
| Low RVOL [x] | Volume below 0.8× average | Soft on retests, hard on breaks |
| VIX [x] high risk | VIX ≥ 30 | Reduce size — volatility unpredictable |
| VIX [x] elevated | VIX 25–29 | Caution — consider LV templates |
| Lunch | 12–2 PM chop window active | Skip unless score > 75 |
ATM Strategy Templates
11 NinjaTrader ATM templates ship with the package. All respect the $200/contract hard stop guardrail.
Quick Selection Matrix
| Condition | Funded Account | Eval Account |
|---|---|---|
market_chop: true | CHOP | CHOP |
| ATR > 25 pts (High Vol) | HV-2C | HV-1C |
| ATR < 12 + RVOL < 0.7 (Low Vol) | LV-2C | LV-1C |
| STRONG signal · Tier A/B | FUND-2C | EVAL-2C |
| MODERATE · Tier A/B | CORE | EVAL-2C |
| MODERATE · Tier C | FUND-1C | EVAL-1C |
| Weak or uncertain | LOCK | EVAL-1C |
Full ATM Reference
| Template | Account | Condition | Stop | T1 | T2 | R:R |
|---|---|---|---|---|---|---|
| EVAL-1C | Eval | Normal | 40t / $200 | — | 120t / $600 | 1:3 |
| EVAL-2C | Eval | Normal | 40t / $200 | 80t / $400 | 180t / $900 | 1:2 / 1:4.5 |
| FUND-1C | Funded | Normal | 40t / $200 | — | 180t / $900 | 1:4.5 |
| FUND-2C | Funded | Normal | 40t / $200 | 80t / $400 | 240t / $1,200 | 1:2 / 1:6 |
| CORE | Funded | Standard | 40t / $200 | 80t / $400 | 200t / $1,000 | 1:2 / 1:5 |
| LOCK | Any | Trending | 36t / $180 | 72t / $360 | 160t / $800 | 1:2 / 1:4.4 |
| HV-1C | Any | ATR >25 | 40t / $200 | — | 240t / $1,200 | 1:6 |
| HV-2C | Funded | ATR >25 | 40t / $200 | 100t / $500 | 300t / $1,500 | 1:2.5 / 1:7.5 |
| LV-1C | Any | ATR <12 | 28t / $140 | — | 80t / $400 | 1:2.9 |
| LV-2C | Any | ATR <12 | 28t / $140 | 56t / $280 | 120t / $600 | 1:2 / 1:4.3 |
| CHOP | Any | Ranging | 24t / $120 | — | 48t / $240 | 1:2 |
Hard rule: $200 max per contract = 40 ticks. HV templates keep the same stop — the wider targets capture the volatility premium without increasing risk.
Kill Zone Strategy (9:45–11:00)
This is your primary session. The indicator is tuned specifically for this window. Do not trade outside 9:45–10:45 unless you have a specific reason and a high-conviction setup.
Expected Signal Cadence
| Time | Expected |
|---|---|
| 9:45 | Signal 1 — ORB just set, first setup fires |
| ~10:00 | Signal 2 — HIT/STOP on Signal 1, 5-min reset, re-arm |
| ~10:15 | Signal 3 |
| ~10:30 | Signal 4 |
| 10:45 | Done — stop trading |
4–5 quality signals per session is the target. The indicator fires as many as the market produces. You manage your per-account daily limits independently.
Entry Ladder
| Entry | Description | Best? |
|---|---|---|
| Entry 1 | Sniper — at the level, before the break | Best R:R ✓ |
| Entry 2 | Chase — beyond the break, momentum confirmation | OK — costs R:R |
| Entry 3 | ORB retest — pullback to ORB level after initial break | Best R:R ✓ — hardest to catch |
| Re-Entry | Second look after a stop — only if setup still valid | Use sparingly |
V5 Quality Strip
The strip shows 6 cells above the entry ladder. 3+ green = full conviction. 2 = normal. ≤1 = pass or reduce size.
| Cell | Green means | Dim/Red means |
|---|---|---|
| RVOL | Volume confirms the move | Thin — caution on breaks |
| MTF EMA | 15-min trend agrees with direction | Counter-trend — reduce size |
| DELTA | Order flow confirms direction (shows proxy badge when Tick Replay is off) | Fading — watch for early exit opportunity |
| FVG | Unfilled gap nearby in direction | No structural magnet — target may not fill |
| TIME | Kill zone active | Lunch chop — penalty applied to score |
| VIX (NEW) | Green (VIX 12–18): calm trending conditions | Orange (18–25): elevated — consider reducing size. Red (25+): high vol, tight stops only. Shows MAN badge when using manual override. Blank during backtest unless ManualVIX is set. |
1M Sniper Note
Every ACTIVE signal includes a trigger_note field. This converts the 5-min setup into a precise 1-minute chart entry.
Use this every time. It gives you a better fill and tighter risk than entering on the 5-min close alone.
Key Settings Reference
| Setting | Default | What it controls |
|---|---|---|
StopTicks | 40 | Fallback fixed stop (only used when EnableAtrStop=false). 40 ticks = 10 pts = $200/contract |
EnableAtrStop | true | Adaptive stop sizing per volatility — recommended over fixed StopTicks |
AtrStopMult / MinStopTicks / MaxStopTicks | 1.05 / 10 / 28 | ATR multiplier with 2.5pt floor and 7pt cap (~$140 risk @ 1c NQ) |
TargetRR | 2.0 | Baseline R:R (scalp tune). ATM templates override this live |
MinFireScore | 53 | Minimum score to fire (below = filtered). Lowered from 60 → 53 in 2026-05-11 scalp tune so C-tier+ is visible |
ApproachTicks | 7 (~1.75 pts) | Distance from level that triggers APPROACHING state. Lowered from 12 → 7 (scalp tune) |
CooldownBars | 1 (5 min) | Minimum wait between any two signals |
HitResetBars | 1 | Backtest only: bars to show the HIT/STOPPED card before re-arming. In live mode, the indicator resets after 30 seconds regardless of bar close. |
ManualVIX | 0 (auto) | Set to 0 for live auto-poll of /api/vix every 5 min. Paste a value (e.g. 18.5) to override — useful in backtest where auto-poll is disabled. |
EnableESCorrelation | true | Loads a secondary ES 5-min data series. ES EMA 20 vs EMA 200 cross scores ±8 pts (bias) + ±5 pts (session momentum) to the active setup. |
ESSymbol | @ES | ES continuous contract symbol. If @ES isn't in your Instrument Manager, use the front-month (e.g. ES 06-26). Rolls quarterly. |
SetupRearmBars | 4 (20 min) | Same specific setup (e.g. ORB-BREAK-LONG) refire delay |
MinRVOLForBreak | 0.70 | Minimum RVOL for break setups (trending days have lagging RVOL) |
CounterDeltaHardBlockMin | 300 | Both delta readings ≥ this magnitude opposing = hard block. Set 0 to disable |
EnableHardFilter | true | Master switch for all hard-block conditions |
HttpPort | 8081 | Must match your cloudflared tunnel config |
OutputPath | G:\…\Telemetry\ | Relocated 2026-05-13 from C:\PBF\ to Google Drive for auto-backup. Falls back to C:\PBF\Telemetry-fallback\ on IOException after 3 retries. |
DollarPerPoint | 20 | NQ is $20/pt. Change for MNQ ($2/pt) or other instruments |
SheetsLogUrl | (blank) | Paste your Apps Script URL here to enable Google Sheets logging |
Session-Adaptive Scoring (NEW · 2026-05-13)
The indicator now flexes its fire threshold and approach distance by session phase. KILLZONE (9:30–11:00 ET) and POWER_HOUR (15:00–16:00 ET) loosen; LUNCH (12:00–14:00 ET) tightens. Shadow variables reset to your user-set baseline every bar — no ratcheting across phases.
| Setting | Default | Effect |
|---|---|---|
EnableSessionAdaptive | true | Master switch. Off = use raw MinFireScore/ApproachTicks always. |
KillzoneMinScore | 48 | Lower threshold during momentum phases. Uses min(MinFireScore, KillzoneMinScore) — never raises. |
LunchMinScore | 62 | Higher threshold during chop. Uses max(MinFireScore, LunchMinScore) — never lowers. |
KillzoneApproachTicks / LunchApproachTicks | 6 / 12 | Faster trigger in momentum (6) / slower in chop (12). |
JSON snapshot now includes eff_min_fire_score, eff_approach_ticks, and session_adaptive.
Daily Discipline Caps (NEW · 2026-05-13)
Three optional rails that freeze NEW fires for the rest of the day when a daily limit is hit. OFF by default. Built for prop accounts (Apex, TPT, MFFU, Tradeify) where one bad day busts the eval. ACTIVE/HIT/STOPPED transitions on already-fired signals are unaffected.
| Setting | Default | Recommended (prop) | Behavior |
|---|---|---|---|
EnableDailyCaps | false | true | Master switch. |
DailyMaxFires | 0 (unlimited) | 5 | Hard cap on signals per session. |
DailyTargetR | 0 | +4R | Freeze after day's realized R reaches +X. Lock the win. |
DailyMaxLossR | 0 | −2R | Freeze after day's realized R drops to −X. Stop revenge trading. |
NT8 Output window prints which cap fired and why. JSON exposes daily_r, daily_caps_tripped, daily_cap_reason ("MAX_FIRES" / "TARGET_R" / "MAX_LOSS_R").
HIT / STOPPED Trade Summary Card (NEW · 2026-05-14)
When a trade closes — whether the target was reached or the stop was hit — the entry ladder is replaced by a compact trade summary card. This prevents confusion: those levels are from a completed trade, not a new signal to act on.
| Element | What it shows |
|---|---|
| Tier row | Shows ✓ Trade Closed · Profit (green) or ✗ Trade Closed · Stopped (red). No tier grade, no GET READY label. |
| Summary card | Entered → Target Hit / Stop Hit · P&L (pts) — e.g. "Entered 19574.50 → Target Hit 19588.50 | +14.00" |
| Reset timing | Live: card auto-clears in ~30 seconds, then WATCHING resumes hunting for the next setup. Backtest: clears after 1 bar (bar-based so Market Replay doesn't flash past it). |
| Distance chip | Hidden during HIT/STOPPED — only appears when a new setup is approaching. |
EMA200-BOUNCE + FAILED-ENGULF Setups (NEW · 2026-05-14)
Two new setup types added to the detection engine. Both can generate A-tier signals when confluence is high.
EMA200-BOUNCE
Detects when price is in a trend, pulls back to touch the EMA 200 zone (±2 pts), and the bar closes holding above/below it. This is the highest-conviction continuation pattern — price respected the macro level and rejected it cleanly.
- BUY: Price above EMA 200 → bar wicks down into ±2pt zone → close holds above EMA. Not a break — a test and hold.
- SELL: Inverse — price below EMA 200 → wick up into zone → close holds below.
- Auto-bonus: Any setup (not just EMA200-BOUNCE) where the bar wick touches the EMA 200 zone also earns the EMA Touch +12 bonus. A PDH-RETEST at EMA 200 scores both simultaneously.
FAILED-ENGULF (Outside Bar Trap)
Detects Al Brooks' "Outside Bar Trap" — where a strong directional bar is immediately followed by a larger bar that fully body-engulfs it in the opposite direction. The first bar's traders are trapped.
- Requires minimum 2pt bodies (filters out doji noise).
- BUY signal: bar[2] bearish → bar[1] bull body fully engulfs it (opens at or below bar[2] close, closes at or above bar[2] open). Bears trapped, bulls take over.
- SELL signal: inverse.
- Stop anchored at bar[2] high/low — the level where the original move started.
ES Correlation Scoring (NEW · 2026-05-14)
The indicator loads a secondary ES (S&P 500 futures) 5-minute data series and uses the relationship between ES EMA 20 and EMA 200 as a macro bias filter on every NQ setup.
| Condition | Score effect | Logic |
|---|---|---|
| ES EMA 20 above EMA 200 (bull) + NQ BUY setup | +8 +5 = +13 | ES trending up, NQ setup is with the tide — max bonus |
| ES EMA 20 below EMA 200 (bear) + NQ SELL setup | +8 +5 = +13 | ES trending down, NQ sell setup confirmed |
| ES EMA 20 above EMA 200 (bull) + NQ SELL setup | −8 | NQ is selling against a bullish ES — adds "ES Divergence" conflict chip |
| ES EMA 20 below EMA 200 (bear) + NQ BUY setup | −8 | Buying NQ against bearish ES — adds "ES Divergence" chip |
| ES data unavailable / indicator not loaded | 0 | Neutral — scoring proceeds without ES factor. es_corr_ok: false in JSON. |
EnableESCorrelation = true and ESSymbol to the front-month contract in your Instrument Manager (e.g. ES 06-26). If the symbol isn't found, ES scoring silently disables — the indicator still loads and all other scoring works normally. The VIX strip cell shows es_corr_ok status; the score breakdown panel shows an ES pill with the ± points when active.
Live VIX in the Quality Strip (NEW · 2026-05-14)
The VIX tile polls profitbyfaith.com/api/vix every 5 minutes in the background and displays live volatility in the quality strip. No manual paste needed in live trading.
- Green (VIX 12–18): Calm — normal setups, standard ATM templates.
- Orange (VIX 18–25): Elevated — consider 1-contract templates (FUND-1C, EVAL-1C). Conflict chips warn when VIX ≥ 25.
- Red (VIX ≥ 25): High vol — CHOP or LV templates. VIX ≥ 30 triggers a hard "VIX high risk" conflict chip.
- MAN badge: Shows when
ManualVIXis set to a non-zero value — auto-poll is overridden. Useful in backtest to simulate specific volatility environments. - Backtest: Auto-poll is disabled (live URL data has no meaning for historical replay). Set
ManualVIXto whatever VIX was on the day you're backtesting — this also feeds the VIX conflict scoring in the engine.
Golden Rules
- Wait for APPROACHING before you prep. Don't anticipate the signal — let the app tell you when to get ready.
- Tier A + STRONG + 3 green strip cells = your best trade of the week. This is the one to size up on (within guardrails).
- Never chase Entry 2 on a Tier C signal. Two compromises stacked = bad trade.
- Use the 1M Sniper note every time. It converts the 5-min setup into a precise 1-min entry with better fill.
- Delta confirms — it doesn't signal. The app signals. Delta validates your conviction.
- The app manages the signal. You manage the money. ATM handles exits. Your only decision is yes or no at entry.
- Multiple accounts = same signal, different ATM templates. Route each account to the right template independently.
- After a stop, wait the 5 minutes. Revenge trading is the fastest way to blow a funded account.