Estratégia de acompanhamento de tendências com base em super linhas de tendência


Data de criação: 2023-12-08 17:07:53 última modificação: 2023-12-08 17:07:53
cópia: 3 Cliques: 606
1
focar em
1621
Seguidores

Estratégia de acompanhamento de tendências com base em super linhas de tendência

Visão geral

Esta estratégia é uma estratégia de acompanhamento de tendências baseada no indicador Average True Range (ATR) para determinar a direção da tendência do mercado e dar sinais de negociação. A estratégia possui a função dupla de julgamento de tendências e acompanhamento de tendências e pode ser usada em índices de ações, futuros, divisas e moedas digitais.

Princípio da estratégia

A estratégia determina se o preço está dentro de um canal de tendência ascendente, calculando o indicador ATR em um determinado período e comparando-o com o preço. Concretamente, a estratégia primeiro calcula o indicador ATR e, em seguida, multiplica o valor do ATR para construir o alerta e o alerta. Quando o preço está acima do alerta, é considerado uma tendência ascendente; quando o preço está abaixo do alerta, é considerado uma tendência descendente.

A chave para esta estratégia é a construção de padrões para julgar a tendência e ultrapassar a linha de tendência. A linha de tendência ultrapassada é baseada na mudança dinâmica do indicador ATR, que pode filtrar efetivamente o ruído do mercado e determinar a direção da tendência principal.

Vantagens estratégicas

A maior vantagem da estratégia reside na capacidade de combinar o discernimento de tendências e o acompanhamento de tendências.

  1. A linha de tendência ultra-construída com o ATR permite identificar de forma eficaz as tendências do mercado, filtrando o ruído.
  2. A linha de tendência ultra tem um certo atraso, o que ajuda a reduzir os sinais errados.
  3. Pode ser usado para avaliar tendências e sinais de negociação ao mesmo tempo, sendo muito simples de operar.
  4. Os parâmetros de parametrização podem ser otimizados para um mercado mais amplo.
  5. Indicadores de visualização, intuitivos para avaliar o estado atual das tendências.

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. A configuração inadequada dos parâmetros ATR pode causar uma linha de tendência ultra sensível ou atrasada.
  2. Não é possível evitar completamente os efeitos do ruído, podendo ocasionar sinais errados em situações individuais.
  3. Quando as coisas estão muito flutuantes, a precisão de uma linha de tendência ultrapassada diminui.
  4. Não é possível prever o ponto de reversão da tendência, apenas seguir a tendência que já ocorreu.

No que diz respeito à resposta, pode ser otimizado por meio do ajuste de parâmetros como o ciclo ATR, o coeficiente de linha de tendência ultrapassada, ou pode ser verificado em combinação com outros indicadores, reduzindo a probabilidade de sinais errados. Além disso, pode ser configurado um ponto de parada para controlar a perda individual.

Direção de otimização

A estratégia ainda tem espaço para ser melhorada:

  1. Combinação de algoritmos de aprendizagem de máquina para otimização automática de parâmetros.
  2. Aumentar a avaliação e verificação de indicadores, como a média móvel e suave do índice.
  3. Estabelecer uma estratégia de stop loss e otimização da gestão de fundos.
  4. A combinação de indicadores de sentimentos e análise de notícias permite prever uma potencial reversão de tendências.
  5. A análise de dados históricos em larga escala, com a utilização de técnicas de aprendizagem profunda, permite uma maior precisão de julgamento.

A otimização em profundidade promete aumentar ainda mais a estabilidade, adaptabilidade e margem de lucro das estratégias.

Resumir

Esta estratégia, em geral, tem características de estabilidade, confiabilidade e bom rendimento. Construir uma linha de tendência para julgar as principais tendências e, ao mesmo tempo, dar sinais de negociação é o maior destaque da estratégia. Mas também há um certo grau de atraso e risco de erro.

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

//@version=4
strategy("Supertrend Strategy", overlay = true)

Periods = input(10, title="ATR Period")
src = input(hl2, title="Source")
Multiplier = input(3.0, title="ATR Multiplier", step=0.1)
changeATR = input(true, title="Change ATR Calculation Method?")
showsignals = input(true, title="Show Buy/Sell Signals?")
highlighting = input(true, title="Highlighter On/Off?")

atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2

up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up

dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)

dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)

longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white

fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)

strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)

alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")