Back to Research
Day Trading 12 min read

Why I Avoid Day Trading During This Hour

The lunch hour (12:00-1:00 PM ET) is the worst window for day trading. Backtesting shows a 38% win rate, 41% volume drop, and wider spreads. Learn to use ThinkOrSwim indicators and ThinkScript time filters to avoid this dead zone.

Published August 21, 2023 Updated February 25, 2026
Why I Avoid Day Trading During This Hour
-41% Volume Drop at Lunch
38% Win Rate 12-1 PM ET
62% Win Rate Morning Session
2.3x Wider Spreads Midday

Every trader knows the feeling. The morning delivered clean setups and follow-through on momentum trades. Then noon hits and the market turns into a choppy, directionless mess. Stops get clipped on both sides. Signals that worked at 10:00 AM suddenly fail.

This is not random. The lunch hour (12:00 to 1:00 PM ET) is statistically the worst window for day trading. Reduced volume, wider spreads, and choppy price action create an environment where most strategies underperform. Using thinkorswim indicators and backtesting data, we can measure how much this dead zone costs traders and build systems to avoid it.

The Lunch Hour Dead Zone: What the Data Shows

Between 12:00 and 1:00 PM ET, average tick volume on the S&P 500 E-mini drops by 41% compared to the first two hours. Institutional orders thin out. Market makers widen quotes. Technical signals lose reliability and mean-reversion noise dominates directional moves.

Key Context: Institutional traders and algorithms account for roughly 70% of daily equity volume. Many reduce activity at midday. When the "smart money" steps away, retail traders are left trading against noise.

Volume Profile Across the Trading Day

Time (ET) Rel. Volume Spread Win Rate
9:30-10:00 AM185%$0.0158%
10:00-11:00 AM140%$0.0162%
11:00 AM-12:00 PM105%$0.0155%
12:00-1:00 PM59%$0.02-$0.0338%
1:00-2:00 PM78%$0.01-$0.0247%
2:00-3:00 PM115%$0.0157%
3:00-4:00 PM160%$0.0161%

The 12:00 to 1:00 PM window produces the lowest volume, widest spreads, and worst win rate. Traders using thinkorswim indicators for breakout entries here are fighting unfavorable conditions.

Why Spreads Widen and Chop Takes Over

When volume drops, market makers widen their quotes. For SPY, the spread might double from $0.01 to $0.02. For mid-cap stocks, spreads can widen 3x to 5x. On 1,000 shares, that adds $40 to $50 in hidden round-trip costs. Breakouts fail without volume to sustain them. Even volatility box setups show degraded results at midday.

Warning: Backtesting across 252 trading days showed that traders who kept trading between 12:00 and 1:00 PM ET reduced annual returns by 23% compared to those who sat out that window.

Backtesting the Lunch Hour

We tested a momentum breakout strategy across 12 months on SPY, QQQ, and 50 equities using a 9-EMA crossover with volume confirmation on 5-minute charts. Morning trades (9:45-11:30 AM) produced a 62% win rate with 1.8:1 reward-to-risk. Lunch hour trades (12:00-1:00 PM) produced 38% with 0.9:1. Morning trades had positive expected value across all instruments. Lunch trades had negative expected value on 43 of 52.

ThinkOrSwim Volume Warning Overlay

This ThinkScript highlights when volume drops below 60% of the 20-period average, capturing most lunch hour conditions in your thinkorswim indicators setup.

# Lunch Hour Volume Warning Overlay
declare lower;
input volumeThreshold = 0.60;
input avgLength = 20;

def avgVol = Average(volume, avgLength);
def volRatio = volume / avgVol;

plot VolBar = volume;
VolBar.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
VolBar.AssignValueColor(
    if volRatio < volumeThreshold then Color.RED
    else if volRatio < 0.80 then Color.YELLOW
    else Color.GREEN);

plot AvgLine = avgVol * volumeThreshold;
AvgLine.SetDefaultColor(Color.RED);
AvgLine.SetStyle(Curve.LONG_DASH);

AddLabel(yes, "Vol Ratio: " + AsPercent(volRatio),
    if volRatio < volumeThreshold then Color.RED
    else if volRatio < 0.80 then Color.YELLOW
    else Color.GREEN);

Time-Based Chart Background Filter

This thinkorswim scripts for day trading example paints the chart background red during the dead zone.

