Estrategia de negociación cruzada de promedio móvil

El autor:¿ Qué pasa?, Fecha: 24 de enero de 2024 11:48:29
Las etiquetas:

img

Resumen general

La estrategia de intercambio de media móvil genera señales de compra y venta mediante el cálculo del cruce de las líneas de EMA rápida (fastLength) y EMA lenta (slowLength). Cuando la línea rápida cruza por encima de la línea lenta, se genera una señal de compra. Cuando la línea rápida cruza por debajo de la línea lenta, se genera una señal de venta. Esta estrategia es simple y práctica, adecuada para el comercio a medio y corto plazo.

Principio de la estrategia

La estrategia utiliza dos líneas de promedio móvil, línea rápida y línea lenta. El parámetro de línea rápida EMAfastLength se configura por defecto en línea de 9 días, y el parámetro de línea lenta EMAslowLength se configura por defecto en línea de 26 días.

  1. Cuando la línea rápida rompe hacia arriba a través de la línea lenta, se genera una señal de compra enterLong (().
  2. Cuando la línea rápida se rompe hacia abajo a través de la línea lenta, se genera una señal de venta enterShort (().

Las señales de negociación específicas y las reglas de estrategia son las siguientes:

  1. Cuando la línea rápida cruza por encima de la línea lenta, ir largo; cuando la línea rápida cruza por debajo de la línea lenta, posición cerrada.
  2. El beneficio obtenido a largo plazo es el porcentaje objetivo (default 0,15%) del precio, que consiste en cerrar la posición cuando el beneficio alcance el 15%.
  3. El stop loss para largo es el StopLosspercentage (default 0.20%) del precio, que es cerrar una posición cuando la pérdida alcanza el 20%.
  4. La posición corta funciona de la misma manera.

Así que esta estrategia se negocia basado en la cruz dorada y cruz muerta de las dos líneas de media móvil.

Análisis de ventajas

  1. La estrategia es simple y fácil de entender.
  2. La aplicación de promedios móviles filtra parte del ruido del mercado y hace que las señales de negociación sean más precisas.
  3. Las reglas de negociación son claras con una toma de ganancias y un stop loss definitivos.
  4. Los parámetros de ensayo pueden ajustarse de forma flexible para adaptarse a las diferentes condiciones del mercado.

Análisis de riesgos

  1. Las medias móviles tienen retraso, que puede pasar por alto los cambios de precios a corto plazo, lo que conduce a puntos de compra y venta inexactos.
  2. Diferentes parámetros de la media móvil del ciclo pueden generar señales falsas y provocar pérdidas.
  3. Confiando únicamente en unos pocos parámetros, esta estrategia tiene altos requisitos de optimización de hiperparámetros para encontrar la mejor combinación de parámetros.
  4. En algunas tendencias importantes, esta estrategia es propensa a fracasar.

Para abordar los riesgos, los parámetros que se pueden optimizar incluyen el ciclo de promedio móvil, la variedad de operaciones, la relación de toma de ganancias y stop loss, etc. Se requieren pruebas extensas para reducir los riesgos.

Direcciones de optimización

La idea de cruce de la media móvil de esta estrategia es simple y práctica.

  1. Cambiar el tipo de media móvil: además de la EMA, también debe probarse la SMA, la LWMA, la HMA y otros tipos.
  2. Añadir otros indicadores: Combinar con el RSI, el MACD y otros indicadores.
  3. Optimización de parámetros: Optimiza automáticamente los dos parámetros del ciclo de EMA para encontrar la mejor combinación de parámetros.
  4. Filtración de tendencias: Comercio selectivo basado en situaciones de tendencias principales.
  5. Optimización de la toma de ganancias y el stop loss: Mejorar la toma de ganancias porcentuales fijas y el stop loss para hacerlo más práctico.

A través de estas pruebas de optimización, el efecto práctico y la estabilidad de la estrategia pueden mejorarse en gran medida.

Resumen de las actividades

La idea de la estrategia de cruce de promedios móviles es simple, pero la aplicación práctica requiere una optimización continua. Esta estrategia da la lógica de generar señales comerciales y reglas comerciales básicas. Sobre esta base, se puede optimizar en gran medida para convertirse en una estrategia cuantitativa utilizable. La aplicación de promedios móviles también nos proporciona ideas para estrategias, basadas en las cuales podemos innovar y mejorar.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)



Más.