Page 1 of 5
Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 8:04 am
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:
- News: nothing red in the next 15 minutes?
- Spread: normal for this hour?
- Setup: is it on my written list?
- Stop: placed in the platform before entry?
- 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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 8:54 am
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:
- News: nothing red in the next 15 minutes?
- Spread: normal for this hour?
- Setup: is it on my written list?
- Stop: placed in the platform before entry?
- 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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 8:57 am
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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 8:59 am
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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 8:59 am
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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 8:59 am
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?
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 9:02 am
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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 9:02 am
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);
}
}
//+------------------------------------------------------------------+
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 9:02 am
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.
Re: Checklist fatigue: how I kept my pre-trade list to five lines
Posted: Wed Oct 28, 2026 9:03 am
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.