Estrategia de cruce de medias móviles


Fecha de creación: 2023-09-21 10:28:27 Última modificación: 2023-09-21 10:28:27
Copiar: 0 Número de Visitas: 667
1
Seguir
1617
Seguidores

Descripción general

Esta estrategia es una típica estrategia de comercio de cruce de medias móviles. Utiliza el cruce de medias móviles rápidas y medias móviles lentas como una señal de compra y venta. Se considera una señal de compra cuando una media móvil rápida atraviesa una media móvil lenta desde abajo y una señal de venta cuando una media móvil rápida atraviesa una media móvil lenta desde arriba y abajo.

Principio de estrategia

La estrategia se ejecuta principalmente a través de los siguientes pasos:

  1. Configuración de las medias móviles rápidas con periodicidad fastMA y las medias móviles lentas con periodicidad slowMA.

  2. De acuerdo con el tipo de entrada Type, se calculan las medias móviles rápidas fast y las medias móviles lentas slow. Type = 1 es la media móvil simple, Type = 2 es la media móvil exponencial.

  3. Configuración de los rangos de tiempo de respuesta start y finish.

  4. Definición de la función de cruce: cuando el fast pasa por debajo del slow, genera una señal de compra; cuando el fast pasa por encima del slow, genera una señal de venta.

  5. Cuando se activa la función de cruce, se emite una orden de compra para abrir una posición o una orden de venta para cerrar una posición si se encuentra en el rango de tiempo de retroalimentación.

  6. Al final de la ventana de retrospección o cuando la función de cruce se ejecuta, se emite una instrucción de cierre.

  7. Traza un gráfico de tendencias de las medias móviles rápidas (fast) y las medias móviles lentas (slow)

La estrategia determina la tendencia en el período de tenencia mediante el cruce de las medias móviles rápidas y lentas, y genera una señal de negociación de acuerdo con esto. Al mismo tiempo, establece una ventana de tiempo de retroalimentación para simular la negociación real.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso de medias móviles para determinar tendencias es muy eficaz y permite filtrar fluctuaciones aleatorias.

  2. La combinación de las medias móviles rápidas y lentas permite identificar cambios en la tendencia.

  3. Se puede ajustar el promedio móvil de los parámetros para adaptarse a las tendencias de los diferentes períodos.

  4. Puede elegir entre una media móvil simple o una media móvil exponencial.

  5. Se pueden probar y optimizar los parámetros de la estrategia a través de la función de retroalimentación.

  6. La lógica de la estrategia es simple, clara y fácil de entender.

  7. Dibujar gráficos de medias móviles para intuir tendencias y efectos.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. En el ámbito de la corrección, puede haber una señal errónea.

  2. Las medias móviles son retrasadas y pueden perder el punto de inflexión.

  3. Solo se basa en la intersección lineal, sin filtrado combinado con otros indicadores o condiciones.

  4. No se tiene en cuenta el costo de la transacción.

  5. No hay una estrategia de stop loss.

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

  7. El rango de tiempo de detección no fue seleccionado correctamente, lo que podría generar un exceso de coincidencia.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Combinado con otros indicadores como el MACD, el RSI y otros para validar la señal, mejora la precisión.

  2. Añadir estrategias de stop loss para controlar las pérdidas individuales.

  3. Optimización de los parámetros de las medias móviles para adaptarse a diferentes períodos.

  4. Se añade la gestión de las posiciones abiertas en el almacén, con diferentes posiciones en diferentes condiciones de mercado.

  5. Tenga en cuenta los costos de transacción y modifique los puntos de entrada y salida.

  6. Prueba los datos en un rango de tiempo más largo para evitar sobreadaptaciones.

  7. Utiliza el análisis de pasos adelante para optimizar continuamente los parámetros.

Resumir

La estrategia de cruce de medias móviles es una estrategia de seguimiento de tendencias sencilla y práctica. Puede filtrar fluctuaciones aleatorias e identificar la dirección de la tendencia. Sin embargo, también hay algunos problemas como el atraso, que debe usarse en combinación con otros indicadores.

Código Fuente de la Estrategia
/*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