Estrategia de negociación del índice de impulso de inversión doble

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

img

Resumen general

Esta estrategia se basa en el indicador del Índice de Momentum de Reversión Doble para el comercio. Calcula un índice de impulso de reversión durante un cierto período de tiempo utilizando el precio más alto, el precio más bajo y el precio de cierre, y genera señales comerciales cuando el índice se invierte hacia abajo desde la zona de sobrecompra o se invierte hacia arriba desde la zona de sobreventa. También establece un mecanismo de stop loss de ruptura.

Estrategia lógica

El indicador central de esta estrategia es el índice de impulso estocástico (SMI).

$$SMI = \frac{Close-(HH+LL)/2}{AVGDIFF/2}*100$$

Donde HH es el precio más alto durante los últimos N días, LL es el precio más bajo durante los últimos N días, N está determinado por el parámetro a; AVGDIFF es la media móvil de M días de HH-LL, M está determinado por el parámetro b.

El SMI muestra la característica de reversión de los precios. Cuando el precio de las acciones se acerca al punto más alto en los últimos N días, el SMI está cerca de 100, lo que indica una sobrecompra de la acción; cuando se acerca al punto más bajo en los últimos N días, el SMI está cerca de -100, lo que indica una sobreventa. Las señales de compra / venta se generan cuando el SMI se invierte desde el nivel de 100 o se invierte desde el nivel de -100.

La estrategia utiliza la SMA móvil de M-day de SMI como línea de señal de negociación. Cuando SMI se invierte hacia abajo desde la zona de sobrecompra y se rompe por debajo de la SMA, se genera una señal de compra. Cuando SMI se invierte hacia arriba desde la zona de sobreventa y se rompe por encima de la SMA, se genera una señal de venta.

Además, la estrategia juzga la ruptura del cuerpo del candelero para detener la pérdida.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Utilizando el principio de inversión de precios, puede generar señales comerciales en puntos de inversión y capturar oportunidades de inversión.

  2. SMI combina el precio más alto, el precio más bajo y el precio de cierre para juzgar las condiciones de sobrecompra y sobreventa, haciendo señales más confiables.

  3. Con el cuerpo del candelero para detener la pérdida, puede salir de las posiciones a tiempo y controlar eficazmente los riesgos.

  4. La estrategia tiene pocos parámetros y es fácil de implementar y optimizar.

Análisis de riesgos

También existen algunos riesgos para esta estrategia:

  1. El comercio de reversión es difícil de determinar el momento exacto de las reversiones exitosas, y puede incurrir en múltiples pérdidas antes de capturar la reversión de la tendencia.

  2. El juicio erróneo de los puntos de inversión puede conducir a pérdidas amplificadas.

  3. El cuerpo de escape puede ser demasiado sensible con una alta probabilidad de quedar atrapado.

Las soluciones son:

  1. Optimizar los parámetros del SMI para ajustar la frecuencia de negociación de inversión.

  2. Combinar otros indicadores para determinar el momento de reversión.

  3. Ajuste el tamaño del cuerpo para evitar que sea demasiado sensible.

Optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los parámetros a y b del SMI para ajustar la sensibilidad de las reversiones de captura.

  2. Añadir otros indicadores para el juicio para evitar perder las principales direcciones de tendencia, por ejemplo, medias móviles, indicadores de volatilidad, etc.

  3. Añadir más métodos de stop loss para evitar que sean demasiado sensibles o insensibles, como la pérdida de stop trailing, la pérdida de stop curve, etc.

  4. Incorporar modelos de aprendizaje automático para juzgar la probabilidad de éxito de la reversión, evitando operaciones de reversión fallidas.

Conclusión

En conclusión, esta es una estrategia de negociación bidireccional basada en el índice de impulso de inversión SMI. La ventaja radica en capturar más oportunidades comerciales a corto plazo mediante la utilización de la inversión de precios y la generación de señales en los puntos de inversión. Pero también hay riesgos típicos del comercio de inversión. Se necesitan ajustes de parámetros y optimización de stop loss para evitar pérdidas amplificadas. En general, esta estrategia es adecuada para los inversores interesados en el comercio de inversión, pero debe incorporar otros indicadores y una estricta stop loss para controlar los riesgos.


/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Stochastic Strategy v1.0", shorttitle = "Stochastic str 1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings 
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
a = input(5, "Percent K Length")
b = input(3, "Percent D Length")
limit = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Stochastic Momentum Index
ll = lowest (low, a)
hh = highest (high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ema(ema(rdiff,b),b)
avgdiff = ema(ema(diff,b),b)
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ema(SMI,b)

//Lines
plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index")
plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line")
plot(limit, color = black, title = "Over Bought")
plot(-1 * limit, color = black, title = "Over Sold")
plot(0, color = blue, title = "Zero Line")

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = SMIsignal < -1 * limit and close < open
dn = SMIsignal > limit and close > open
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot)

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : lot)
    
if  exit
    strategy.close_all()

Más.