Este artículo presenta una estrategia de negociación cuantitativa basada en los puntos de cruce de las medias móviles exponenciales (EMA) durante tres períodos diferentes.
La estrategia emplea EMA de tres períodos diferentes: 10 días, 100 días y 200 días. Las señales de compra o venta se generan en función de la dirección del cruce cuando la EMA de corto período (10 días) cruza las EMA de largo período (100 días o 200 días).
La fuerza de esta estrategia radica en su simplicidad y alta adaptabilidad. Las EMA de varios períodos proporcionan una visión multidimensional de las tendencias del mercado, aumentando la precisión de las decisiones comerciales. Además, el filtro de tiempo evita la inestabilidad durante períodos específicos del mercado, reduciendo los riesgos potenciales.
A pesar de su eficacia, la estrategia conlleva ciertos riesgos. El riesgo principal es la volatilidad del mercado debido a eventos imprevistos, que pueden conducir al fracaso de la estrategia. Además, las EMA pueden estar rezagadas, retrasando el reflejo de los cambios del mercado. Los métodos para mitigar estos riesgos incluyen el monitoreo del mercado en tiempo real y la combinación de otros indicadores técnicos para mejorar la precisión de la decisión.
Las direcciones de optimización de la estrategia incluyen el uso integrado de varios indicadores técnicos, como el índice de fuerza relativa (RSI) y las bandas de Bollinger, para profundizar y ampliar el análisis del mercado.
En general, este
La estrategia de negociación cuantitativa cruzada de EMA multiperíodo es una herramienta efectiva que puede ayudar a los operadores a tomar mejores decisiones en un mercado volátil.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 start = timestamp(2023,1,1,0,0) end = timestamp(2024,1,1,0,0) strategy("Tester Emas", overlay = true) periodo1 = input(10,"Periodo_1") periodo2 = input(100,"Periodo_2") periodo3 = input(200,"Periodo_3") //definir media moviles ema1 = ta.ema(close,periodo1) ema2 = ta.ema(close,periodo2) ema3 = ta.ema(close,periodo3) //Desde desde_a = input(2000, title = "Desde año") desde_m = input.int( 1, title = "Desde mes", minval=1, maxval = 12) desde_d = input.int( 1, title = "Desde dia", minval=1, maxval = 31) //Hasta hasta_a = input(2030, title = "Hasta año") hasta_m = input.int( 1, title = "Hasta mes", minval=1, maxval = 12) hasta_d = input.int( 1, title = "Hasta dia", minval=1, maxval = 31) FechaValida() => true //Condicion de entradas longCondition = ta.crossover(ema1, ema2) shortCondition = ta.crossunder(ema1,ema2) alcista = (ema1 > ema2) and (ema2 > ema3) comprado =strategy.position_size > 0 //Comprar o vender segun las condiciones de entradas //if (longCondition) if (not comprado and alcista and FechaValida()) // Round redondea mi capital para comprar las acciones en cantidades enteras cantidad = math.round(strategy.equity/ close) strategy.entry("Compra", strategy.long, cantidad) //if (shortCondition) if (comprado and not alcista and FechaValida()) //strategy.entry("Venta", strategy.short) strategy.close("Compra" , comment = "Venta") if (comprado and not FechaValida()) //Cierre x finalizacion de periodo //strategy.entry("Venta", strategy.short) strategy.close("Compra" , comment = "Venta x fin") //Graficar las medias moviles plot(ema1, color = color.green, title = "Ema1") plot(ema2, color = color.yellow, title = "Ema2") plot(ema3, color = color.red, title = "Ema2") //GMarca los cruces de medias bgcolor(longCondition ? color.green : na) bgcolor(shortCondition ? color.red : na)