Estrategia de Renko para la media móvil cruzada a largo plazo

El autor:¿ Qué pasa?, Fecha: 2024-01-24 10:55:57
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de cruce de promedios móviles basada en gráficos de velas Renko. Utiliza el indicador TEMA para construir señales de cruce y combina promedios móviles a largo plazo para filtrar, con el objetivo de identificar tendencias en los gráficos Renko y generar señales de compra y venta.

Estrategia lógica

La principal fuente de señal de esta estrategia proviene de la cruz de oro y la cruz de la muerte del indicador TEMA a corto plazo y el indicador SMA.

Cuando el TEMA a corto plazo cruce la SMA a corto plazo, se realiza una operación larga; cuando el TEMA a corto plazo cruza por debajo de la SMA a corto plazo, se cierran las posiciones.

Además, la estrategia también establece dos parámetros opcionales avg_protection y gain_protection para ajustar la lógica de entrada y stop loss:

  • Cuando avg_protection>0, solo comprar cuando el precio de cierre sea inferior al precio medio de tenencia actual, lo que puede reducir la base de costos;

  • Cuando gain_protection>0, sólo vende cuando el precio de cierre excede el precio de entrada en un cierto porcentaje para obtener beneficios.

Por último, la estrategia también utiliza un indicador SMMA a largo plazo como filtro de tendencia.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Basado en los gráficos de velas Renko, puede filtrar eficazmente el ruido e identificar tendencias;
  2. utilizar el indicador TEMA para construir señales de alta sensibilidad y capacidad de seguimiento;
  3. Los parámetros ajustables son abundantes para controlar la estrategia de entrada;
  4. La combinación de medias móviles a largo plazo y a corto plazo puede captar oportunidades en las tendencias.

Análisis de riesgos

Esta estrategia también tiene algunos riesgos:

  1. Renko tiene una línea de tiempo desigual que no puede controlar los tiempos de intervalo;
  2. La alta sensibilidad de TEMA también conduce a más señales falsas;
  3. La configuración incorrecta de los parámetros puede dar lugar a operaciones perdidas.

Para mitigar estos riesgos, se puede adoptar un ajuste adecuado de los parámetros, establecer pérdidas de parada, etc.

Direcciones de optimización

Las principales direcciones de optimización para esta estrategia son:

  1. ensayar diferentes combinaciones de parámetros para encontrar los parámetros óptimos;
  2. Añadir estrategias de stop loss tales como trailing stop loss, range stop loss, etc. para reducir el DD;
  3. Combinar otros indicadores para el filtrado de señales para reducir las falsas señales;
  4. Eficacia de los parámetros de ensayo en diferentes productos.

Conclusión

En general, esta es una estrategia de cruce de promedios móviles básica, simple pero muy práctica. Se basa principalmente en el excelente efecto de reducción de ruido de las barras de Renko y la alta sensibilidad del indicador TEMA para generar señales. Mientras tanto, la colaboración entre promedios móviles a largo y corto plazo también mejora su capacidad de seguimiento de tendencias. Con el ajuste de parámetros y la optimización adecuada, esta estrategia puede convertirse en una opción efectiva para el comercio cuantitativo.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA Cross", overlay = true)

tema(src, len) =>
    3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len)

smma(src, len) =>
    sa = 0.0
    sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len
    sa

temaLength = input(5)
smaLength = input(3)
smmaLength = input(30)
tema1 = tema(close, temaLength)
sma1 = sma(tema1, smaLength)
smma1 = smma(close,smmaLength)


plot(tema1, color = green, title = "TEMA")
plot(sma1, color = orange, title = "SMA")
plot(smma1, color = red, title = "SMMA")
minGainPercent = input(2)
gainMultiplier = minGainPercent * 0.01 + 1

avg_protection = input(1)
gain_protection = input(1)

longCondition = crossover(tema1, sma1) and tema1 < smma1
shortCondition = crossunder(tema1, sma1)

strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))

Más.