
La estrategia utiliza el indicador de movimiento del precio para determinar si la tendencia de movimiento del precio se ha invertido para capturar la oportunidad de una reversión. Cuando la tendencia de aumento del precio se desacelera o la tendencia de disminución se desacelera, lo que indica que el movimiento del precio se ha invertido, la estrategia abre una posición de ventaja o pérdida.
La estrategia se basa principalmente en el cálculo de los indicadores de dinámica. El indicador de dinámica refleja la velocidad y la intensidad de los cambios en los precios. La estrategia calcula dos indicadores de dinámica: MOM y MOM1.
La fórmula para calcular el MOM:
MOM = precio de cierre del día - precio de cierre del día anterior a N
La fórmula para calcular el MOM1 es:
MOM1 = MOM hoy - MOM ayer
En función de los valores de MOM y MOM1 para determinar si el precio se revirtió. Si MOM > 0 y MOM1 < 0, indica que la tendencia al alza se ha ralentizado, aparece una señal de reversión, haga más; si MOM < 0 y MOM1 > 0, indica que la tendencia a la baja se ha ralentizado, aparece una señal de reversión, haga hueco.
Los principales métodos de mitigación de riesgos:
Esta estrategia calcula el indicador de movimiento de precios para determinar si la tendencia de movimiento de precios se invierte. La retroalimentación muestra que la estrategia en general funciona sin problemas y capta eficazmente los puntos de reversión de precios.
/*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")