
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.
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.
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:
La lógica para generar una señal de transacción es:
La lógica del stop loss es la siguiente:
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.
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:
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.
La estrategia de seguimiento de tendencias dinámicas también tiene ciertos riesgos:
Para reducir los riesgos mencionados anteriormente, se puede optimizar en los siguientes aspectos:
La estrategia de inversión de seguimiento de tendencias dinámicas tiene mucho espacio para optimización, y las principales direcciones incluyen:
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.
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.
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.
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.
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.
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.
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.
/*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)