
The RSI Crossover ATR Dynamic SL/TP Dual Position Loop Trading Strategy is a scalping strategy specifically designed for the NASDAQ 100 index (US100) on the 3-minute timeframe. This strategy employs a “1 Buy 2 Sell” loop logic, with each trade managed through ATR (Average True Range) based dynamic stop-loss and take-profit levels.
The strategy utilizes RSI (Relative Strength Index) crossovers with the 50 level as entry signals, combined with an EMA (Exponential Moving Average) as a trend filter to ensure trade direction aligns with the overall trend. Additionally, the strategy leverages the ATR indicator to calculate dynamic stop-loss and take-profit points, effectively adapting to changing market volatility.
The operating principles of this strategy can be divided into several key components:
Signal Generation Mechanism:
Trend Filtering System:
Position Management Logic:
Dynamic Risk Control:
Contrary Signal Handling:
Dynamic Risk Management:
Trend Confirmation Mechanism:
Dual Position Exit Strategy:
Strong Market Adaptability:
Clear and Concise Logic:
High-Frequency Short-Term Trading Risk:
RSI Signal Lag:
Fixed ATR Multiplier Limitations:
Trend Reversal Risk:
Specific Market Dependency:
Introduce Adaptive Parameter System:
Add Time Filtering Function:
Implement Trailing Stop Mechanism:
Integrate Volume Indicators:
Develop Multi-Indicator Integration System:
The RSI Crossover ATR Dynamic SL/TP Dual Position Loop Trading Strategy is a short-term quantitative trading system that combines technical indicators with dynamic risk management. It generates trading signals through RSI crossover signals and an EMA trend filter, while employing ATR-based dynamic stop-loss and take-profit mechanisms to control risk.
The core advantage of this strategy lies in its ability to dynamically adapt to market volatility, and its balance of risk and reward through the “1 Buy 2 Sell” model. Although there are potential risks such as high short-term trading frequency and lagging RSI signals, through the suggested optimization directions—such as adaptive parameter systems, time filtering, and trailing stops—the stability and profitability of the strategy can be further enhanced.
This strategy is particularly suitable for traders who prefer high-frequency trading, are familiar with the characteristics of the NASDAQ 100 index, and possess the discipline to execute short-term trades. However, before real-world application, it is recommended to conduct thorough backtesting and simulated trading to ensure the strategy parameters match the current market environment.
/*backtest
start: 2025-05-05 00:00:00
end: 2025-05-11 08:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("1 BUY 2 SELL Loop – With ATR-Based SL/TP", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// === Parametreler ===
rsiLength = input.int(14, "RSI Periyodu")
emaFilterLen = input.int(200, "Trend Filtresi için EMA")
atrLen = input.int(14, "ATR Periyodu")
atrMultiplier = input.float(1.5, "ATR Katsayısı (SL ve TP için)")
// === İndikatörler ===
rsi = ta.rsi(close, rsiLength)
ema = ta.ema(close, emaFilterLen)
atr = ta.atr(atrLen)
// === Trend Filtresi ===
isUptrend = close > ema
isDowntrend = close < ema
// === Giriş Sinyalleri ===
longSignal = ta.crossover(rsi, 50) and isUptrend
shortSignal = ta.crossunder(rsi, 50) and isDowntrend
// === SL ve TP Hesaplama ===
longSL = close - atr * atrMultiplier
longTP = close + atr * atrMultiplier
shortSL = close + atr * atrMultiplier
shortTP = close - atr * atrMultiplier
// === LONG Pozisyon Açma ===
if (longSignal)
if (strategy.position_size < 0)
strategy.close("Short")
strategy.entry("Long", strategy.long, qty=1)
strategy.exit("Long TP/SL", from_entry="Long", stop=longSL, limit=longTP)
// === SHORT Pozisyon Açma ===
if (shortSignal)
if (strategy.position_size > 0)
strategy.close("Long")
strategy.entry("Short", strategy.short, qty=1)
strategy.exit("Short TP/SL", from_entry="Short", stop=shortSL, limit=shortTP)