Tendencia de doble SMA siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-09-20 11:35:30
Las etiquetas:

Resumen general

Esta estrategia utiliza solo dos líneas SMA, con la SMA lenta para la dirección de la tendencia y la SMA rápida para las señales de entrada. Combinada con la determinación del color del candelabro, genera señales largas y cortas.

Estrategia lógica

Se computan dos líneas SMA, una rápida y otra lenta, junto con la línea media del canal de precios. La línea rápida tiene un período de 5, mientras que la línea lenta tiene un período de 20. Por encima de la línea media del canal de precios se considera una tendencia alcista, donde se buscan oportunidades para ir largo en la línea rápida cruzando por encima de la línea lenta. Por debajo de la línea media hay una tendencia bajista, donde se buscan oportunidades para ir corto en la línea rápida cruzando por debajo de la línea lenta.

Además, se incorpora el color del cuerpo de la vela. En una tendencia alcista, se requieren al menos 2 velas rojas consecutivas después de ver el fondo, antes de ir largo cuando la línea rápida cruza por encima de la línea lenta. En una tendencia bajista, se requieren al menos 2 velas verdes consecutivas después de ver la parte superior, antes de ir corto cuando la línea rápida cruza por debajo de la línea lenta.

Análisis de ventajas

Las líneas SMA dobles y el canal de precios ayudan a determinar la dirección de la tendencia, evitando fallas falsas. Los filtros de color de las velas eliminan aún más las señales falsas. Existen señales largas y cortas para la cobertura.

Los parámetros personalizables permiten configurar las condiciones largo/corto de forma flexible.

Análisis de riesgos

La dependencia excesiva de las líneas SMA puede generar señales falsas excesivas durante los ranges.

El ajuste de los períodos SMA o la incorporación de otros indicadores técnicos podrían filtrar las señales. Los indicadores de volumen también pueden proporcionar información adicional. El tamaño de la posición también podría optimizarse en función de las condiciones del mercado.

Direcciones de optimización

  1. Prueba diferentes combinaciones de SMA rápida y lenta para encontrar parámetros óptimos.

  2. Añadir volumen y otros indicadores para la validación de la señal.

  3. Incorporar otros indicadores técnicos para formar una estrategia de conjunto.

  4. Establecer el tamaño dinámico de la posición para optimizar la gestión del capital.

  5. Aplicar el aprendizaje automático para predecir las tendencias de los precios y los puntos de inflexión.

  6. Optimizar las estrategias de stop loss para limitar las pérdidas.

Resumen de las actividades

El sistema de doble SMA para la determinación de tendencias es lógicamente claro y comúnmente utilizado. Pero la dependencia excesiva de las medias móviles por sí solas tiende a generar señales falsas, lo que requiere otros indicadores para mejorar. Con una validación más cualitativa y cuantitativa, la estrategia se volvería más robusta. En general, proporciona una plantilla de tendencia simple y confiable.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.4", shorttitle = "Trend SMA str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
usefastsma = input(true, "Use fast SMA")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast SMA Period")
slowlen = input(20, defval = 20, minval = 2, maxval = 200, title = "slow SMA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

//PriceChannel
src = ohlc4
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

trend = low > center ? 1 : high < center ? -1 : trend[1]

bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast SMA")
plot(center, color = blue, title = "Price Channel")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Más.