Esta estrategia se basa en cruces de promedios móviles regulares, pero se han realizado algunas modificaciones para generar señales comerciales más precisas.
Cuando el promedio móvil rápido cruza por encima del promedio móvil lento desde abajo hacia arriba, se considera como una señal de compra. Cuando el promedio móvil rápido cruza por debajo del promedio móvil lento desde arriba hacia abajo, se considera como una señal de venta. Es decir, cruz de oro para largo, cruz de muerte para corto. Una vez que se toma una posición larga / corta, se establecerá un stop loss para evitar grandes pérdidas.
La clave radica en la selección de promedios móviles rápidos y lentos. Esta estrategia adopta los promedios móviles exponenciales del período 50&100 como la línea rápida y lenta respectivamente. El efecto de la estrategia se puede optimizar ajustando los parámetros de MA.
Esta estrategia identifica la dirección de la tendencia mediante la combinación de dos promedios móviles, que pueden filtrar el ruido del mercado de manera efectiva. En comparación con las estrategias de MA individuales, puede mejorar la probabilidad de rentabilidad. Además, la configuración de stop loss también limita la pérdida de operaciones individuales.
Al aprovechar las reglas de cruce para determinar los puntos de inflexión, esta estrategia puede capturar las oportunidades de tendencia de manera oportuna.
En el caso de las posiciones de suspensión de pérdidas, el riesgo de mantenimiento de las posiciones de suspensión de pérdidas se calcula en función de la posición de suspensión.
La selección incorrecta de los parámetros de MA dará lugar a señales falsas.
El período de retención demasiado largo o demasiado corto no puede maximizar el beneficio o controlar el riesgo adecuadamente.
La configuración de la posición de stop loss excesiva dará lugar a un stop loss demasiado amplio o demasiado estrecho, por lo que se determinará un stop loss adecuado en función de la volatilidad del instrumento.
Esta estrategia se puede optimizar a partir de los siguientes aspectos:
Prueba más combinaciones de parámetros MA para encontrar los parámetros óptimos
Determinar la posición dinámica de stop loss basada en la fluctuación de precios o ATR de los últimos N días
Combine más indicadores como MACD, KD, etc. para determinar el momento de entrada
Añadir reglas de filtración de tendencias para evitar el mercado de rango
Considerar la aplicación de la estrategia a más instrumentos o mejorarla a una estrategia transversal
Esta estrategia optimizada de cruce de promedios móviles integra la ventaja de la doble MA en juzgar las direcciones de tendencia y establece stop loss para controlar los riesgos. Pertenece a las estrategias de seguimiento de tendencia fáciles de implementar. Esta estrategia puede mejorarse aún más en estabilidad y eficiencia a través de la optimización de parámetros, optimización de stop loss, filtrado de señales, etc. En comparación con las estrategias complejas, es más fácil de entender e implementar, y por lo tanto muy adecuado para ser la primera estrategia de negociación cuantitativa para principiantes.
/*backtest start: 2024-01-27 00:00:00 end: 2024-02-03 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ashishchauhan strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000) fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50) slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100) fastEMA = ema(close, fastEMALen) slowEMA = ema(close, slowEMALen) enterLong = crossover(fastEMA, slowEMA) enterShort = crossunder(fastEMA, slowEMA) longStop = 0.0 longStop := enterShort ? close : longStop[1] shortStop = 0.0 shortStop := enterLong ? close : shortStop[1] plot(series=fastEMA, color=color.orange, title="Fast EMA") plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA") if enterLong strategy.entry(id="GoLong", long=true) if enterShort strategy.entry(id="GoShort", long=false) if strategy.position_size > 0 strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop) if strategy.position_size < 0 strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop) strategy.close_all()