Super ATR estratégia de rastreamento de tendências

Autora:ChaoZhang, Data: 2024-02-19 11:41:20
Tags:

超级ATR趋势跟踪策略

Resumo

A estratégia de rastreamento de tendências da superATR é uma estratégia de rastreamento de tendências baseada no indicador ATR. Ela usa o indicador ATR para medir a volatilidade do mercado e realiza o rastreamento de tendências com vários vezes o ATR como linha de stop-loss.

Princípios estratégicos

A estratégia começa com o cálculo do indicador ATR, onde o indicador ATR é a média móvel da amplitude da volatilidade do preço das ações nos últimos N dias, usada para indicar o risco e a volatilidade do mercado. A estratégia permite-nos alterar o método de cálculo do ATR e escolher o método normal ATR ou SMA.

Em seguida, o valor do ATR é multiplicado por um múltiplo como a trajetória do canal, ou seja, a trajetória é calculada:close - Multiplier * ATRO número de pessoas que morreram foi estimado em Rwandan.close + Multiplier * ATRO ATR é um indicador de crescimento e crescimento que representa um canal de tendência baseado no ATR.

Então, nós julgamos se o preço atual está entrando em uma tendência descendente se o preço está entrando em uma tendência descendente; se o preço está entrando em uma tendência ascendente se o preço está entrando em uma tendência ascendente. Quando o preço está entrando em uma tendência, nós compramos e vendemos de acordo.

Além disso, a estratégia também define uma janela de tempo de negociação para negociar apenas no período de tempo de uma data específica.

Vantagens estratégicas

Esta estratégia de rastreamento de tendências baseada em canais de indicadores tem as seguintes vantagens:

  1. O indicador ATR é usado para ajustar automaticamente a posição da parada, permitindo um controle eficaz do risco.
  2. O ATR leva em consideração a volatilidade dos preços das ações e a linha de stop loss é mais razoável.
  3. O acesso é melhorado com o uso de avanços de acesso.
  4. Permite ajustar o cálculo do ATR, aumentando a flexibilidade estratégica
  5. Configurar uma janela de tempo de negociação para evitar falhas estratégicas de eventos importantes

No geral, é uma estratégia simples e prática de acompanhamento de tendências, que controla os riscos de forma eficaz e obtém melhores resultados.

Análise de riscos

A estratégia também apresenta alguns riscos, principalmente:

  1. Quando os mercados estão em forte mudança, o ATR pode não responder às mudanças no mercado, o que pode levar ao alívio dos prejuízos.
  2. Quando as opiniões de muitos estão em desacordo, os preços podem flutuar dentro do canal, aumentando o risco de negociação.
  3. A configuração de múltiplos fixo pode não ser adequada para todas as variedades e precisa ser ajustada para diferentes variedades.
  4. setWindow limita as oportunidades de negociação, se não for configurado corretamente, pode perder oportunidades de negociação melhores

Para controlar esses riscos, podemos tomar as seguintes medidas:

  1. Em combinação com outros indicadores para julgar o estado do mercado, evitando a dependência de um único indicador ATR
  2. Aumentar as condições de filtragem para evitar que o risco de transação seja introduzido por uma ruptura ineficaz
  3. Escolha o fator de multiplicação apropriado de acordo com as características históricas das diferentes variedades
  4. Otimizar e testar os parâmetros do setWindow para garantir sua configuração correta

Optimização

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

  1. Algoritmos de aprendizagem de máquina podem ser introduzidos para a otimização dinâmica de múltiplas.
  2. Pode ser combinado com indicadores de emoção para avaliar múltiplos leves vazios e otimizar a gama de canais
  3. Aumentar o volume de transações ou confirmação de flutuações para evitar quebra inválida
  4. Backtest usando um framework estratégico baseado em tempo avançado

Com essas otimizações, a estabilidade e o rendimento da estratégia podem ser ainda mais aumentados.

Resumo

A estratégia global é uma estratégia de acompanhamento de tendências muito prática. Ela usa o indicador ATR para construir um canal adaptativo e determinar o momento de venda através do canal. A estratégia é simples, prática e eficaz para controlar o risco, adequada para acompanhar tendências de linha média e longa. Também apresentamos recomendações para o controle de riscos e otimização da estratégia, o que tornará a estratégia mais forte e robusta.


/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('B厂长 @超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
    time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
    strategy.entry('BUY', strategy.long, comment = '做多')
shortCondition = sellSignal
if shortCondition and window()
    strategy.entry('SAL', strategy.short, comment = '做空')

buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na



Mais informações