Estrategia de reversión de tendencia dinámica


Fecha de creación: 2024-01-16 15:35:18 Última modificación: 2024-01-16 15:35:18
Copiar: 0 Número de Visitas: 592
1
Seguir
1617
Seguidores

Estrategia de reversión de tendencia dinámica

Descripción general

La estrategia de inversión de seguimiento de tendencias dinámicas es una estrategia de negociación cuantitativa a corto plazo basada en indicadores de JD Sequential. La estrategia determina la dirección y la intensidad de la tendencia actual al rastrear los altos y bajos de los precios en tiempo real, para capturar de manera eficiente los giros del mercado y los tiempos de entrada y salida.

  1. El uso de puntos altos y bajos para determinar la tendencia, en lugar de precios cerrados, permite capturar los cambios de precios más rápidamente.
  2. El contador tiene un máximo de 7 en lugar de 9, lo que permite generar señales de transacción más rápidamente.
  3. Se añaden las opciones de soporte de líneas de resistencia y el recuento de 5 inversiones para detener el daño.

La estrategia es adecuada para su uso en períodos de tiempo de línea corta, como 5 minutos, 15 minutos, para capturar eficazmente las fluctuaciones de precios a corto plazo y las oportunidades de reversión.

Principio de estrategia

La lógica central de la estrategia de seguimiento de tendencias dinámicas para el reverso se basa en el indicador JD Sequential, que determina si los precios han creado altos más altos o bajos más bajos de forma consecutiva al comparar el ciclo actual con los máximos y mínimos de los dos períodos anteriores, dando un número de orden de 1 a 7. Cuando el número acumulado llega a 7, se produce una transacción.

En concreto, la estrategia define las siguientes variables:

  • sp_up: es verdadero cuando el precio de la cima supera el precio de la cima del segundo ciclo anterior
  • sp_dn: es verdadero cuando el precio mínimo es inferior al precio mínimo del segundo ciclo anterior
  • sp_ct: registra el conteo actual, si sp_up o sp_dn es verdadero, + 1 conteo, hasta 7
  • sp_com: es verdad cuando la cuenta es igual a 7
  • sp_usr: median de 7 y sp_up, como resistencia a la subida
  • sp_dsr: el precio medio en sp_dn con una cuenta de 7 como soporte a la baja

La lógica para generar una señal de transacción es:

  • Señales de posiciones largas: sp_com es verdadero y sp_dn es verdadero, indicando que el recuento está terminado y en una tendencia bajista
  • Señales de posición corta: sp_com es verdadero y sp_up es verdadero, indicando que el recuento está completo y en una tendencia alcista

