Estrategia de seguimiento de tendencias cuantitativas combinadas

El autor:¿ Qué pasa?, Fecha: 2024-02-27 15:54:24
Las etiquetas:

img

Resumen general

La idea central de esta estrategia es combinar la estrategia de inversión 123 y el indicador del oscilador del arco iris para lograr un doble seguimiento de tendencias y mejorar la tasa ganadora de la estrategia.

Principios

La estrategia consta de dos partes:

  1. 123 Estrategia de reversión: Ir largo si el precio de cierre disminuye durante los dos días anteriores y sube hoy, y la línea Slow K de 9 días está por debajo de 50; Ir corto si el precio de cierre aumenta durante los dos días anteriores y cae hoy, y la línea Fast K de 9 días está por encima de 50.

  2. Indicador del oscilador del arco iris: Este indicador refleja el grado de desviación de los precios en relación con los promedios móviles. Cuando el indicador es superior a 80, indica que el mercado tiende a ser inestable. Cuando el indicador es inferior a 20, indica que el mercado tiende a revertirse.

Esta estrategia abre posiciones cuando aparecen señales largas y cortas, de lo contrario aplana las posiciones.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. El doble filtro mejora la calidad de la señal y reduce los errores de juicio.
  2. El ajuste dinámico de la posición reduce las pérdidas en los mercados unidireccionales.
  3. Integra indicadores a corto y medio plazo para mejorar la estabilidad.

Análisis de riesgos

Los riesgos de esta estrategia incluyen:

  1. La optimización incorrecta de los parámetros puede conducir a un sobreajuste.
  2. La doble apertura aumenta los costos comerciales.
  3. El punto de stop loss es vulnerable cuando el precio fluctúa violentamente.

Estos riesgos pueden mitigarse ajustando los parámetros, optimizando la gestión de las posiciones y estableciendo razonablemente el stop loss.

Direcciones de optimización

Esta estrategia puede optimizarse en los siguientes aspectos:

  1. Optimice los parámetros para encontrar la mejor combinación de parámetros.
  2. Se añadirá un módulo de gestión de posiciones para ajustar las posiciones dinámicamente en función de la volatilidad y la absorción.
  3. Aumentar el módulo de stop loss y establecer un stop loss móvil razonable.
  4. Aumentar los algoritmos de aprendizaje automático para ayudar a juzgar los puntos de inflexión.

Conclusión

Esta estrategia integra la estrategia de reversión 123 y el indicador del oscilador del arco iris para lograr un doble seguimiento de tendencia.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/05/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
// Ever since the people concluded that stock market price movements are not 
// random or chaotic, but follow specific trends that can be forecasted, they 
// tried to develop different tools or procedures that could help them identify 
// those trends. And one of those financial indicators is the Rainbow Oscillator 
// Indicator. The Rainbow Oscillator Indicator is relatively new, originally 
// introduced in 1997, and it is used to forecast the changes of trend direction.
// As market prices go up and down, the oscillator appears as a direction of the 
// trend, but also as the safety of the market and the depth of that trend. As 
// the rainbow grows in width, the current trend gives signs of continuity, and 
// if the value of the oscillator goes beyond 80, the market becomes more and more 
// unstable, being prone to a sudden reversal. When prices move towards the rainbow 
// and the oscillator becomes more and more flat, the market tends to remain more 
// stable and the bandwidth decreases. Still, if the oscillator value goes below 20, 
// the market is again, prone to sudden reversals. The safest bandwidth value where 
// the market is stable is between 20 and 80, in the Rainbow Oscillator indicator value. 
// The depth a certain price has on a chart and into the rainbow can be used to judge 
// the strength of the move.
//
// 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


RO(Length, LengthHHLL) =>
    pos = 0.0
    xMA1 = sma(close, Length)
    xMA2 = sma(xMA1, Length)
    xMA3 = sma(xMA2, Length)
    xMA4 = sma(xMA3, Length)
    xMA5 = sma(xMA4, Length)
    xMA6 = sma(xMA5, Length)
    xMA7 = sma(xMA6, Length)
    xMA8 = sma(xMA7, Length)
    xMA9 = sma(xMA8, Length)
    xMA10 = sma(xMA9, Length)
    xHH = highest(close, LengthHHLL)
    xLL = lowest(close, LengthHHLL)
    xHHMAs = max(xMA1,max(xMA2,max(xMA3,max(xMA4,max(xMA5,max(xMA6,max(xMA7,max(xMA8,max(xMA9,xMA10)))))))))
    xLLMAs = min(xMA1,min(xMA2,min(xMA3,min(xMA4,min(xMA5,min(xMA6,min(xMA7,min(xMA8,min(xMA9,xMA10)))))))))
    xRBO = 100 * ((close - ((xMA1+xMA2+xMA3+xMA4+xMA5+xMA6+xMA7+xMA8+xMA9+xMA10) / 10)) / (xHH - xLL))
    xRB = 100 * ((xHHMAs - xLLMAs) / (xHH - xLL))
    pos:= iff(xRBO > 0, 1,
           iff(xRBO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Rainbow 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, "---- Rainbow Oscillator ----")
LengthRO = input(2, minval=1)
LengthHHLL = input(10, minval=2, title="HHV/LLV Lookback")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRO = RO(LengthRO, LengthHHLL)
pos = iff(posReversal123 == 1 and posRO == 1 , 1,
	   iff(posReversal123 == -1 and posRO == -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.