Esta estrategia se basa en la identificación de velas a gran escala y los indicadores de divergencia RSI como señales principales, combinados con un stop loss fijo inicial y un trailing stop loss dinámico para formar un sistema de trading de seguimiento de tendencias completo. La estrategia identifica las condiciones del mercado a gran escala comparando el tamaño del cuerpo de la vela actual con las cinco velas anteriores, y utiliza la divergencia entre el RSI rápido y lento para confirmar los cambios de impulso. Por último, se utiliza un mecanismo de doble stop loss para gestionar riesgos y asegurar ganancias.
La estrategia consta de cuatro componentes principales: 1) Identificación de velas grandes: determine el impulso de precios significativo comparando el tamaño del cuerpo de las 5 velas actuales y anteriores; 2) Análisis de divergencia RSI: utilice el RSI rápido de 5 períodos y el RSI lento de 14 períodos 3) Análisis inicial stop loss - establece un stop loss fijo de 200 puntos en el momento de la entrada para controlar el riesgo inicial; 4) Trailing stop loss - se activa después de que la ganancia alcanza los 200 puntos, mantiene 150 puntos con el precio La distancia de seguimiento dinámico del punto. La estrategia también utiliza la EMA de 21 períodos como filtro de tendencia para ayudar a determinar la dirección general del mercado.
La estrategia construye un sistema completo de seguimiento de tendencias combinando una gran cantidad de velas y divergencias RSI, y logra una gestión integral del riesgo a través de un mecanismo de doble stop-loss. La estrategia es adecuada para operar en un entorno de mercado con tendencias claras y alta volatilidad, pero los operadores necesitan ajustar la configuración de los parámetros de acuerdo con las características específicas del mercado. A través de las direcciones de optimización recomendadas, se espera mejorar aún más la estabilidad y la rentabilidad de la estrategia.
/*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")