Advertisement IC Markets

Pre-London close checklist: news, levels, max risk

Discuss 1-minute to 15-minute price action setups, fading intraday momentum, key support/resistance zones, and proven short-term trading methodologies.
Post Reply
LondonScalper
Posts: 701
Joined: Sat Sep 05, 2026 7:54 am

Pre-London close checklist: news, levels, max risk

Post by LondonScalper »

Pre-London close checklist: news, levels, max risk

London close is when tired hands invent “one last scalp.” I treat the approach to close like a second open: a short checklist, then explicit permission to stop. Pride wants the last tick; process wants a clean handoff into NY or into the weekend.

Before the close window I force three lines:
  • News: anything left that can spike the book into the handoff?
  • Levels: am I flat into magnets I do not want to babysit overnight or into NY inventory?
  • Max risk: remaining daily risk is written; if I am near the line, close means close.
The goal is not to catch the last tick. It is to hand the next session a clean slate — or a deliberately small, planned idea with a time stop already attached.

What is on your pre-close checklist that stops the “one more” click when you are tired?

If the checklist fails any line, I flatten early rather than bargain. Close is not a negotiation with tired optimism — it is a gate. NY can have the tape; I keep the process score.
Recommended broker for automated trading & scalping IC Markets
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

LondonScalper wrote: Sat Sep 19, 2026 8:39 pm Pre-London close checklist: news, levels, max risk

London close is when tired hands invent “one last scalp.” I treat the approach to close like a second open: a short checklist, then explicit permission to stop. Pride wants the last tick; process wants a clean handoff into NY or into the weekend.

Before the close window I force three lines:
  • News: anything left that can spike the book into the handoff?
  • Levels: am I flat into magnets I do not want to babysit overnight or into NY inventory?
  • Max risk: remaining daily risk is written; if I am near the line, close means close.
The goal is not to catch the last tick. It is to hand the next session a clean slate — or a deliberately small, planned idea with a time stop already attached.

What is on your pre-close checklist that stops the “one more” click when you are tired?

If the checklist fails any line, I flatten early rather than bargain. Close is not a negotiation with tired optimism — it is a gate. NY can have the tape; I keep the process score.
Hi LondonScalper,

Your framework treats the close exactly as it should be treated: not as a final opportunity, but as a rigid boundary. The desire for "one last scalp" is rarely driven by edge; it is almost always driven by dopamine, frustration, or boredom.

To stop that "one more" click, my pre-close checklist builds on your three pillars (News, Levels, Risk) with a focus on psychological state and time decay:

The P&L Preservation Rule: If I am up 2R or more on the day, my max risk is immediately slashed to zero. I am not allowed to turn a winning session into a break-even session during the lowest-probability hours of the day.

The Time-Decay Check (The "Babysitter" Rule): If an open position has not hit its target within the last three candles, I kill it. Momentum is dying into the close. I will not babysit a stalling trade into the NY crossover just hoping for a miracle spike.

The "Tilt or Edge" Question: Am I clicking because there is a genuine A+ setup, or am I clicking because I’m bored, trying to make back a daily loss, or wanting the thrill of a live ticket? If the answer isn't a purely objective edge, the platform gets closed.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

Here is a Pine Script (v5) designed to act as your visual gatekeeper. It highlights the chart background during your predefined "Pre-Close Window," triggers an alert, and places an interactive checklist on your screen. To turn the dashboard green, you must physically open the indicator settings and check your process boxes—forcing a mechanical pause.

Code: Select all

//@version=5
indicator("Pre-London Close Gatekeeper", overlay=true)

// =========================================================================
// INPUTS
// =========================================================================
grp_time = "Session Settings"
// Default set to 10:00 AM - 11:00 AM EST (Common London Close crossover)
pre_close_session = input.session("10:00-11:30", title="Pre-Close Window", group=grp_time)
timezone = input.string("America/New_York", title="Timezone", group=grp_time)

