Esta estratégia é um sistema de negociação abrangente que combina médias móveis, índice de força relativa e indicadores de força da tendência. Através da coordenação de múltiplos indicadores técnicos, alcança a captura precisa das tendências do mercado e o controle eficaz do risco. O sistema adota um mecanismo dinâmico de stop-loss e take-profit, garantindo uma relação risco-recompensa favorável, adaptando-se às diferentes condições do mercado através de ajustes flexíveis de parâmetros.
A estratégia baseia-se principalmente em três indicadores principais: médias móveis exponenciais rápidas e lentas (EMA), índice de força relativa (RSI) e índice direcional médio (ADX). Quando a EMA rápida cruza acima da EMA lenta, o sistema verifica se o RSI está em território não sobrecomprado (abaixo de 60), confirmando força de tendência suficiente com o ADX (acima de 15). Estas condições desencadeiam sinais de entrada longa quando cumpridas. Condições opostas desencadeiam sinais de saída. O sistema também implementa pontos dinâmicos de take-profit e stop-loss com base em uma relação risco-recompensa, alcançando um controle preciso sobre o risco de negociação através da parametrização.
Esta estratégia estabelece um sistema de negociação relativamente completo através do uso abrangente de múltiplos indicadores técnicos. Sua principal vantagem reside na melhoria da confiabilidade do sinal de negociação através da coordenação de indicadores, garantindo a segurança da negociação através de mecanismos dinâmicos de controle de risco.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced EMA + RSI + ADX Strategy (Focused on 70% Win Rate)", overlay=true) // Input parameters lenFast = input.int(9, title="Fast EMA Length", minval=1) lenSlow = input.int(21, title="Slow EMA Length", minval=1) rsiPeriod = input.int(14, title="RSI Period") adxPeriod = input.int(14, title="ADX Period") adxSmoothing = input.int(1, title="ADX Smoothing") adxThreshold = input.int(15, title="ADX Threshold") riskRewardRatio = input.float(1.5, title="Risk/Reward Ratio") rsiOverbought = input.int(60, title="RSI Overbought Level") // Adjusted for flexibility rsiOversold = input.int(40, title="RSI Oversold Level") // EMA Calculations fastEMA = ta.ema(close, lenFast) slowEMA = ta.ema(close, lenSlow) // RSI Calculation rsiValue = ta.rsi(close, rsiPeriod) // ADX Calculation [plusDI, minusDI, adxValue] = ta.dmi(adxPeriod, adxSmoothing) // Entry Conditions with Confirmation buyCondition = ta.crossover(fastEMA, slowEMA) and rsiValue < rsiOverbought and adxValue > adxThreshold sellCondition = ta.crossunder(fastEMA, slowEMA) and rsiValue > rsiOversold and adxValue > adxThreshold // Dynamic Exit Conditions takeProfit = strategy.position_avg_price + (close - strategy.position_avg_price) * riskRewardRatio stopLoss = strategy.position_avg_price - (close - strategy.position_avg_price) // Entry logic if (buyCondition) strategy.entry("Buy", strategy.long) strategy.exit("Sell", from_entry="Buy", limit=takeProfit, stop=stopLoss) if (sellCondition) strategy.close("Buy") // Plotting EMAs plot(fastEMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=1) plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=1) // Entry and exit markers plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.normal, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal, title="Sell Signal") // Alerts alertcondition(buyCondition, title="Buy Alert", message="Buy signal triggered") alertcondition(sellCondition, title="Sell Alert", message="Sell signal triggered")