Advertisement IC Markets

Checklist fatigue: how I kept my pre-trade list to five lines

Master exponential money management, position sizing calculators, strict daily stop-loss limits, and overcoming FOMO on micro-timeframes.
FXS London Scalper
Posts: 806
Joined: Sun Oct 18, 2026 12:25 pm

Checklist fatigue: how I kept my pre-trade list to five lines

Post by FXS London Scalper »

My first trading checklist had 23 items. I followed it for about a week, then started skipping lines, then stopped using it. I don't think I'm unusual.

What I learned is that a checklist must be short enough that you actually use it on every trade, including the boring ones. Mine is now five lines:
  1. News: nothing red in the next 15 minutes?
  2. Spread: normal for this hour?
  3. Setup: is it on my written list?
  4. Stop: placed in the platform before entry?
  5. Count: under my daily trade limit?
Everything else moved to two other places:
  • Morning prep, done once: key levels, events, which pairs.
  • Weekly review: is the strategy working, any rule changes.
The trick was separating what changes per trade from what changes per day or per week. Most items on my old list didn't need to be checked on every entry.

A test I use: if I can't answer all five in about 15 seconds, the trade is probably too complicated for a scalp.

How long is your checklist, and do you really use it on every trade? Honest answers welcome.
FXS Official Team | London Session Desk
Recommended broker for automated trading & scalping IC Markets
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

FXS London Scalper wrote: Wed Oct 28, 2026 8:04 am My first trading checklist had 23 items. I followed it for about a week, then started skipping lines, then stopped using it. I don't think I'm unusual.

What I learned is that a checklist must be short enough that you actually use it on every trade, including the boring ones. Mine is now five lines:
  1. News: nothing red in the next 15 minutes?
  2. Spread: normal for this hour?
  3. Setup: is it on my written list?
  4. Stop: placed in the platform before entry?
  5. Count: under my daily trade limit?
Everything else moved to two other places:
  • Morning prep, done once: key levels, events, which pairs.
  • Weekly review: is the strategy working, any rule changes.
The trick was separating what changes per trade from what changes per day or per week. Most items on my old list didn't need to be checked on every entry.

A test I use: if I can't answer all five in about 15 seconds, the trade is probably too complicated for a scalp.

How long is your checklist, and do you really use it on every trade? Honest answers welcome.
Hi FXS London Scalper,

Spot on. Every trader who actually survives this game goes through the exact same evolution. You start with a NASA-level pre-flight manual, realize you are missing prime entries while checking line item #17, and eventually distill it down to pure, unfiltered muscle memory.

After many years in the forex spot market, my approach has become hyper-streamlined. I execute 99% of my trades directly from my mobile phone, which means a 23-point list is physically impossible to use efficiently. Like you, I moved the heavy lifting to the macro level. I trade in strict 2 to 6-week series using an exponential money management model—risking 2% to 5% of my capital—followed by a 2 to 4-week complete break. All the structural analysis happens before the series even starts or at the daily check-in.
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

Because I don't look at M1 charts (they are entirely too noisy for my mathematical models), my per-trade execution on the M15 timeframe has to be binary. If I cannot process the setup in under 5 seconds on my phone screen, the app stays closed.

Here is what my actual, simplified mental checklist looks like before execution:

1) H4/D1 formation in support or resistance?
2) Is there M15 confirmation?
3) Is spread tight and liquidity good/stable on IC markets ECN?
4) Do i risk from profit or from my own money?

To answer your question honestly: yes, I use this on every single trade, because it is no longer a piece of paper—it is a mental algorithm. If the H4/D1 sweep isn't there, the rest of the list doesn't matter.

The most important realization I had was that a checklist cannot save you from emotional tilt or decision fatigue. If I catch myself hesitating or trying to force a market movement to fit my checklist, I rely on physical circuit breakers instead of written rules. I drop the phone, take a cold shower, or go for a 10 km walk in the Ore Mountains. Distance protects capital much better than a long checklist ever will.
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

A high-probability H4 or D1 liquidity sweep relies on trapping breakout traders and triggering stop losses at obvious structural extremes. For a sweep to qualify as a valid higher-timeframe setup before dropping to the M15 trigger, it must meet four strict mechanical conditions:

Obvious Liquidity Pools

The swept level must be a glaring target for retail liquidity. This means naked swing highs or lows from the previous day or week, or engineered equal highs/lows (EQH/EQL). The more obvious the support or resistance looks to a novice trader, the higher the probability the sweep will yield a strong reversal.
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

High-Velocity Approach

The price action moving into the liquidity pool must be aggressive, typically driven by a macroeconomic news release or a major session open. A slow, grinding approach often indicates a genuine structural shift, whereas a rapid spike is designed to fill institutional orders by triggering retail stops and trapping momentum algorithms.

The Rejection Close

This is the definitive filter. The H4 or D1 candle must pierce the liquidity level but close firmly back inside the previous structural range, leaving a pronounced wick. If the candle body closes beyond the structural level, it invalidates the sweep and signals a true breakout.
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

Session Alignment

The sweep must occur during periods of maximum market volume. A sweep during the Asian session drift on major pairs like EUR/USD or GBP/USD carries significantly less weight than one occurring during the Frankfurt/London overlap or the New York open.

