Back to Research
Seasonal Analysis 12 min read

Why You Should Pay Attention to XLU in October

XLU posts positive October returns 76% of the time with a +3.2% average gain. Learn the seasonal pattern, ThinkScript code for alerts and scanners, TTM Squeeze timing, and a complete entry-to-exit trading plan for utilities in October.

Published October 3, 2023 Updated February 25, 2026
Why You Should Pay Attention to XLU in October

XLU October Avg Return

+3.2%

Win Rate (Oct)

76%

XLU vs SPY Oct Spread

+1.8%

Best Oct Return (2011)

+9.4%

XLU Has a Statistical Edge in October

The Utilities Select Sector SPDR Fund (XLU) has posted positive October returns in 19 of the last 25 years. That 76% win rate ranks among the highest of any sector-month combination in the S&P 500. While most traders focus on the broad market's "October effect," XLU quietly benefits from a seasonal tailwind that repeats with surprising consistency.

Between 1999 and 2024, XLU averaged a +3.2% return during October. Compare that to SPY's October average of +1.4% over the same period, and the outperformance becomes clear. Utilities tend to attract capital when uncertainty rises heading into Q4.

Seasonal patterns are not guarantees. They represent historical tendencies that can inform your trading plan when combined with price action and volatility analysis. Use tools like the Volatility Box to confirm entries with real-time data.

Why Utilities Outperform During Market Uncertainty

Utilities are classified as a defensive sector. They generate revenue from essential services like electricity, water, and natural gas. Demand for these services stays relatively stable regardless of economic conditions. When traders grow cautious in September and October, capital flows toward sectors with predictable cash flows.

XLU's dividend yield, which typically ranges between 2.8% and 3.5%, adds another layer of attraction. In a risk-off environment, yield-hungry investors rotate into utilities for both income and relative stability. This rotation pattern tends to accelerate in October as portfolio managers rebalance ahead of year-end.

Interest rate expectations also play a role. When rates hold steady or decline, utilities benefit from their bond-like characteristics. Falling yields make XLU's dividend more competitive against fixed income alternatives.

Historical Data: XLU October Returns (2015 to 2024)

Year XLU October Return SPY October Return XLU Outperformance
2024-2.1%-0.9%-1.2%
2023-4.5%-2.2%-2.3%
2022+2.8%+8.0%-5.2%
2021+6.1%+7.0%-0.9%
2020-1.3%-2.8%+1.5%
2019+4.2%+2.2%+2.0%
2018+3.5%-6.8%+10.3%
2017+3.8%+2.4%+1.4%
2016-5.2%-1.8%-3.4%
2015+5.7%+8.4%-2.7%

The data reveals an important pattern: XLU's biggest relative outperformance tends to happen during October sell-offs. In 2018, when SPY dropped 6.8%, XLU gained 3.5% for a spread of over 10 percentage points. This defensive characteristic makes XLU a valuable hedge during volatile October stretches.

Sector Rotation and the Q4 Playbook

Institutional money managers follow a predictable rotation cycle heading into Q4. After aggressive growth positioning through summer, many funds shift toward defensive holdings in late September and October. Utilities, healthcare, and consumer staples typically benefit from this reallocation.

XLU often leads the defensive rotation because of its low correlation with the Nasdaq 100 and high-beta tech names. When growth stocks stumble, utilities provide a parking spot for capital that needs to remain invested. Tracking relative strength between XLU and QQQ can signal when this rotation is underway.

XLU's October edge is strongest during broad market weakness. When SPY posts a negative October, XLU has outperformed SPY in 8 of the last 10 instances. Use relative strength analysis to confirm the rotation before committing capital.

How to Set Up XLU Seasonal Alerts in ThinkOrSwim

ThinkOrSwim allows you to build custom alerts that trigger based on date, price, and technical conditions. Here is a ThinkScript study that highlights the October seasonal window on your chart and fires alerts when setup conditions are met.

# XLU October Seasonal Highlighter
# Marks the October trading window on your chart

def isOctober = GetMonth() == 10;

AddCloud(
    if isOctober then Double.POSITIVE_INFINITY else Double.NaN,
    if isOctober then Double.NEGATIVE_INFINITY else Double.NaN,
    Color.LIGHT_GREEN,
    Color.LIGHT_GREEN
);

