
La estrategia es una estrategia de cruce de medias móviles basada en el gráfico de Renko. Utiliza el indicador TEMA para construir señales de cruce y se filtra en combinación con la media a largo plazo para identificar tendencias en el gráfico de Renko y emitir señales de compra y venta.
La principal fuente de señales de esta estrategia son los indicadores TEMA a corto plazo y los indicadores SMA de la horquilla dorada. La lógica específica es:
Cuando el corto plazo TEMA en el corto plazo SMA, hacer más; cuando el corto plazo TEMA bajo el corto plazo SMA, cerrar la posición.
Además, la política también establece dos parámetros opcionales, avg_protection y gain_protection, para ajustar la entrada y la lógica de stop loss:
Cuando avg_protection>0, solo se compra cuando el precio de cierre es inferior al precio promedio de la posición actual, lo que reduce el costo de la posición;
Cuando gain_protection>0, sólo se venderá el stop loss cuando el precio de cierre supere un cierto porcentaje del precio de entrada, lo que bloquea la ganancia.
Finalmente, la estrategia también utiliza un indicador de SMMA a largo plazo como un filtro de tendencia. Sólo se emite una señal de multiplicación cuando el precio de cierre es inferior al SMMA.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Para evitar estos riesgos, se pueden ajustar los parámetros adecuados, establecer la posición de parada, etc.
La estrategia se puede optimizar principalmente en los siguientes aspectos:
La estrategia en su conjunto es una estrategia de cruce de línea de movimiento simple pero muy práctica. Se basa principalmente en la excelente eliminación de ruido de la línea Renko K y en la alta sensibilidad de los indicadores TEMA para generar señales. Al mismo tiempo, la combinación de la línea de movimiento de largo plazo también fortalece su capacidad de seguir la tendencia.
/*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))