Estrategia de negociación de inversión de doble confirmación

El autor:¿ Qué pasa?, Fecha: 2023-11-14 13:42:47
Las etiquetas:

img

Resumen general

La estrategia de inversión de doble confirmación combina el patrón de reversión 123 con el indicador RSI estocástico para crear un sistema robusto de reversión media. Proporciona dos capas de confirmación antes de entrar en una operación, mejorando la precisión y estabilidad de la estrategia.

Estrategia lógica

La estrategia consta de dos componentes:

  1. 123 Reversión

Utiliza el patrón 123 para identificar posibles inversiones.

  • Se aplicará el método de valoración de las pérdidas por riesgo de crédito.

  • Caso de cierre corto > cierre anterior y cierre actual < cierre anterior y estocástico rápido a 9 días > 50

Esto proporciona una señal temprana para la reversión de los precios.

  1. RSI estocástico

Se aplica el indicador estocástico en el RSI para una confirmación adicional:

  • Calcular el RSI con longitud 14

  • Calcular el estocástico del RSI, con longitudes 14, para obtener K

  • Tome 3 días de SMA de K para obtener D

  • Si K cruza por encima de 80, indica largo. Si K cruza por debajo de 20, indica corto.

Un intercambio sólo se activa cuando ambas partes están de acuerdo.

Análisis de ventajas

La principal ventaja de esta estrategia es la doble confirmación, que mejora la precisión y reduce los problemas.

  1. La inversión de la tendencia proporciona una detección temprana de la inversión de tendencia

  2. El RSI estocástico confirma la señal de inversión

  3. La combinación mejora la tasa de ganancia y reduce las señales falsas

  4. Los parámetros se pueden optimizar para diferentes mercados

  5. Implementación sencilla y limpia para el comercio en vivo

Análisis de riesgos

Algunos riesgos a tener en cuenta para esta estrategia:

  1. El riesgo de reversión fallida, las falsas reversiones pueden causar pérdidas.

  2. El riesgo de optimización de parámetros. Los parámetros malos conducen a un bajo rendimiento.

  3. Exceso de optimización de los datos históricos.

  4. El riesgo de alta frecuencia de negociación. Más señales pueden aumentar los costos.

  5. Riesgo de error en la codificación, errores en la lógica de implementación.

Soluciones posibles:

  1. Utilice un tamaño de posición prudente para limitar las pérdidas.

  2. Emplear métodos de optimización avanzada.

  3. Concéntrate en la estabilidad de los parámetros, no en los altos rendimientos.

  4. Ajustar las condiciones para reducir la frecuencia del comercio.

  5. Prueba la lógica del código.

Oportunidades de mejora

La estrategia puede mejorarse en los siguientes ámbitos:

  1. Ajuste de parámetros para mercados específicos.

  2. Añadiendo filtros para evitar inversiones apresuradas.

  3. Incorporación de mecanismos de stop loss.

  4. Reducción de la frecuencia del comercio con filtros adicionales.

  5. Implementando el dimensionamiento dinámico de la posición.

  6. Ajuste de los costes de transacción.

Conclusión

La estrategia de reversión de doble confirmación es un sistema estable y práctico para la reversión de la media a corto plazo. Equilibra la sensibilidad a la captura de reversiones y la precisión de la doble confirmación. Con la optimización y modificaciones adecuadas, puede complementar efectivamente una cartera de estrategias cuantitativas. Pero los parámetros deben ser robustos y los riesgos como el sobreajuste y las whipshaws deben administrarse prudentemente en el comercio en vivo.


/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/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 strategy used to calculate the Stochastic RSI
//
// 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


SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) =>
    pos = 0.0
    Source = close
    rsi1 = rsi(Source, lengthRSI)
    k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
    d = sma(k, smoothD)
    d_cross_80 = cross(d,TopBand) 
    pos := iff(k > TopBand, 1,
              iff(k < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic RSI", 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, "---- Stochastic RSI ----")
TopBand = input(80, step=0.01)
LowBand = input(20, step=0.01)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand)
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -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.