grp_check = "Pre-Close Checklist (Check to Pass)"
news_cleared   = input.bool(false, title="[1] News Cleared?", group=grp_check, tooltip="No major news events left that could spike the book.")
levels_cleared = input.bool(false, title="[2] Levels Flat?", group=grp_check, tooltip="Flat into magnets you don't want to hold into NY/Overnight.")
risk_cleared   = input.bool(false, title="[3] Max Risk Respected?", group=grp_check, tooltip="Daily risk limit is intact. No revenge trading.")

grp_ui = "UI Settings"
table_pos = input.string("Bottom Right", title="Table Position", options=["Top Right", "Bottom Right", "Bottom Left", "Top Left"], group=grp_ui)

// =========================================================================
// SESSION LOGIC & VISUALS
// =========================================================================
in_pre_close = not na(time(timeframe.period, pre_close_session, timezone))
window_start = in_pre_close and not in_pre_close[1]

// Paint the background red during the pre-close window to signal "Danger Zone"
bgcolor(in_pre_close ? color.new(color.red, 92) : na, title="Pre-Close Background")

// Trigger an alert when the window begins
if window_start
    alert("Pre-London Close Window Open. Review your checklist: News, Levels, Risk.", alert.freq_once_per_bar)

// =========================================================================
// DASHBOARD TABLE
// =========================================================================
var pos = table_pos == "Top Right" ? position.top_right : 
          table_pos == "Bottom Right" ? position.bottom_right : 
          table_pos == "Bottom Left" ? position.bottom_left : position.top_left

var table checklist = table.new(pos, 2, 4, border_width = 1, border_color = color.new(color.gray, 50))

if barstate.islast
    // Header
    all_passed = news_cleared and levels_cleared and risk_cleared
    header_color = all_passed ? color.new(color.green, 30) : color.new(color.maroon, 10)
    table.cell(checklist, 0, 0, "PRE-CLOSE GATEKEEPER", bgcolor=header_color, text_color=color.white, colspan=2, text_size=size.small)

    // Row 1: News
    table.cell(checklist, 0, 1, "News Check", bgcolor=color.new(color.gray, 85), text_color=color.white, text_size=size.small)
    table.cell(checklist, 1, 1, news_cleared ? "PASS" : "WAIT", bgcolor=news_cleared ? color.new(color.green, 50) : color.new(color.orange, 50), text_color=color.white, text_size=size.small)

    // Row 2: Levels
    table.cell(checklist, 0, 2, "Levels / Flat", bgcolor=color.new(color.gray, 85), text_color=color.white, text_size=size.small)
    table.cell(checklist, 1, 2, levels_cleared ? "PASS" : "WAIT", bgcolor=levels_cleared ? color.new(color.green, 50) : color.new(color.orange, 50), text_color=color.white, text_size=size.small)

    // Row 3: Risk
    table.cell(checklist, 0, 3, "Max Risk Limit", bgcolor=color.new(color.gray, 85), text_color=color.white, text_size=size.small)
    table.cell(checklist, 1, 3, risk_cleared ? "PASS" : "WAIT", bgcolor=risk_cleared ? color.new(color.green, 50) : color.new(color.orange, 50), text_color=color.white, text_size=size.small)
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

How to use it:

1.) Add the script to your TradingView chart.

2.) Adjust the Pre-Close Window time to match exactly when you start feeling the itch for that final scalp. When price enters this time window, the chart background will subtly turn red and an alert can fire to break your tunnel vision.

3.) The dashboard will show WAIT in orange.

4.) Before you are allowed to walk away (or take a planned, time-stopped runner), you must open the indicator settings and manually check the boxes for News, Levels, and Risk.

5.) When all three are checked, the dashboard turns green. The gate is officially closed. NY can have the tape.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

To upgrade this from a basic checklist to an institutional-grade HUD (Heads Up Display), we need to shift the script from a passive reminder to an active, data-driven gatekeeper.

Professional trading desks don’t just rely on time; they rely on volatility exhaustion. If the daily range is already played out, the "last scalp" isn't just psychologically dangerous—it is statistically devoid of edge.

Here are the "Pro" upgrades added to this version:

