A estratégia Bull Market Buy Dips visa comprar as quedas no mercado de touros utilizando o indicador RSI e confirmar a tendência por meio de médias móveis duplas.
A estratégia define primeiro a data de início e de término do backtesting e, em seguida, configura os parâmetros do RSI e das médias móveis rápidas/lentas.
A lógica do sinal de estratégia é:
Quando o RSI cai abaixo do limiar (padrão 35), ele aciona o sinal de compra, pois indica área de sobrevenda.
O MA rápido deve estar acima do MA lento, o que confirma a tendência de alta atual e evita compras em consolidação.
Quando o preço ultrapassa o MA rápido e o MA rápido ultrapassa o MA médio, ele desencadeia um sinal de fechamento para obter lucro.
A aplicação razoável dos princípios de cruzamento RSI e MA ajuda a capturar oportunidades de retração no mercado de alta e obter lucros uma vez que o preço retoma a tendência.
O RSI é muito adequado para capturar pontos de reversão. Comprar quando o RSI entra na área de sobrevenda permite bloquear com precisão as oportunidades de sobrevenda. Usar MAs para determinar a tendência pode filtrar o mercado variando e evitar compras repetidas em consolidação. Finalmente, o cruzamento do MA confirma a tendência novamente para tirar lucro em tempo hábil e evitar a perda de retração.
Se o parâmetro RSI for definido de forma muito ampla ou muito estreita, ele pode perder a precisão para julgar os níveis de sobrevenda. Períodos MA rápidos ou lentos erroneamente escolhidos também podem levar à determinação de tendência falsa.
Os parâmetros do RSI podem ser otimizados, os períodos MA adequados podem ser selecionados e diferentes mecanismos de obtenção de lucros podem ser testados para melhorar o desempenho da obtenção de lucros.
Diferentes períodos de RSI podem ser testados para otimizar o julgamento da área de sobrevenda. Diferentes combinações de períodos de MA podem ser tentadas para encontrar os melhores parâmetros para a determinação da tendência. Outros mecanismos de obtenção de lucro como trailing stop, resistência stop também podem ser testados. Otimizar o tamanho da posição pode controlar melhor os riscos. Finalmente, considerando os custos de negociação pode tornar a estratégia mais próxima da negociação ao vivo.
A estratégia Bull Market Buy Dips tem uma lógica clara e sensata em geral, usa habilmente os princípios RSI e MA para capturar o tempo de compra e lucro no mercado de tendências. Através da otimização de parâmetros, testes de lucro e gerenciamento de tamanho da posição, a robustez e o desempenho comercial real podem ser melhorados. Com uma idéia simples e prática, essa estratégia é adequada para capturar retrações no mercado de touros e pode trazer lucros decentes para o portfólio.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='Buy The Dips in Bull Market',title='Buy The Dips in Bull Market (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month") fromDay = input(defval = 10, title = "From Day") fromYear = input(defval = 2020, title = "From Year") thruMonth = input(defval = 1, title = "Thru Month") thruDay = input(defval = 1, title = "Thru Day") thruYear = input(defval = 2112, title = "Thru Year") showDate = input(defval = true, title = "Show Date Range") start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" // RSI inputs and calculations lengthRSI = input(14, title = 'RSI period', minval=1) RSI = rsi(close, lengthRSI) //MA inputs and calculations inSignal=input(9, title='MAfast') inlong1=input(50, title='MAslow') inlong2=input(200, title='MAslow') MAfast= sma(close, inSignal) MAslow= sma(close, inlong1) MAlong= sma(close, inlong2) RSI_buy_signal= input(35, title='RSI Buy Signal') //Entry strategy.entry(id="long", long = true, when = RSI < RSI_buy_signal and MAlong < MAslow and window()) //Exit strategy.close("long", when = close > MAfast and MAfast > MAslow and window()) plot(MAslow, color=color.orange, linewidth=1) plot(MAfast, color=color.purple, linewidth=1) plot(MAlong, color=color.blue, linewidth=2)