Tendência dinâmica após estratégia de reversão


Data de criação: 2024-01-16 15:35:18 última modificação: 2024-01-16 15:35:18
cópia: 0 Cliques: 592
1
focar em
1617
Seguidores

Tendência dinâmica após estratégia de reversão

Visão geral

A estratégia de reversão de rastreamento de tendências dinâmicas é uma estratégia de negociação quantitativa de curto prazo baseada no indicador JD Sequential. A estratégia determina a direção e a intensidade da tendência atual, capturando com eficiência os pontos de reversão do mercado e o tempo de entrada e saída. Em comparação com a estratégia tradicional de JD Sequential, a estratégia tem as seguintes melhorias:

  1. Usando altos e baixos para avaliar a tendência, em vez de preços de fechamento, é possível capturar mudanças de preços mais rapidamente.
  2. O contador com um número máximo de 7 em vez de 9 pode gerar um sinal de transação mais rápido.
  3. Aumentou a linha de resistência de suporte e a inversão de contagem de 5 como opção de parada.

A estratégia é adequada para uso em períodos de tempo de linha curta, como 5 minutos, 15 minutos, e pode efetivamente capturar oscilações de preços de curto prazo e oportunidades de reversão.

Princípio da estratégia

A lógica central da estratégia de reversão de rastreamento de tendências dinâmicas baseia-se no indicador JD Sequential, que determina se os preços criaram altos mais altos ou baixos mais baixos em sequência, comparando o período atual com os altos e baixos dos dois períodos anteriores, dando um número sequencial de 1 a 7. Quando o número acumulado chega a 7, a transação é produzida.

Em particular, a estratégia define as seguintes variáveis:

  • sp_up: é verdadeiro quando o preço do pico excede o preço do pico do segundo período anterior
  • sp_dn: é verdadeiro quando o preço do ponto mais baixo é menor que o preço do ponto mais baixo do segundo período anterior
  • sp_ct: registra a contagem atual, + 1 contagem se sp_up ou sp_dn for verdadeiro, até 7
  • sp_com: é verdadeiro quando a contagem é igual a 7
  • sp_usr: mediana de 7 com sp_up, como resistência ascendente
  • sp_dsr: mediana de 7 com sp_dn, como suporte para a baixa

A lógica de produção do sinal de transação é:

  • Sinais de posições longas: sp_com é verdadeiro e sp_dn é verdadeiro, indicando que a contagem está concluída e em uma tendência descendente
  • Sinais de posição curta: sp_com é verdadeiro e sp_up é verdadeiro, indicando que a contagem está concluída e em alta

A lógica de stop loss é:

  • Stop long: a contagem invertida para 5 ((sp_up for true) ou o preço acima de sp_usr
  • Posição curta de parada: a contagem invertida para 5 ((sp_dn é verdadeiro) ou o preço quebra sp_dsr

A estratégia determina a direção e a intensidade da tendência em tempo real, através da comparação de altas e baixas, e o cronômetro de entrada de jogo pode efetivamente capturar oportunidades de reversão em curto prazo. Ao mesmo tempo, define uma linha de parada para controlar o risco.

Análise de vantagens

Em comparação com a estratégia tradicional de JD Sequential, a estratégia de reversão de rastreamento de tendências dinâmicas tem as seguintes vantagens:

  1. Um sinal mais rápido. O uso de uma comparação de altas e baixas pode capturar tendências mais rapidamente do que o preço de fechamento, e um 7 pode gerar um sinal mais rápido do que um 9.
  2. Aumentar o mecanismo de parada de perda. Adicionar a inversão de contagem de 5 e apoiar a parada de resistência pode controlar melhor o risco.
  3. Flexibilidade de configuração: opção de adicionar ou não o stop loss e exibir a contagem parcial
  4. Adequado para linhas curtas. Os sinais de alta frequência são combinados com a perda adequada, especialmente para períodos de tempo curtos.

A principal vantagem da estratégia é a rapidez de resposta, que pode efetivamente capturar as grandes flutuações causadas por surpresas de curto prazo. Ao mesmo tempo, em comparação com a negociação totalmente manual, a geração de sinais de algoritmo e o stop loss podem reduzir o impacto emocional dos comerciantes, aumentando assim a estabilidade.

Análise de Riscos

A estratégia de inversão de tendências dinâmicas também tem riscos:

  1. As transações de alta frequência aumentam os custos de transação.
  2. É fácil de produzir sinais errados. Em mercados de turbulência, a comparação de altos e baixos pode desencadear sinais de negociação com frequência e é fácil de ser manipulada.
  3. A paragem é muito radical. A paragem rígida é facilmente seccionada e pode ser considerada uma paragem de deslocamento oportuna.

Para reduzir os riscos acima mencionados, pode-se fazer otimizar as seguintes áreas:

  1. Ajustar o tamanho das posições e reduzir a ocupação de capital por transação única.
  2. Suspender a negociação em situações de turbulência para evitar transações inválidas.
  3. O uso de stop loss móvel ou stop loss de ruptura de intervalos reduz a probabilidade de ser operado.

Direção de otimização da estratégia

A estratégia de inversão de tendências dinâmicas ainda tem muito espaço para otimização, e as principais direções são:

  1. A combinação de múltiplos períodos de tempo. Pode determinar a direção da tendência principal em períodos de tempo mais elevados, evitando a negociação contra a tendência principal.

  2. Combinação com outros indicadores. Pode ser combinado com indicadores de taxa de flutuação, indicadores de volume de transação, etc., para melhorar a qualidade do sinal.

  3. Filtragem de aprendizagem de máquina. Utiliza algoritmos de aprendizagem de máquina para auxiliar o julgamento de sinais de negociação, reduzindo as transações erradas.

  4. Optimização de parâmetros. Pode ser otimizado o número de ciclos de contagem, período de negociação, proporção de posse, etc. parâmetros, para se adequar a diferentes condições de mercado.

  5. Aumento do mecanismo de controle de risco. Adição de meios de controle de risco mais abundantes, como stop loss móvel e controle de posição, para limitar ainda mais o risco.

  6. Ampliação da quantidade de amostras e do intervalo de tempo de resposta, estabilidade dos parâmetros de teste.

Resumir

A estratégia de reversão de rastreamento de tendências dinâmicas determina a direção e a intensidade da tendência em tempo real com base em pontos altos e baixos, gerando sinais de negociação usando a regra de contagem de 7 indicadores do JD Sequential para capturar oportunidades de reversão de curto prazo com alta frequência. Em comparação com a estratégia tradicional de JD, a estratégia usa o julgamento de pontos altos e baixos, reduz o ciclo de contagem e aumenta o mecanismo de stop loss, o que permite obter sinais de negociação mais oportunos.

A principal vantagem da estratégia é a resposta rápida, adequada para capturar reversões em linhas curtas, mas também existe o risco de frequência de negociação, radical de perda. As direções de otimização futuras incluem ajustes de parâmetros, reforço do mecanismo de controle de risco, combinação de múltiplos períodos de tempo, etc. Através da otimização contínua e da repetição, a estratégia pode ser uma ferramenta poderosa para capturar sinais de reversão de curto prazo de forma eficiente.

Código-fonte da estratégia
/*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)