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.
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 * ATR
O número de pessoas que morreram foi estimado em Rwandan.close + Multiplier * ATR
O 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.
Esta estratégia de rastreamento de tendências baseada em canais de indicadores tem as seguintes vantagens:
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.
A estratégia também apresenta alguns riscos, principalmente:
Para controlar esses riscos, podemos tomar as seguintes medidas:
A estratégia também tem espaço para ser melhorada:
Com essas otimizações, a estabilidade e o rendimento da estratégia podem ser ainda mais aumentados.
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