Estrategia de negociación de inversión de media móvil doble

El autor:¿ Qué pasa?, Fecha: 2023-11-10 11:18:38
Las etiquetas:

img

Resumen general

Esta estrategia está diseñada en base a la cruz de oro y la cruz muerta de los promedios móviles rápidos y lentos. Cuando el MA rápido cruza por encima del MA lento, vaya largo. Cuando el MA rápido cruza por debajo del MA lento, vaya corto. Esta estrategia es adecuada para el comercio a medio y largo plazo y puede capturar las reversiones de tendencia en el mercado.

Estrategia lógica

La estrategia utiliza la media móvil exponencial (EMA) para calcular las líneas rápidas y lentas. La longitud de la MA rápida es de 10 períodos y la longitud de la MA lenta es de 30 períodos. La estrategia primero calcula la EMA rápida y la EMA lenta, luego traza las líneas y muestra diferentes fondos de color para indicar la dirección de la tendencia.

Cuando el cierre de hoy está por encima del MA rápido y el MA rápido está por encima del MA lento, el fondo es verde, lo que indica una tendencia al alza.

En una tendencia al alza, si hay un candelero rojo (cierre por debajo de abierto) y ayer también fue un candelero rojo, vaya largo. Establezca un stop loss en 300 puntos y obtenga ganancias cerrando la posición corta.

En una tendencia a la baja, si hay un candelero verde (cierre por encima de abierto) y ayer también fue un candelero verde, vaya corto.

Después de abrir una posición en cada dirección, si el tiempo de retención excede de 1008000000 milisegundos (aproximadamente 2 semanas), se forzará a cerrar la posición para evitar el punto muerto.

Análisis de ventajas

  • El sistema dual de EMA puede filtrar eficazmente el ruido del mercado e identificar los puntos de inversión de tendencia
  • Los MAs rápidos y lentos combinados con los colores de las velas proporcionan señales de entrada confiables
  • Las estrategias de stop loss y take profit reducen las pérdidas para operaciones individuales
  • Mecanismo de cierre de posición forzada evita grandes pérdidas por bloqueos

Análisis de riesgos

  • El sistema EMA es menos sensible a los picos de precios, puede perder algunas oportunidades comerciales
  • La configuración incorrecta de los parámetros de MA rápido y lento puede causar señales falsas.
  • Un punto de stop loss demasiado estrecho aumenta el riesgo de liquidación.
  • La configuración incorrecta del tiempo de cierre forzado puede dar lugar a una salida prematura o a una espera demasiado larga.

Direcciones de optimización

  • Prueba de la rentabilidad de los sistemas EMA bajo diferentes parámetros para optimizar las longitudes de MA rápidas y lentas
  • Considere agregar otros indicadores como el MACD para la confirmación para mejorar la precisión de la señal
  • Las pérdidas de parada de vinculación a las variaciones diarias de volumen
  • Ajuste dinámico del tiempo de cierre forzado basado en la volatilidad del mercado

Conclusión

En general, esta estrategia es bastante equilibrada, utilizando EMA dual para tendencia y filtros de candlestick con reglas adicionales para evitar señales falsas.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © yeainshukla

//@version=5


strategy('BuyRedSellGreen4H', overlay = true)
greenCandle = close > open
redCandle = open > close

start  = timestamp(2023,9,18,0,00)
end = timestamp(2023,12,31,0,00)


fastLength = input.int(10, title="Fast Average Length")
slowLength = input.int(30, title="Slow Average Length")

averageData = input.source(close, title="Average Data Source")

// Calculate exponential moving averages
fastAverage = ta.ema(averageData, fastLength)
slowAverage = ta.ema(averageData, slowLength)

// Plot averages
plot(fastAverage, color=color.navy, title="Fast EMA")
plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA")

// Show the moving average trend with a coloured background
backgroundColor = if close > fastAverage and fastAverage > slowAverage
    color.new(color.green, 85)
else if close < fastAverage and fastAverage < slowAverage
    color.new(color.red, 85)
else
    color.new(color.orange, 90)

bgcolor(backgroundColor, title="EMA Background")


if time >= start and time < end
    if(close < open) 
        if(close[1] < open[1])
            strategy.entry("Enter Long", strategy.long)
            strategy.exit("Exit Long", from_entry="Enter Long")
            strategy.close("Enter Short")

    else
        if(close[1] > open[1])
            strategy.entry("Enter Short", strategy.short)
            strategy.exit("Exit Short", from_entry="Enter Short")
            strategy.close("Enter Long")
    if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened.
        if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000)
            strategy.close("Enter Short")
            strategy.close("Enter Long")

Más.