La estrategia de seguimiento de promedios móviles es una estrategia de seguimiento de tendencias basada en promedios móviles simples. Utiliza un promedio móvil simple de 200 días para determinar la dirección de la tendencia del precio. Cuando el precio cruza por encima del promedio móvil, va largo. Cuando el precio cruza por debajo del promedio móvil, va corto. Esta estrategia sigue la tendencia a la ganancia.
La estrategia se basa en los siguientes principios:
La estrategia sigue la tendencia moviendo la dirección promedio y realiza operaciones inversas cuando ocurre el cruce MA, para beneficiarse de la tendencia.
La estrategia tiene las siguientes ventajas:
También hay algunos riesgos:
Los riesgos pueden abordarse mediante las siguientes optimizaciones:
La estrategia se puede optimizar aún más en los siguientes aspectos:
Optimice el parámetro del período de MA utilizando métodos como el análisis de avanzada para encontrar los parámetros óptimos.
Añadir un MA a corto plazo para realizar un seguimiento de las tendencias a corto y a largo plazo.
Incorporar indicadores de tendencia como el MACD para mejorar la identificación de la inversión de tendencia.
Agregue mecanismos de stop loss como el stop loss de seguimiento para controlar la pérdida de una sola operación.
Prueba de robustez en diferentes productos y períodos de tiempo.
Utilice el aprendizaje automático para la optimización adaptativa de parámetros.
La estrategia de seguimiento de promedios móviles es una estrategia simple y práctica de seguimiento de tendencias. Tiene una lógica clara y es fácil de implementar para capturar tendencias. Pero también tiene algunas debilidades como ser insensible a las correcciones a corto plazo y un control de riesgo débil. Podemos optimizar la estrategia desde múltiples aspectos para hacerla más robusta, mejor parametrizada y con una gestión de riesgos más fuerte. En general, la estrategia de seguimiento de promedios móviles tiene un buen valor de aplicación y es un concepto de trading de tendencias importante en el trading cuantitativo.
/*backtest start: 2023-09-19 00:00:00 end: 2023-10-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0) /////////////// Time Frame /////////////// testStartYear = input(2012, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true ///////////// MA 200 ///////////// slowMA = sma(close, input(200)) /////////////// Strategy /////////////// long = close > slowMA short = close < slowMA last_long = 0.0 last_short = 0.0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) /////////////// Execution /////////////// if testPeriod() strategy.entry("Long Entry", strategy.long, when=long_signal) strategy.entry("Short Entry", strategy.short, when=short_signal) strategy.exit("Long Ex", "Long Entry") strategy.exit("Short Ex", "Short Entry") /////////////// Plotting /////////////// plot(slowMA, color = long ? color.lime : color.red, linewidth=2) bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80) bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)