Estrategia compuesta de impulso inverso

El autor:¿ Qué pasa?, Fecha: 2024-01-05 14:06:21
Las etiquetas:

img

Resumen general

La estrategia de Compuesto de Momento de Inversión combina una estrategia de reversión y una estrategia de impulso. Al utilizar tanto las señales de inversión de precios como las señales de indicadores de impulso, captura los puntos de inflexión del mercado con mayor precisión y entra en el mercado de manera oportuna a medida que el precio comienza a revertirse.

Estrategia lógica

La estrategia consta de dos partes:

  1. 123 Estrategia de inversión: Ir largo cuando el cierre es más alto que el cierre anterior durante 2 días consecutivos después de 2 días de cierre inferior, y la línea lenta K de 9 días está por debajo de 50; Ir corto cuando el cierre es más bajo que el cierre anterior durante 2 días consecutivos después de 2 días de cierre superior, y la línea rápida K de 9 días está por encima de 50.

  2. DAPD Momentum Breakout Strategy: DAPD es la diferencia promedio entre el máximo de 21 días y el mínimo de 21 días. Determine los puntos de entrada y salida basados en el breakout de DAPD.

Una señal de entrada se genera cuando dos estrategias dan señales alineadas.

Ventajas

La estrategia combina los méritos de las estrategias de reversión y de impulso, capturando con mayor precisión los puntos de inflexión.

  1. El doble filtro aumenta la confiabilidad de la señal, mayor tasa de éxito cuando las señales se alinean.

  2. El patrón 123 reduce el riesgo de fiebres.

  3. DAPD momento adecuado para productos de tendencia.

Los riesgos

  1. Las señales de dos estrategias pueden no alinearse perfectamente.

  2. Es difícil optimizar dos conjuntos de parámetros juntos.

  3. El riesgo de duplicación de los costes de transacción: se aplican comisiones a ambas estrategias.

Optimización

  1. Optimizar la alineación de la señal de dos estrategias.

  2. Eficacia de ensayo de diferentes conjuntos de parámetros en diferentes productos.

  3. Sólo toma señales de alta convicción para filtrar las débiles.

Conclusión

La estrategia de reversión de impulso compuesto captura el precio de reversión de manera oportuna mediante la combinación de los méritos de las estrategias de reversión y impulso. Los filtros duales aumentan la tasa de éxito. Se puede lograr una mayor mejora del rendimiento optimizando la alineación de la señal.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/12/2019
// 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 is similar to Bollinger Bands. It based on DAPD - Daily
// Average Price Delta. DAPD is based upon a summation for each of the
// highs (hod) for the 21 days prior to today minus the summation for
// each of the lows (lod) for the last 21 days prior to today. The result
// of this calculation would then be divided by 21.
// It will be buy when high above previos DAPD high and sell if low below previos DAPD low
//
// 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

DAPD(Length) =>
    pos = 0.0
    xHighSMA = sma(high, Length)
    xLowSMA = sma(low, Length)        
    nDAPD = xHighSMA - xLowSMA
    nTop = high + nDAPD
    nBottom = low - nDAPD
    pos :=  iff(high > nTop[1], 1,
    	     iff(low < nBottom[1], -1, nz(pos[1], 0)))    
    pos

strategy(title="Combo Backtest 123 Reversal & DAPD", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDAPD = input(21, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDAPD = DAPD(LengthDAPD)
pos = iff(posReversal123 == 1 and posDAPD == 1 , 1,
	   iff(posReversal123 == -1 and posDAPD == -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.