
La estrategia de seguimiento de promedios móviles es una estrategia de seguimiento de tendencias basada en promedios móviles simples. La estrategia utiliza promedios móviles simples de 200 días de longitud para determinar la dirección de la tendencia de los precios, haciendo más cuando los precios atraviesan la media móvil por encima, y haciendo huecos cuando los precios atraviesan la media móvil por debajo, para lograr el seguimiento de la tendencia.
La estrategia se basa principalmente en los siguientes principios:
La estrategia se basa principalmente en la medias móviles para determinar la dirección de la tendencia y hacer operaciones inversas en el momento oportuno en que se produce un giro en la línea de paridad para obtener ganancias de seguimiento de la tendencia.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
En cuanto a los riesgos, se pueden optimizar y mejorar en los siguientes aspectos:
La estrategia puede ser optimizada en los siguientes aspectos:
Optimización de los parámetros periódicos de las medias móviles, buscando la combinación óptima de parámetros. Se pueden utilizar métodos de optimización de parámetros como Walk Forward Analysis.
Aumentar las medias móviles a corto plazo para formar una estrategia de líneas medias múltiples, mientras se siguen las tendencias a corto plazo.
La combinación de indicadores de tendencia, como el MACD, mejora la capacidad de identificar cambios de tendencia.
Incorporar mecanismos de detención de pérdidas, como el seguimiento de las pérdidas, la suspensión de las pérdidas, etc., para controlar las pérdidas individuales.
Realizar pruebas de replicación, estrategias de prueba en diferentes variedades y en diferentes períodos de tiempo, para mejorar la estabilidad.
Utilizando métodos como el aprendizaje automático, la adaptación de los parámetros de la estrategia y la optimización de la estrategia.
La estrategia de seguimiento de promedios móviles es una estrategia de seguimiento de tendencias sencilla y práctica, con ideas claras y fáciles de implementar, que puede capturar oportunidades de tendencias. Sin embargo, la estrategia también tiene algunos problemas, como la insensibilidad a los ajustes a corto plazo, la capacidad de control de riesgos débiles, etc. Podemos optimizar en muchos aspectos para que la estrategia sea más sólida, los parámetros sean más optimizados y el control de riesgos sea más completo. En general, la estrategia de seguimiento de promedios móviles tiene un buen valor de aplicación y es una idea estratégica importante para el comercio 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)