En la carga de los recursos... Cargando...

Estrategia de impulso del RSI de doble inversión

El autor:¿ Qué pasa?, Fecha: 2023-09-26 15:42:48
Las etiquetas:

Resumen general

Esta estrategia combina el patrón de inversión 123 y las estrategias de impulso del RSI para filtrar las señales de entradas de alta probabilidad en los puntos de inversión de tendencia.

Principios

123 Estrategia de reversión

Esta estrategia proviene del libro Cómo triplicé mi dinero en el mercado de futuros de Ulf Jensen, página 183.

Específicamente, va largo cuando el cierre es superior al cierre anterior durante 2 días consecutivos y la línea Slow K de 9 períodos es inferior a 50; va corto cuando el cierre es inferior al cierre anterior durante 2 días consecutivos y la línea Fast K de 9 períodos es superior a 50.

Así que esencialmente utiliza el indicador estocástico de la cruz de oro y la cruz de la muerte para determinar posibles inversiones.

Estrategia de impulso del RSI

Esta estrategia utiliza la función ROC para calcular la tasa de cambio de precios y construye un indicador RSI basado en la tasa de cambio de precios para determinar las tendencias de impulso.

Se hace largo cuando el RSI está por debajo de la zona de compra, lo que indica una aceleración del impulso alcista; se hace corto cuando el RSI está por encima de la zona de venta, lo que indica una aceleración del impulso bajista.

Ventajas

  • 123 patrón de reversión identifica los puntos de reversión potenciales después de las consolidaciones
  • El impulso del RSI filtra las falsas rupturas de manera efectiva
  • La acumulación de señales de ambas estrategias da entradas de alta convicción

Los riesgos

  • 123 patrón propenso a las trampas de toros o a las fugas falsas, necesita filtrar
  • RSI todavía basado en el precio, no puede evitar completamente los golpes
  • La acumulación de doble señal puede perder mejores puntos de entrada

Posibles formas de reducir los riesgos:

  1. Ajuste de los parámetros estocásticos para utilizar un período más largo para definir la tendencia
  2. Ajustar los parámetros del índice de rentabilidad para utilizar zonas de compra/venta más amplias
  3. Considere usar sólo una señal para las entradas

Direcciones de optimización

  • Prueba de los períodos ROC para encontrar valores óptimos para productos específicos
  • Prueba 123 lógica de patrones, por ejemplo, ajustar líneas K rápidas / lentas
  • Prueba de los valores de la zona RSI para encontrar los rangos óptimos de compra/venta
  • Pruebe otros indicadores como el MACD para reemplazar al estocástico
  • Efectos de prueba del uso de una sola señal de estrategia

Conclusión

Esta estrategia mejora la precisión de entrada en las reversiones de tendencia al requerir dos señales de reversión de confirmación. El patrón 123 identifica las reversiones y el impulso RSI verifica la validez. Es fácil optimizar parámetros para diferentes productos y preferencias. Pero tenga cuidado con las entradas que faltan de la acumulación de señales duales. En general, un marco efectivo para identificar tendencias de reversión.


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/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
// This is the new-age indicator which is version of RSI calculated upon 
// the Rate-of-change indicator.
// The name "Relative Strength Index" is slightly misleading as the RSI 
// does not compare the relative strength of two securities, but rather 
// the internal strength of a single security. A more appropriate name 
// might be "Internal Strength Index." Relative strength charts that compare 
// two market indices, which are often referred to as Comparative Relative Strength.
// And in its turn, the Rate-of-Change ("ROC") indicator displays the difference 
// between the current price and the price x-time periods ago. The difference can 
// be displayed in either points or as a percentage. The Momentum indicator displays 
// the same information, but expresses it as a ratio.
//
// 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


RSI_ROC(RSILength,ROCLength,BuyZone,SellZone) =>
    pos = 0.0
    xPrice = close
    nRes = rsi(roc(xPrice,ROCLength),RSILength)
    pos := iff(nRes < BuyZone, -1,
	         iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & RSI based on ROC", 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, "---- RSI based on ROC ----")
RSILength = input(20, minval=1)
ROCLength = input(20, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_ROC = RSI_ROC(RSILength,ROCLength,BuyZone,SellZone)
pos = iff(posReversal123 == 1 and posRSI_ROC == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_ROC == -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 )

Más.