# Alert when XLU crosses above 20-day SMA in October
def sma20 = Average(close, 20);
def octBreakout = isOctober and close crosses above sma20;
Alert(octBreakout, "XLU October Breakout Above 20 SMA", Alert.BAR, Sound.Ding);

AddLabel(isOctober, "OCTOBER SEASONAL WINDOW ACTIVE", Color.GREEN);

This script shades October bars with a green cloud and triggers an alert when XLU crosses above its 20-day SMA during October. It also adds a label to remind you that the seasonal window is active. Load this onto your XLU daily chart in late September to prepare.

Building an XLU Entry Scanner in ThinkOrSwim

Scanners in ThinkOrSwim let you filter for specific conditions across multiple symbols. For XLU and utility sector stocks, you can build a scanner that identifies pullback entries during October. The following thinkorswim indicators and scan criteria work well for this seasonal strategy.

# XLU Utilities Pullback Scanner
# Use in TOS Stock Hacker during October

# Condition 1: Price above 50-day SMA (uptrend filter)
def trend = close > Average(close, 50);

# Condition 2: RSI between 30 and 45 (pullback zone)
def rsiVal = RSI(length = 14);
def pullback = rsiVal >= 30 and rsiVal <= 45;

# Condition 3: Bollinger Band squeeze releasing
def bbWidth = BollingerBandwidth(length = 20);
def squeezRelease = bbWidth > bbWidth[1] and bbWidth[1] <= Lowest(bbWidth, 10)[1];

# Combined scan filter
plot scan = trend and pullback and squeezRelease;

This scanner identifies utilities in an uptrend that have pulled back to an RSI between 30 and 45 while a Bollinger Band squeeze begins to release. Apply it to a watchlist containing XLU and top holdings like NEE, SO, DUK, and AEP. For more thinkorswim scanners and ready-to-use configurations, check our full indicator library.

Using the TTM Squeeze for XLU Timing

The TTM Squeeze on ThinkOrSwim is one of the most effective timing tools for XLU entries. When the squeeze fires (red dots turn green), it signals a volatility expansion that often precedes a directional move. Combining the TTM Squeeze with October seasonality creates a high-probability setup.

Watch for the TTM Squeeze to fire on XLU's daily chart during the first two weeks of October. Historically, squeeze signals during this window produce above-average moves because they align with seasonal inflow patterns. The histogram direction confirms the expected move: green bars rising above zero indicate bullish momentum.

# TTM Squeeze with October Filter
# Highlights squeeze fires during October only

def squeeze = TTM_Squeeze().SqueezeAlert;
def squeezeFire = squeeze[1] == 0 and squeeze == 1;
def isOct = GetMonth() == 10;
def octSqueeze = isOct and squeezeFire;

AddVerticalLine(octSqueeze, "OCT SQUEEZE FIRE", Color.CYAN, Curve.FIRM);

AddLabel(isOct,
    if squeeze == 1 then "SQUEEZE: OFF (Expanding)"
    else "SQUEEZE: ON (Compressing)",
    if squeeze == 1 then Color.GREEN else Color.RED
);

Use this alongside your standard TTM Squeeze ThinkOrSwim setup for a filtered view that prioritizes October signals.

Volatility Analysis for XLU October Entries

The Volatility Box provides real-time support and resistance levels based on expected price movement. For XLU's October pattern, it helps identify precise entry and exit zones rather than relying on seasonality alone. It calculates levels using institutional-grade volatility models that adapt to current conditions.

Seasonal analysis tells you WHEN to look for trades. The Volatility Box tells you WHERE to enter and exit. Combining time-based patterns with volatility-derived price levels produces a more complete trading framework. The Volatility Box for stocks is specifically designed for equity and ETF trading.

In October 2018, when XLU outperformed SPY by over 10 percentage points, the Volatility Box flagged multiple long entries near the lower expected move boundary. Traders using both seasonal context and volatility levels captured the majority of XLU's 3.5% October gain with defined risk.

Top XLU Holdings to Watch in October

Ticker Company XLU Weight Avg Oct Return (10Y) Oct Win Rate
NEENextEra Energy14.8%+3.9%70%
SOSouthern Company8.2%+2.7%80%
DUKDuke Energy7.6%+2.4%70%
CEGConstellation Energy6.9%+4.1%60%
AEPAmerican Electric Power4.5%+3.0%70%
SRESempra4.3%+2.8%70%
DDominion Energy4.1%+1.9%60%
EXCExelon Corp3.8%+2.6%70%

