
Стратегия представляет собой количественную торговую систему, основанную на RSI и средней линии EMA, для совершения сделок с помощью подтверждения тренда сверхпродажных сигналов в сочетании с относительно слабым индексом ((RSI) и движущимся средним ((EMA). Стратегия включает в себя модуль управления рисками, чтобы контролировать риск, настроив стоп-лосс (Stop-Loss) и стоп-тейк-профит (Take-Profit). Согласно данным обратной проверки, около 70% торговых видов были прибыльными в тестах на несколько торговых видов за 15-минутный период времени.
Основная логика стратегии основана на следующих ключевых элементах:
Это целостная, логически ясная стратегия количественного трейдинга, которая обеспечивает более надежное генерирование торговых сигналов с помощью комбинации RSI и EMA. Механизм управления рисками и гибкость параметров стратегии делают ее практически полезной. Несмотря на некоторые потенциальные риски, можно еще больше повысить стабильность и прибыльность стратегии с помощью предлагаемого направления оптимизации.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI BUY/SELL + EMA + SLTP by rcpislr", overlay=true)
// Kullanıcı Parametreleri
rsi_period = input(14, title="RSI Periyodu")
rsi_overbought = input(70, title="RSI Aşırı Alım Seviyesi")
rsi_oversold = input(30, title="RSI Aşırı Satım Seviyesi")
ema_period = input(400, title="EMA Periyodu")
use_ema = input(true, title="EMA Şartını Kullan")
sl_pct = input(1, title="Stop-Loss (%)") / 100
tp_pct = input(1, title="Take-Profit (%)") / 100
// Belirtilen Zaman Diliminde RSI ve EMA Hesaplamaları
rsi = ta.rsi(close, rsi_period)
ema = ta.ema(close, ema_period)
// Long ve Short Sinyalleri
long_signal = rsi[2] > rsi_overbought and rsi < rsi_overbought and (close > ema or not use_ema)
short_signal = rsi[2] < rsi_oversold and rsi > rsi_oversold and (close < ema or not use_ema)
// Alım/Satım İşlemleri
if long_signal
strategy.entry("Long", strategy.long)
if short_signal
strategy.entry("Short", strategy.short)
// Stop-Loss ve Take-Profit Uygulaması
if strategy.position_size > 0
long_stop_loss = close * (1 - sl_pct)
long_take_profit = close * (1 + tp_pct)
strategy.exit("Long Exit", from_entry="Long", stop=long_stop_loss, limit=long_take_profit)
if strategy.position_size < 0
short_stop_loss = close * (1 + sl_pct)
short_take_profit = close * (1 - tp_pct)
strategy.exit("Short Exit", from_entry="Short", stop=short_stop_loss, limit=short_take_profit)
// Sinyalleri Grafikte Göster
plotshape(series=long_signal, title="Long Sinyali", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=short_signal, title="Short Sinyali", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
plot(ema, title="EMA 400", color=color.orange)