Estrategia de cruce de la media móvil

El autor:¿ Qué pasa?, Fecha: 2023-09-21 10:28:27
Las etiquetas:

Resumen general

Esta es una estrategia de intercambio de promedios móviles típica. Utiliza los puntos de intercambio de promedios móviles rápidos y lentos como señales comerciales. Cuando el promedio móvil rápido cruza por encima del promedio móvil lento desde abajo, se considera una señal de compra. Cuando el promedio móvil rápido cruza por debajo del promedio móvil lento desde arriba, se considera una señal de venta. Esta estrategia combina dos promedios móviles y puede filtrar eficazmente el ruido del mercado e identificar tendencias.

Principios de estrategia

Las principales etapas de esta estrategia son:

  1. Establecer el período de media móvil rápida fastMA y el período de media móvil lenta slowMA.

  2. Calcule el promedio móvil rápido y el promedio móvil lento basado en el tipo de entrada Tipo. Tipo = 1 es promedio móvil simple, Tipo = 2 es promedio móvil exponencial.

  3. Establezca el rango de tiempo de prueba posterior para el inicio y el final.

  4. Define la función de cruce: cuando el rápido cruza por encima de lento, genera una señal de compra; cuando el rápido cruza por debajo de lento, genera una señal de venta.

  5. Cuando se active la función de cruce, si se encuentra dentro del intervalo de tiempo de backtest, emitir una orden de apertura larga o de cierre corta.

  6. Cuando finalice la ventana de pruebas de retroceso o la función de cruce se cruce por debajo, emita una orden de cierre larga.

  7. Trace el promedio móvil rápido rápido y lento.

Esta estrategia utiliza el cruce de promedios móviles rápidos y lentos para determinar la tendencia dentro del período de retención y generar señales comerciales en consecuencia.

Análisis de ventajas

Las ventajas de esta estrategia:

  1. Las medias móviles son eficaces para determinar tendencias y filtrar fluctuaciones aleatorias.

  2. La combinación de promedios móviles rápidos y lentos puede identificar cambios de tendencia.

  3. Los parámetros de las medias móviles pueden ajustarse para adaptarse a las tendencias de los diferentes períodos.

  4. Opción flexible entre promedios móviles simples y exponenciales.

  5. La funcionalidad de backtest permite probar y optimizar los parámetros de la estrategia.

  6. Lógica simple y clara, fácil de entender e implementar.

  7. Dibujar gráficos de medias móviles permite determinar visualmente las tendencias y los efectos.

Análisis de riesgos

Algunos riesgos de esta estrategia:

  1. Puede generar señales falsas durante períodos de alcance limitado.

  2. Las medias móviles tienen un efecto de retraso, pueden perder puntos de inflexión.

  3. Se basa únicamente en el cruce de la media móvil, sin otros indicadores ni filtros.

  4. No tiene en cuenta los costes de negociación.

  5. No hay estrategia de stop loss.

  6. La configuración de parámetros no razonables puede afectar el rendimiento de la estrategia.

  7. La selección incorrecta del intervalo de tiempo de ensayo posterior puede provocar un sobreajuste.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Añadir otros indicadores como MACD, RSI para confirmar las señales y mejorar la precisión.

  2. Añadir una estrategia de stop loss para controlar una sola pérdida.

  3. Optimizar los parámetros de la media móvil para diferentes períodos.

  4. Añadir el tamaño de la posición en función de las condiciones del mercado.

  5. Considere los costos de negociación, ajuste los puntos de entrada y salida.

  6. Prueba con un plazo más largo para evitar el sobreajuste.

  7. Optimice continuamente los parámetros utilizando el análisis de avances.

Resumen de las actividades

La estrategia de cruce de promedios móviles es una estrategia de seguimiento de tendencias simple y práctica. Puede filtrar fluctuaciones aleatorias e identificar direcciones de tendencia. Pero también tiene algunos problemas como el efecto de retraso, y debe combinarse con otros indicadores. La optimización y prueba continuas pueden mejorar el rendimiento de la estrategia y hacerla más confiable para el comercio en vivo. En general, esta estrategia se adapta a los inversores con requisitos relativamente bajos para la determinación de tendencias.


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

//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Revision:        1
// Author:          @ToS_MavericK

// === INPUT SMA ===
fastMA  = input(defval = 13,  title = "FastMA", minval = 1, step = 1)
slowMA  = input(defval = 144,  title = "SlowMA", minval = 1, step = 1)
Type    = input(defval = 1,  title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)

slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA

// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2020, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)

// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window())   // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish)             // sell long when window ends OR crossunder         

plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line)  // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line)    // plot SlowMA

Más.