# Lunch Hour Dead Zone Marker
def lunchStart = 1200;
def lunchEnd = 1300;
def currentTime = SecondsFromTime(lunchStart) >= 0
                  and SecondsTillTime(lunchEnd) > 0;

AssignBackgroundColor(
    if currentTime then Color.DARK_RED
    else Color.CURRENT);

AddLabel(currentTime,
    " LUNCH HOUR - LOW PROBABILITY ZONE ",
    Color.RED);

def cautionZone = SecondsFromTime(lunchEnd) >= 0
    and SecondsTillTime(1330) > 0;
AddLabel(cautionZone,
    " CAUTION - VOLUME RECOVERING ",
    Color.YELLOW);

TTM Squeeze ThinkOrSwim with Time Filters

The ttm squeeze thinkorswim indicator identifies low-volatility periods before large moves. But Squeeze signals during lunch are far less reliable. Testing showed ttm squeeze thinkorswim signals between 9:45 and 11:30 AM had 67% follow-through versus only 41% between 12:00 and 1:00 PM.

# TTM Squeeze with Time Quality Filter
input morningStart = 0945;
input morningEnd = 1130;
input afternoonStart = 1400;
input afternoonEnd = 1555;

def inMorning = SecondsFromTime(morningStart) >= 0
                and SecondsTillTime(morningEnd) > 0;
def inAfternoon = SecondsFromTime(afternoonStart) >= 0
                  and SecondsTillTime(afternoonEnd) > 0;
def primeTime = inMorning or inAfternoon;
def avgVol = Average(volume, 20);
def volStrong = volume > avgVol;
def sqzOn = BollingerBandsSMA().UpperBand
            < KeltnerChannels().Upper_Band;

def quality = if sqzOn and primeTime and volStrong then 2
              else if sqzOn and primeTime then 1
              else if sqzOn then 0 else -1;

AddLabel(sqzOn and quality == 2,
    " SQUEEZE: HIGH QUALITY ", Color.GREEN);
AddLabel(sqzOn and quality == 1,
    " SQUEEZE: MODERATE ", Color.YELLOW);
AddLabel(sqzOn and quality == 0,
    " SQUEEZE: LOW QUALITY - LUNCH ", Color.RED);

Filtering Thinkorswim Scanners by Hour

The thinkorswim scanners can use custom studies to exclude lunch hour setups. Create a study returning 1 during preferred windows and 0 during lunch, then use it as a scan condition.

# Scanner Time Filter Study
plot scanSignal;
def morningWindow = SecondsFromTime(0945) >= 0
                    and SecondsTillTime(1130) > 0;
def afternoonWindow = SecondsFromTime(1400) >= 0
                      and SecondsTillTime(1555) > 0;
scanSignal = if morningWindow or afternoonWindow
             then 1 else 0;

Set the condition to "scanSignal is equal to 1" in your thinkorswim scanners and results exclude lunch hour setups automatically.

Volatility Box and Time-of-Day

The volatility box framework reveals that the expected range during lunch is significantly narrower than morning or closing sessions. For futures traders using the volatility box for futures, the effect is amplified due to the pronounced institutional volume drop on ES and NQ.

Pro Tip: Volatility box levels from morning data remain valid reference points during lunch. Use them to plan afternoon entries, but wait for volume to return before committing capital.

Removing Lunch Hour Trades: The Numbers

Metric All Hours No Lunch Change
Win Rate52.1%58.7%+6.6%
Profit Factor1.341.71+27.6%
Max Drawdown-8.4%-5.1%+39.3%
Sharpe Ratio1.422.08+46.5%
Total Trades1,8471,512-18.1%

Removing 18% of trades improved profit factor by 28% and cut max drawdown by 39%. Fewer trades, better results.

What to Do Instead of Trading at Lunch

Review morning trades. Identify what worked and whether you followed your rules.

Scan for afternoon setups. Use thinkorswim scanners to find stocks consolidating on low midday volume. These often produce the best afternoon breakouts after 1:30 PM.

Update your levels. Recalculate volatility box zones for the afternoon.

Step away. Cognitive fatigue research shows continuous screen time degrades pattern recognition. A 30-minute break resets your edge.

Exceptions and Your Trading Schedule

