Esta estrategia es un sistema de negociación cuantitativo basado en el indicador RSI y la línea EMA, que combina las señales de sobrecompra / sobreventa del índice de fuerza relativa (RSI) con la confirmación de tendencia del promedio móvil exponencial (EMA). La estrategia incluye un módulo de gestión de riesgos que controla el riesgo a través de configuraciones de Stop-Loss y Take-Profit. Según los datos de backtest, aproximadamente el 70% de los instrumentos comerciales lograron rentabilidad cuando se probaron en marcos de tiempo de 15 minutos.
La lógica central de la estrategia se basa en los siguientes elementos clave:
Esta es una estrategia de negociación cuantitativa bien estructurada con lógica clara, logrando una generación de señales de negociación confiable a través de la combinación de RSI y EMA. El mecanismo de gestión de riesgos y la flexibilidad de los parámetros de la estrategia la hacen altamente práctica. Aunque hay algunos riesgos potenciales, las direcciones de optimización sugeridas pueden mejorar aún más la estabilidad y la rentabilidad de la estrategia. Es adecuado como un marco de base para los sistemas de negociación cuantitativa a medio y largo plazo, y se pueden lograr mejores resultados comerciales a través de la optimización y el ajuste continuos.
/*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)