Estrategia de negociación de cruce de medias móviles


Fecha de creación: 2023-11-27 17:25:36 Última modificación: 2023-11-27 17:25:36
Copiar: 0 Número de Visitas: 639
1
Seguir
1617
Seguidores

Estrategia de negociación de cruce de medias móviles

Descripción general

Las estrategias de comercio de cruce de medias móviles se clasifican como estrategias de comercio de tipo analítico, ya que se computan medias móviles de diferentes períodos y se compran o se venden cuando se producen horquillas de oro o horquillas muertas. La estrategia es sencilla, fácil de manejar, con poca inversión y pequeñas retiradas, y es adecuada para operaciones de líneas medias y largas.

Principio de estrategia

La estrategia se realiza calculando el promedio móvil exponencial (EMA) de 20 y 50 períodos. Se realiza una operación de compra cuando el EMA de 20 períodos se cruza por el de 50 períodos. Se realiza una operación de venta cuando el EMA de 20 períodos se cruza por el de 50 períodos.

El índice EMA es un índice de promedio móvil que da más peso a los datos más recientes. La fórmula de cálculo de la EMA es:

EMAtoday = (Pricetoday * k) + EMAyesterday * (1-k)

Donde, k = 2/ (el número de ciclos + 1)

Así, cuando un EMA corto atraviesa un EMA largo, indica que el precio se vuelve alcista, LONG; cuando un EMA corto atraviesa un EMA largo, indica que el precio se vuelve bajista, SHORT。

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La operación es simple, fácil de entender y ejecutar.
  2. El uso de fondos es menor y las retiradas son menores, lo que favorece la administración de fondos.
  3. Los parámetros son flexibles y se pueden personalizar para diferentes mercados.
  4. Se puede aplicar a cualquier variedad, tanto para el comercio intradiario como para el comercio de tendencias.

Riesgo y optimización

La estrategia también tiene los siguientes riesgos:

  1. Cuando los precios fluctúan, las señales de intercambio son frecuentes, por lo que se debe considerar el uso de filtros.
  2. En los puntos de venta y venta de brecha, las monedas pueden ser atrapadas, por lo que es necesario considerar el stop loss.
  3. La transacción se ha visto afectada por la optimización de parámetros y necesita más verificación de datos históricos.

Por lo tanto, la estrategia puede ser optimizada en los siguientes aspectos:

  1. Se añaden filtros como el indicador de la línea de browning para reducir las señales falsas.
  2. La lógica de stop-loss es una forma de evitar el encierro.
  3. Buscar la mejor combinación de parámetros para las diferentes variedades.
  4. Las señales de compra y venta de confirmación combinadas con los indicadores de volumen de transacción.

Resumir

Las estrategias de movimiento de medias cruzadas son estrategias técnicas simples y efectivas que son fáciles de entender, implementar y probar en el mercado. A través de la optimización de parámetros, la adición de condiciones auxiliares y otros medios, se puede reducir aún más el riesgo de negociación y mejorar la estabilidad de la estrategia. La estrategia puede convertirse en un módulo básico de la negociación cuantitativa.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © brandlabng

//@version=5
//study(title="Holly Grail", overlay = true)
strategy('HG|E15m', overlay=true)
src = input(close, title='Source')

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])

ma2 = input(50, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])

price1 = if type1 == 'EMA'
    ta.ema(price, ma1)

price2 = if type2 == 'EMA'
    ta.ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)


longCondition = ta.crossover(price1, price2)
if longCondition
    strategy.entry('Long', strategy.long)

shortCondition = ta.crossunder(price1, price2)
if shortCondition
    strategy.entry('Short', strategy.short)