Estrategia de negociación de tendencia de media móvil

El autor:¿ Qué pasa?, Fecha: 2023-10-09 16:00:02
Las etiquetas:

Resumen general

Esta estrategia es una estrategia de trading de tendencia basada en promedios móviles. Utiliza 3 promedios móviles con diferentes parámetros para generar señales de trading. Va largo cuando el precio cruza por encima del promedio móvil y va corto cuando el precio cruza por debajo.

Estrategia lógica

La estrategia calcula la media móvil ma con longitud len utilizando la función sma. Luego calcula 3 líneas de media móvil adicionales longline1, longline2, longline3 que se desplazan en -4%, -5%, -6% respectivamente en función de ma.

Para la generación de señales largas, si la posición actual es plana, se hace largo con 1 lote cuando el precio cruza por encima de la línea larga1. Si ya es 1 lote largo, se agrega 1 lote más cuando el precio cruza por encima de la línea larga2. Si ya son 2 lotes largos, se agrega 1 lote más cuando el precio cruza por encima de la línea larga3. La posición larga máxima es de 3 lotes.

Para la generación de señal corta, si ya es larga, sale de todas las posiciones largas cuando el precio cruza por debajo de ma.

La entrada por etapas permite a la estrategia seguir la tendencia.

Ventajas

  • El uso de medias móviles para determinar la dirección de la tendencia filtra el ruido del mercado y permite obtener ganancias constantes
  • Las entradas largas/cortas escalonadas pueden beneficiarse más de las tendencias
  • El uso de medias móviles desplazadas como puntos de entrada capta mejor las tendencias
  • Recursos relativamente reducidos, el máximo controlado en torno al 20%

Los riesgos

  • La tendencia pura de seguir la estrategia tiende a ser frotada durante los mercados de rango
  • Las señales de retraso de las medias móviles pueden perder los puntos de inflexión de la tendencia
  • Las entradas largas escalonadas pueden provocar precios altos y aumentar el riesgo
  • Ningún mecanismo de stop loss podría dar lugar a grandes pérdidas por eventos repentinos

Soluciones de riesgos:

  • Añadir otros indicadores para determinar los puntos de inflexión de la tendencia
  • Los parámetros de la media móvil deben estar establecidos razonablemente, no demasiado largos para evitar señales demasiado rezagadas.
  • Reducir los lotes largos de entrada por etapas para evitar perseguir precios altos
  • Añadir un stop loss móvil para limitar las pérdidas

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Añadir otros indicadores como el MACD para determinar la fuerza de la tendencia

  2. Optimice los parámetros de la media móvil para encontrar la mejor combinación

  3. Ajustar el tamaño y la proporción de los lotes de entrada por etapas para evitar perseguir precios altos

  4. Añadir un mecanismo de stop loss en movimiento basado en ATR

  5. Ajuste dinámico del tamaño de la posición en función de la volatilidad del mercado, reducción del tamaño cuando la volatilidad es alta

  6. Parámetros de ensayo en diferentes productos para encontrar el símbolo óptimo

  7. Desarrollar un módulo de salida para considerar obtener beneficios en ciertos patrones

Resumen de las actividades

En general, la estrategia opera en función de la dirección de la tendencia determinada por los promedios móviles y las ganancias de las tendencias a través de entradas escalonadas. Pero tiene algunos problemas rezagados y riesgos de perseguir precios altos. Podemos optimizarla agregando indicadores auxiliares, optimizando parámetros, ajustando el tamaño de la posición, agregando stop loss, etc., para adaptarse a diferentes condiciones de mercado y lograr ganancias constantes.


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)
    

Más.