Estrategia de negociación de índices de momentum inverso bidireccional


Fecha de creación: 2023-12-25 12:02:57 Última modificación: 2023-12-25 12:02:57
Copiar: 0 Número de Visitas: 599
1
Seguir
1623
Seguidores

Estrategia de negociación de índices de momentum inverso bidireccional

Descripción general

Esta estrategia es una estrategia de negociación que utiliza un indicador de índice de volumen de reversión bidireccional. La estrategia construye un índice de volumen de reversión mediante el cálculo de los precios máximos, mínimos y de cierre durante un período de tiempo determinado, y calcula su promedio móvil para formar una señal de negociación.

Principio de estrategia

El indicador central de esta estrategia es el Índice de Momentum Estocástico (SMI). La fórmula para calcular el SMI es la siguiente:

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

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

El índice SMI refleja la característica de la reversión de precios. Cuando el precio de las acciones está cerca del máximo de los últimos N días, el SMI está cerca de 100, lo que significa que las acciones están sobrecompradas; cuando está cerca del mínimo de los últimos N días, el SMI está cerca de 100, lo que significa que las acciones están sobrevendidas.

Esta estrategia utiliza el SMA de la media móvil de días M del SMI como línea de señal de negociación. Cuando el SMI se invierte hacia abajo desde la zona de sobreventa, produce una señal de compra; cuando el SMI se invierte hacia arriba desde la zona de sobreventa, produce una señal de venta.

Al mismo tiempo, la estrategia determina que la entidad de la línea K se rompa para establecer el stop loss.

Ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. Utilizando el principio de reversión de precios, puede generar señales de comercio en los puntos de reversión de tendencias y capturar oportunidades de reversión.

  2. El índice SMI combina los precios más altos, más bajos y los precios de cierre, para evaluar de manera integral las situaciones de sobreventa y sobrecompra, lo que da una señal más fiable.

  3. En combinación con la ruptura de la entidad de la línea K para establecer el stop loss, se puede detener el stop loss a tiempo para controlar el riesgo de manera efectiva.

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

Riesgo estratégico

La estrategia también tiene sus riesgos:

  1. El comercio inverso es difícil de determinar el momento en que la inversión fue exitosa, y puede generar varias pérdidas para capturar la reversión de la tendencia.

  2. Los errores en el cálculo de la hora de la vuelta pueden aumentar las pérdidas.

  3. El deterioro de la brecha de la entidad puede ser demasiado sensible y la probabilidad de ser encerrado es mayor.

Resolución de las mismas:

  1. Optimización de los parámetros SMI y ajuste de la frecuencia de inversión de las operaciones.

  2. En combinación con otros indicadores, el punto de inflexión.

  3. Ajuste el parámetro de deterioro del tamaño de la entidad para evitar que sea demasiado sensible.

Optimización de la estrategia

Esta estrategia puede ser optimizada en las siguientes direcciones:

  1. Optimización de los parámetros a y b del SMI para ajustar la sensibilidad de captura inversa.

  2. Añadir otros indicadores para evitar perder la dirección de las principales tendencias. Por ejemplo, la combinación de líneas medias, indicadores de fluctuación, etc.

  3. Aumentar la forma de detener el deterioro para evitar que el deterioro sea demasiado sensible o lento. Se puede considerar el seguimiento del deterioro, el deterioro de la curva, etc.

  4. Combinado con modelos de aprendizaje automático para evaluar la probabilidad de éxito de la inversión y evitar el fracaso de la inversión.

Resumir

Esta estrategia en general es una estrategia de comercio bidireccional utilizando el índice de inversión SMI. La ventaja es que se aprovechan las características de la inversión de precios, generando señales de negociación en los puntos de inflexión, para capturar más oportunidades de negociación en línea corta. Pero también existen algunos riesgos típicos de negociación de inversión, que requieren optimización de los parámetros y la parada para evitar que las pérdidas aumenten.

Código Fuente de la Estrategia
/*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()