
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.
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。
La estrategia tiene las siguientes ventajas:
La estrategia también tiene los siguientes riesgos:
Por lo tanto, la estrategia puede ser optimizada en los siguientes aspectos:
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.
/*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)