Esta é uma estratégia de negociação intradiária baseada em um sistema de média móvel exponencial (EMA) duplo combinado com o índice de força relativa (RSI). A estratégia identifica tendências de mercado e oportunidades de negociação através de sinais cruzados de EMAs rápidas e lentas, confirmados pelo indicador de impulso RSI, ao mesmo tempo em que incorpora mecanismos de stop-loss e take-profit para gerenciamento de riscos. A estratégia emprega uma abordagem de gerenciamento de dinheiro, usando uma porcentagem fixa do patrimônio da conta para negociação.
A lógica do núcleo inclui vários elementos-chave: 1. Utiliza dois EMAs com períodos diferentes (default 12 e 26) como indicadores de tendência 2. Incorpora o RSI (períodos de 14 imprevistos) como confirmação de impulso 3. Condição de entrada longa: EMA rápida cruza acima da EMA lenta com RSI acima de 50 4. Condição de entrada curta: EMA rápida cruza abaixo da EMA lenta com RSI abaixo de 50 5. Utiliza 20% fixos do capital próprio da conta para dimensionamento de posições 6. Integra stop-loss ajustável (default 1%) e take-profit (default 2%) 7. Implementa fechamento de posição em sinais de cruzamento reverso
Esta estratégia constrói um sistema de negociação completo, combinando o sistema de tendência EMA com o indicador de impulso RSI. Seus pontos fortes estão na lógica de negociação sistemática e na gestão de risco abrangente, embora os impactos das condições do mercado devem ser considerados. Através de otimização e ajuste contínuos, a estratégia pode se adaptar melhor a diferentes condições do mercado e melhorar os resultados de negociação.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Estrategia Intradía - Cruce EMA + RSI - Optimizado", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=20) // Parámetros CON rangos de optimización ema_fast_length = input.int(title="Período EMA Rápida", defval=12, minval=5, maxval=30, step=1) ema_slow_length = input.int(title="Período EMA Lenta", defval=26, minval=15, maxval=50, step=1) rsi_length = input.int(title="Período RSI", defval=14, minval=7, maxval=21, step=1) rsi_overbought = input.int(title="Nivel de Sobrecompra RSI", defval=70, minval=60, maxval=80, step=1) rsi_oversold = input.int(title="Nivel de Sobreventa RSI", defval=30, minval=20, maxval=40, step=1) stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.1, maxval=3.0, step=0.1) take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.5, maxval=5.0, step=0.1) // Cálculos ema_fast = ta.ema(close, ema_fast_length) ema_slow = ta.ema(close, ema_slow_length) rsi = ta.rsi(close, rsi_length) // Condiciones de entrada longCondition = ta.crossover(ema_fast, ema_slow) and rsi > 50 shortCondition = ta.crossunder(ema_fast, ema_slow) and rsi < 50 // Gestión de entradas y salidas var float longQty = na var float shortQty = na if longCondition longQty := 20 / close strategy.entry("Long", strategy.long, qty=longQty) if stop_loss_percent > 0 and take_profit_percent > 0 strategy.exit("Exit Long", "Long", stop=close * (1 - stop_loss_percent / 100), limit=close * (1 + take_profit_percent / 100)) if strategy.position_size > 0 and ta.crossunder(ema_fast, ema_slow) strategy.close("Long") longQty := na if shortCondition shortQty := 20 / close strategy.entry("Short", strategy.short, qty=shortQty) if stop_loss_percent > 0 and take_profit_percent > 0 strategy.exit("Exit Short", "Short", stop=close * (1 + stop_loss_percent / 100), limit=close * (1 - take_profit_percent / 100)) if strategy.position_size < 0 and ta.crossover(ema_fast, ema_slow) strategy.close("Short") shortQty := na // Visualizaciones plot(ema_fast, color=color.blue, title="EMA Rápida") plot(ema_slow, color=color.orange, title="EMA Lenta") plot(rsi, color=color.purple, title="RSI") hline(50, color=color.gray)