Multi Indicator Trend Momentum Trading Strategy An Optimized Quantitative Trading System Based on Bollinger Bands Fibonacci and ATR
This strategy is a multi-dimensional technical analysis trading system that combines momentum indicators (RSI, MACD), trend indicators (EMA), volatility indicators (Bollinger Bands, ATR), and price structure…

Overview
This strategy is a multi-dimensional technical analysis trading system that combines momentum indicators (RSI, MACD), trend indicators (EMA), volatility indicators (Bollinger Bands, ATR), and price structure indicators (Fibonacci retracements) to capture market opportunities through multi-dimensional signal coordination. The strategy is optimized for 15-minute timeframes and employs ATR-based dynamic stop-loss and take-profit levels, demonstrating strong risk control capabilities.
Strategy Principles
The core logic includes the following dimensions:
- Trend Confirmation: Using 9/21 period EMA crossovers to determine trend direction
- Momentum Verification: Combining RSI overbought/oversold (55/45) and MACD histogram for momentum validation
- Volatility Reference: Using Bollinger Bands (20 periods, 2 standard deviations) to measure price volatility
- Support/Resistance: Fibonacci 0.382/0.618/0.786 levels calculated from 100-period high/low
- Risk Management: 1.5x ATR stop-loss and 3x ATR take-profit based on 14-period ATR
Trading occurs only when multiple dimensional signals align, improving trading accuracy.
Strategy Advantages
- Multi-dimensional signal cross-validation reduces false signals
- Dynamic ATR-based stop-loss and take-profit adapts to different market conditions
- Integration of classic technical indicators makes it easy to understand and maintain
- Precise entry timing improves win rate
- Risk-reward ratio of 1:2 meets professional trading standards
- Suitable for highly volatile market environments
Strategy Risks
- Parameter optimization may lead to overfitting
- Multiple signal conditions might miss some market moves
- Fixed multiplier stops may fail in extreme market conditions
- High computational resource requirements
- Trading costs may impact strategy performance
Strategy Optimization Directions
- Introduce volume factors to verify signal strength
- Dynamically adjust RSI thresholds for different markets
- Add trend strength filters
- Optimize stop-loss and take-profit multipliers
- Add time filters to avoid ranging markets
- Consider implementing machine learning for dynamic parameter optimization
Summary
This strategy builds a robust trading system through the coordination of multi-dimensional technical indicators. Its core advantages lie in signal cross-validation and dynamic risk control, but attention must be paid to parameter optimization and market environment adaptability. Future optimization should focus on dynamic parameter adjustment and signal quality improvement.
Source Pine Script
/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Optimized Advanced Strategy", overlay=true)
// Bollinger Bandı
length = input(20, title="Bollinger Band Length")
src = close
mult = input.float(2.0, title="Bollinger Band Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// RSI
rsi = ta.rsi(close, 14)
// MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// EMA
emaFast = ta.ema(close, 9)
emaSlow = ta.ema(close, 21)
// ATR
atr = ta.atr(14)
// Fibonacci Seviyeleri
lookback = input(100, title="Fibonacci Lookback Period")
highPrice = ta.highest(high, lookback)
lowPrice = ta.lowest(low, lookback)
fiboLevel618 = lowPrice + (highPrice - lowPrice) * 0.618
fiboLevel382 = lowPrice + (highPrice - lowPrice) * 0.382
fiboLevel786 = lowPrice + (highPrice - lowPrice) * 0.786
// Kullanıcı Ayarlı Stop-Loss ve Take-Profit
stopLossATR = atr * 1.5
takeProfitATR = atr * 3
// İşlem Koşulları
longCondition = (rsi < 55) and (macdLine > signalLine) and (emaFast > emaSlow) and (close >= fiboLevel382 and close <= fiboLevel618)
shortCondition = (rsi > 45) and (macdLine < signalLine) and (emaFast < emaSlow) and (close >= fiboLevel618 and close <= fiboLevel786)
// İşlem Girişleri
if (longCondition)
strategy.entry("Long", strategy.long, stop=close - stopLossATR, limit=close + takeProfitATR, comment="LONG SIGNAL")
if (shortCondition)
strategy.entry("Short", strategy.short, stop=close + stopLossATR, limit=close - takeProfitATR, comment="SHORT SIGNAL")
// Bollinger Bandını Çizdir
plot(upper, color=color.red, title="Bollinger Upper Band")
plot(basis, color=color.blue, title="Bollinger Basis")
plot(lower, color=color.green, title="Bollinger Lower Band")
// Fibonacci Seviyelerini Çizdir
// line.new(x1=bar_index[1], y1=fiboLevel382, x2=bar_index, y2=fiboLevel382, color=color.blue, width=1, style=line.style_dotted)
// line.new(x1=bar_index[1], y1=fiboLevel618, x2=bar_index, y2=fiboLevel618, color=color.orange, width=1, style=line.style_dotted)
// line.new(x1=bar_index[1], y1=fiboLevel786, x2=bar_index, y2=fiboLevel786, color=color.purple, width=1, style=line.style_dotted)
// Göstergeleri Görselleştir
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="MACD Signal Line")
plot(emaFast, color=color.green, title="EMA Fast (9)")
plot(emaSlow, color=color.red, title="EMA Slow (21)")
// İşlem İşaretleri
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry")Published by ChaoZhang on the FMZ strategy square · last modified 2025-01-10. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Multi-Indicator-Trend-Momentum-Trading-Strategy-An-Optimized-Quantitative-Trading-System-Based-on-Bollinger-Bands-Fibonacci-and-ATR.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- Multi Indicator Comprehensive Analysis Quantitative Trading Strategy Trend Momentum and Volatility Collaborative Prediction ModelPine Script · Momentum · 3m
- KST EMA Momentum Trend Following StrategyPine Script · Momentum · 1d
- Momentum Indicator Aggregation Trading StrategyPine Script · Momentum · 1h
- Multi Trend Momentum Crossover Strategy with Volatility Optimization SystemPine Script · Momentum · 1d
- Multi Indicator Dynamic Stop Loss Momentum Trend Trading StrategyPine Script · Momentum · 1h
- Oscillator Candles Momentum Trading StrategyPine Script · Momentum · 1h