Estrategia de coincidencia de doble carril de reversión de impulso combinado

El autor:¿ Qué pasa?, Fecha: 2023-11-24 10:17:15
Las etiquetas:

img

Resumen general

Esta estrategia combina múltiples indicadores técnicos para implementar la inversión de impulso y el emparejamiento de doble carril para generar señales comerciales. La estrategia utiliza el patrón 123 para determinar los puntos de reversión y combina las señales con el indicador ergótico CSI para rastrear tendencias. Su objetivo es capturar tendencias a medio corto plazo y lograr altas ganancias.

Principios

La estrategia consta de dos partes:

  1. Modelo para determinar los puntos de inversión
  2. Indicador CSI ergódico para generar señales de coincidencia

El patrón 123 juzga la inversión de precios basándose en los precios de cierre de las 3 barras recientes. Si el precio de cierre de la 3ra barra sube en comparación con las 2 barras anteriores, y las acciones rápidas y lentas están por debajo de 50, es una señal de compra. Si el precio de cierre de la 3ra barra cae en comparación con las 2 barras anteriores, y las acciones rápidas y lentas están por encima de 50, es una señal de venta.

El indicador ergódico CSI considera múltiples factores como el precio, el rango real, los indicadores de tendencia para determinar de manera integral las condiciones del mercado y generar zonas de compra / venta. Cuando el indicador se eleva por encima de la zona de compra, genera una señal de compra.

Por último, las señales de inversión de las señales de patrón y zona 123 del CSI ergótico son ANDed para producir la señal de estrategia final.

Ventajas

  1. Captura tendencias a medio y corto plazo, alto potencial de ganancia
  2. La determinación del patrón de reversión capta de manera efectiva los puntos de inflexión
  3. La combinación de dos rieles reduce las señales falsas

Los riesgos

  1. Las existencias individuales pueden divergir, lo que conduce a un stop loss
  2. Patrones de reversión susceptibles de verse afectados por los mercados de rango
  3. Espacio limitado de optimización de parámetros, fluctuación de rendimiento alta

Direcciones de optimización

  1. Optimizar los parámetros para mejorar la rentabilidad de la estrategia
  2. Añadir una lógica de stop loss para reducir la pérdida de una sola operación
  3. Incorporar modelos multifactoriales para mejorar la selección de las poblaciones

Conclusión

Esta estrategia realiza un seguimiento efectivo de las tendencias a mediano y corto plazo mediante la combinación de patrones de reversión y coincidencia de doble carril. En comparación con los indicadores técnicos únicos, tiene una mayor estabilidad y niveles de ganancia.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/07/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
// This is one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// 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

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

ECSI(r,Length,BigPointValue,SmthLen,SellZone,BuyZone) =>
    pos = 0
    source = close
    K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
    xTrueRange = atr(1) 
    xADX = fADX(Length)
    xADXR = (xADX + xADX[1]) * 0.5
    nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
    xCSI = iff(close > 0,  nRes / close, 0)
    xSMA_CSI = sma(xCSI, SmthLen)
    pos := iff(xSMA_CSI > BuyZone, 1,
             iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic CSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
LengthECSI = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.06, minval=0.00001)
BuyZone = input(0.02, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECSI = ECSI(r,LengthECSI,BigPointValue,SmthLen,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posECSI == 1 , 1,
	   iff(posReversal123 == -1 and posECSI == -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.