Estrategia de índice de impulso de doble inversión


Fecha de creación: 2024-02-06 09:29:34 Última modificación: 2024-02-06 09:29:34
Copiar: 0 Número de Visitas: 544
1
Seguir
1617
Seguidores

Estrategia de índice de impulso de doble inversión

Descripción general

La estrategia de doble reversión es una combinación de la estrategia de 123 reversión y la estrategia de RMI. Su objetivo es mejorar la precisión de las decisiones comerciales mediante el uso de señales dobles.

Principio de estrategia

La estrategia tiene dos partes:

  1. 123 estrategias de reversión

    • Cuando el precio de cierre de ayer es menor que el del día anterior, el precio de cierre de hoy es mayor que el del día anterior, y la línea Slow K del día 9 es inferior a 50, haga más
    • Cuando el precio de cierre de ayer es más alto que el del día anterior, el precio de cierre de hoy es más bajo que el del día anterior, y la línea Fast K del día 9 es más alta que el 50, haga un descuento
  2. La estrategia de la RMI (índice de movimiento relativo)

    • El RMI es una variante del factor de movimiento agregado a la base del RSI. Se calcula con la fórmula: RMI = (SMA de movimiento superior) / (SMA de movimiento inferior) * 100
    • Cuando el RMI está por debajo de la línea de sobreventa, hacer más; cuando el RMI está por encima de la línea de sobreventa, hacer menos

Esta estrategia combinada sólo produce una señal de negociación cuando 123 inversa y la señal doble RMI es emitida simultáneamente. Esto puede reducir eficazmente la oportunidad de una transacción errónea.

Análisis de las ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. Combinación de doble indicador para mejorar la precisión de la señal
  2. El uso de estrategias de reversión en situaciones de crisis
  3. El RMI es sensible y puede identificar puntos de inflexión de tendencias fuertes

Análisis de riesgos estratégicos

La estrategia también tiene sus riesgos:

  1. El doble filtrado deja pasar algunas oportunidades de negocio
  2. Las señales de retorno pueden causar errores
  3. Los parámetros de RMI mal configurados pueden afectar el resultado

Estos riesgos pueden reducirse ajustando la combinación de parámetros y optimizando la forma en que se calculan los indicadores.

Dirección de optimización de la estrategia

La estrategia también puede ser optimizada en los siguientes aspectos:

  1. Prueba diferentes combinaciones de parámetros para encontrar el mejor
  2. Prueba diferentes combinaciones de indicadores de reversión, como por ejemplo KDJ, MACD
  3. Adaptación de la fórmula RMI para hacerla más sensible
  4. Añadir un mecanismo de suspensión para controlar las pérdidas individuales
  5. Combina el volumen de transacciones para evitar señales falsas

Resumir

La estrategia del índice de doble reversión puede mejorar la precisión de las decisiones comerciales y reducir la probabilidad de señales erróneas a través de la optimización de los parámetros y el filtrado de la doble señal. Se aplica en situaciones de oscilación y puede aprovechar las oportunidades de reversión. La estrategia puede mejorar aún más la eficacia y el riesgo de lapsos al ajustar los parámetros y optimizar la forma en que se calcula el indicador.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/06/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Relative Momentum Index (RMI) was developed by Roger Altman. Impressed 
// with the Relative Strength Index's sensitivity to the number of look-back 
// periods, yet frustrated with it's inconsistent oscillation between defined 
// overbought and oversold levels, Mr. Altman added a momentum component to the RSI.
// As mentioned, the RMI is a variation of the RSI indicator. Instead of counting 
// up and down days from close to close as the RSI does, the RMI counts up and down 
// days from the close relative to the close x-days ago where x is not necessarily 
// 1 as required by the RSI). So as the name of the indicator reflects, "momentum" is 
// substituted for "strength". 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


RMI(Length,BuyZone, SellZone) =>
    pos = 0.0
    xMU = 0.0
    xMD = 0.0
    xPrice = close
    xMom = xPrice - xPrice[Length]
    xMU := iff(xMom >= 0, nz(xMU[1], 1) - (nz(xMU[1],1) / Length) + xMom, nz(xMU[1], 1))
    xMD := iff(xMom <= 0, nz(xMD[1], 1) - (nz(xMD[1],1) / Length) + abs(xMom), nz(xMD[1], 0))
    RM = xMU / xMD
    nRes = 100 * (RM / (1+RM))
    pos:= iff(nRes < BuyZone, 1,
    	   iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Momentum Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Relative Momentum Index ----")
LengthRMI = input(20, minval=1)
BuyZone = input(40, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMI = RMI(LengthRMI,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRMI == 1 , 1,
	   iff(posReversal123 == -1 and posRMI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )