
Esta estrategia es una estrategia de negociación transcíclica basada en el indicador EMA. Utiliza EMA de dos períodos diferentes como señal de compra y venta, hace más en EMA de largo período en EMA de corto período y hace falta en EMA de largo período en EMA de corto período.
La estrategia utiliza el indicador de EMA como señal de negociación. En concreto, se calculan el EMA a corto plazo y el EMA a largo plazo, generando una señal de compra cuando el EMA a corto plazo atraviesa el EMA a largo plazo y una señal de venta cuando el EMA a corto plazo atraviesa el EMA a largo plazo.
Después de entrar en una posición, la estrategia establece al mismo tiempo un stop loss y un stop loss. El stop loss es un determinado porcentaje del precio de entrada como línea de stop loss, si el precio toca la línea de stop loss, se cierra la posición; el stop stop es un determinado porcentaje del precio de entrada como línea de stop loss, si el precio toca la línea de stop stop, se cierra la posición.
La estrategia también permite opciones de solo hacer más o solo hacer menos, así como opciones de day trading o de posesión. Para los day traders, se impone la neutralización de la posición antes del cierre de las acciones estadounidenses.
La estrategia tiene las siguientes ventajas:
El filtro de la curva del indicador EMA evita ser engañado por las fluctuaciones de alta frecuencia y puede capturar de forma indirecta la tendencia de la línea media y larga.
Utilice el cruce de EMA de corto y EMA de largo plazo como señal de negociación para evitar operaciones frecuentes.
El establecimiento de un stop loss para controlar el riesgo-beneficio por cada orden es útil para la administración de fondos.
Se puede optar por hacer solo más o solo menos, así como por el comercio intradía o el comercio de posiciones, para adaptarse a diferentes tipos de comerciantes.
Compatible con varios tipos de transacciones, incluidas acciones, divisas, monedas digitales, etc.
La estrategia también tiene algunos riesgos potenciales:
Los indicadores de la EMA son retrasados y pueden haber perdido el punto de inflexión de tendencia a corto plazo.
La elección incorrecta de las EMAs de largo y corto plazo puede causar un error en las señales de negociación.
Las posiciones que se mantienen durante demasiado tiempo pueden sufrir un mayor impacto en el mercado.
La suspensión mecánica de pérdidas puede terminar prematuramente o reducir las ganancias.
Las medidas de gestión de riesgos correspondientes son:
Optimización de los parámetros EMA para encontrar la combinación óptima de ciclos.
Añadir otros indicadores como ayuda para el juicio.
Ajuste dinámico de la parada de pérdidas.
La intervención de las personas en los hechos no normales.
La estrategia se puede optimizar en las siguientes direcciones:
Optimización de los parámetros EMA para encontrar combinaciones de ciclo largo y corto adecuadas para diferentes variedades.
Añadir otros indicadores de juicio, como MACD, KD, etc., para lograr resonancia multiindicador.
Aumentar el entrenamiento de los modelos de aprendizaje automático para generar un stop loss dinámico.
Accede a los indicadores más avanzados de RISK para la ingeniería de características.
Añadir elementos de negociación de adaptación para la optimización de parámetros.
La estrategia en su conjunto es una excelente plantilla de estrategia de seguimiento de tendencias, cuya principal ventaja es que utiliza el indicador EMA para filtrar el ruido y obtener ganancias estables, al mismo tiempo que tiene una buena gestión de riesgos y ganancias. Mediante la optimización continua, la estrategia puede convertirse en una estrategia cuantitativa universal en todos los mercados que vale la pena aprender y practicar.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true)
// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")
// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")
// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)
// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)
// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
strategy.entry("Long", strategy.long)
runningPOS := true
stopLossLevel := close * (1 - stopLossPct / 100)
targetLevel := close * (1 + targetPct / 100)
//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
strategy.entry("Short", strategy.short)
runningPOS := true
stopLossLevel := close * (1 + stopLossPct / 100)
targetLevel := close * (1 - targetPct / 100)
// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
runningPOS := false
//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
strategy.close("Short", comment = "Exit Short")
runningPOS := false
if intraDay and runningPOS
if (hour >= 15)
strategy.close_all(comment = "Intraday square off")
//strategy.close("Long",comment = "intraday square off")
runningPOS := false
// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")