This is a multi-indicator trading strategy that combines Supertrend, Exponential Moving Average (EMA), and Relative Strength Index (RSI). The strategy identifies market trends, momentum, and potential reversal points through the crossover signals and overbought/oversold levels of these three technical indicators, seeking optimal trading opportunities in the market. The strategy leverages the advantages of multiple indicators to enhance trading accuracy and reliability through market analysis from different dimensions.
The core logic is based on the combined analysis of three main technical indicators:
Buy signals require all of the following conditions:
Sell signals require all of the following conditions:
This is a well-structured, logically sound multi-indicator quantitative trading strategy that builds a comprehensive trading system by combining trend following, momentum analysis, and overbought/oversold indicators. The strategy’s strength lies in its multi-indicator cross-validation for improved signal reliability and clear risk control mechanisms. While inherent risks exist, continuous optimization and refinement could help maintain stable performance across different market environments.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © satyakipaul3744 //@version=6 //@version=6 strategy("Supertrend + EMA Crossover + RSI Strategy", overlay=true) // --- Input Parameters --- supertrend_length = input.int(10, title="Supertrend Length", minval=1) supertrend_multiplier = input.float(3.0, title="Supertrend Multiplier", step=0.1) short_ema_length = input.int(9, title="Short EMA Length") long_ema_length = input.int(21, title="Long EMA Length") rsi_length = input.int(14, title="RSI Length") rsi_overbought = input.int(70, title="RSI Overbought Level") rsi_oversold = input.int(30, title="RSI Oversold Level") // --- Indicator Calculations --- // Supertrend calculation [supertrend, direction] = ta.supertrend(supertrend_multiplier, supertrend_length) // EMA calculations short_ema = ta.ema(close, short_ema_length) long_ema = ta.ema(close, long_ema_length) // RSI calculation rsi = ta.rsi(close, rsi_length) // --- Buy/Sell Conditions --- // Buy condition: Supertrend bullish, EMA crossover, RSI not overbought buy_condition = direction > 0 and ta.crossover(short_ema, long_ema) and rsi < rsi_overbought // Sell condition: Supertrend bearish, EMA crossunder, RSI not oversold sell_condition = direction < 0 and ta.crossunder(short_ema, long_ema) and rsi > rsi_oversold // --- Plot Buy/Sell signals --- plotshape(buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // --- Strategy Orders for Backtesting --- if buy_condition strategy.entry("Buy", strategy.long) if sell_condition strategy.close("Buy") // --- Plot Supertrend --- plot(supertrend, color=direction > 0 ? color.green : color.red, linewidth=2, title="Supertrend") // --- Plot EMAs --- plot(short_ema, color=color.blue, title="Short EMA") plot(long_ema, color=color.orange, title="Long EMA") // --- Strategy Performance --- // You can see the strategy performance in the "Strategy Tester" tab.