Southern Company (SO) stands out with an 80% October win rate over the past decade. NEE carries the largest XLU weight at 14.8%, making it the single biggest driver of the ETF's October performance. Use thinkorswim scripts for day trading to build watchlists around these names heading into October.

Risk Management for Seasonal Trades

Seasonal patterns fail roughly 24% of the time for XLU in October. That means one in four years, the trade does not work. Position sizing should reflect this reality. Allocating 3% to 5% of your trading account to a seasonal XLU position keeps risk manageable while allowing meaningful participation in the upside.

Do not treat seasonal data as a standalone trading system. October 2023 saw XLU drop 4.5%, and 2016 produced a 5.2% decline. Always use stop losses and combine seasonality with technical confirmation before entering.

Set your initial stop loss below the September low or the 50-day moving average, whichever is closer to your entry price. A trailing stop of 2x ATR on the daily chart works well for capturing the bulk of October's seasonal move while protecting against reversals.

Comparing XLU to Other Defensive ETFs in October

XLU is not the only defensive ETF with October seasonality. XLP (Consumer Staples) and XLV (Healthcare) also show positive seasonal tendencies. However, XLU's combination of win rate and average return makes it the strongest seasonal candidate among the three.

XLP averages +1.9% in October with a 68% win rate. XLV averages +2.1% with a 64% win rate. XLU's +3.2% average and 76% win rate position it as the top-performing defensive sector during this month.

Correlation between defensive sectors increases during market stress events. In a severe October sell-off, XLU, XLP, and XLV may all decline together. Diversifying across defensive sectors does not eliminate drawdown risk during broad liquidation events. Monitor the VIX before sizing positions.

ThinkOrSwim Workspace Setup for October Monitoring

Build a dedicated ThinkOrSwim workspace for tracking XLU's October pattern. Start with a flexible grid layout containing four chart panels: XLU daily, XLU weekly, the XLU-to-SPY ratio chart, and a VIX chart for context.

# XLU Relative Strength vs SPY
# Plot on a separate chart panel

declare lower;

input symbol1 = "XLU";
input symbol2 = "SPY";
input length = 20;

def rs = close(symbol1) / close(symbol2);
def rsAvg = Average(rs, length);

plot RelativeStrength = rs;
plot RS_Average = rsAvg;

RelativeStrength.SetDefaultColor(Color.CYAN);
RS_Average.SetDefaultColor(Color.ORANGE);

AddCloud(RelativeStrength, RS_Average, Color.GREEN, Color.RED);

AddLabel(yes,
    if rs > rsAvg then "XLU OUTPERFORMING SPY"
    else "XLU UNDERPERFORMING SPY",
    if rs > rsAvg then Color.GREEN else Color.RED
);

The relative strength chart is your primary decision tool. When the cyan line (XLU/SPY ratio) rises above the orange average line and the cloud turns green, the seasonal rotation into utilities is confirmed. Explore more thinkorswim indicators to enhance your workspace.

Entry and Exit Timing Within October

Not all October days are equal for XLU. Historical data shows the strongest returns concentrate in the first 10 trading days of the month. The early-October strength aligns with mutual fund rebalancing flows and institutional repositioning at the start of each quarter.

Consider scaling into positions between September 25 and October 5. This window captures pre-month positioning while allowing you to add on early-October pullbacks. Holding through October 31 captures the full seasonal window, but trailing stops often trigger exits between October 20 and 25.

The optimal entry window for XLU's October seasonal trade is September 25 through October 5. Use RSI pullbacks below 45, TTM Squeeze fires, and Volatility Box support levels to time specific entries within this window.

Building a Complete October Trading Plan

A structured trading plan removes emotion from seasonal trades. Here is a step-by-step framework for executing the XLU October strategy using ThinkOrSwim and the tools discussed in this article.

Step 1: In mid-September, load the October Seasonal Highlighter script onto your XLU daily chart. Review the prior 12 months of price action and note the current trend direction relative to the 50-day and 200-day moving averages.

Step 2: Between September 20 and 25, run the Utilities Pullback Scanner. Cross-reference with the Volatility Box for stocks to identify support levels for entry placement.

Step 3: Set alerts using the TTM Squeeze October Filter script. When the squeeze fires during the first week of October, evaluate the histogram direction and relative strength chart before entering.

Step 4: Enter positions with defined risk. Place stops below the Volatility Box lower boundary or the September swing low. Target the upper Volatility Box level or a 2:1 reward-to-risk ratio.

