Estratégia de avanço da ATR de amplificação da proporção áurea da média móvel


Data de criação: 2024-02-26 15:02:26 última modificação: 2024-02-26 15:02:26
cópia: 0 Cliques: 684
1
focar em
1617
Seguidores

Estratégia de avanço da ATR de amplificação da proporção áurea da média móvel

Visão geral

Esta estratégia é uma estratégia de ruptura que utiliza o indicador ATR para construir sinais de negociação. A estratégia utiliza um sistema de linha uniforme para gerar sinais de negociação, construindo posições de vazio acima e abaixo do indicador ATR, amplificado pela divisão do ouro.

Princípio da estratégia

O código usa o indicador de ciclo ATR para obter o preço de fechamento e ampliá-lo 1,618 vezes como um traço superior e 2,618 vezes como um traço inferior, em combinação com a linha de equilíbrio e a construção de um sistema de negociação de ruptura do canal de Brin. Quando o preço se eleva do traço inferior, o preço se esvazia do traço superior para o lado inferior, para obter lucro de acompanhamento de tendência.

Vantagens estratégicas

  1. O indicador ATR captura de forma eficaz a volatilidade do mercado, utilizando a volatilidade para construir canais de negociação adaptáveis, evitando a sobre-configuração causada pelo uso de parâmetros fixos.
  2. O aumento do ATR após a divisão do ouro pode ampliar o espaço de ganho sem aumentar a frequência de negociação.
  3. O sistema de linha média filtra o ruído de curto prazo e, em combinação com o canal ATR, bloqueia tendências de linha média e longa.

Risco estratégico

  1. O índice ATR está atrasado na resposta a situações extremas.
  2. A divisão do ouro por multiplicações impróprias pode levar a uma frequência de transações excessiva.
  3. O sinal de comutação de linha média de longo período está atrasado.

Otimização de Estratégia

  1. O indicador ATR pode ser considerado em combinação com o índice de volatilidade de mercado VIX para uso ou ajuste de amplificação do múltiplo.
  2. Um sistema de linha média pode introduzir EMAs de períodos de tempo múltiplos, construindo um sistema de negociação adaptável.
  3. O mecanismo de stop loss pode ser criado para reduzir o máximo de perdas em uma única transação.

Resumir

Esta estratégia utiliza filtragem uniforme, rastreamento de canais ATR e o princípio da divisão do ouro. É capaz de rastrear efetivamente as tendências de linha média e longa, com boa estabilidade. Pode ser adaptado para diferentes tipos de aplicações em diferentes períodos por meio de ajustes de parâmetros.

Código-fonte da estratégia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)