Estratégias de compra e venda de pontos com base em rompimentos e retrações sequenciais de TD


Data de criação: 2024-04-01 11:23:26 última modificação: 2024-04-01 11:23:26
cópia: 3 Cliques: 755
1
focar em
1617
Seguidores

Estratégias de compra e venda de pontos com base em rompimentos e retrações sequenciais de TD

Visão geral

A estratégia é uma estratégia de breakout e retração de pontos de venda e compra baseada na sequência TD. Identifica os pontos de reversão de tendência em potencial identificando as linhas K de 8 e 9 na sequência TD. Além disso, a estratégia também considera a retração após a ruptura da sequência TD para melhorar a precisão do ponto de entrada.

Princípio da estratégia

  1. Calcule a sequência TD: Comparando o preço de fechamento atual com o preço de fechamento anterior a 4 linhas K, para determinar se há uma linha K de 8 ou 9 linhas consecutivas de alta (baixa).
  2. Determine os pontos de compra e venda: quando ocorrem 8 ou 9 linhas K em ascensão ((baixa) consecutiva, marque o potencial ponto de venda ((pontos de compra) na 8a ou 9a linha K.
  3. Considere a retração: Observe se o preço se retraziu após a ruptura da sequência TD. Se a ruptura ainda for mantida na linha K da 13a, 14a, 15a ou 16a linha, a ruptura é considerada válida, caso contrário, a ruptura é considerada nula.
  4. Julgamento de tendências: usa a relação entre as médias móveis de 10 e 20 dias para julgar a direção da tendência atual, como referência para decisões de compra e venda.

Vantagens estratégicas

  1. A capacidade de identificar com eficácia potenciais pontos de reversão de tendências, especialmente em tendências fortes, os pontos de entrada de retorno após a ruptura da sequência TD geralmente obtêm uma melhor relação de risco-ganho.
  2. Ao considerar a retirada após a ruptura da sequência TD, é possível filtrar efetivamente alguns sinais falsos e melhorar a precisão do ponto de entrada.
  3. O uso de médias móveis pode ajudar a determinar a direção da tendência atual, tornando a estratégia mais eficaz para operações de tendência.

Risco estratégico

  1. Em mercados de turbulência, a sequência TD pode apresentar uma maior quantidade de falsos sinais, resultando em transações frequentes e perda de fundos.
  2. A estratégia é sensível à escolha de parâmetros, que podem ser otimizados e ajustados em diferentes cenários de mercado.
  3. A falta de um mecanismo de stop loss claro pode levar a um maior risco de retração em situações de forte volatilidade.

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

  1. A introdução de mais indicadores técnicos, como RSI, MACD e outros, para melhorar a confiabilidade do sinal e a eficácia do filtro.
  2. Para as retrações após a ruptura da sequência TD, pode-se considerar a introdução de critérios de julgamento mais flexíveis, como a tolerância de retração de ajuste dinâmico usando indicadores como o ATR.
  3. No que diz respeito ao julgamento de tendências, pode-se tentar usar mais combinações de períodos de tempo, como relações de médias móveis de curto, médio e longo prazo, para obter um julgamento de tendências mais abrangente.
  4. A introdução de mecanismos de stop loss definidos, como o stop loss dinâmico baseado no ATR, para controlar a perda máxima de uma única transação.

Resumir

A estratégia, através da combinação de sequências TD e médias móveis, é capaz de identificar de forma eficaz os potenciais pontos de reversão de tendências e de melhorar a precisão dos pontos de entrada, levando em conta as situações de retração. Apesar de alguns riscos e limitações da estratégia, as medidas de otimização, como a introdução de mais indicadores técnicos, a otimização dos métodos de julgamento de tendências e a configuração de mecanismos de parada de perdas claras, podem melhorar ainda mais a robustez e a rentabilidade da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Dipak Shankarrao Chavhan", shorttitle="Dipak Chavhan", overlay=true, pyramiding=0, default_qty_value=10)
Numbers = input(true)
SR = input(true)

var int TD = 0
var int TS = 0
var int TDUp = 0
var int TDDn = 0

TD := close > close[4] ? TD[1] + 1 : 0
TS := close < close[4] ? TS[1] + 1 : 0
TDUp := TD - valuewhen(TD < TD[1], TD, 1)
TDDn := TS - valuewhen(TS < TS[1], TS, 1)

plotshape(Numbers ? (TDUp == 8 ? true : na) : na, style=shape.triangleup, text="8", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDUp == 9 ? true : na) : na, style=shape.triangleup, text="9", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDDn == 8 ? true : na) : na, style=shape.triangledown, text="8", color=color.new(color.red, 0), location=location.abovebar)
plotshape(Numbers ? (TDDn == 9 ? true : na) : na, style=shape.triangledown, text="9", color=color.new(color.red, 0), location=location.abovebar)

priceflip = barssince(close < close[4])
sellsetup = close > close[4] and priceflip
sell = sellsetup and barssince(priceflip != 9)
sellovershoot = sellsetup and barssince(priceflip != 13)
sellovershoot1 = sellsetup and barssince(priceflip != 14)
sellovershoot2 = sellsetup and barssince(priceflip != 15)
sellovershoot3 = sellsetup and barssince(priceflip != 16)
priceflip1 = barssince(close > close[4])
buysetup = close < close[4] and priceflip1
buy = buysetup and barssince(priceflip1 != 9)
buyovershoot = buysetup and barssince(priceflip1 != 13)
buyovershoot1 = buysetup and barssince(priceflip1 != 14)
buyovershoot2 = buysetup and barssince(priceflip1 != 15)
buyovershoot3 = buysetup and barssince(priceflip1 != 16)
TDbuyh = valuewhen(buy, high, 0)
TDbuyl = valuewhen(buy, low, 0)
TDsellh = valuewhen(sell, high, 0)
TDselll = valuewhen(sell, low, 0)
plot(SR ? (TDbuyh ? TDbuyl : na) : na, style=plot.style_circles, linewidth=2, color=color.red)
plot(SR ? (TDselll ? TDsellh : na) : na, style=plot.style_circles, linewidth=2, color=color.lime)

sma1 = sma(close, 10)
sma2 = sma(close, 20)



if TDbuyh
    strategy.entry("Enter Long", strategy.long)
else if TDselll
    strategy.entry("Enter Short", strategy.short)