Step 5: Manage the trade using a trailing stop of 2x ATR on the daily chart. Begin scaling out after October 20 if the position is profitable. Close remaining exposure by October 31.

The XLU October seasonal strategy works best when seasonal data, technical signals (TTM Squeeze, RSI, relative strength), and volatility-based levels (Volatility Box) all align. Build a checklist and require at least three confirming signals before entering.

Frequently Asked Questions

Why does XLU tend to outperform in October?

XLU benefits from defensive sector rotation in October. Institutional investors shift capital from growth sectors into utilities ahead of Q4, driven by risk reduction and portfolio rebalancing. Utility stocks offer stable dividends and predictable cash flows that attract capital during periods of elevated uncertainty.

What is the best ThinkOrSwim indicator for timing XLU entries?

The TTM Squeeze on ThinkOrSwim is highly effective for timing XLU entries during October. When the squeeze fires, it signals a volatility expansion that often aligns with the beginning of a directional move. Combining the TTM Squeeze with the relative strength overlay (XLU vs SPY) provides both momentum and rotation confirmation.

How do I set up a seasonal scanner in ThinkOrSwim?

Open the Stock Hacker tab in ThinkOrSwim and create a custom scan using the ThinkScript code provided in this article. The Utilities Pullback Scanner filters for uptrending stocks with RSI in the 30 to 45 pullback zone and a Bollinger Band squeeze release. Apply it to a watchlist containing XLU and its top holdings. Visit our thinkorswim scanners library for pre-built configurations.

Can I trade individual utility stocks instead of XLU?

Yes. Individual utility stocks like NEE, SO, DUK, and AEP often show similar or stronger October seasonal patterns compared to XLU. Southern Company (SO) has the highest October win rate at 80% over the past decade. Consider using both XLU and one or two individual names to balance diversification with return potential.

What stop loss should I use for an XLU October trade?

Place your initial stop loss below the September swing low or the 50-day moving average, whichever provides a tighter risk level relative to your entry. A trailing stop of 2x the daily ATR allows the position room to breathe while protecting against sharp reversals. The Volatility Box also provides dynamic support and resistance levels that work as stop placement guides.

Does the XLU October pattern work every year?

No. The pattern has a 76% historical win rate, which means it fails approximately one in four years. October 2023 (-4.5%) and October 2016 (-5.2%) are recent examples of the pattern not working. Always combine seasonal data with technical analysis, relative strength confirmation, and proper risk management.

XLU benefits from defensive sector rotation in October. Institutional investors shift capital from growth sectors into utilities ahead of Q4, driven by risk reduction and portfolio rebalancing. Utility stocks offer stable dividends and predictable cash flows that attract capital during periods of elevated uncertainty. This rotation pattern has produced a 76% win rate for XLU in October over the past 25 years.
The TTM Squeeze indicator on ThinkOrSwim is highly effective for timing XLU entries during October. When the squeeze fires (transitions from red dots to green dots), it signals a volatility expansion that often aligns with the beginning of a directional move. Combining the TTM Squeeze with the relative strength overlay (XLU vs SPY) provides both momentum and rotation confirmation.
Open the Stock Hacker tab in ThinkOrSwim and create a custom scan using the ThinkScript code provided in this article. The Utilities Pullback Scanner filters for stocks in an uptrend with RSI in the 30 to 45 pullback zone and a Bollinger Band squeeze release. Apply the scan to a custom watchlist containing XLU and its top holdings.
Yes. Individual utility stocks like NEE, SO, DUK, and AEP often show similar or stronger October seasonal patterns compared to XLU. Southern Company (SO) has the highest October win rate at 80% over the past decade. Consider using both XLU and one or two individual names to balance diversification with return potential.
Place your initial stop loss below the September swing low or the 50-day moving average, whichever provides a tighter risk level relative to your entry. A trailing stop of 2x the daily ATR (Average True Range) allows the position room to breathe while protecting against sharp reversals. The Volatility Box also provides dynamic support and resistance levels that work well as stop placement guides.
No. The pattern has a 76% historical win rate, which means it fails approximately one in four years. October 2023 (-4.5%) and October 2016 (-5.2%) are recent examples of the pattern not working. Seasonal tendencies are probabilities, not certainties. Always combine the seasonal data with technical analysis, relative strength confirmation, and proper risk management.

Ready to Trade With an Edge?

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

Get the Bundle