Esta estratégia é uma estratégia de tendência que usa o indicador RSI para determinar a tendência e o indicador MACD para entrar no mercado.
A estratégia depende principalmente do indicador RSI para determinar a direção da tendência. Quando o RSI cruza acima da linha longa definida (default 21), considera-se que o mercado pode reverter para uma tendência de alta. Neste momento, se o MACD já estiver em uma tendência de queda, pode-se julgar que está em um ponto de reversão, o que é uma boa oportunidade para ir longo.
Além disso, a estratégia também introduz a linha EMA (períodos padrão 200) como um filtro de tendência. Somente quando o preço está acima da linha EMA, o comércio longo será considerado. Isso pode efetivamente filtrar reversões falsas quando a tendência não é clara ou em declínio.
No lado do stop loss, a estratégia também define uma linha de stop loss regular e uma linha de stop loss de emergência.
Em resumo, esta estratégia é uma tendência relativamente tradicional seguindo a estratégia bull. Identifica pontos de reversão com o RSI, filtra julgamentos errados com o MACD, determina a tendência principal com o EMA e controla os riscos com stop loss. A estratégia é bastante simples e intuitiva, fácil de entender e tem alguma vantagem em julgar reversões de mercado, tornando-a uma boa estratégia de ponto de partida para a negociação de algo. Mas ainda há grandes espaços para melhorias adicionais, otimizando sinais de entrada, juízes de tendência e mecanismos de stop loss.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dravitch //@version=4 strategy("RSI - BULL RUN (Improved)", overlay=true) // Input UseEmergency = input(true, "Use Emergency Exit?") RSIlong = input(21, "RSI Long Cross") RSIcloseLong = input(86, "RSI Close Long Position") EmergencycloseLong = input(73, "RSI Emergency Close Long Position") UseEMAFilter = input(true, "Use EMA Trend Filter") EMAlength = input(200, "EMA Length for Trend Filter") // Utiliser 200 pour SMMA // RSI rsiValue = rsi(close, 14) // MACD [macdLine, signalLine, _] = macd(close, 12, 26, 9) // EMA Trend Filter emaTrend = sma(close, EMAlength) // Utiliser sma pour la SMMA (Simple Moving Average) // Conditions pour les trades longs trendUp = close > emaTrend trendDown = close < emaTrend longCondition = crossover(rsiValue, RSIlong) and trendDown or crossunder(macdLine, signalLine) and crossover(rsiValue, RSIlong) longCloseCondition = crossunder(rsiValue, RSIcloseLong) and trendUp emergencyLongCondition = crossunder(rsiValue, EmergencycloseLong) // Plots plot(rsiValue, color=color.white, linewidth=2, title="RSI") // Strategy if (longCondition) strategy.entry("Long", strategy.long, alert_message='RSI Long Cross: LONG') if (longCloseCondition) strategy.close("Long", alert_message='RSI Close Long Position') if (emergencyLongCondition and UseEmergency) strategy.close("Long", alert_message='RSI Emergency Close Long') // Plot EMA Trend Filter in a separate pane plot(emaTrend, color=color.rgb(163, 0, 122), title="EMA Trend Filter", linewidth=2, style=plot.style_line, transp=0) hline(0, "Zero Line", color=color.gray)