
Una estrategia de seguimiento de tendencias que construye un juicio basado en una media móvil indexada (EMA) de varios períodos diferentes. Se hace cuando el precio supera el EMA de 10 días y otras líneas de EMA de períodos más largos presentan una alineación múltiple; y luego se utiliza un stop loss de seguimiento del 8% para bloquear las ganancias.
La estrategia utiliza seis líneas de EMA de diferentes períodos de 10, 20, 50, 100, 150 y 200 días. Estas líneas de EMA se utilizan para determinar la fase de ciclo en la que se encuentra el mercado. Cuando la línea de EMA de corto plazo (como la línea de 10 días) atraviesa la línea de EMA de período más largo (como la línea de 20 y 50 días), se considera como la fase de marcado en la que el mercado entra en una tendencia múltiple.
En concreto, las estrategias pueden abrir más posiciones si se cumplen las siguientes condiciones:
Después de abrir una posición adicional, la estrategia utiliza un stop loss de seguimiento del 8% para bloquear las ganancias. Es decir, se mantiene la posición siempre que el precio de la acción no retroceda más del 8% del precio de compra. Una vez que se produzca una retirada superior al 8%, se detiene la pérdida.
En general, la idea central de la estrategia es: usar EMAs con múltiples condiciones de filtración para determinar si se está entrando en una tendencia múltiple, y luego seguir el stop loss para bloquear las ganancias.
Esta estrategia de tendencia múltiple de línea media múltiple tiene las siguientes ventajas principales:
La estrategia también tiene algunos riesgos a tener en cuenta:
Para estos riesgos, se puede optimizar y mejorar mediante un ajuste adecuado de los parámetros de los ciclos EMA o la introducción de otros indicadores como juzgamiento auxiliar.
Teniendo en cuenta las características de la estrategia, en el futuro se puede optimizar en los siguientes aspectos:
La estrategia de tendencia múltiple es una estrategia de seguimiento de tendencias más sólida y confiable en general. Al mismo tiempo, contempla el juicio 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)