Estrategia de media móvil doble

El autor:¿ Qué pasa?, Fecha: 2024-01-17 17:45:45
Las etiquetas:

img

Resumen general

Esta estrategia emplea dos promedios móviles, específicamente de 8 períodos y 21 períodos.

La estrategia también incorpora la pendiente de la línea de promedio móvil para filtrar algunos períodos que no son tendencias y solo produce señales cuando una tendencia es más evidente.

Principios

El núcleo de esta estrategia radica en el cruce de los promedios móviles a corto y largo plazo. El MA más corto puede capturar los cambios de tendencia más rápido, mientras que el MA más largo tiene mejores efectos de filtrado de ruido. Se sugiere el establecimiento de una tendencia alcista cuando el MA más corto cruza el MA más largo, lo que conduce a una señal larga; se sugiere el establecimiento de una tendencia bajista cuando el MA más corto cruza por debajo del MA más largo, lo que conduce a una señal corta.

La estrategia también establece un umbral de pendiente. Solo cuando la pendiente es mayor que el valor de umbral positivo se generará una señal larga. Solo cuando la pendiente es menor que el valor de umbral negativo se generará una señal corta. Esto ayuda a filtrar zonas donde no existe una tendencia pronunciada, lo que resulta en señales comerciales de mayor calidad.

Específicamente, la lógica para generar señales comerciales es:

  1. Calcular las medias móviles simples de 8 y 21 períodos
  2. Detecta señales de cruce entre los dos
  3. Calcule la pendiente de la línea media móvil de 21 períodos utilizando la función arctangente atan
  4. Solo generar señales largas cuando la pendiente exceda un umbral positivo preestablecido
  5. Solo se generan señales cortas cuando la pendiente cae por debajo de un umbral negativo preestablecido

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. La idea de la estrategia es sencilla y fácil de entender/implementar
  2. Incorporar el índice de pendiente ayuda a filtrar los períodos no tendenciales y mejora la calidad de la señal
  3. El empleo de dos promedios móviles permite a ambos aprovechar sus puntos fuertes, mejorando la robustez
  4. Los parámetros pueden ajustarse para adaptarse a diferentes instrumentos de negociación
  5. La simple aplicación del programa facilita una mayor optimización

Análisis de riesgos

También existen algunos riesgos con esta estrategia:

  1. Más señales falsas pueden ocurrir durante las violentas fluctuaciones del mercado
  2. El propio cruce tiende a producir algunas señales falsas.
  3. Hay cierto grado de retraso, incapaz de capturar instantáneamente las inversiones de tendencia

Algunas formas de optimizar basado en estos riesgos:

  1. Ajuste de los parámetros de la autorización para adaptarse a las características del mercado
  2. Optimizar el umbral de pendiente para mejorar la robustez
  3. Añadir mecanismos de stop loss para controlar pérdidas individuales
  4. Incorporar otros indicadores para filtrar las señales
  5. Emplear ajustes de parámetros adaptativos para mejorar la robustez

Direcciones de optimización

Algunas direcciones para optimizar la estrategia:

  1. Emplear MAs adaptativas, ajustando los parámetros en función de la volatilidad
  2. Incorporar análisis de volumen para evitar errores durante la consolidación
  3. Añadir un índice de volatilidad para mejorar la calidad y la puntualidad
  4. Añadir aprendizaje automático para la optimización automática de parámetros
  5. Aprovechar el aprendizaje profundo para descubrir patrones no lineales más complejos

Conclusión

En resumen, esta estrategia de doble MA es simple y práctica. Al capturar diferentes características de tendencia a través de los dos parámetros de período y combinarlas para generar señales comerciales. Mientras tanto, incorporar el umbral de pendiente mejora la calidad de la señal. Esta estrategia puede servir como una base para extensiones, con un amplio espacio y potencial de optimización.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//written by sixpathssenin
//@version=4
strategy(title="Dual Moving Average",initial_capital=10000,overlay=true)

ma1= sma(close,8)
ma2= sma(close,21)

angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13)

i_lookback   = input(2,     "Angle Period", input.integer, minval = 1)
i_atrPeriod  = input(10,    "ATR Period",   input.integer, minval = 1)
i_angleLevel = input(6,     "Angle Level",  input.integer, minval = 1)
i_maSource   = input(close, "MA Source",    input.source)

f_angle(_src, _lookback, _atrPeriod) =>
    rad2degree = 180 / 3.141592653589793238462643  //pi 
    ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback)
    ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)

plot(ma1,color=#FF0000)
plot(ma2,color=#00FF00)

crosso=crossover(ma1,ma2) 
crossu=crossunder(ma1,ma2)

_lookback = 15

f_somethingHappened(_cond, _lookback) =>
    bool _crossed = false
    for i = 1 to _lookback
        if _cond[i]
            _crossed := true
    _crossed
    
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)

long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)


if(long)
    strategy.entry("Long",strategy.long)
if(short)
    strategy.entry("short",strategy.short)
    


Más.