On FOMC days, earnings season peaks, or when VIX exceeds 30, the normal volume pattern can break down. The key confirmation is always actual volume. If lunch hour volume exceeds the 20-period average, dead zone dynamics do not apply and your thinkorswim scripts for day trading can be trusted at normal levels.

The optimal schedule: trade 9:30-11:45 AM (primary), break 11:45 AM-1:30 PM, trade 1:30-3:45 PM (secondary), and close all positions by 4:00 PM.

Important: Always check actual volume using your thinkorswim indicators rather than blindly assuming every lunch hour is dead. The time filter is a baseline; real-time volume confirmation is the final check.
Practical Solution: Set an alarm at 11:45 AM ET. Close active positions and switch your ThinkOrSwim workspace to a review layout without order entry panels. Removing the ability to trade is more effective than willpower.

Frequently Asked Questions

What is the lunch hour in day trading and why does it matter?

The lunch hour is 12:00 to 1:00 PM ET. Volume drops by 41%, creating wider spreads, chop, and more false signals. Momentum win rates drop from 62% (morning) to 38% (lunch). Building this awareness into your rules using thinkorswim indicators is critical for consistency.

Can ThinkOrSwim stop me from trading during lunch?

No native feature blocks order entry by time. However, ThinkScript background markers, alert conditions, and conditional orders that cancel before the dead zone create an effective system. A separate review workspace without order entry adds discipline.

Do any strategies work during the lunch hour?

Mean-reversion strategies with adjusted targets can work. Scalping for 1-3 ticks on futures remains viable when spreads stay tight. But risk-adjusted returns rarely justify the effort versus waiting for the afternoon. The volatility box helps identify when compressed ranges may resolve into tradeable moves.

How do I know when the dead zone ends?

Wait until at least 1:30 PM ET. Monitor volume using the Volume Warning Overlay until it returns to 80% of the 20-period average. On most days this happens between 1:15 and 1:45 PM. On slow days, the dead zone can extend past 2:00 PM.

Does the lunch hour effect apply to futures?

Yes, and it is often more pronounced. ES and NQ show a 45-50% volume decline during lunch versus 41% for SPY. The volatility box for futures accounts for these time-of-day variations in its level calculations.

How much can skipping lunch hour trades improve results?

Removing lunch trades (18% of total) improved profit factor by 27.6%, reduced max drawdown by 39.3%, and increased Sharpe ratio by 46.5%. Using thinkorswim scripts for day trading to filter out lunch is one of the highest-impact changes available.

Key Takeaways

  • The lunch hour (12:00-1:00 PM ET) produces 41% less volume, 2.3x wider spreads, and a 38% win rate on momentum strategies. These structural conditions degrade nearly every day trading approach.
  • Removing lunch trades improved profit factor by 27.6% and Sharpe ratio by 46.5%. The eliminated trades had negative expected value. The best trade during lunch is no trade at all.
  • ThinkOrSwim provides all the tools to build a lunch hour avoidance system. ThinkScript overlays, time-filtered thinkorswim scanners, and the volatility box framework create a rules-based approach that removes overtrading temptation.
The lunch hour is 12:00 to 1:00 PM ET. Volume drops by 41%, creating wider spreads, choppy price action, and more false signals. Momentum win rates drop from 62% in the morning to 38% during lunch. Building this into your trading rules is critical for consistency.
No native feature blocks order entry by time. However, ThinkScript background markers, alert conditions, and conditional orders that cancel before the dead zone create an effective system. A separate review workspace without order entry adds discipline.
Mean-reversion strategies with adjusted targets can work. Scalping for 1-3 ticks on futures remains viable when spreads stay tight. But risk-adjusted returns rarely justify the effort versus waiting for the afternoon.
Wait until at least 1:30 PM ET. Monitor volume using the Volume Warning Overlay until it returns to 80% of the 20-period average. On most days this happens between 1:15 and 1:45 PM. On slow days, the dead zone can extend past 2:00 PM.
Yes, and it is often more pronounced. ES and NQ show a 45-50% volume decline during lunch versus 41% for SPY. Institutional algorithms that drive futures volume run primarily during opening and closing rotations.
Removing lunch trades (18% of total) improved profit factor by 27.6%, reduced max drawdown by 39.3%, and increased Sharpe ratio by 46.5%. These gains come from removing low-quality trades, not adding complexity.

Ready to Trade With an Edge?

Join 40,000+ traders using institutional-grade tools for ThinkOrSwim.

Get the Bundle