Estrategia de reversión del impulso con doble confirmación

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

img

Resumen general

La estrategia de impulso de inversión combina señales de inversión de precios y señales de inversión de volatilidad para implementar el comercio de tendencias. Utiliza principalmente el patrón 123 para determinar los puntos de inversión de precios, mientras que utiliza la volatilidad del canal de Donchian como un filtro para señales falsas. Esta estrategia es adecuada para la tenencia a medio y largo plazo. Al confirmar dos veces las inversiones, puede capturar efectivamente los puntos de inflexión del mercado y lograr rendimientos excedentes.

Principio de la estrategia

La parte de la inversión de precios utiliza el patrón 123 para juzgar. Este patrón significa que los precios de las dos primeras líneas K se mueven en direcciones opuestas (hacia arriba o hacia abajo), y la tercera línea K se invierte nuevamente (hacia abajo o hacia arriba). Por lo tanto, se llama patrón 123. Cuando un precio aparece con tres líneas K invertidas, generalmente indica que una tendencia a corto plazo está a punto de cambiar. Para verificar aún más la confiabilidad de las reversiones de precios, esta estrategia también utiliza un indicador estocástico para activar operaciones solo cuando el indicador estocástico también se invierte (la línea rápida cae o aumenta rápidamente).

La parte de inversión de volatilidad utiliza la volatilidad del canal de Donchian. El canal de Donchian refleja principalmente el rango de fluctuación de precios. Cuando aumenta la volatilidad de precios, el ancho del canal de Donchian también se expande; cuando disminuye la volatilidad de precios, el ancho del canal de Donchian también se estrecha. La volatilidad del canal de Donchian (ancho) puede medir efectivamente el grado de fluctuación del mercado y el nivel de riesgo. Esta estrategia utiliza la inversión de la volatilidad del canal de Donchian para filtrar señales falsas, solo emitiendo señales comerciales cuando la volatilidad y los precios se invierten al mismo tiempo, evitando quedar atrapados en operaciones de devolución.

En resumen, esta estrategia garantiza la fiabilidad de las señales de negociación y controla los riesgos mediante la validación de doble inversión, lo que la convierte en una estrategia de tendencia relativamente sólida.

Ventajas

  • El mecanismo de doble filtrado garantiza la fiabilidad de las señales de negociación y evita las falsas rupturas
  • Controla los riesgos y reduce la probabilidad de pérdidas
  • Adecuado para la tenencia a medio y largo plazo, evita el ruido del mercado y captura los rendimientos excedentes
  • Gran espacio de optimización para los parámetros que se pueden ajustar para el estado óptimo
  • El estilo único funciona bien en combinación con indicadores técnicos comunes

Los riesgos

  • Se basa en la optimización de parámetros, los parámetros inadecuados afectan el rendimiento de la estrategia
  • La estrategia de stop loss necesita una mayor mejora, el control de extracción máxima necesita mejorar
  • La frecuencia de negociación puede ser baja, no puede adaptarse a la negociación algorítmica de alta frecuencia
  • Requiere la selección de productos adecuados y plazos, ámbito de aplicación limitado
  • El aprendizaje automático puede utilizarse para encontrar parámetros óptimos

Direcciones de optimización

  • Aumentar el módulo de stop loss adaptativo para reducir en gran medida el aprovechamiento máximo
  • Introducir un indicador de volumen de negociación para garantizar la entrada en breakouts de alto volumen
  • Optimizar los parámetros para una mejor estabilidad
  • Pruebe diferentes productos y plazos para encontrar el más adecuado
  • Intentar combinar con otros indicadores o estrategias para la sinergia 1+1>2

Resumen de las actividades

La estrategia de impulso de inversión logra un buen control de riesgos a través de la confirmación doble de la inversión de precios y la inversión de volatilidad. En comparación con los indicadores individuales, filtra mucho ruido y tiene una mejor estabilidad. Al mejorar la optimización de parámetros, los módulos de stop loss, la introducción de volumen, etc., esta estrategia puede mejorar aún más la calidad de la señal y la estabilidad de las ganancias. Es adecuado como un componente de las estrategias de mediano a largo plazo para acciones, criptomonedas, etc., y puede obtener buenos rendimientos excedentes cuando se combina adecuadamente con otros módulos.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2020
// 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 Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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.