La estrategia de negociación de media móvil cruzada genera señales de compra y venta cuando se cruzan las medias móviles a corto y largo plazo. Pertenece a las estrategias comerciales basadas en análisis técnico.
Esta estrategia calcula la media móvil exponencial (EMA) de 20 y 50 periodos. activa la posición larga cuando la EMA de 20 cruza la EMA de 50. activa la posición corta cuando la EMA de 20 cruza la EMA de 50.
La EMA da más peso a los datos recientes.
EMA de hoy = (Precio de hoy * k) + EMA de ayer * (1-k)
Donde k = 2/(número de períodos + 1)
Cuando la EMA a corto plazo cruza la EMA a largo plazo, indica un movimiento alcista de los precios hacia LONG. Cuando cruza por debajo, indica una inversión bajista de los precios hacia SHORT.
Los pros de esta estrategia:
Los riesgos incluyen:
Mejoras:
La estrategia de cruce de promedios móviles es una estrategia técnica simple pero efectiva que ha sido probada por el mercado. Se pueden lograr mejoras adicionales en el control de riesgos y la robustez ajustando parámetros, agregando filtros, etc. Sirve como un bloque de construcción fundamental para la negociación cuantitativa.
/*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)