Multi-Timeframe Strategies
A multi-timeframe strategy uses data from more than one chart resolution to make trading decisions. For example, you might check the daily chart to confirm the overall trend direction and then use a 5-minute chart to time your entries. This approach helps filter out noise and improves the quality of your signals.
Why use multiple timeframes?
Section titled “Why use multiple timeframes?”Every timeframe tells a different part of the story:
- Higher timeframes (daily, weekly) show the big picture – the dominant trend, major support and resistance levels, and long-term momentum.
- Lower timeframes (1-minute, 5-minute, 15-minute) show the fine detail – short-term momentum shifts, precise entry timing, and intraday price structure.
By combining both, you can:
- Trade in the direction of the bigger trend. A pullback on a 5-minute chart might be a buying opportunity if the daily chart is in a strong uptrend – or a trap if the daily trend is down.
- Time entries more precisely. The daily chart might say “look for buys today,” and the 5-minute chart tells you exactly when to pull the trigger.
- Filter out low-quality signals. An RSI oversold reading on a 5-minute chart is more meaningful when the higher timeframe confirms the same direction.
- Set more informed stop-loss and take-profit levels. Higher-timeframe support and resistance levels are generally more significant than lower-timeframe levels.
How it works in Stratifyre
Section titled “How it works in Stratifyre”Your strategy has a primary timeframe that determines how often rules are evaluated (set during strategy creation). Within your rules, you can reference data from any other timeframe using multi-timeframe expressions.
Referencing price data from another timeframe
Section titled “Referencing price data from another timeframe”Use the bars['[<InstrumentId>~]<Interval>'].<field>[<index>] syntax in your expressions:
| Expression | Meaning |
|---|---|
bars['D'].close[1] |
Yesterday’s closing price for current instrument |
bars['D'].high[0] |
Today’s high so far for current instrument |
bars['W'].low[1] |
Last week’s low for current instrument |
bars['1h'].close[1] |
Previous hour’s close for current instrument |
bars['4h'].open[0] |
Current 4-hour bar’s open for current instrument |
bars['15m'].volume[1] |
Previous 15-minute bar’s volume for current instrument |
bars['EQ:NASDAQ:QQQ~1h'].close[1] |
Previous hourly close for QQQ |
The timeframe codes you can use include:
| Code | Timeframe |
|---|---|
"1m" |
1 minute |
"5m" |
5 minutes |
"15m" |
15 minutes |
"30m" |
30 minutes |
"1h" |
1 hour |
"4h" |
4 hours |
"D" |
Daily |
"W" |
Weekly |
"M" |
Monthly |
Inside an all or specific scoped rule, omitting the instrument ID means “use the instrument currently being evaluated.” Portfolio-level none scoped rules do not have that implicit instrument, so use the explicit InstrumentId~Interval form when needed.
Referencing indicators on another timeframe
Section titled “Referencing indicators on another timeframe”You can calculate any indicator on a different timeframe by specifying the timeframe in the indicator’s parameters. In the rule builder, look for the Timeframe field when configuring an indicator.
For example, to check whether the daily 200-period SMA is rising while your primary chart is set to 5 minutes:
- Select SMA as the indicator
- Set Period to 200
- Set Timeframe to Daily
In expression form, this would look like: SMA(200, "D")
This gives you the value of the 200-day SMA, regardless of your strategy’s primary timeframe.
Common multi-timeframe patterns
Section titled “Common multi-timeframe patterns”Higher-timeframe trend filter
Section titled “Higher-timeframe trend filter”Use a higher timeframe to determine the trend direction and only take trades in that direction on the lower timeframe.
Setup:
- Primary timeframe: 15 minutes
- Trend filter: Daily
Entry rule conditions:
SMA(50, "D")is greater thanSMA(200, "D")– Daily trend is bullishRSI(14)is less than35– 15-minute RSI is oversold (a pullback within the uptrend)Priceis greater thanSMA(20)– Price is above the 15-minute 20-period SMA (short-term support holding)
Why it works: You only buy dips when the bigger picture is bullish, avoiding mean-reversion trades against the dominant trend.
Multiple momentum confirmation
Section titled “Multiple momentum confirmation”Require momentum alignment across two or more timeframes before entering.
Setup:
- Primary timeframe: 5 minutes
- Confirmation timeframe: 1 hour
Entry rule conditions:
MACD("1h").histogramis greater than0– Hourly MACD is bullishRSI(14, "1h")is greater than50– Hourly RSI is above the midlineStochastic %K(5,3,3)crossing up20– 5-minute Stochastic crosses up from oversold
Why it works: The hourly timeframe confirms that momentum is positive, and the 5-minute timeframe provides a precise timing signal.
Higher-timeframe support and resistance
Section titled “Higher-timeframe support and resistance”Use daily or weekly levels to set entry, take-profit, and stop-loss prices on a lower timeframe.
Setup:
- Primary timeframe: 5 minutes
- Reference timeframe: Daily
Entry rule conditions:
Priceis less thanbars['D'].low[1]– Price has dropped below yesterday’s low (potential liquidity grab)RSI(14)is less than25– Short-term RSI is deeply oversoldVolumemoving up %100– Volume has spiked (institutional activity)
Exit (take profit):
Priceis greater thanbars['D'].close[1]– Price has recovered back to yesterday’s close
Exit (stop loss):
Priceis less thanbars['D'].low[1] - ATR(14, "D")– Price has moved a full daily ATR below yesterday’s low
Timeframe confluence for breakouts
Section titled “Timeframe confluence for breakouts”Confirm breakouts by checking that price is breaking out on multiple timeframes simultaneously.
Setup:
- Primary timeframe: 15 minutes
- Confirmation timeframe: 1 hour
Entry rule conditions:
Priceexiting channelDonchian(20)– 15-minute breakout above 20-period Donchian ChannelPriceis greater thanbars['1h'].high[1]– Price is also above the previous hour’s highADX(14)is greater than25– Trend strength is sufficient
Why it works: A breakout confirmed on multiple timeframes is less likely to be a false signal.
Tips for multi-timeframe strategies
Section titled “Tips for multi-timeframe strategies”- Make sure the timeframes are meaningfully different. Combining a 5-minute and 6-minute chart adds little value. A good rule of thumb is to use timeframes that are at least 3 to 5 times apart (for example, 5 minutes and 1 hour, or 1 hour and daily).
- The higher timeframe is the filter; the lower timeframe is the trigger. Let the higher timeframe tell you which direction to trade, and the lower timeframe tell you when.
- Higher-timeframe data updates less frequently. A daily SMA only updates once per day. Your 5-minute strategy will see the same daily SMA value across all bars until the new day begins. This is expected behavior.
- Backtest to validate. Multi-timeframe strategies can look great in theory but may underperform if the timeframes create too many conflicting signals. Always backtest across different market conditions.
