
The Multi-Momentum Indicator Trend Tracking Quantitative Trading Strategy is a composite quantitative trading method that combines Exponential Moving Average (EMA), Relative Strength Index (RSI), and Moving Average Convergence Divergence (MACD). By integrating multiple technical indicators, the strategy aims to improve the accuracy and reliability of trading signals, particularly suitable for short and medium-term trading in high-volatility markets.
The core principle of this strategy is multi-indicator joint verification: 1. Use fast EMA (9 periods) and slow EMA (21 periods) to judge trend direction and momentum changes 2. Confirm market momentum and overbought/oversold states through RSI (14 periods) 3. Verify trend momentum and direction using MACD indicator
Specific signal generation rules: - When fast EMA crosses above slow EMA, RSI > 50, and MACD line is above signal line, generate a buy signal - When fast EMA crosses below slow EMA, RSI < 50, and MACD line is below signal line, generate a sell signal
The Multi-Momentum Indicator Trend Tracking Quantitative Trading Strategy builds a relatively robust trading signal generation system by integrating three key technical indicators: EMA, RSI, and MACD. The strategy maintains sufficient flexibility while possessing strong risk control capabilities, providing quantitative traders with a trading solution worth in-depth research.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy("EMA + RSI + MACD Strategy", overlay=true)
// Input for EMA Lengths
emaFastLength = input(9, title="Fast EMA Length")
emaSlowLength = input(21, title="Slow EMA Length")
// RSI Settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
// MACD Settings
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Calculate EMAs
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Plot EMAs
plot(emaFast, title="Fast EMA", color=color.blue, linewidth=1)
plot(emaSlow, title="Slow EMA", color=color.red, linewidth=1)
// Buy and Sell Conditions
bullishCrossover = ta.crossover(emaFast, emaSlow) and rsi > 50 and macdLine > signalLine
bearishCrossover = ta.crossunder(emaFast, emaSlow) and rsi < 50 and macdLine < signalLine
// Plot Buy and Sell Signals
plotshape(series=bullishCrossover, title="BuySignal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="BUY")
plotshape(series=bearishCrossover, title="SellSignal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="SELL")
// Strategy Execution
if bullishCrossover
strategy.entry("Buy", strategy.long)
if bearishCrossover
strategy.close("Buy")
strategy.entry("Sell", strategy.short)