Estrategia de inversión de impulso

El autor:¿ Qué pasa?, Fecha: 2023-12-12 17:25:08
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

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.

Ventajas

  1. Captura los puntos de inversión de precios y entra en el mercado a tiempo
  2. Pequeños retiros, evitar perseguir los máximos y vender los mínimos
  3. Implementar un stop loss automático para reducir los riesgos

Los riesgos

  1. Se pueden abrir y cerrar posiciones con frecuencia cuando los precios fluctúan
  2. Incapacidad para determinar con precisión los puntos de inversión de precios si los parámetros se establecen incorrectamente
  3. Los eventos del mercado pueden causar señales incorrectas

Principales métodos de reducción de riesgos:

  1. Optimizar los parámetros para mejorar la precisión del juicio
  2. Combinar con otros indicadores para filtrar las señales
  3. Intervención manual para evitar pérdidas causadas por mercados anormales

Direcciones de optimización

  1. Optimizar los parámetros del indicador de impulso para capturar mejor el momento de las reversiones
  2. Añadir indicadores como el volumen para filtrar señales incorrectas
  3. Añadir estrategias de stop loss para reducir las pérdidas individuales

Resumen de las actividades

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")

Más.