Esta estratégia tenta identificar oportunidades de curto prazo em que o Bitcoin provavelmente se recuperará procurando padrões de divergência de alta no indicador RSI e, assim, determinar bons pontos de entrada para negócios longos.
Identificar a divergência de alta com o indicador RSI
Verificar se o valor do RSI está abaixo do limiar
Verifique se o preço de fechamento está abaixo do mínimo de divergência anterior
Definir as condições de saída de stop loss
Definir as condições de saída do lucro
Usando a divergência do RSI pode efetivamente capturar oportunidades para o salto de preços a curto prazo
A combinação com o limiar baixo do RSI ajuda a determinar pontos de entrada específicos
As configurações de stop loss e take profit ajudam a gerir o risco e a recompensa
A estratégia faz referência a muita experiência de negociação real com sinais Bitcoin RSI e é muito adequado para Bitcoin longo scalping
As definições razoáveis dos parâmetros tornam a estratégia adaptável às diferentes condições de mercado e adequada para negociação em tempo real
A divergência do RSI pode falhar, levando a perdas de negócios se identificada erroneamente
Um único indicador tende a gerar sinais falsos, deve ser combinado com outros
Precisa escolher valores de parâmetros adequados, configurações inadequadas afetam a lucratividade
A negociação longa deve considerar a tendência geral, evitando a negociação contra a tendência
Precisa ter cuidado com os custos de negociação, o comércio de alta frequência impacta os lucros
Deverão fazer testes de retrospectiva e otimizar os parâmetros regularmente com base nos mercados em evolução
Considere a adição de outros indicadores como médias móveis para as condições do filtro para reduzir os falsos sinais
Teste diferentes configurações de período em cada período de tempo para encontrar combinações ideais
Incorporar uma análise de tendências de prazo mais longo para evitar compras contra uma inversão de tendência
Implementar um stop loss dinâmico que aumente gradualmente as paradas à medida que o nível de lucro aumenta
Ajustar a percentagem de stop loss com base no dimensionamento específico da posição
Introduzir aprendizado de máquina para otimização automática de parâmetros
Esta estratégia visa identificar oportunidades de retorno de curto prazo do Bitcoin detectando divergências de alta do RSI e determinando bons pontos de entrada de longo. A estratégia é simples e eficaz, incorporando muita experiência prática de negociação, tornando-a muito adequada para scalping de Bitcoin. No entanto, a dependência de um único indicador tende a gerar sinais falsos, por isso deve ser combinada com outros indicadores. Também deve ser dada atenção à otimização de parâmetros, colocação de stop loss, custos de negociação, etc. Se usada corretamente, esta estratégia pode ser muito lucrativa na negociação ao vivo.
/*backtest start: 2023-11-02 00:00:00 end: 2023-11-09 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bullish Divergence Short-term Long Trade Finder", overlay=false) max_range = 50 min_range = 5 ///pivot_left = 25 pivot_right = 5 //Inputs src = input(close, title="Source") rsiBearCondMin = input.int(50, title="RSI Bearish Condition Minimum") rsiBearCondSellMin = input.int(60, title="RSI Bearish Condition Sell Min") rsiBullCondMin = input.int(40, title="RSI Bull Condition Minimum") pivot_left = input.int(25, title="Look Back this many candles") SellWhenRSI = input.int(75, title="RSI Sell Value") StopLossPercent = input.int(5, title="Stop loss Percentage") rsiPeriod = input.int(14, title="RSI Length") rsiOversold = input.int(30, title="RSI Oversold Level") rsiOverbought = input.int(70, title="RSI Overbought Level") //RSI Function/ value rsi_value = ta.rsi(src, rsiPeriod) rsi_hour = request.security(syminfo.tickerid,'60',rsi_value) rsi_4hour = request.security(syminfo.tickerid,'240',rsi_value) rsi_Day = request.security(syminfo.tickerid,'D',rsi_value) plot(rsi_value, title="RSI", linewidth = 2, color = color.black, display =display.all) hline(50, linestyle = hline.style_dotted) rsi_ob = hline(70, linestyle=hline.style_dotted) rsi_os = hline(30, linestyle=hline.style_dotted) fill(rsi_ob, rsi_os, color.white) SL_percent = (100-StopLossPercent)/100 pivot_low_true = na(ta.pivotlow(rsi_value, pivot_left, pivot_right)) ? false : true //create a function that returns truee/false confirm_range(x) => bars = ta.barssince(x == true) //counts the number of bars since thee last time condition was true min_range <= bars and bars <= max_range // makees sure bars is less than max_range(50) and greater than min_range(5) // RSI higher check / low check RSI_HL_check = rsi_value<rsiBullCondMin and rsi_value > ta.valuewhen(pivot_low_true and rsi_value<rsiBullCondMin, rsi_value,1) and confirm_range(pivot_low_true[1]) // price check for lower low price_ll_check = low < ta.valuewhen(pivot_low_true, low, 1) bullCond = price_ll_check and RSI_HL_check and pivot_low_true //pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true // RSI Lower check / high check ensuring that the RSI dips below 30 to start divergence RSI_LH_check = rsi_value < ta.valuewhen(pivot_high_true and rsi_value>rsiBearCondMin, rsi_value,1) and confirm_range(pivot_high_true[1]) //and rsi_value[pivot_right] >= 65 // price check for lower low price_hh_check = high > ta.valuewhen(pivot_high_true, high, 1) bearCond = price_hh_check and RSI_LH_check and pivot_high_true and rsi_value[3] > rsiBearCondSellMin plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bullCond ? color.green : color.new(color.white, 100))) plotshape(bullCond ? rsi_value : na , text = "BUY", style = shape.labelup, location = location.absolute, color = color.green, offset =0, textcolor = color.white ) plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bearCond ? color.red : color.new(color.white, 100))) plotshape(bearCond ? rsi_value : na , text = "Sell", style = shape.labelup, location = location.absolute, color = color.red, offset =0, textcolor = color.white ) //[bbUpperBand, bbMiddleBand, bbLowerBand] = ta.bb(src, bbPeriod, bbDev) //Entry Condition longCondition = false //bullEntry = bullCond and RSI_HL_check and confirm_range(pivot_low_true[1]) if bullCond and close < ta.valuewhen(pivot_low_true, low, 1) and rsi_hour <40 ///and rsi_4hour<40 //and rsi_Day<50 strategy.entry("Long", strategy.long) //Exit Condition if (strategy.position_size > 0 and close < strategy.position_avg_price*SL_percent) strategy.close("Long") if (strategy.position_size > 0 and (rsi_value > SellWhenRSI or bearCond)) strategy.close("Long")