TD Sequential Breakout and Retracement Buy/Sell Strategy (Estratégia de compra/venda de ruptura e retração sequencial da TD)

Autora:ChaoZhang, Data: 2024-04-01 11:23:26
Tags:

img

Resumo

Esta estratégia é uma estratégia de compra/venda baseada em breakout e retracement TD. Identifica pontos de reversão de tendência potenciais reconhecendo as 8a e 9a velas na sequência TD. Além disso, a estratégia considera o retracement após o breakout da sequência TD para melhorar a precisão dos pontos de entrada. Além disso, utiliza médias móveis como uma ferramenta auxiliar para determinação de tendência.

Princípios de estratégia

  1. Calcule a sequência TD: Determine se há 8 ou 9 velas ascendentes (descendentes) consecutivas, comparando o preço de fechamento atual com o preço de fechamento de 4 velas atrás.
  2. Determine os pontos de compra/venda: Quando houver 8 ou 9 velas consecutivas para cima (para baixo), marque os pontos de venda (compra) potenciais na 8a ou 9a vela.
  3. Considere o retracement: Após o rompimento da sequência TD, observe se o preço se retrocede.
  4. Determinação da tendência: utilizar a relação entre as médias móveis de 10 e 20 dias para determinar a direção da tendência atual, que serve de referência para decisões de compra/venda.

Vantagens da estratégia

  1. Identifica de forma eficaz os pontos de reversão de tendências potenciais, especialmente em tendências fortes em que os pontos de entrada de retração após as rupturas da sequência TD geralmente produzem boas taxas de risco/recompensa.
  2. Considerando a retracement após breakouts de sequência TD, a estratégia pode efetivamente filtrar alguns sinais falsos e melhorar a precisão dos pontos de entrada.
  3. O uso de médias móveis ajuda a determinar a direção da tendência atual, tornando a estratégia mais eficaz ao negociar na direção da tendência.

Riscos estratégicos

  1. Em mercados agitados, a sequência TD pode gerar muitos sinais falsos, levando a trocas frequentes e perdas de capital.
  2. A estratégia é sensível à seleção de parâmetros e diferentes ambientes de mercado podem exigir otimização e ajuste de parâmetros.
  3. A estratégia carece de um mecanismo de stop-loss claro e pode sofrer reduções significativas quando o mercado experimenta violentas flutuações.

Orientações para a otimização da estratégia

  1. Introduzir mais indicadores técnicos, como o RSI e o MACD, para melhorar a fiabilidade do sinal e os efeitos de filtragem.
  2. Para os retracements após rupturas da sequência TD, considerar a introdução de critérios de julgamento mais flexíveis, tais como o uso de indicadores como o ATR para ajustar dinamicamente a tolerância para retracements.
  3. Em termos de determinação da tendência, tente utilizar mais combinações de períodos de tempo, tais como a relação entre médias móveis de curto, médio e longo prazo, para obter um julgamento da tendência mais abrangente.
  4. Introduzir um mecanismo de stop-loss claro, como o stop-loss dinâmico baseado no ATR, para controlar a perda máxima por transação.

Resumo

Ao combinar sequências TD e médias móveis, esta estratégia pode identificar efetivamente pontos de reversão de tendência potenciais e melhorar a precisão dos pontos de entrada considerando situações de retracement.


/*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)

Mais.