Estrategia de cruce de dos medias móviles

El autor:¿ Qué pasa?, Fecha: 2023-11-22 16:10:21
Las etiquetas:

img

Resumen general

Esta es una estrategia de negociación cuantitativa simple basada en indicadores de promedio móvil. Utiliza la cruz de oro y la cruz de muerte de promedios móviles rápidos y lentos para determinar las señales de entrada y salida. Cuando el MA rápido cruza por encima del MA lento desde abajo, se genera una señal de compra. Cuando el MA rápido cruza por debajo del MA lento desde arriba, se genera una señal de venta.

Estrategia lógica

La estrategia aprovecha principalmente la capacidad de seguimiento de tendencias de los promedios móviles. El MA rápido tiene un parámetro más pequeño y puede responder rápidamente a los cambios de precios, mientras que el MA lento tiene un parámetro más grande y representa la tendencia a largo plazo. El cruce rápido del MA por encima del MA lento señala una reversión en los movimientos a corto plazo y el comienzo de una tendencia alcista. El cruce rápido del MA por debajo del MA lento señala una reversión a una tendencia bajista. Al capturar estas señales, podemos operar junto con el impulso.

Específicamente, esta estrategia define un promedio móvil doble de 5 días (rápido) y 34 días (lento). Calcula estos dos MA diariamente y verifica si el MA rápido cruza por encima o por debajo del MA lento. Si ocurre una cruz de oro, va largo. Si ocurre una cruz de muerte, sale de las posiciones.

Análisis de ventajas

Esta es una estrategia simple y fácil de entender, adecuada para principiantes en el comercio de cantidades.

La estrategia de doble MA puede filtrar el ruido del mercado de manera efectiva y capturar la tendencia principal.

También tiene un mecanismo de stop loss incorporado. Cuando los precios comienzan a invertir la dirección y ocurre la cruz de muerte de MA, saldrá de las posiciones a tiempo para controlar los riesgos.

Análisis de riesgos

La estrategia de doble MA tiene riesgos como pérdidas de parada fallidas o fallas de ajuste de curva.

  1. Los MAs tienen efectos de retraso y pueden generar señales sólo después de que la tendencia ya se haya invertido.

  2. En los mercados variados, puede haber muchas señales falsas, causando operaciones innecesarias, aumento de los costos y deslizamiento.

  3. Se basa únicamente en indicadores técnicos sin combinar el análisis fundamental.

  4. No tiene en cuenta el tamaño de la posición y la gestión del riesgo.

Direcciones de optimización

Para aprovechar mejor sus puntos fuertes y reducir los riesgos, se pueden realizar optimizaciones de las siguientes maneras:

  1. Agregue indicadores de tendencia como MACD e indicadores de volatilidad como KDJ para establecer reglas de entrada más rigurosas y filtrar señales falsas.

  2. Incorporar mecanismos de stop loss apropiados, como salir después de que los precios caigan un cierto porcentaje después de la cruz dorada, o después de que los precios caigan un rango establecido de nuevos máximos / mínimos.

  3. Optimice las combinaciones de días de MA rápidos y lentos para adaptarse a los cambios de precios en diferentes marcos de tiempo.

  4. Indices de mercado generales de referencia para determinar el régimen general del mercado y evitar la sobrecomercialización en diversos mercados.

  5. Incorporar cambios en el volumen de negociación para verificar la fiabilidad de las señales de tendencia.

Conclusión

La estrategia de cruce de media móvil dual es una estrategia comercial cuantitativa muy típica. Tiene ventajas como simplicidad, intuitividad y facilidad de implementación. Con pruebas continuas y ajuste de parámetros, puede producir resultados decentes. Sin embargo, existen problemas como la identificación de señales rezagadas y señales falsas. Se deben incorporar filtros adicionales y mecanismos de gestión de riesgos para que sea una estrategia estable de generación de ganancias.


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

//@version=2
////////////////////////////////////////////////////////////
// This strategy is a modification to the "Bill Williams, Awesome Oscillator
// (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016)
//
// This version of the strategy by Midnight Mouse. 10/4/2018
//
// DESCRIPTION
//
// This indicator plots the oscillator as a column where periods fit for buying
// are marked as green, and periods fit for selling as orange/brown. If the
// current value of AO (Awesome Oscillator) is > the previous, the period is
// deemed fit for buying and the indicator is marked green. If the AO values is
// not over the previous, the period is deemed fit for selling and the indicator 
// is marked orange/brown.
//
// You can change long to short in the Input Settings
//
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////

strategy("Awesome Oscillator.MMouse_Lager_BCE")

// === SETTINGS ===

// Strategy start date
FromMonth   = input(defval = 1,    title = "From Month", minval = 1)
FromDay     = input(defval = 1,    title = "From Day",   minval = 1)
FromYear    = input(defval = 2017, title = "From Year",  minval = 2014)

// Strategy settings
nLengthSlow = input(34, minval=1,  title="Length Slow")
nLengthFast = input(5,  minval=1,  title="Length Fast")
allowShorts = input(false,         title="Include Short Trades")
reverse     = input(false,         title="Trade reverse")


// === BODY ===

// Use Heikin-Ashi candles for the buy/sell signal
ha_t        = heikinashi(syminfo.tickerid)
ha_high     = security(ha_t, timeframe.period, high)
ha_low      = security(ha_t, timeframe.period, low)
length      = input( 14 )
price       = open
vrsi        = rsi(price, length)

// Calc (H+L)/2 for each length
xSMA1_hl2   = sma((ha_high + ha_low)/2, nLengthFast)
xSMA2_hl2   = sma((ha_high + ha_low)/2, nLengthSlow)

// Get SMA difference (Fast - Slow)
xSMA1_SMA2  = xSMA1_hl2 - xSMA2_hl2

// Derive the color of the column
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d

// Determine the position to take (Long vs. Short)
pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1],  1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))

// Only apply strategy from the start date
if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00))
    if (possig == 1)
        // Market is currently fit for a Long position
        strategy.entry("Long", strategy.long)

    if (possig == -1)
        // Market is currently fit for a Short position
        if(allowShorts)
            // Shorts are allowed. Record a Short position
            strategy.entry("Short", strategy.short)	   	    
        else
            // Shorts are not allowed. Closec the Long position.
            strategy.close("Long")

// Define the candle colors
//barcolor(possig == -1 ? red : 
//         possig ==  1 ? green : 
//         blue )

// Plot the oscillator
plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)

Más.