Estrategia de emparejamiento de doble vía con inversión de impulso


Fecha de creación: 2023-11-24 10:17:15 Última modificación: 2023-11-24 10:17:15
Copiar: 0 Número de Visitas: 613
1
Seguir
1617
Seguidores

Estrategia de emparejamiento de doble vía con inversión de impulso

Descripción general

La estrategia utiliza varios indicadores técnicos para lograr el cambio de tendencia y el emparejamiento de dos vías para formar una señal de negociación. La estrategia utiliza el punto de inflexión de juicio de la forma 123, para formar una señal de emparejamiento con el indicador CSI ergodic, para lograr el seguimiento de la tendencia. La estrategia tiene como objetivo capturar la tendencia de la línea media corta y obtener una mayor ganancia.

Principio de estrategia

La estrategia tiene dos partes:

  1. 123 El punto de inflexión en el juicio formal
  2. Los indicadores ergodic CSI generan una señal de pareja

El juicio de forma 123 es un juicio de reversión de precios a través de la relación de precios de cierre de las 3 líneas K más recientes. La lógica de juicio específica es: Si las dos primeras líneas K son cerradas después de una subida en el precio y el índice de stoch rápido y lento está por debajo de 50, es una señal de compra. Si las dos primeras líneas de K son cerradas después de una caída, y el indicador de stoch rápido y lento actual está por encima de 50, la señal de venta es:

El CSI ergodic toma en cuenta factores como el precio, la amplitud real y el indicador de tendencias para evaluar el movimiento del mercado y generar zonas de compra y venta. Cuando el indicador está por encima de la zona de compra se genera una señal de compra y por debajo de la zona de venta se genera una señal de venta.

Finalmente, la señal de reversión de la forma 123 se opera con la señal orbital de la CSI ergodic para obtener la señal de estrategia final.

Ventajas estratégicas

  1. Captura de tendencias de corta línea con mayor potencial de ganancias
  2. El juicio de la forma inversa, para capturar el punto de inflexión
  3. El emparejamiento de dos vías reduce las señales falsas

Riesgo estratégico

  1. Las acciones pueden desviarse y causar pérdidas.
  2. Las inversiones son vulnerables a los movimientos de mercado
  3. El espacio para optimizar los parámetros es limitado y los resultados varían.

Dirección de optimización

  1. Optimización de parámetros para mejorar la rentabilidad de las estrategias
  2. Aumentar la lógica de stop loss y reducir las pérdidas individuales
  3. Modelos multifactoriales para mejorar la calidad de la selección de acciones

Resumir

Esta estrategia permite un seguimiento eficaz de las tendencias de la línea corta en pares mediante el emparejamiento de la forma inversa con las dos vías. Tiene una mayor estabilidad y nivel de ganancias en comparación con un solo indicador técnico. El siguiente paso será optimizar aún más los parámetros y agregar módulos de stop loss y stock option para reducir el retroceso y mejorar el efecto general.

Código Fuente de la Estrategia
/*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 )