Estrategia de cruce de medias móviles


Fecha de creación: 2023-11-23 13:38:02 Última modificación: 2023-11-23 13:38:02
Copiar: 0 Número de Visitas: 631
1
Seguir
1617
Seguidores

Estrategia de cruce de medias móviles

Descripción general

La estrategia de cruce de medias es una estrategia de negociación basada en medias móviles. Utiliza una cruz de medias móviles rápidas y medias móviles lentas como señales de compra y venta. Genera una señal de compra cuando la media rápida se rompe con la media lenta desde abajo; genera una señal de venta cuando la media rápida se rompe con la media lenta desde arriba.

Principio de estrategia

La estrategia utiliza la función sma para calcular el promedio móvil simple de los períodos especificados, como promedio rápido y promedio lento. La estrategia tiene un período promedio rápido predeterminado de 18 días, que se puede ajustar mediante parámetros.

Cuando la media rápida se rompe desde abajo, se detecta una señal de cruce y se genera una señal de compra. Cuando la media rápida se rompe desde arriba, se detecta una señal de cruce y se genera una señal de venta.

La estrategia permite el comercio automático a través de señales de seguimiento y señales de salida. La entrada múltiple se activa cuando la media rápida se rompe desde abajo; la entrada vacía se activa cuando la media rápida se rompe desde arriba. La señal de salida correspondiente también se produce cuando se cruza al revés.

Análisis de las ventajas

  • El uso de cruces de medias móviles tiene una fuerte capacidad de seguimiento de tendencias, lo que permite capturar de manera efectiva las tendencias de precios
  • La estrategia de línea media es simple, directa, lógica clara y fácil de entender.
  • La estrategia de optimización puede adaptarse a diferentes entornos de mercado mediante el ajuste de los parámetros de la línea media
  • Estrategias para automatizar las transacciones sin intervención humana y reducir los costos de operación

Riesgos y soluciones

  • Cuando el precio está en el rango de oscilación, se producen múltiples señales de cruce no válidas, lo que conlleva el riesgo de operaciones frecuentes. Se puede evitar mediante el aumento de las condiciones de filtración.
  • Se debe prestar atención a la optimización de los parámetros, ya que los diferentes parámetros tienen un gran impacto en el rendimiento de la estrategia. Se pueden optimizar los parámetros mediante la retroalimentación o la introducción de una línea media de adaptación.
  • Existe un cierto riesgo de pérdida de señales, que se puede combinar con otras señales de filtración de indicadores o como condición auxiliar.
  • Se puede introducir una estrategia de stop loss para controlar la pérdida individual.

Dirección de optimización

  • Se pueden introducir parámetros de línea media de adaptación o de optimización dinámica para que los parámetros de línea media se ajusten dinámicamente y mejor sigan el mercado.
  • Se pueden agregar condiciones de filtración para evitar señales erróneas en caso de fluctuaciones de precios o tendencias desconocidas. Por ejemplo, se puede introducir un filtro de volumen de transacción.
  • Se puede combinar con otros indicadores, como la banda de Brin como filtro o condición auxiliar para el ingreso, para mejorar el rendimiento de la estrategia.
  • Se pueden introducir estrategias de stop loss para mantener las pérdidas individuales dentro de los límites aceptables.

Resumir

La estrategia de cruce de línea uniforme es una estrategia de seguimiento de tendencias más clásica y simple en general. Utiliza principalmente cruces de línea uniforme como señales de negociación, el principio es simple y directo, fácil de entender, se puede implementar y se puede ajustar a los mercados a través de parámetros. Pero también hay algunas desventajas, como la vulnerabilidad a los efectos de las oscilaciones y la tendencia de cambio, la frecuencia de la señalización, etc. Estos problemas se pueden mejorar mediante el aumento de filtros, el ajuste dinámico de los parámetros, la introducción de paradas, etc.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)