Estrategia de cruce de tendencia de inversión de promedio móvil precisa

El autor:¿ Qué pasa?, Fecha: 2024-01-22 12:14:29
Las etiquetas:

img

Resumen general

Su idea central es capitalizar las poderosas señales generadas por la cruz dorada y la cruz de la muerte de dos promedios móviles de diferentes marcos de tiempo para atrapar inversiones de tendencia en el mercado y beneficiarse de la compra baja / alta venta.

Estrategia lógica

En esta estrategia, se calculan las líneas de la media móvil simple (SMA) de 50 y 200 períodos. Tradicionalmente, cuando la SMA de 50 días cruza por debajo de la SMA de 200 días, se llama una cruz de muerte, lo que indica una perspectiva bajista.

La lógica de negociación es simplemente tomar posiciones basadas en estas señales - corto en la cruz de la muerte y ir largo en la cruz de oro.

Además, la estrategia proporciona rangos de fechas personalizables para backtests, por lo que podemos examinar la efectividad real de estas señales cruzadas en diferentes períodos.

Ventajas

  1. Captura eficazmente los puntos de reversión de tendencia para abrir posiciones cerca de áreas clave
  2. La combinación de dos SMA de períodos diferentes filtra las señales falsas
  3. La función de backtesting examina el rendimiento real en todos los regímenes de mercado
  4. Las gráficas limpias muestran visualmente las señales de cruce y los cambios de posición

Los riesgos

  1. Los cruces de SMA se retrasan en inversiones extremas y no pueden predecirlas
  2. Los datos de las pruebas de retroceso pueden diferir del rendimiento en vivo debido a los costes y al deslizamiento.
  3. Las selecciones de parámetros como los períodos SMA afectan en gran medida los resultados
  4. Necesidad de incorporar los fundamentos y técnicos, no sólo el comercio mecánico

Para hacer frente a los riesgos, podemos optimizar los parámetros, añadir filtros, gestionar el riesgo, papel comercio de la estrategia, etc. para minimizar los riesgos.

Oportunidades de mejora

Las principales formas de optimizar esta estrategia incluyen:

  1. Prueba de las SMA de diferentes combinaciones de períodos
  2. Añadir filtros como el volumen, la volatilidad para evitar los golpes
  3. Incorporación de datos económicos o noticias para filtro
  4. Implementar mecanismos de detención de pérdidas como paradas de movimiento/tiempo
  5. Evaluación del rendimiento durante diferentes períodos de retención

Al examinar los impactos de los parámetros, podemos descubrir mejores sistemas de cruce de promedios móviles.

Conclusión

Esta estrategia aprovecha el indicador técnico clásico de cruces de promedios móviles para capturar puntos de inflexión clave en los mercados. Con lógica simple y características de backtest convenientes, puede ayudar a rastrear tendencias como parte de un sistema más amplio.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")


Más.