La Estrategia de tendencia alcista Multi-EMA es una estrategia de seguimiento de tendencias basada en múltiples promedios móviles exponenciales (EMA) de diferentes períodos para la determinación de tendencias.
La estrategia emplea 6 EMA de períodos de 10, 20, 50, 100, 150 y 200 días. Estas EMA se utilizan para determinar la etapa cíclica actual del mercado. Cuando las EMA de período más corto (por ejemplo, 10 días) se cruzan con las de período más largo (por ejemplo, 20-, 50 días), indica que el mercado ha entrado en la fase de marcado de una tendencia alcista.
Específicamente, la estrategia se prolongará cuando se cumplan las siguientes condiciones:
Después de abrir una posición larga, se utiliza un stop loss de 8% para bloquear las ganancias. Eso significa que la posición se mantendrá abierta siempre que el precio no caiga más del 8% desde el precio de entrada. Una vez que el descenso exceda el 8%, la posición se cerrará para detener la pérdida.
En resumen, la idea clave de esta estrategia es entrar en tendencia alcista cuando se confirma por la alineación múltiple de la EMA, y utilizar el stop loss para bloquear las ganancias.
La estrategia de tendencia alcista Multi-EMA tiene las siguientes fortalezas principales:
También hay algunos riesgos a tener en cuenta para esta estrategia:
Para hacer frente a estos riesgos, podemos optimizar ajustando los períodos de EMA o incorporando indicadores auxiliares para mejorar el juicio.
Teniendo en cuenta las características de esta estrategia, las optimizaciones futuras pueden centrarse en los siguientes aspectos:
En general, la estrategia de tendencia alcista Multi-EMA es un sistema de seguimiento de tendencias robusto y confiable, que equilibra la determinación de tendencias y el control de riesgos.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('SirSeff\'s EMA Rainbow', overlay=true) // Testing Start dates testStartYear = input(2000, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2100, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false // Component Code Stop //TSP trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01 longStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - trailStop) math.max(stopValue, longStopPrice[1]) else 0 //PLOTS plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop') plot(ta.ema(close, 20)) plot(ta.ema(close, 50)) plot(ta.ema(close, 100)) plot(ta.ema(close, 150)) plot(ta.ema(close, 200)) //OPEN longCondition = ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200) if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod() strategy.entry("BUY1", strategy.long) if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod() strategy.entry("BUY2'", strategy.long) //CLOSE @ TSL if strategy.position_size > 0 and testPeriod() strategy.exit(id='TSP', stop=longStopPrice)