
La estrategia es un sistema de negociación integral de seguimiento de tendencias que combina múltiples indicadores técnicos para confirmar las tendencias del mercado y las señales de negociación. La estrategia utiliza la cruz de EMA como la principal herramienta de identificación de tendencias, mientras que integra RSI, ADX e indicadores de volumen de transacción para filtrar las señales de negociación y utiliza paros y paradas dinámicas para administrar el riesgo.
La lógica central de la estrategia se basa en los siguientes elementos clave:
Las condiciones de compra deben cumplirse al mismo tiempo: EMA21 en EMA9, RSI mayor que 50, volumen de transacción mayor que el promedio y ADX mayor que 25 Las condiciones de venta cumplen cualquiera de las siguientes: EMA21 bajo EMA9, RSI menor a 50, volumen de transacción menor a la media (y ADX mayor a 25)
Se trata de una estrategia de seguimiento de tendencias bien diseñada para mejorar la fiabilidad de las operaciones mediante el uso combinado de múltiples indicadores técnicos. La ventaja de la estrategia radica en su mecanismo integral de confirmación de señales y su sistema de gestión de riesgos, pero al mismo tiempo se debe tener en cuenta la optimización de los parámetros adecuados en función de las condiciones del mercado en la aplicación real.
/*backtest
start: 2025-01-10 00:00:00
end: 2025-02-09 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia Avançada - EMA, RSI, ADX e Volume", overlay=true)
// Parâmetros das EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// RSI
rsi14 = ta.rsi(close, 14)
// Cálculo do ADX usando ta.dmi
[plusDI, minusDI, adx] = ta.dmi(14, 14)
// Volume com média
volume_ma = ta.sma(volume, 20)
// Critérios de Compra (Bullish)
buy_signal = ta.crossover(ema9, ema21) and rsi14 > 50 and volume > volume_ma and adx > 25
// Critérios de Venda (Bearish)
sell_signal = ta.crossunder(ema9, ema21) or rsi14 < 50 or volume < volume_ma and adx > 25
// Plotando indicadores no gráfico
plot(ema9, color=color.blue, linewidth=2, title="EMA 9")
plot(ema21, color=color.red, linewidth=2, title="EMA 21")
hline(50, "RSI 50", color=color.gray)
// Stop Loss e Take Profit dinâmicos
long_sl = strategy.position_avg_price * 0.97 // Stop Loss de 3%
long_tp = strategy.position_avg_price * 1.05 // Take Profit de 5%
short_sl = strategy.position_avg_price * 1.03 // Stop Loss de 3% para vendas
short_tp = strategy.position_avg_price * 0.95 // Take Profit de 5% para vendas
// Executando compra
if buy_signal
strategy.close("Venda") // Fecha posição de venda se existir
strategy.entry("Compra", strategy.long)
strategy.exit("TakeProfit", from_entry="Compra", limit=long_tp, stop=long_sl)
// Executando venda
if sell_signal
strategy.close("Compra") // Fecha posição de compra se existir
strategy.entry("Venda", strategy.short)
strategy.exit("TakeProfit", from_entry="Venda", limit=short_tp, stop=short_sl)
// Alertas configurados
alertcondition(buy_signal, title="Sinal de Compra", message="Hora de comprar!")
alertcondition(sell_signal, title="Sinal de Venda", message="Hora de vender!")