
Стратегия представляет собой коротколинейную торговую систему, которая сочетает в себе движущиеся средние ((EMA) и относительно слабые показатели ((RSI)). Она идентифицирует потенциальные торговые возможности, наблюдая за перекрестными сигналами множественных средних линий и подтверждением динамики показателя RSI. Стратегия разработана с адаптированными стоп-стоп и прибыльными целями, подходящими для торговли в 15-минутный период времени.
В стратегии используются индексные скользящие средние с тремя различными циклами (9, 21, 50) и индикатор RSI с 14 циклами. В случае многоголовых сигналов, когда 9-циклическая EMA вверх проходит 21-циклическую EMA, и цена находится выше 50-циклической EMA, а RSI находится в диапазоне 40-70, вызывается многоголовый сигнал. В случае пустых сигналов, когда 9-циклическая EMA вниз проходит 21-циклическую EMA, и цена находится ниже 50-циклической EMA, а RSI находится в диапазоне 30-60, вызывается пустой сигнал.
Стратегия создает относительно целостную торговую систему, объединяя в себе множество технических показателей. Она не только содержит четкие сигналы входа и выхода, но и спроектировала механизм контроля риска. Центральным преимуществом стратегии является повышение надежности сделки с помощью множественного подтверждения, но в то же время она требует от трейдера внимательного наблюдения за изменениями в рыночной среде и соответствующей настройки параметров.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("RSI + EMA Scalping Strategy", overlay=true)
// Input for EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// RSI Input
rsi = ta.rsi(close, 14)
// User-defined input for Stop Loss & Target percentages
stop_loss_percent = input.float(0.5, "Stop Loss (%)", step=0.1)
target_percent = input.float(1.0, "Target (%)", step=0.1)
// Long condition
longCondition = ta.crossover(ema9, ema21) and close > ema50 and rsi > 40 and rsi < 70
if (longCondition)
strategy.entry("Buy", strategy.long)
stopLossPrice = close * (1 - stop_loss_percent / 100)
takeProfitPrice = close * (1 + target_percent / 100)
strategy.exit("Exit Buy", "Buy", stop=stopLossPrice, limit=takeProfitPrice)
// Short condition
shortCondition = ta.crossunder(ema9, ema21) and close < ema50 and rsi < 60 and rsi > 30
if (shortCondition)
strategy.entry("Sell", strategy.short)
stopLossPrice = close * (1 + stop_loss_percent / 100)
takeProfitPrice = close * (1 - target_percent / 100)
strategy.exit("Exit Sell", "Sell", stop=stopLossPrice, limit=takeProfitPrice)
// Plot EMAs
plot(ema9, color=color.orange, linewidth=1, title="EMA 9")
plot(ema21, color=color.blue, linewidth=1, title="EMA 21")
plot(ema50, color=color.purple, linewidth=2, title="EMA 50")