ADR (Average Daily Range) Exhaustion Metric: The script now calculates today's total range against the 14-day average. If the day has already moved 90%+ of its normal range, it flags the dashboard red. It tells you mathematically: the juice is squeezed.

State-Machine Logic: The dashboard transitions through three phases: MONITOR (normal hours), DANGER ZONE (pre-close window active), and GATE LOCKED (checklist complete, flat).

Institutional UI: Monospaced fonts, sleek hex-code coloring, and a minimal footprint that looks like a professional prop-firm overlay rather than a retail indicator.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

The Pro "Gatekeeper" Pine Script (v5)

Code: Select all

//@version=5
indicator("Institutional Gatekeeper: London Close", overlay=true)

// =========================================================================
// 🎛️ SETTINGS & INPUTS
// =========================================================================
grp_time = "Session Parameters"
pre_close_session = input.session("10:00-11:30", title="Pre-Close Killzone (EST)", group=grp_time)
timezone          = input.string("America/New_York", title="Timezone", group=grp_time)

grp_check = "Manual Process Checklist"
news_cleared   = input.bool(false, title="[1] News Cleared?", group=grp_check, tooltip="No major macro events remaining.")
levels_cleared = input.bool(false, title="[2] Inventory Flat?", group=grp_check, tooltip="No positions held into unwanted magnets or NY open.")
risk_cleared   = input.bool(false, title="[3] Risk Intact?", group=grp_check, tooltip="Daily drawdown limits respected. No tilt.")

grp_ui = "HUD Appearance"
hud_position = input.string("Bottom Right", title="HUD Position", options=["Top Right", "Bottom Right", "Bottom Left", "Top Left"], group=grp_ui)
show_adr     = input.bool(true, title="Show ADR Exhaustion", group=grp_ui, tooltip="Compares today's range against 14-day Average Daily Range.")

// =========================================================================
// 📊 DATA & MATH (ADR EXHAUSTION)
// =========================================================================
// Fetch daily high/low and 14-period ADR
day_high = request.security(syminfo.tickerid, "D", high, lookahead=barmerge.lookahead_on)
day_low  = request.security(syminfo.tickerid, "D", low,  lookahead=barmerge.lookahead_on)
adr_14   = request.security(syminfo.tickerid, "D", ta.sma(high - low, 14), lookahead=barmerge.lookahead_on)

current_range  = day_high - day_low
adr_exhaustion = adr_14 > 0 ? (current_range / adr_14) * 100 : 0
is_exhausted   = adr_exhaustion > 90 // Flag if 90% of daily range is fulfilled

// =========================================================================
// ⏱️ SESSION LOGIC
// =========================================================================
in_killzone = not na(time(timeframe.period, pre_close_session, timezone))
zone_start  = in_killzone and not in_killzone[1]