La lógica del stop loss es la siguiente:

  • Pérdida de posición larga: el recuento se invierte a 5 ((sp_up es verdadero) o el precio se pone en sp_usr
  • Pérdida de posición corta: el recuento se invierte a 5 ((sp_dn es verdadero) o el precio rompe sp_dsr

La estrategia determina la dirección y la intensidad de la tendencia a través de puntos altos y bajos en tiempo real, el contador de entrada de tiempo, que puede capturar eficazmente las oportunidades de reversión a corto plazo. Al mismo tiempo, establece una línea de parada para controlar el riesgo.

Análisis de las ventajas

En comparación con las estrategias tradicionales de JD Sequential, la estrategia de inversión de seguimiento de tendencias dinámicas tiene las siguientes ventajas:

  1. La generación de señales más rápida. El uso de la comparación de puntos altos y bajos puede capturar tendencias más rápido que el cierre de la cotización. El conteo de 7 puede generar señales más rápido que el conteo de 9.
  2. Aumentar el mecanismo de detención de pérdidas. Añadir 5 countbacks y apoyar la detención de resistencia puede controlar mejor el riesgo.
  3. Flexibilidad de configuración. Se puede elegir si se incluye el stop loss y si se muestra el recuento parcial.
  4. Apto para líneas cortas. Las señales de alta frecuencia se combinan con el deterioro adecuado, especialmente para los períodos de tiempo de líneas cortas.

La principal ventaja de esta estrategia es su capacidad de respuesta rápida y su capacidad de capturar con eficacia las grandes fluctuaciones causadas por eventos inesperados a corto plazo. Al mismo tiempo, la generación de señales de algoritmo y el stop loss pueden reducir el impacto emocional de los operadores, lo que aumenta la estabilidad, en comparación con las operaciones completamente manuales.

Análisis de riesgos

La estrategia de seguimiento de tendencias dinámicas también tiene ciertos riesgos:

  1. Las transacciones de alta frecuencia aumentan los costos de transacción. Las transacciones de mayor frecuencia generan más comisiones y costos de deslizamiento.
  2. En un mercado convulso, la comparación de los puntos altos y bajos puede desencadenar frecuentemente señales de negociación y ser fácilmente manipuladas.
  3. El parón es demasiado radical. El parón duro es fácil de seccionar, se puede considerar el parón de desplazamiento a tiempo.

Para reducir los riesgos mencionados anteriormente, se puede optimizar en los siguientes aspectos:

  1. Ajustar el tamaño de las posiciones y reducir la ocupación de capital en una sola transacción.
  2. Suspender las operaciones en situaciones de crisis para evitar que las transacciones se vuelvan inválidas
  3. El uso de paros móviles o paros de ruptura de rango reduce la probabilidad de ser cubierto.

Dirección de optimización de la estrategia

La estrategia de inversión de seguimiento de tendencias dinámicas tiene mucho espacio para optimización, y las principales direcciones incluyen:

  1. La combinación de múltiples períodos de tiempo. Se puede determinar la dirección de la tendencia principal en períodos de tiempo más altos, evitando la negociación en contra de la tendencia principal.

  2. Combinación con otros indicadores. Puede combinarse con indicadores de fluctuación, indicadores de volumen de intercambio, etc., para mejorar la calidad de la señal.

  3. Filtración de aprendizaje automático. Utiliza algoritmos de aprendizaje automático para juzgar auxiliarmente las señales de negociación, reduciendo las transacciones erróneas.

  4. Optimización de parámetros. Se pueden optimizar parámetros como el número de ciclos de recuento, el período de negociación y la proporción de posiciones para adaptarse a las diferentes condiciones del mercado.

  5. Aumentar los mecanismos de control de riesgo. Adición de más recursos de control de riesgo, como el stop loss móvil y el control de posición, para limitar aún más el riesgo.

  6. Recopilación de datos de resonancia. Ampliación de la cantidad de muestras de resonancia y el intervalo de tiempo, estabilidad de los parámetros de prueba.

Resumir

La estrategia de inversión de seguimiento de tendencias dinámicas determina la dirección y la intensidad de la tendencia a través de puntos altos y bajos en tiempo real, genera señales de negociación utilizando la regla de cuenta de 7 del indicador JD Sequential, y capta oportunidades de reversión a corto plazo con alta frecuencia. En comparación con la estrategia tradicional de JD, la estrategia ha mejorado el uso de la determinación de puntos altos y bajos, la reducción del ciclo de cuenta y el aumento del mecanismo de stop loss para obtener señales de negociación más oportunas.

La principal ventaja de esta estrategia es su rápida respuesta, adecuada para capturar reversiones en líneas cortas, pero también existe el riesgo de que las operaciones sean frecuentes y de que se detengan las pérdidas. Las direcciones de optimización futuras incluyen ajustes de parámetros, mejora de los mecanismos de control de riesgo, combinación de múltiples períodos de tiempo, etc. Mediante la optimización y la repetición continuas, la estrategia tiene potencial para ser una herramienta poderosa para capturar señales de reversión de corta duración de manera eficiente.

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

// @NeoButane 7 Dec. 2018
// JD Aggressive Sequential Setup
// Not based off official Tom DeMarke documentation. As such, I have named the indicator JD instead oF TD to reflect this, and as a joke.
//
// Difference vs. TD Sequential: faster trade exits and a unique entry. Made for low timeframes.
// - Highs or lows are compared instead of close.
// - Mirrors only the Setup aspect of TD Sequential (1-9, not to 13)
// - Count maxes out at 7 instead of 9. Also part of the joke if I'm going to be honest here

// v1 - Release - Made as a strategy, 7 count
//    . S/R on 7 count
//   .. Entry on 7 count
//  ... Exit on 5 count or S/R cross

//@version=3
title = "JD Aggressive Sequential Setup"
vers  = " 1.0 [NeoButane]"
total = title + vers
strategy(total, total, 1, 0)

xx        = input(true, "Include S/R Crosses Into Stop Loss")
show_sp   = input(true, "Show Count 1-4")
sp_ct     = 0
inc_sp(x) => nz(x) == 7 ? 1 : nz(x) + 1
sp_up     = high > high[2]
sp_dn     = low < low[2]
sp_col    = sp_up ? green : red
sp_comCol = sp_up ? red : green
sp_ct    := sp_up ? (nz(sp_up[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : sp_dn ? (nz(sp_dn[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : na
sp_com    = sp_ct == 7
sp_sr     = valuewhen(sp_ct == 5, close, 0)
sp_usr    = valuewhen(sp_ct == 7 and sp_up, sma(hlc3, 2), 0)
sp_usr   := sp_usr <= sp_usr[1] * 1.0042 and sp_usr >= sp_usr[1] * 0.9958 ? sp_usr[1] : sp_usr
sp_dsr    = valuewhen(sp_ct == 7 and sp_dn, sma(hlc3, 2), 0)
sp_dsr   := sp_dsr <= sp_dsr[1] * 1.0042 and sp_dsr >= sp_dsr[1] * 0.9958 ? sp_dsr[1] : sp_dsr
locc = location.abovebar
plotchar(show_sp and sp_ct == 1, 'Setup: 1', '1', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 2, 'Setup: 2', '2', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 3, 'Setup: 3', '3', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 4, 'Setup: 4', '4', locc, sp_col, editable=false)
plotshape(sp_ct == 5, 'Setup: 5', shape.xcross, locc, sp_comCol, 0, 0, '5', sp_col)
plotshape(sp_ct == 6, 'Setup: 6', shape.circle, locc, sp_comCol, 0, 0, '6', sp_col)
plotshape(sp_ct == 7, 'Setup: 7', shape.circle, locc, sp_comCol, 0, 0, '7', sp_col)
// plot(sp_sr, "5 Count Support/Resistance", gray, 2, 6)
plot(sp_usr, "7 Count Resistance", maroon, 2, 6)
plot(sp_dsr, "7 Count Support", green, 2, 6)

long  = (sp_com and sp_dn)
short = (sp_com and sp_up)
sl_l  = xx ? crossunder(close, sp_dsr) or (sp_ct == 5 and sp_up) or short : (sp_ct == 5 and sp_up) or short
sl_s  = xx ? crossover(close, sp_usr) or (sp_ct == 5 and sp_dn) or long : (sp_ct == 5 and sp_dn) or long

strategy.entry('L', 1, when = long)
strategy.close('L', when = sl_l)
strategy.entry('S', 0, when = short)
strategy.close('S', when = sl_s)