
La estrategia de seguimiento de tendencias EMA es una estrategia de seguimiento de tendencias basada en los indicadores EMA. La estrategia determina la dirección de la tendencia de los precios mediante el cálculo de la línea EMA de un período determinado.
La estrategia se basa principalmente en el indicador EMA para determinar la tendencia de los precios. El indicador EMA es un índice de movimiento de las medias de los precios, que otorga un mayor peso a los precios más recientes, para responder más rápidamente a los cambios de precios. La estrategia calcula el precio promedio en el ciclo EMA, Produce una curva de suavización.
De acuerdo con este principio, la estrategia se abre y cierra cuando el precio cruza la EMA, y se abre y cierra cuando el precio cruza la EMA, para seguir los cambios en la tendencia de los precios mediante el seguimiento de la línea EMA. En concreto, se calcula una línea EMA de 8 ciclos en el código, se abre y cierra cuando el precio cierra la línea EMA, se abre y cierra cuando la línea EMA se cierra, y se abre y cierra para controlar el riesgo.
Puede haber un riesgo de perder el punto de ajuste. Cuando el precio se invierte rápidamente, la línea EMA necesita un cierto tiempo para hacer un ajuste y puede perder el mejor momento de entrada. La solución es combinar otros indicadores para determinar el punto de ajuste.
Existe el riesgo de aumentar las pérdidas. La línea EMA juega el papel de seguimiento de tendencias, no se puede determinar con precisión el punto de ajuste. Si el precio se invierte, puede causar una pérdida mayor. La solución es establecer un punto de parada razonable.
La frecuencia de negociación puede ser demasiado alta o demasiado baja. La frecuencia de negociación de las estrategias de producción varía según el ciclo EMA.
Optimización de los parámetros de EMA para encontrar el punto de equilibrio óptimo. Se puede determinar el valor óptimo del ciclo de EMA mediante optimización progresiva.
Al agregar otros indicadores para determinar el punto de ajuste. Por ejemplo, la combinación de indicadores de sobrecompra y sobreventa, como el RSI, puede ayudar a determinar mejor el punto de inflexión del precio.
Optimización de la estrategia de stop loss para encontrar el punto de parada óptimo. Mediante la retroalimentación, se pueden probar diferentes puntos de parada para encontrar la posición de parada que bloquee al máximo las ganancias.
Optimizar la selección de variedades. Ajustar los parámetros del ciclo EMA según las características de las diferentes variedades para obtener el mejor efecto.
La estrategia de seguimiento de tendencias EMA es una estrategia de seguimiento de tendencias basada en indicadores muy típica. Es simple, directa, fácil de implementar y adecuada para el aprendizaje de los principiantes. Al mismo tiempo, también es extensible y puede aumentar aún más la eficacia de la estrategia mediante la adición de otros indicadores o parámetros de optimización.
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
EmaSource = input(defval = close, title = "EMA Source")
EmaLength = input(defval = 8, title = "EMA Period", minval = 1)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
stopLoss = input(30, title = "Stop loss percentage(0.1%)")
UseStopLoss = input(true,"UseStopLoss")
window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false
EMA = ema(EmaSource,EmaLength)
plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50)
long = crossunder(EMA, close)
short= crossover(EMA, close)
if (long)
strategy.entry("LongId", strategy.long, when=window())
if (short)
strategy.entry("ShortId", strategy.short, when=window())
if (UseStopLoss)
strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)