Esta estrategia calcula el indicador de impulso del precio para determinar si la tendencia del precio se ha invertido, con el fin de capturar oportunidades de inversión del precio. Cuando la tendencia alcista o bajista del precio se ralentiza, indica que el impulso del precio se ha invertido. En este momento, la estrategia abrirá posiciones largas o cortas.
La estrategia se basa principalmente en el cálculo de indicadores de impulso. El indicador de impulso refleja la velocidad y la fuerza de los cambios de precios.
Formula de cálculo de la MOM:
MOM = precio de cierre de hoy - precio de cierre hace N días
Formula de cálculo de la MOM1:
MAMÁ1 = MAMÁ hoy - MAMÁ ayer
Si MOM > 0 y MOM1 < 0, significa que la tendencia alcista del precio se ha desacelerado y una señal de reversión parece ir larga. Si MOM < 0 y MOM1 > 0, significa que la tendencia bajista del precio se ha desacelerado y una señal de reversión parece ir corta.
Principales métodos de reducción de riesgos:
Esta estrategia calcula el indicador de impulso del precio para determinar si la tendencia del precio se ha invertido, yendo automáticamente largo o corto. Las pruebas posteriores muestran que esta estrategia funciona sin problemas en general y captura efectivamente los puntos de inversión del precio. Al optimizar la configuración de parámetros, agregar filtros de señal, etc., la estabilidad y rentabilidad de la estrategia pueden mejorarse aún más.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Momentum - Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_type = strategy.commission.percent, commission_value = 0.2 ) i_len = input(defval = 12, title = "Length", minval = 1) i_src = input(defval = close, title = "Source") i_percent = input(defval = true, title = "Percent?") i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"]) momentum(seria, length, percent) => _mom = percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length] _mom mom0 = momentum(i_src, i_len, i_percent) mom1 = momentum(mom0, 1, i_percent) mom2 = momentum(i_src, 1, i_percent) momX = mom1 if i_mom == "MOM2" momX := mom2 if (mom0 > 0 and momX > 0) strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE") else strategy.cancel("MomLE") if (mom0 < 0 and momX < 0) strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE") else strategy.cancel("MomSE") plot(mom0, color = #0000FF, title = "MOM") plot(mom1, color = #00FF00, title = "MOM1", display = display.none) plot(mom2, color = #00FF00, title = "MOM2")