Estrategia de fusión para la captura de tendencias de doble vía

El autor:¿ Qué pasa?, Fecha: 2023-11-06 11:49:41
Las etiquetas:

img

Resumen general

Esta estrategia fusiona las subestrategias 123 Reversal y SMA Ergodic Oscillator para formar una estrategia de seguimiento de tendencias con filtración de señales de doble vía. La estrategia 123 Reversal juzga los puntos de inflexión potenciales a través de patrones de velas; el SMA Ergodic Oscillator determina la dirección de tendencia utilizando promedios móviles. Se verifican entre sí para formar un mecanismo de confirmación dual, que puede filtrar eficazmente las señales falsas y capturar direcciones de tendencia relativamente fuertes para el seguimiento de tendencias.

Estrategia lógica

  1. 123 Estrategia de reversión

Esta estrategia proviene del sistema de la página 183 del libro de Ulf Jensen How I Tripped My Money in the Futures Market. Pertenece al tipo de inversión. Cuando el precio de cierre es más alto que el cierre anterior durante 2 días consecutivos, y la línea lenta del estocástico de 9 días está por debajo de 50, vaya largo; cuando el precio de cierre es más bajo que el cierre anterior durante 2 días consecutivos, y la línea rápida del estocástico de 9 días está por encima de 50, vaya corto.

  1. Oscilador ergódico SMA

Este indicador es similar al TSI desarrollado por William Blau, excepto que el oscilador SMA contiene una línea de señal.

Confirmación doble: abrir posiciones solo cuando 123 Reversal y SMA Ergodic dan señales en la misma dirección. Mantenerse en plano cuando las direcciones de la señal son inconsistentes.

Ventajas

  1. La integración de múltiples indicadores forma un mecanismo de doble confirmación, que puede filtrar eficazmente las señales falsas.

  2. 123 La estrategia de reversión juzga los puntos de reversión potenciales a través de patrones de velas.

  3. Los parámetros del SMA Ergodic Oscillator son ajustables para la optimización en diferentes productos y plazos.

  4. Como una estrategia de seguimiento de tendencias en su conjunto, puede seguir la tendencia continuamente para capturar un fuerte impulso.

Los riesgos

  1. La integración y el equilibrio entre las estrategias de inversión y tendencia requieren una optimización continua, de lo contrario puede perder puntos de inflexión o causar enormes pérdidas.

  2. Las estrategias de reversión presentan riesgos inherentes de operaciones falsas. Los parámetros deben ajustarse para reducir la tasa de fracaso.

  3. Las estrategias de tendencia pura no pueden juzgar las reversiones. Hay riesgos potenciales de pérdida. El tamaño de la posición debe reducirse a tiempo para evitar riesgos.

  4. Los parámetros necesitan optimización y pruebas iterativas para diferentes productos y plazos.

Mejoras

  1. Ajustar los parámetros de 123 Reversión para reducir la frecuencia de operaciones falsas.

  2. Ajustar los parámetros del oscilador ergódico SMA para optimizar la sensibilidad del indicador.

  3. Añadir una estrategia de stop loss para limitar la pérdida por operación.

  4. Incorporar otros indicadores para juzgar las posibles reversiones y reducir el tamaño de la posición en el tiempo.

  5. Parámetros de ensayo en diferentes productos para mejorar la robustez.

Resumen de las actividades

Esta estrategia integra las ventajas de las estrategias de reversión y tendencia a través de un mecanismo de confirmación dual, formando un fuerte efecto de seguimiento de tendencia. Puede filtrar eficazmente el ruido, seguir la tendencia y capturar continuamente oportunidades de tendencia de alta calidad. Mientras tanto, existen ciertos riesgos de retirada. Los parámetros necesitan optimización continua y control de riesgos utilizando stop loss. La clave es equilibrar la reversión y la tendencia, más el stop loss. Puede funcionar mejor para el seguimiento a largo plazo. En general, esta estrategia tiene un valor práctico, y puede usarse como parte de la cartera de estrategias, o de forma independiente.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/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 SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// 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


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", 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, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -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.