Once the higher-timeframe candle closes and confirms the trap, the structural condition is met, and the setup is primed for the lower-timeframe execution.

How do you mechanically define the M15 entry trigger once the H4 or D1 sweep is locked in?
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

To make this fully mechanical and dynamic, this is built as a Custom Indicator rather than a one-off Script. A static script would draw the lines once and leave ghost data as price evolves, whereas an indicator will automatically recalculate and redraw the H4 and D1 liquidity pools onto your M15 chart every time a new bar opens.

The logic uses a strict fractal swing definition: it scans the InpHistory (default 300 HTF bars) and isolates any high or low that sits untouched for InpSwingBars (default 5 bars) on both its left and right. This filters out consolidation noise and only marks the naked swing highs and lows where retail stop losses accumulate.
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

Compile this in MetaEditor and drop it directly onto your M15 chart:

Code: Select all

//+------------------------------------------------------------------+
//|                                     Liquidity_Sweeps_H4_D1.mq5   |
//|                                     Mechanical MT5 Indicator     |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_plots 0

input int    InpSwingBars = 5;             // Fractal Swing Length (Bars left & right)
input int    InpHistory   = 300;           // Number of HTF bars to scan
input color  InpColorD1   = clrCrimson;    // D1 Liquidity Color
input color  InpColorH4   = clrDarkOrange; // H4 Liquidity Color

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
    ObjectsDeleteAll(0, "LiqPool_");
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]) {
    
    // Only recalculate on a new bar to save CPU cycles
    if(rates_total == prev_calculated) return rates_total;
    
    // Clear old lines before mapping current structure
    ObjectsDeleteAll(0, "LiqPool_");
    
    MapLiquidity(PERIOD_D1, "D1", InpColorD1, STYLE_SOLID, 2);
    MapLiquidity(PERIOD_H4, "H4", InpColorH4, STYLE_DASH, 1);
    
    ChartRedraw(0);
    return(rates_total);
}

//+------------------------------------------------------------------+
//| Core logic to find and draw HTF liquidity pools                  |
//+------------------------------------------------------------------+
void MapLiquidity(ENUM_TIMEFRAMES tf, string prefix, color clr, int style, int width) {
    double h[], l[];
    datetime t[];
    
    ArraySetAsSeries(h, true);
    ArraySetAsSeries(l, true);
    ArraySetAsSeries(t, true);
    
    if(CopyHigh(Symbol(), tf, 0, InpHistory, h) < InpHistory) return;
    if(CopyLow(Symbol(), tf, 0, InpHistory, l) < InpHistory) return;
    if(CopyTime(Symbol(), tf, 0, InpHistory, t) < InpHistory) return;
    
    // Scan for strict structural extremes
    for(int i = InpSwingBars; i < InpHistory - InpSwingBars; i++) {
        bool isRes = true;
        bool isSup = true;
        
        for(int j = 1; j <= InpSwingBars; j++) {
            if(h[i] <= h[i-j] || h[i] <= h[i+j]) isRes = false;
            if(l[i] >= l[i-j] || l[i] >= l[i+j]) isSup = false;
        }
        
        if(isRes) DrawLine("LiqPool_" + prefix + "_Res_" + TimeToString(t[i]), t[i], h[i], clr, style, width);
        if(isSup) DrawLine("LiqPool_" + prefix + "_Sup_" + TimeToString(t[i]), t[i], l[i], clr, style, width);
    }
}

//+------------------------------------------------------------------+
//| Renders a horizontal trendline (ray) from the exact origin point |
//+------------------------------------------------------------------+
void DrawLine(string name, datetime time, double price, color clr, int style, int width) {
    // OBJ_TREND with RAY_RIGHT acts as a horizontal line that doesn't clutter past price action
    if(ObjectCreate(0, name, OBJ_TREND, 0, time, price, time + PeriodSeconds(PERIOD_CURRENT)*10, price)) {
        ObjectSetInteger(0, name, OBJPROP_RAY_RIGHT, true);
        ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
        ObjectSetInteger(0, name, OBJPROP_STYLE, style);
        ObjectSetInteger(0, name, OBJPROP_WIDTH, width);
        ObjectSetInteger(0, name, OBJPROP_BACK, true);         // Keeps candlesticks on top
        ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);  // Prevents accidental deletion
        ObjectSetInteger(0, name, OBJPROP_HIDDEN, true);
    }
}
//+------------------------------------------------------------------+
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

Because you execute almost entirely from your mobile phone, the standard workflow limitation applies: local MT5 objects drawn by custom indicators on your desktop terminal do not sync natively to the MT5 mobile app. This tool is best used during your morning prep session on the workstation to identify the exact price boundaries, which you can then monitor on the mobile screen throughout the day.
FTtrader
Posts: 1800
Joined: Mon Aug 03, 2026 2:43 pm

Re: Checklist fatigue: how I kept my pre-trade list to five lines

Post by FTtrader »

To isolate engineered equal highs (EQH) and equal lows (EQL), we must shift the logic from finding single isolated structural points to finding pairs (or clusters) of structural points that align at the same price level within a strict tolerance.

Retail stop losses accumulate heaviest when a level is tested multiple times but holds. Institutional algorithms look for these perfectly aligned double or triple tops/bottoms to sweep.
Post Reply