
Essa estratégia é baseada na identificação de velas em larga escala e indicadores de divergência RSI como os principais sinais, combinados com stop loss fixo inicial e stop loss dinâmico para formar um sistema de negociação completo de rastreamento de tendências. A estratégia identifica condições de mercado em larga escala comparando o tamanho do corpo do candlestick atual com os cinco candlesticks anteriores e usa a divergência entre o RSI rápido e lento para confirmar as mudanças de momentum. Finalmente, um mecanismo de stop-loss duplo é usado para gerenciar riscos e garantir lucros.
A estratégia consiste em quatro componentes principais: 1) Identificação de velas grandes - Determinar o momentum de preço significativo comparando os tamanhos de corpo de velas atuais e anteriores; 2) Análise de divergência RSI - Usar RSI rápido de 5 períodos e RSI lento de 14 períodos 3) Inicial stop loss - defina um stop loss fixo de 200 pontos no momento da entrada para controlar o risco inicial; 4) Trailing stop loss - ativado após o lucro atingir 200 pontos, mantenha 150 pontos com o preço A distância de acompanhamento dinâmico do ponto. A estratégia também usa a EMA de 21 períodos como um filtro de tendência para ajudar a determinar a direção geral do mercado.
A estratégia cria um sistema completo de acompanhamento de tendências combinando um grande número de candlesticks e divergências de RSI, e alcança uma gestão de risco abrangente por meio de um mecanismo de stop-loss duplo. A estratégia é adequada para operar em um ambiente de mercado com tendências claras e alta volatilidade, mas os traders precisam ajustar as configurações dos parâmetros de acordo com as características específicas do mercado. Por meio das direções de otimização recomendadas, espera-se que a estabilidade e a lucratividade da estratégia sejam ainda mais aprimoradas.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=6
strategy('[F][IND] - Big Candle Identifier with RSI Divergence and Advanced Stops', shorttitle = '[F][IND] Big Candle RSI Trail', overlay = true)
// Inputs for the trailing stop and stop loss
trail_start_ticks = input.int(200, "Trailing Start Ticks", tooltip="The number of ticks the price must move in the profitable direction before the trailing stop starts.")
trail_distance_ticks = input.int(150, "Trailing Distance Ticks", tooltip="The distance in ticks between the trailing stop and the price once the trailing stop starts.")
initial_stop_loss_points = input.int(200, "Initial Stop Loss Points", tooltip="The fixed stop loss applied immediately after entering a trade.")
// Tick size based on instrument
tick_size = syminfo.mintick
// Calculate trailing start and distance in price
trail_start_price = trail_start_ticks * tick_size
trail_distance_price = trail_distance_ticks * tick_size
initial_stop_loss_price = initial_stop_loss_points * tick_size
// Identify big candles
body0 = math.abs(close[0] - open[0])
body1 = math.abs(close[1] - open[1])
body2 = math.abs(close[2] - open[2])
body3 = math.abs(close[3] - open[3])
body4 = math.abs(close[4] - open[4])
body5 = math.abs(close[5] - open[5])
bullishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open < close
bearishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open > close
// RSI Divergence
rsi_fast = ta.rsi(close, 5)
rsi_slow = ta.rsi(close, 14)
divergence = rsi_fast - rsi_slow
// Trade Entry Logic
if bullishBigCandle
strategy.entry('Long', strategy.long, stop=low - initial_stop_loss_price)
if bearishBigCandle
strategy.entry('Short', strategy.short, stop=high + initial_stop_loss_price)
// Trailing Stop Logic
var float trail_stop = na
if strategy.position_size > 0 // Long Position
entry_price = strategy.position_avg_price
current_profit = close - entry_price
if current_profit >= trail_start_price
trail_stop := math.max(trail_stop, close - trail_distance_price)
strategy.exit("Trailing Stop Long", "Long", stop=trail_stop)
if strategy.position_size < 0 // Short Position
entry_price = strategy.position_avg_price
current_profit = entry_price - close
if current_profit >= trail_start_price
trail_stop := math.min(trail_stop, close + trail_distance_price)
strategy.exit("Trailing Stop Short", "Short", stop=trail_stop)
// Plotting Trailing Stop
plot(strategy.position_size > 0 ? trail_stop : na, color=color.green, title="Trailing Stop (Long)")
plot(strategy.position_size < 0 ? trail_stop : na, color=color.red, title="Trailing Stop (Short)")
// Plotting RSI Divergence
plot(divergence, color=divergence > 0 ? color.lime : color.red, linewidth=2, title="RSI Divergence")
hline(0)
// Plotting EMA
ema21 = ta.ema(close, 21)
plot(ema21, color=color.blue, title="21 EMA")