
Se trata de una estrategia de negociación que utiliza el promedio de Renko para determinar y rastrear tendencias. La lógica central de la estrategia es realizar una operación de compra o venta correspondiente cuando el precio supera el promedio de HL2 de 22 ciclos.
Cuando el precio de cierre de la columna de Renko atraviesa el promedio de HL2 de 22 períodos, haga más; cuando el precio de cierre de la columna de Renko atraviesa el promedio de HL2 de 22 períodos, haga vacío. De esta manera, se captura la dirección de la tendencia al determinar la relación entre el precio y la media.
El promedio HL2 ((Highest High + Lowest Low) /2) es un promedio de tendencia que combina información sobre los precios más altos y más bajos para determinar con mayor precisión la dirección de la tendencia. 22 es un valor empírico utilizado para equilibrar la sensibilidad del promedio.
Además, la estrategia establece restricciones para abrir posiciones solo en ciertos momentos de negociación, para evitar las fuertes fluctuaciones que pueden existir en el mercado.
Se trata de una estrategia de seguimiento de tendencias más sencilla e intuitiva, con las siguientes ventajas:
El uso de la línea de Renko como señal de negociación puede filtrar el ruido del mercado y capturar las principales tendencias.
El promedio HL2 combina información de precios máximos y mínimos para ser más preciso y confiable en el juicio de tendencias.
El establecimiento de un límite de pérdidas fijo puede ayudar a controlar el riesgo de una sola transacción.
El Stop Loss móvil puede ser usado para bloquear ganancias a medida que la tendencia se desarrolla y para hacer un seguimiento de la tendencia.
La restricción de los plazos de negociación puede evitar en parte el impacto de la agitación de los mercados.
La estrategia también tiene algunos riesgos, como:
Las estrategias de medias generan más señales falsas.
No se puede hacer frente de manera eficaz al riesgo de interrupción causado por un evento inesperado.
Una configuración incorrecta de Renko puede hacer que se pierda una buena oportunidad de negociación.
Los paros fijos son difíciles de adaptar a los cambios en el mercado.
La estrategia puede ser optimizada en las siguientes direcciones:
Añadir otros indicadores o condiciones para filtrar la señal y reducir las falsas señales. Por ejemplo, indicadores de potencia, indicadores de vibración, etc.
Se puede probar el promedio de los diferentes parámetros para encontrar el valor de ciclo más adecuado.
El tamaño de la caja de Renko también se puede optimizar para obtener los mejores parámetros.
Aumentar el mecanismo de amortización de pérdidas basado en la volatilidad.
Se puede probar la configuración de diferentes períodos de tiempo de transacción para optimizar esta condición.
En general, esta es una estrategia sencilla y práctica para determinar y seguir tendencias utilizando el promedio de Renko. Tiene una lógica de negociación más intuitiva, un mecanismo de control de riesgo y es adecuado para los comerciantes que buscan obtener ganancias estables. Pero también hay espacio para mejorar la estrategia a través de la optimización de los parámetros, el aumento de las condiciones de filtración y la adaptación de la parada de pérdidas.
/*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=3
strategy("HL2 - 22 Cross", overlay=true)
// Stops and Profit inputs
inpTakeProfit = input(defval = 300, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 200, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 200, title = "Trailing Stop", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Offset", minval = 0)
// Stops and Profit Targets
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")
longCondition1 = crossover(close, ema(hl2, 22))
longCondition2 = time(timeframe.period, myspecifictradingtimes) != 0
if longCondition1 and longCondition2
strategy.entry("Long", strategy.long, comment="LongEntry")
shortCondition1 = crossunder(close, ema(hl2, 22))
shortCondition2 = time(timeframe.period, myspecifictradingtimes) != 0
if shortCondition1 and shortCondition2
strategy.entry("Short", strategy.short, comment="ShortEntry")
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)