Renko ATR estrategia de inversión de tendencia

El autor:¿ Qué pasa?, Fecha: 2024-02-01 14:30:24
Las etiquetas:

img

Resumen general

La estrategia de inversión de tendencia Renko ATR es un enfoque de negociación único que utiliza gráficos Renko junto con el indicador de rango verdadero promedio (ATR) para identificar puntos de inversión de tendencia en los mercados financieros.

Estrategia lógica

Generación de ladrillos Renko

La estrategia primero calcula el valor de ATR durante un período definido y utiliza este ATR como el tamaño de ladrillo para el gráfico Renko. Se dibujan nuevos ladrillos Renko cuando los movimientos de precios exceden un ATR. De esta manera, el gráfico Renko puede adaptarse automáticamente a la volatilidad del mercado, con tamaños de ladrillo más grandes para períodos de mayor volatilidad y tamaños de ladrillo más pequeños para períodos de menor volatilidad.

Generación de señales de compra y venta

Una señal de compra se genera cuando el precio de apertura del gráfico de Renko cruza por debajo del precio de cierre. Por el contrario, una señal de venta se genera cuando el precio de apertura cruza por encima del precio de cierre. Estas señales marcan puntos potenciales de inversión de tendencia.

Poner fin a las pérdidas y obtener ganancias

La estrategia establece dinámicamente los niveles de stop-loss y take-profit para cada operación como un porcentaje del precio de apertura de Renko, basado en parámetros de entrada definidos por el usuario.

Análisis de ventajas

Elimina la necesidad de volver a pintar

Al calcular manualmente los precios de apertura y cierre, se elimina la repintura, lo que hace que las señales sean más precisas y oportunas.

Autoadaptación a la volatilidad

El tamaño del bloque basado en el ATR permite que la estrategia se adapte automáticamente a las diferentes condiciones de volatilidad del mercado.

Dinámico Stop Loss y Take Profit

El mecanismo dinámico para establecer los niveles de stop loss y take profit permite un mejor control del riesgo basado en la volatilidad del mercado.

Vista de gráfico limpia

El gráfico de Renko filtra el ruido del mercado y proporciona una visión clara para detectar inversiones de tendencia.

Análisis de riesgos

Riesgos de la optimización de parámetros

Los usuarios necesitan optimizar parámetros como el período ATR, el porcentaje de stop loss y el porcentaje de ganancias para diferentes entornos de mercado.

Riesgos de eventos

Los acontecimientos noticiosos importantes o los comunicados de política pueden causar un deslizamiento rápido más allá de la parada de pérdidas o tomar los niveles de ganancia, lo que conduce a grandes pérdidas.

Riesgos de reversión fallida

En algunos casos, el patrón de reversión señalado puede no materializarse, lo que lleva a operaciones perdedoras.

Oportunidades de mejora

Utilizando marcos de tiempo múltiples

Los marcos de tiempo más largos pueden usarse para medir la dirección de la tendencia general.

Combinación de otros indicadores

El uso de impulso, volatilidad u otros indicadores en combinación puede mejorar la calidad de la señal y evitar señales falsas.

Ajuste dinámico de las ganancias

Los ratios de ganancias pueden ajustarse dinámicamente en función de la volatilidad del mercado y la distancia entre el precio de entrada y el precio actual.

Conclusión

La estrategia de reversión de tendencia de Renko ATR utiliza con éxito los gráficos de Renko con el indicador ATR para detectar automáticamente los puntos de reversión de tendencia en los mercados financieros. Las ventajas clave incluyen la eliminación de la repintura, la adaptación automática a la volatilidad cambiante y el stop loss / take profit dinámico. Sin embargo, los usuarios deben tener cuidado con los riesgos de optimización de parámetros, los riesgos de eventos y los riesgos de reversión fallida.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='[tradinghook] - Renko Trend Reversal Strategy', shorttitle='[tradinghook] - Renko TRS', overlay=true ,initial_capital = 100, commission_value = 0.05, default_qty_value = 5)

// INPUTS
renkoATRLength = input.int(10, minval=1, title='ATR Length')
stopLossPct = input.float(3, title='Stop Loss Percentage', step=0.1)
takeProfitPct = input.float(20, title='Take Profit Percentage', step=0.1)
startDate = input(timestamp("01 July 2023 00:00"), title="Start Date")
endDate = input(timestamp("31 Dec 2025 23:59"), title="End Date")
enableShorts = input.bool(true, title="Enable Shorts")

var float stopLossPrice = na
var float takeProfitPrice = na

atr = ta.atr(renkoATRLength)

// thanks to https://www.tradingview.com/script/2vKhpfVH-Renko-XZ/ for manually calculating renkoClose and renkoOpen in order to remove repaint
getRenkoClose() =>
    p1 = 0.0
    p1 := close > nz(p1[1]) + atr ? nz(p1[1]) + atr : close < nz(p1[1]) - atr ? nz(p1[1]) - atr : nz(p1[1])
    p1

Renko3() =>
    p3 = 0.0
    p3 := open > nz(p3[1]) + atr ? nz(p3[1]) + atr : open < nz(p3[1]) - atr ? nz(p3[1]) - atr : nz(p3[1])
    p3

getRenkoOpen() =>
    open_v = 0.0
    Br_2 = Renko3()
    open_v := Renko3() != Renko3()[1] ? Br_2[1] : nz(open_v[1])
    open_v

renkoOpen = getRenkoOpen()
renkoClose = getRenkoClose()

// COLORS
colorGreen = #089981
colorRed = #F23645
bgTransparency = 95
bgColorRed = color.new(colorRed, bgTransparency)
bgColorGreen = color.new(colorGreen, bgTransparency)
lineColor = renkoClose < renkoOpen ?  colorRed : colorGreen 
bgColor = renkoClose < renkoOpen ?  bgColorRed : bgColorGreen 

// PLOTS
plot(renkoOpen, title="Renko Open", style=plot.style_line, linewidth=2, color=lineColor)
bgcolor(bgColor)

// SIGNALS
isWithinTimeRange = true
buySignal = ta.crossunder(renkoOpen, renkoClose) and isWithinTimeRange
sellSignal = ta.crossover(renkoOpen, renkoClose) and isWithinTimeRange and enableShorts

if (buySignal)
    stopLossPrice := renkoOpen * (1 - stopLossPct / 100)
    takeProfitPrice := renkoOpen * (1 + takeProfitPct / 100)
    strategy.entry("Long", strategy.long)
    strategy.exit("ExitLong", "Long", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice))
if (sellSignal)
    stopLossPrice := renkoOpen * (1 + stopLossPct / 100)
    takeProfitPrice := renkoOpen * (1 - takeProfitPct / 100)
    strategy.entry("Short", strategy.short)
    strategy.exit("ExitShort", "Short", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice))


Más.