// Background rendering (Dark red for danger zone, overridden by green if passed)
all_passed    = news_cleared and levels_cleared and risk_cleared
bg_color      = all_passed ? color.new(#089981, 95) : color.new(#F23645, 92)
bgcolor(in_killzone ? bg_color : na, title="Killzone Background")

// Alerts
if zone_start
    alert("London Close Killzone Active. Audit your positions and check ADR exhaustion.", alert.freq_once_per_bar)
if in_killzone and all_passed and not all_passed[1]
    alert("Pre-Close Gate Locked. Clean handoff successful.", alert.freq_once_per_bar)

// =========================================================================
// 🖥️ INSTITUTIONAL HUD RENDERING
// =========================================================================
var pos = hud_position == "Top Right" ? position.top_right : 
          hud_position == "Bottom Right" ? position.bottom_right : 
          hud_position == "Bottom Left" ? position.bottom_left : position.top_left

// Initialize table (5 rows, 2 columns)
var table hud = table.new(pos, 2, 5, border_width=1, border_color=color.new(#434651, 50), frame_color=color.new(#434651, 50), frame_width=1)

if barstate.islast
    // Determine overall system state
    sys_state = all_passed ? "GATE LOCKED" : (in_killzone ? "DANGER ZONE" : "MONITORING")
    hdr_bg    = all_passed ? color.new(#089981, 20) : (in_killzone ? color.new(#F23645, 20) : color.new(#2A2E39, 0))
    hdr_txt   = all_passed ? #089981 : (in_killzone ? #F23645 : #D1D4DC)

    // Row 0: Header
    table.cell(hud, 0, 0, "LDN CLOSE: " + sys_state, bgcolor=hdr_bg, text_color=hdr_txt, text_font_family=font.family_monospace, colspan=2, text_size=size.small, text_halign=text.align_center)

    // Row 1-3: Process Checklist
    row_bg = color.new(#131722, 10)
    
    // News
    table.cell(hud, 0, 1, "Macro Cleared", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 1, news_cleared ? "PASS" : "WAIT", bgcolor=row_bg, text_color=news_cleared ? #089981 : #F23645, text_font_family=font.family_monospace, text_size=size.small)

    // Levels
    table.cell(hud, 0, 2, "Inventory Flat", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 2, levels_cleared ? "PASS" : "WAIT", bgcolor=row_bg, text_color=levels_cleared ? #089981 : #F23645, text_font_family=font.family_monospace, text_size=size.small)

    // Risk
    table.cell(hud, 0, 3, "Risk Limits", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 3, risk_cleared ? "PASS" : "WAIT", bgcolor=row_bg, text_color=risk_cleared ? #089981 : #F23645, text_font_family=font.family_monospace, text_size=size.small)

    // Row 4: ADR Volatility Exhaustion
    if show_adr
        adr_color = is_exhausted ? #F23645 : #E0B354
        adr_text  = str.tostring(math.round(adr_exhaustion, 1)) + "%"
        table.cell(hud, 0, 4, "ADR Exhaustion", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
        table.cell(hud, 1, 4, adr_text, bgcolor=row_bg, text_color=adr_color, text_font_family=font.family_monospace, text_size=size.small)
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

Operational Framework for the Upgraded Tool

The State Machine: The header is dynamic. During standard hours, it reads MONITORING in neutral gray. Once price breaches your specified time window, it snaps to DANGER ZONE in glaring red. You are now explicitly warned that your edge is degrading.

The ADR Check: Look at the bottom row before even considering a trade. If the ADR exhaustion reads >90% in red, the market has already moved its statistical daily quota. A trade taken here is highly likely to face chop, deep pullbacks, or complete stagnation. It kills the "one more tick" fallacy with hard math.

The Mechanical Shutoff: To turn the danger zone off, you must still go into the indicator settings and manually toggle the checkboxes to true. The header will switch to GATE LOCKED in green, and the chart background danger warning will vanish.

This converts an emotional decision into a bureaucratic one. You are no longer fighting the tape; you are just fulfilling an administrative requirement to clear your desk for the next session.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

To push this from a prop-firm HUD to a true institutional-grade risk management tool, we have to move beyond just price range and time.

Professionals don't just ask "what time is it?" They ask: "Is there enough liquidity left to pay me, and am I stepping in front of institutional mean-reversion?"

Here is the final evolution. We are adding Contextual Disqualifiers and a Hard Stop (Dead Zone):

VWAP Overextension (The Z-Score): Late in the session, trend continuation fails. If price is stretched more than 2 Standard Deviations from the Daily VWAP, tired hands are taking profit, and algos will fade the move. The HUD now calculates your VWAP Z-Score.

Relative Volume (RVOL) Void: London close is dangerous because liquidity dries up, making the book thin and movements erratic. The HUD tracks current volume against the moving average. If RVOL drops, you are trading in a vacuum.

The "Dead Zone" (Hard Stop): The Killzone is a warning window to flatten out. The Dead Zone is the absolute cutoff where the desk is closed. When this hits, the chart dims heavily, signaling that screen time is over.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

The Institutional Terminal: Pine Script (v5)

Code: Select all

//@version=5
indicator("Terminal Gatekeeper: Risk & Context", overlay=true)

// =========================================================================
// 🎛️ SETTINGS & INPUTS
// =========================================================================
grp_time = "Session Parameters"
killzone_session = input.session("10:00-11:30", title="Killzone (Audit Window)", group=grp_time)
deadzone_session = input.session("11:30-13:00", title="Dead Zone (Hard Stop)", group=grp_time)
timezone         = input.string("America/New_York", title="Timezone", group=grp_time)

grp_check = "Manual Process Checklist"
news_cleared   = input.bool(false, title="[1] Macro Cleared?", group=grp_check)
levels_cleared = input.bool(false, title="[2] Inventory Flat?", group=grp_check)
risk_cleared   = input.bool(false, title="[3] Risk Intact?", group=grp_check)

grp_ui = "Terminal Appearance"
hud_position = input.string("Bottom Right", title="HUD Position", options=["Top Right", "Bottom Right", "Bottom Left", "Top Left"], group=grp_ui)

// =========================================================================
// 📊 CONTEXT METRICS (ADR, VWAP, RVOL)
// =========================================================================
// 1. ADR Exhaustion
day_high = request.security(syminfo.tickerid, "D", high, lookahead=barmerge.lookahead_on)
day_low  = request.security(syminfo.tickerid, "D", low,  lookahead=barmerge.lookahead_on)
adr_14   = request.security(syminfo.tickerid, "D", ta.sma(high - low, 14), lookahead=barmerge.lookahead_on)
adr_exhaustion = adr_14 > 0 ? ((day_high - day_low) / adr_14) * 100 : 0
is_exhausted   = adr_exhaustion > 90

// 2. Daily VWAP & Z-Score (Standard Deviation)
var float sumSrcVol = 0.0, var float sumVol = 0.0, var float sumSrcSrcVol = 0.0
if timeframe.change("D")
    sumSrcVol := 0.0, sumVol := 0.0, sumSrcSrcVol := 0.0
sumSrcVol += hlcc4 * volume
sumVol += volume
sumSrcSrcVol += volume * math.pow(hlcc4, 2)

vwap_val = sumVol > 0 ? sumSrcVol / sumVol : close
variance = sumVol > 0 ? (sumSrcSrcVol / sumVol) - math.pow(vwap_val, 2) : 0
stdev    = math.sqrt(math.max(0, variance))
z_score  = stdev > 0 ? math.abs(close - vwap_val) / stdev : 0
is_extended = z_score > 2.0 // > 2 Standard Deviations is dangerous late in session

// 3. RVOL (Relative Volume)
avg_vol = ta.sma(volume, 50)
rvol    = avg_vol > 0 ? volume / avg_vol : 0
is_thin = rvol < 0.75 // Liquidity drying up

// =========================================================================
// ⏱️ STATE MACHINE LOGIC
// =========================================================================
in_killzone = not na(time(timeframe.period, killzone_session, timezone))
in_deadzone = not na(time(timeframe.period, deadzone_session, timezone))

all_passed = news_cleared and levels_cleared and risk_cleared

// State Definition
string sys_state = "MONITORING"
color  hdr_bg    = color.new(#2A2E39, 0)
color  hdr_txt   = #D1D4DC

if in_deadzone
    sys_state := "DESK CLOSED"
    hdr_bg    := color.new(#000000, 0)
    hdr_txt   := #808080
else if in_killzone and not all_passed
    sys_state := "DANGER ZONE"
    hdr_bg    := color.new(#F23645, 20)
    hdr_txt   := #F23645
else if all_passed and in_killzone
    sys_state := "GATE LOCKED"
    hdr_bg    := color.new(#089981, 20)
    hdr_txt   := #089981

// Background Dimming
bg_color = in_deadzone ? color.new(#000000, 85) : (in_killzone and not all_passed ? color.new(#F23645, 94) : (all_passed ? color.new(#089981, 96) : na))
bgcolor(bg_color, title="Zone Background")

// =========================================================================
// 🖥️ TERMINAL HUD RENDERING
// =========================================================================
var pos = hud_position == "Top Right" ? position.top_right : 
          hud_position == "Bottom Right" ? position.bottom_right : 
          hud_position == "Bottom Left" ? position.bottom_left : position.top_left

var table hud = table.new(pos, 2, 8, border_width=1, border_color=color.new(#434651, 50), frame_color=color.new(#434651, 50), frame_width=1)
row_bg = color.new(#131722, 10)

if barstate.islast
    // Header
    table.cell(hud, 0, 0, "LDN CLOSE: " + sys_state, bgcolor=hdr_bg, text_color=hdr_txt, text_font_family=font.family_monospace, colspan=2, text_size=size.small, text_halign=text.align_center)

    // Divider: Process
    table.cell(hud, 0, 1, "--- PROCESS ---", bgcolor=color.new(#131722, 0), text_color=#434651, text_font_family=font.family_monospace, colspan=2, text_size=size.tiny, text_halign=text.align_center)

    // Checks
    table.cell(hud, 0, 2, "Macro Cleared", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 2, news_cleared ? "PASS" : "WAIT", bgcolor=row_bg, text_color=news_cleared ? #089981 : #F23645, text_font_family=font.family_monospace, text_size=size.small)

    table.cell(hud, 0, 3, "Inventory Flat", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 3, levels_cleared ? "PASS" : "WAIT", bgcolor=row_bg, text_color=levels_cleared ? #089981 : #F23645, text_font_family=font.family_monospace, text_size=size.small)

    table.cell(hud, 0, 4, "Risk Limits", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 4, risk_cleared ? "PASS" : "WAIT", bgcolor=row_bg, text_color=risk_cleared ? #089981 : #F23645, text_font_family=font.family_monospace, text_size=size.small)

    // Divider: Context
    table.cell(hud, 0, 5, "--- CONTEXT ---", bgcolor=color.new(#131722, 0), text_color=#434651, text_font_family=font.family_monospace, colspan=2, text_size=size.tiny, text_halign=text.align_center)

    // Data Metrics
    table.cell(hud, 0, 6, "ADR Exhst / RVOL", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 6, str.tostring(math.round(adr_exhaustion, 0)) + "% / " + str.tostring(math.round(rvol, 2)), bgcolor=row_bg, text_color=(is_exhausted or is_thin) ? #E0B354 : #D1D4DC, text_font_family=font.family_monospace, text_size=size.small)

    table.cell(hud, 0, 7, "VWAP Extension", bgcolor=row_bg, text_color=#D1D4DC, text_font_family=font.family_monospace, text_size=size.small, text_halign=text.align_left)
    table.cell(hud, 1, 7, str.tostring(math.round(z_score, 2)) + " SD", bgcolor=row_bg, text_color=is_extended ? #F23645 : #D1D4DC, text_font_family=font.family_monospace, text_size=size.small)
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
PTScalper
Site Admin
Posts: 3027
Joined: Mon Jul 20, 2026 1:28 pm

Re: Pre-London close checklist: news, levels, max risk

Post by PTScalper »

Operational Framework for the Terminal

1. The Context Barrier

1.1) Before you can even consider checking the boxes, look at the bottom two rows.

1.2) If ADR is over 90%, the daily range is spent.

1.3) If VWAP Extension is > 2.0 SD, price is stretched like a rubber band right before the lowest-volume period of the day.

1.4) If RVOL drops below 0.75, there is no institutional volume to carry your trade.

1.5) The data tells you why the trade is objectively terrible before your brain can rationalize it.

2. The Phased Shutdown

2.1) 10:00 - 11:30 (Killzone): The background turns red. The HUD demands you audit your macro, inventory, and risk. Once checked, the background turns green. You are locked in.

2.2) 11:30 - 13:00 (Dead Zone): Even if you lied to yourself and unchecked the boxes, the script overrides everything. The HUD changes to DESK CLOSED and the chart darkens heavily. Trading during this time is essentially shadowbanned on your own chart.

This script doesn't just ask you to be disciplined; it visualizes the mathematical reasons why discipline is your only profitable option into the close.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Post Reply