Estratégia de negociação de rompimento de momentum


Data de criação: 2023-11-14 11:19:05 última modificação: 2023-11-14 11:19:05
cópia: 3 Cliques: 731
1
focar em
1617
Seguidores

Estratégia de negociação de rompimento de momentum

Visão geral

A estratégia usa a linha de Brin e o indicador ATR em combinação com a EMA para julgar e formar uma estratégia de negociação de quebra de dinâmica. Quando o preço sobe, quebra a linha de Brin e quebra rapidamente a linha de EMA, gera um sinal de compra. Quando o preço desce, quebra a linha de Brin e quebra rapidamente a linha de EMA, gera um sinal de venda.

Princípio da estratégia

  1. Calcule a linha média, a linha superior e a linha inferior da linha de Brin. A linha média é a linha média SMA de n períodos, a linha superior é a linha média + m*n ciclo padrão diferencial, subtração da linha média -m*N padrão de ciclo de diferença.

  2. Calcular o indicador ATR para acompanhar o stop loss.

  3. Calcule a linha média do EMA de 1 e n ciclos para determinar a dinâmica dos preços.

  4. Quando o preço atravessa a trajectória de Brin e atravessa rapidamente a linha média do EMA de n períodos, um sinal de compra é gerado.

  5. Quando o preço atravessa a trajectória de Brin abaixo e rapidamente atravessa a linha média da EMA de n ciclos, gera um sinal de venda.

  6. O indicador ATR é usado para definir o ponto de parada, para rastrear a direção da ruptura do preço e evitar a substituição.

Análise de vantagens

  1. A linha de Brin combinada com o ATR Stop, pode controlar o risco de forma eficaz.

  2. A EMA tem que avaliar a direção do momento para evitar falsas rupturas.

  3. Os parâmetros da estratégia são ajustáveis para diferentes cenários de mercado.

  4. Os sinais de compra e venda são claros e a frequência de negociação é alta, adequada para negociações de linha curta.

  5. O indicador ATR é usado para rastrear perdas e travar perdas em tempo hábil.

Análise de Riscos

  1. Quando a linha de brinquedo é muito estreita, pode haver mais transações de ruído.

  2. A configuração do parâmetro ATR é pequena demais, podendo causar um ponto de parada muito próximo do encaixe.

  3. Os parâmetros da EMA precisam ser ajustados periodicamente, com efeitos diferentes em diferentes períodos.

  4. O que é mais importante é que os mercados intermédios podem gerar mais transações, por isso é preciso ter cuidado.

  5. O rastreamento do stop loss pode ser extremamente radical, podendo levar a um aumento dos prejuízos.

Direção de otimização

  1. Pode ser combinado com outros indicadores para filtrar os sinais de negociação. Por exemplo, o indicador RSI julga sobrecompra e sobrevenda, o indicador KDJ julga desvio e assim por diante.

  2. Pode-se considerar ajustar os parâmetros de linhas de Brin para que elas sejam mais adequadas às flutuações de preços.

  3. Pode-se testar a eficácia de diferentes parâmetros do ciclo EMA para encontrar a melhor combinação de parâmetros.

  4. Pode-se ajustar os parâmetros ATR de acordo com a taxa de flutuação inteligente, evitando que o stop loss seja muito radical.

  5. Pode-se considerar a inclusão de modelos de aprendizagem profunda para auxiliar na hora de comprar ou vender.

Resumir

Esta estratégia de pensamento global é clara, usando a linha de Brin para capturar a ruptura de preço, o ATR definir o limiar de perda, EMA julgar a direção do movimento, para julgar o movimento de ruptura em todos os sentidos, pode efetivamente capturar a tendência de preços de linha curta. Ao mesmo tempo, a combinação de vários indicadores para julgamento integrado, pode melhorar a qualidade do sinal. Mas também existem algumas direções de otimização, através de parâmetros de ajuste, combinação de indicadores, etc.

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

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 
// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
// plot(bbr, "Bollinger Bands %B", color=#26A69A)
// band1 = hline(1, "Overbought", color=#787B86, linestyle=hline.style_dashed)
// hline(0.5, "Middle Band", color=color.new(#787B86, 50))
// band0 = hline(0, "Oversold", color=#787B86, linestyle=hline.style_dashed)
// fill(band1, band0, color=color.rgb(38, 166, 154, 90), title="Background")








xATR  = atr(c)
nLoss = a * xATR




xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
emaFast   = ema(src,144)
emaSlow   = ema(src,576)
sma       =  sma(src, c)

above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

smaabove = crossover(src, sma)
smabelow = crossover(sma, src)


buy  = src > xATRTrailingStop and above and (bbr>20  or bbr<80)
sell = src < xATRTrailingStop and below  and  (bbr>20  or bbr<80)

// buy  = src > xATRTrailingStop 
// sell = src < xATRTrailingStop 


barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

// plot(emaFast , color = color.rgb(243, 206, 127), title="emaFast")

plot(xATRTrailingStop, color = color.rgb(233, 233, 232), title="xATRTrailingStop")

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)


// plotshape(buy,  title = "Sell",  text = 'Sell',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
// plotshape(sell, title = "buy", text = 'buy', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

// strategy.entry("short",   false, when = buy)
// strategy.entry("long ", true, when = sell)


strategy.entry("long",   true, when = buy)
strategy.entry("short ", false, when = sell)