Esta estratégia é uma estratégia de negociação de alta frequência baseada em um período de tempo de 15 minutos. Combina vários indicadores técnicos, incluindo a média móvel exponencial (EMA), o índice de força relativa (RSI), o índice direcional médio (ADX) e o intervalo verdadeiro médio (ATR) para alcançar captura precisa de sinais de negociação e gerenciamento dinâmico de riscos. A estratégia apresenta um design de visualização claro para monitoramento em tempo real das condições do mercado e dos sinais de negociação.
A lógica central baseia-se no cruzamento de EMA rápido (9 períodos) e EMA lento (21 períodos) para gerar sinais de negociação. O RSI (14 períodos) filtra zonas de sobrecompra / sobrevenda, o ADX (14 períodos) confirma a força da tendência e o ATR (14 períodos) define dinamicamente os níveis de stop-loss e take-profit. A combinação de vários indicadores técnicos garante a confiabilidade do sinal. As condições de entrada incluem: EMA longo - rápido cruza acima da EMA lenta com RSI abaixo de 70 e ADX acima de 20; EMA curto - rápido cruza abaixo da EMA lenta com RSI acima de 30 e ADX acima de 20.
A estratégia alcança um equilíbrio entre captura de sinal e controle de risco na negociação de alta frequência através da sinergia de múltiplos indicadores técnicos. O design de visualização claro e o suporte abrangente à automação tornam-na altamente prática. Através de otimização contínua e melhorias no gerenciamento de riscos, a estratégia mostra promessa de desempenho estável em diferentes ambientes de mercado. Enquanto existem riscos, eles podem ser controlados por meio de configurações adequadas de parâmetros e medidas de controle de risco. A implementação bem-sucedida da estratégia requer que os comerciantes tenham uma compreensão profunda do mercado e mantenham uma atenção contínua ao risco.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Scalping BTC Ottimizzato - Grafica Chiara", shorttitle="Scalp BTC Opt", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // === 📊 INPUTS === // 📈 Medie Mobili emaFastLength = input.int(9, title="EMA Veloce", minval=1) emaSlowLength = input.int(21, title="EMA Lenta", minval=1) // 💡 RSI rsiLength = input.int(14, title="RSI Length", minval=1) rsiOverbought = input.int(70, title="RSI Overbought") rsiOversold = input.int(30, title="RSI Oversold") // 📊 ATR (Stop Loss e Take Profit) atrLength = input.int(14, title="ATR Length", minval=1) stopATR = input.float(1.5, title="Stop Loss (ATR Multiplo)", step=0.1) takeProfitATR = input.float(2.0, title="Take Profit (ATR Multiplo)", step=0.1) // 🔀 ADX adxLength = input.int(14, title="ADX Length", minval=1) adxSmoothing = input.int(14, title="ADX Smoothing", minval=1) adxThreshold = input.int(20, title="Soglia ADX per Trend Forte", minval=1) // === 📊 CALCOLI PRINCIPALI === // 📈 Medie Mobili emaFast = ta.ema(close, emaFastLength) emaSlow = ta.ema(close, emaSlowLength) // 💡 RSI rsi = ta.rsi(close, rsiLength) // 📊 ATR atr = ta.atr(atrLength) // 🔀 ADX tramite DMI con Smoothing [adx, diPlus, diMinus] = ta.dmi(adxLength, adxSmoothing) // === 📊 CONDIZIONI LONG E SHORT === // ✅ Long: EMA Veloce incrocia EMA Lenta al rialzo, RSI sotto 70, ADX > 20 longCondition = (ta.crossover(emaFast, emaSlow)) and (rsi < rsiOverbought) and (adx > adxThreshold) // 🔻 Short: EMA Veloce incrocia EMA Lenta al ribasso, RSI sopra 30, ADX > 20 shortCondition = (ta.crossunder(emaFast, emaSlow)) and (rsi > rsiOversold) and (adx > adxThreshold) // 📉 Stop Loss e Take Profit Dinamici longStop = strategy.position_avg_price - (atr * stopATR) longTarget = strategy.position_avg_price + (atr * takeProfitATR) shortStop = strategy.position_avg_price + (atr * stopATR) shortTarget = strategy.position_avg_price - (atr * takeProfitATR) // === 🚀 INGRESSO E USCITA === // 🚦 Ingresso LONG if (longCondition and strategy.position_size == 0) strategy.entry("Long", strategy.long) strategy.exit("TakeProfit/StopLoss Long", stop=longStop, limit=longTarget) // 🚦 Ingresso SHORT if (shortCondition and strategy.position_size == 0) strategy.entry("Short", strategy.short) strategy.exit("TakeProfit/StopLoss Short", stop=shortStop, limit=shortTarget) // 🛑 USCITA MANUALE BASATA SU RSI if (rsi > rsiOverbought and strategy.position_size > 0) strategy.close("Long", comment="RSI Overbought Exit") if (rsi < rsiOversold and strategy.position_size < 0) strategy.close("Short", comment="RSI Oversold Exit") // === 📊 VISUALIZZAZIONE GRAFICA OTTIMIZZATA === // 📈 MEDIE MOBILI ANCORATE ALLE CANDELE plot(emaFast, title="EMA Veloce", color=color.blue, linewidth=2) plot(emaSlow, title="EMA Lenta", color=color.red, linewidth=2) // 📊 SEGNALI VISIVI ANCORATI ALLE CANDELE plotshape(longCondition, title="Segnale Long", style=shape.triangleup, location=location.belowbar, color=color.green, text="Long", size=size.small) plotshape(shortCondition, title="Segnale Short", style=shape.triangledown, location=location.abovebar, color=color.red, text="Short", size=size.small) // 📊 RSI (Pannello Separato) var float rsiPanel = na rsiPanel := rsi plot(rsiPanel, title="RSI", color=color.orange, linewidth=2) hline(rsiOverbought, "RSI Overbought", color=color.red, linestyle=hline.style_dotted) hline(rsiOversold, "RSI Oversold", color=color.green, linestyle=hline.style_dotted) // 📊 ADX (Pannello Separato) var float adxPanel = na adxPanel := adx plot(adxPanel, title="ADX", color=color.blue, linewidth=2) hline(adxThreshold, "ADX Soglia", color=color.gray, linestyle=hline.style_dotted) // 📊 ATR (Pannello Separato) var float atrPanel = na atrPanel := atr plot(atrPanel, title="ATR", color=color.purple, linewidth=2) // 🔔 ALERT alertcondition(longCondition, title="Segnale Long", message="Entra Long Manualmente!") alertcondition(shortCondition, title="Segnale Short", message="Entra Short Manualmente!")