Estrategia de seguimiento de tendencias dinámicas de doble mecanismo


Fecha de creación: 2024-01-31 11:13:44 Última modificación: 2024-01-31 11:13:44
Copiar: 0 Número de Visitas: 558
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias dinámicas de doble mecanismo

Descripción general

La estrategia de seguimiento de tendencias dinámicas de doble mecanismo es una estrategia de seguimiento de tendencias que combina dos señales de estrategias de negociación diferentes. La estrategia primero utiliza la estrategia de inversión 123 para determinar el punto de reversión del precio, luego se combina con el índice de destrend para determinar la dirección de la tendencia del precio, y finalmente combina las dos señales para generar instrucciones de negociación.

La estrategia se utiliza principalmente para el seguimiento de tendencias a corto y medio plazo, el establecimiento de un punto de parada dinámico a través de un mecanismo dual, que permite bloquear los beneficios de manera efectiva y evitar la expansión de las pérdidas. Al mismo tiempo, la combinación de un indicador de tendencia y una doble confirmación de un indicador de reversión puede reducir el ruido de las operaciones.

Principio de estrategia

123 estrategias de reversión

La estrategia de reversión 123 proviene de Ulf Jensen, en su libro Cómo triplicar el capital en el mercado de futuros, página 183. Esta estrategia determina si el precio se presenta en dos reversiones consecutivas de BAR que constituyen una señal de reversión de precios.

La lógica específica es que si el precio de cierre es inferior al precio de cierre del día anterior y la línea K lenta es inferior a 50, se genera una señal de compra; si el precio de cierre es superior al precio de cierre del día anterior y la línea K rápida es superior a 50, se genera una señal de venta.

El índice de precios sintéticos de tendencia descendente

El D_DSP es un indicador para determinar la dirección de la tendencia de los precios, que se mantiene consistente con el cambio real en el ciclo de los precios. La forma de calcular el D_DSP es tomar la media móvil de 14 de ciclo de precios menos la media móvil de 12 de ciclo de precios.

Si D_DSP es positivo, significa que el precio está en tendencia al alza; si D_DSP es negativo, significa que el precio está en tendencia a la baja.

El juicio de doble mecanismo

La estrategia genera instrucciones de operaciones si las dos señales son homogéneas (como el doble más o el doble vacío) mediante la combinación de la estrategia de inversión 123 y el mecanismo de juicio del índice D_DSP. Si las señales no son homogéneas, se despoja la posición.

Este mecanismo de doble confirmación puede filtrar el ruido de las transacciones y bloquear las tendencias de ganancias.

Análisis de las ventajas

La mayor ventaja de la estrategia de seguimiento de tendencias dinámicas de doble mecanismo reside en la configuración de dos niveles de puntos de parada. En primer lugar, en la dimensión temporal, el diferencial de los indicadores aleatorios rápidos y lentos forma un punto de parada de desviación temporal. En segundo lugar, en la dimensión de precios, la estrategia de inversión en sí misma contiene una cierta función de parada.

Estas dos capas de stop pueden bloquear al máximo las ganancias y evitar pérdidas de un solo stop. Además, el mecanismo de doble confirmación también puede filtrar eficazmente las señales de error generadas por cambios de precios no direccionales.

Análisis de riesgos

El mayor riesgo de esta estrategia reside en que los parámetros se establezcan demasiado rígidos. Por ejemplo, una configuración inadecuada de la longitud del ciclo puede perderse la tendencia principal, lo que permite perder oportunidades de ganancias o aumentar las pérdidas. La doble confirmación que se establece demasiado rígido también puede perderse el stop loss a tiempo.

Además, cuando se combina una estrategia de reversión con una estrategia de tendencia, las operaciones de liquidación en caso de discrepancia en el juicio de ambas también pueden perder la oportunidad de que la tendencia subsiguiente continúe en una dirección dominante.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización de los parámetros de ciclo. Calcular el valor óptimo de los parámetros con más datos de retroalimentación y configurar los parámetros de ciclo más adecuados.

  2. Aumentar las estrategias de parada de pérdidas, como romper las paradas, rastrear las paradas, etc., y establecer paradas más dinámicas y razonables.

  3. Optimización de las reglas de juicio. Ajuste la sensibilidad de los juicios de doble confirmación para evitar que se pierda la oportunidad de liquidar los depósitos de manera demasiado radical.

  4. Aumentar los filtros. Configurar los filtros de oscilación de precios para evitar señales de error de oscilación de la diferencia de la línea media de fin de tendencia.

Resumir

La estrategia de seguimiento de tendencias dinámicas de doble mecanismo permite un seguimiento de tendencias y control de riesgos efectivos mediante la doble confirmación de los indicadores aleatorios de doble parada y reversión y el juicio de tendencias. La estrategia considera tanto el factor de tiempo de la evolución de los precios como la orientación del precio en sí mismo, lo que forma la base de la decisión de la triangulación.

Se espera que la estrategia obtenga mejores resultados mediante la optimización continua de las reglas de juicio y la configuración de los parámetros. Sin embargo, la optimización de la estrategia de negociación requiere el apoyo de una gran cantidad de pruebas de datos históricos, y la estrategia de opción de acciones y la estrategia de parada de pérdidas también requieren un perfeccionamiento continuo.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/11/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
// Detrended Synthetic Price is a function that is in phase with the 
// dominant cycle of real price data. This DSP is computed by subtracting 
// a half-cycle exponential moving average (EMA) from the quarter cycle 
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// 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

D_DSP(Length) =>
    pos = 0.0
    xHL2 = hl2
    xEMA1 = ema(xHL2, Length)
    xEMA2 = ema(xHL2, 2 * Length)
    xEMA1_EMA2 = xEMA1 - xEMA2
    pos := iff(xEMA1_EMA2 > 0, 1,
             iff(xEMA1_EMA2 < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & D_DSP (Detrended Synthetic Price)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDSP = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_DSP = D_DSP(LengthDSP)
pos = iff(posReversal123 == 1 and posD_DSP == 1 , 1,
	   iff(posReversal123 == -1 and posD_DSP == -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 )