Estrategia de inversión de tendencia basada en el rango verdadero promedio de Renko


Fecha de creación: 2024-02-01 14:30:24 Última modificación: 2024-02-01 14:30:24
Copiar: 0 Número de Visitas: 1467
1
Seguir
1617
Seguidores

Estrategia de inversión de tendencia basada en el rango verdadero promedio de Renko

Descripción general

La estrategia de reversión de tendencias basado en la amplitud real media de Renko (Renko ATR Trend Reversal Strategy) es una estrategia de negociación única que utiliza el gráfico de Renko en combinación con el indicador de amplitud real media de Renko (ATR) para identificar el punto de reversión de tendencias en los mercados financieros. La estrategia elimina el problema de la trazabilidad del gráfico de Renko y puede capturar con precisión los puntos de reversión y proporcionar una señal clara para las decisiones de negociación.

Principio de estrategia

Generación de bloques de Renko

La estrategia primero calcula el valor del ATR en un determinado período y establece el tamaño del bloque de la gráfica de Renko con este ATR como punto de referencia. Cuando el precio cambia más de un ATR, se traza un nuevo bloque de Renko. De esta manera, la gráfica de Renko puede adaptarse automáticamente a la volatilidad del mercado, estableciendo un tamaño de bloque más grande cuando hay mucha volatilidad y un tamaño de bloque más pequeño cuando hay poca volatilidad.

Compra y venta de señales de generación

Cuando el precio de apertura de Renko cruza el precio de cierre por debajo del precio de cierre, se genera una señal de compra; cuando el precio de apertura de Renko cruza el precio de cierre por encima del precio de cierre, se genera una señal de venta. Estas señales marcan un potencial punto de reversión de la tendencia.

Ajustes para detener y detener el daño

La estrategia establece el precio de pérdida y el precio de parada para cada operación, con el precio de apertura de Renko como referencia dinámica, según el porcentaje de stop loss y el porcentaje de stop loss definidos por el usuario, para controlar el riesgo y los beneficios de cada operación.

Análisis de las ventajas

Eliminación del retraso en el trazado

Esta estrategia elimina el problema del retraso de la cartografía al calcular manualmente el precio de apertura y el precio de cierre de Renko, lo que hace que la generación de señales sea más precisa y oportuna.

Adaptación automática a las fluctuaciones del mercado

La configuración del tamaño de bloque de Renko basada en el indicador ATR permite que la estrategia se adapte automáticamente a la tasa de fluctuación de precios en diferentes condiciones de mercado.

Detención de pérdidas dinámicas

La estrategia establece un mecanismo dinámico de stop loss y stop-loss para cada operación, que permite controlar el riesgo en función de la volatilidad del mercado.

Vistas simplificadas del gráfico

El propio gráfico de Renko puede filtrar el ruido del mercado y proporcionar un efecto visual claro y conciso para identificar el cambio de tendencia.

Análisis de riesgos

Riesgos de la optimización de parámetros

Los usuarios necesitan optimizar los parámetros como el ciclo ATR, el porcentaje de pérdidas y el porcentaje de paradas para adaptarse a diferentes entornos de mercado. Si los parámetros no se configuran correctamente, esto puede causar una mala eficacia de la estrategia.

Riesgo de emergencia

Un evento económico o una política importante puede provocar un aumento rápido de la oferta, lo que hace que se rompa el nivel de pérdidas o paradas y se produzcan mayores pérdidas.

El riesgo de fracaso inverso

En algunos casos, la reversión determinada por la señal de negociación puede fracasar y no impulsar el movimiento de los precios hacia la dirección inversa, lo que genera pérdidas.

Dirección de optimización

Combinación de varios períodos de tiempo

Se pueden juzgar las grandes tendencias en los períodos de tiempo más altos y evitar el comercio en contra. También se pueden filtrar las señales falsas en los períodos de tiempo más bajos.

Combinado con otros indicadores

La combinación con indicadores de movimiento, índices de fluctuación, etc., puede mejorar la calidad de la señal y evitar señales erróneas.

Ajuste dinámico de la velocidad de frenado

La proporción de paradas se puede ajustar de forma dinámica en función de la volatilidad del mercado y la distancia entre el precio más reciente y el punto de entrada.

Resumir

La estrategia de reversión de tendencias basada en la amplitud real de las ondas promedio de Renko utiliza con éxito el gráfico de Renko en combinación con el indicador ATR para identificar automáticamente los puntos de inflexión en los mercados financieros. La estrategia tiene ventajas como la eliminación de la cartografía de retraso, la adaptación automática a la volatilidad del mercado y el stop loss dinámico.

Código Fuente de la Estrategia
/*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))