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.
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.
Las principales ventajas de esta estrategia son las siguientes:
Esta estrategia también tiene algunos riesgos:
Para mitigar estos riesgos, se puede adoptar un ajuste adecuado de los parámetros, establecer pérdidas de parada, etc.
Las principales direcciones de optimización para esta estrategia son:
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))