Un poderoso sistema que combina estrategias de inversión y de seguimiento de tendencias

El autor:¿ Qué pasa?, Fecha: 2023-10-27 16:22:08
Las etiquetas:

img

Resumen general

El Sistema de Breakout de Reversión de Doble Bajo combina elementos de estrategias de reversión y seguimiento de tendencias en el comercio cuantitativo.

Cómo funciona

El sistema consta de dos componentes:

  1. 123 La reversión

Observa los cambios en el precio de cierre durante los últimos N días. Si el cierre de hoy es mayor que el de ayer y ayer es menor que el del día anterior, señala dos días consecutivos de baja y activa una señal de compra. También utiliza el indicador STOCH: cuando la línea rápida de STOCH de hoy es inferior a la línea lenta, confirma aún más la validez de la señal de compra.

  1. El promedio móvil T3

La línea T3 se calcula sobre la base de promedios móviles exponenciales utilizando una fórmula especial. Al ajustar los parámetros, controla la sensibilidad de la media móvil a los cambios de precio.

El sistema combina las dos señales anteriores, generando señales comerciales reales solo cuando la señal de compra 123 Reversal y la señal de venta T3 se producen juntas.

Análisis de ventajas

  • Efectivo para las operaciones de inversión de la pesca de fondo y para los rebotes de tendencia contraria
  • La media móvil ayuda a fijar las ganancias y gestionar los riesgos
  • El mecanismo de doble señal mejora la validez de la señal y reduce las falsas señales
  • Combina los puntos fuertes de las estrategias de seguimiento de tendencias y de inversión
  • Los parámetros ajustables permiten flexibilidad para las diferentes condiciones del mercado

Análisis de riesgos

  • Las señales de reversión pueden ser falsas, lo que conduce a pérdidas de operaciones
  • El ajuste inadecuado de los parámetros puede causar un exceso de negociación, aumentando los costos
  • Las señales de venta de la media móvil pueden salir prematuramente de las tendencias rentables
  • Los riesgos como la búsqueda del stop-loss persisten durante los mercados volátiles
  • Los parámetros deben optimizarse para diferentes instrumentos

Para hacer frente a los riesgos, se puede hacer lo siguiente:

  1. Ajustar los parámetros de inversión para mejorar la validez de la señal
  2. Ajuste de los parámetros de la media móvil para prorrogar el período de retención
  3. Se añade el stop-loss para limitar las pérdidas
  4. Optimizar los parámetros por separado para diferentes instrumentos

Oportunidades de mejora

La estrategia puede mejorarse en varios aspectos:

  1. Añadir filtros para garantizar la validez de la señal

    Se pueden añadir indicadores adicionales como las rupturas de volumen como filtros para evitar operaciones falsas.

  2. Ajustar los parámetros para adaptarse a los mercados cambiantes

    Pruebe varias combinaciones de parámetros y seleccione el conjunto que da el mayor rendimiento.

  3. Incorporar el aprendizaje automático para la optimización adaptativa

    Recopilar grandes conjuntos de datos históricos, entrenar modelos de ML para pronosticar puntos óptimos de entrada / salida y optimizar dinámicamente los parámetros.

  4. Optimizar los parámetros por separado para diferentes instrumentos

    Los instrumentos tienen diferentes características, por lo que sus parámetros óptimos también difieren.

Conclusión

El Sistema de Breakout de Reversión de Doble Bajo combina sinérgicamente el seguimiento de tendencias y el comercio de reversión. Permite comprar en mínimos después de caídas y obtener ganancias de tendencias utilizando promedios móviles. La combinación efectiva de señales de reversión y tendencia capitaliza las oportunidades de reversión mientras bloquea ganancias. A pesar de algunos riesgos, la estrategia se puede mejorar a través de la optimización de parámetros, la adición de filtros, etc. para adaptarse a diferentes condiciones del mercado. Proporciona información efectiva para el comercio cuantitativo y merece una mayor mejora.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/09/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 indicator plots the moving average described in the January, 1998 issue
// of S&C, p.57, "Smoothing Techniques for More Accurate Signals", by Tim Tillson.
// This indicator plots T3 moving average presented in Figure 4 in the article.
// T3 indicator is a moving average which is calculated according to formula:
//     T3(n) = GD(GD(GD(n))),
// where GD - generalized DEMA (Double EMA) and calculating according to this:
//     GD(n,v) = EMA(n) * (1+v)-EMA(EMA(n)) * v,
// where "v" is volume factor, which determines how hot the moving average’s response
// to linear trends will be. The author advises to use v=0.7.
// When v = 0, GD = EMA, and when v = 1, GD = DEMA. In between, GD is a less aggressive
// version of DEMA. By using a value for v less than1, trader cure the multiple DEMA
// overshoot problem but at the cost of accepting some additional phase delay.
// In filter theory terminology, T3 is a six-pole nonlinear Kalman filter. Kalman
// filters are ones that use the error — in this case, (time series - EMA(n)) — 
// to correct themselves. In the realm of technical analysis, these are called adaptive
// moving averages; they track the time series more aggres-sively when it is making large
// moves. Tim Tillson is a software project manager at Hewlett-Packard, with degrees in
// mathematics and computer science. He has privately traded options and equities for 15 years.  
//
// 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


T3A(Length, b) =>
    pos = 0.0
    xPrice = close
    xe1 = ema(xPrice, Length)
    xe2 = ema(xe1, Length)
    xe3 = ema(xe2, Length)
    xe4 = ema(xe3, Length)
    xe5 = ema(xe4, Length)
    xe6 = ema(xe5, Length)
    c1 = -b*b*b
    c2 = 3*b*b+3*b*b*b
    c3 = -6*b*b-3*b-3*b*b*b
    c4 = 1+3*b+b*b*b+3*b*b
    nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
    pos:= iff(nT3Average > close, -1,
           iff(nT3Average < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & T3 Averages", 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, "---- T3 Averages ----")
LengthT3 = input(5, minval=1)
b = input(0.7, minval=0.01,step=0.01) 
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = T3A(LengthT3, b)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
	   iff(posReversal123 == -1 and posT3A == -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.