Estratégia de trailing stop loss ATR


Data de criação: 2023-09-26 20:23:13 última modificação: 2023-09-26 20:23:13
cópia: 1 Cliques: 974
1
focar em
1617
Seguidores

A estratégia ATR de rastreamento de stop loss é uma estratégia de negociação baseada em um indicador de amplitude de onda real médio que define dinamicamente o ponto de stop loss. A estratégia é adequada para variedades de negociação de forex com alta volatilidade de preços, para definir um stop loss através do rastreamento dinâmico das flutuações do mercado, capturando lucros em grandes tendências e ao mesmo tempo controlando o risco.

Princípio da estratégia

A estratégia forma um canal de negociação através da computação do indicador AVERAGE (a linha média do preço) e do DIFF de trajectória ascendente e do DIFFLOW de trajectória descendente, calculados com base no indicador ATR. Quando o preço entra na trajetória ascendente, faça o overhead e quando o preço entra na trajetória descendente, faça o overhead.

Concretamente, a estratégia primeiro calcula a AVERAGE móvel simples do preço e o indicador ATR, e multiplica o DIFF ascendente e o DIFFLOW descendente por um factor múltiplo com base no valor do ATR. Isso forma um canal de negociação, cuja fronteira superior e inferior é determinada pelo DIFF e pelo DIFFLOW. Quando o preço se eleva, faz-se uma posição a mais; Quando o preço se desmonta, faz-se uma posição a menos.

Desta forma, a estratégia pode fazer mais de curto prazo para capturar lucros em grandes tendências, enquanto controla o risco através do rastreamento dinâmico de stop loss do ATR, adequado para variedades com maior volatilidade.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O indicador ATR é usado para travar perdas dinâmicas, permitindo a flexibilidade de definir o ponto de parada de acordo com a volatilidade do mercado, evitando que o stop loss fique muito perto ou muito longe.

  2. Criação de canais de negociação para capturar oportunidades de retorno de valor médio em grandes tendências. Esta estratégia pode obter melhores taxas de utilização de capital quando os preços permanecem em canais estagnados.

  3. Continuar a fazer mais curto-circuito para participar da tendência, sem prever que o preço suba ou desça, acompanhar a tendência para obter melhores lucros.

  4. Definição de parâmetros simples e regras de negociação, fáceis de entender e implementar, adequados para negociação automática.

  5. A taxa de utilização dos fundos é alta, não há necessidade de prever a direção da ruptura, e a negociação contínua permite obter mais oportunidades de lucro.

Análise de risco e otimização

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. A configuração do ATR para um parâmetro muito grande pode levar a uma distância de parada muito longa para o controle efetivo do risco. Recomenda-se a configuração do coeficiente ATR para 1 a 3 vezes o ATR diário.

  2. No mercado de liquidação, a oferta e a venda são ativas, a volatilidade dos preços é grande e os travas de parada são frequentes. O coeficiente ATR pode ser adequadamente ajustado para reduzir a frequência de travas de parada.

  3. Em alguns momentos, o preço pode atravessar um canal e depois voltar para trás, quando a estratégia produz perdas. Pode ser combinado com um filtro de tendência, que só entra em jogo quando a direção da tendência atravessa o canal.

  4. Quando a variação é grande, o stop loss pode não ter um bom efeito de proteção. Considere adicionar a configuração de stop loss máximo, para evitar o stop loss excessivo.

A estratégia pode ser otimizada da seguinte forma:

  1. Otimizar os parâmetros ATR para encontrar o coeficiente de multiplicador ATR apropriado, que seja capaz de rastrear o stop loss e não seja demasiado sensível ao stop loss.

  2. Adicione indicadores de avaliação de tendência, faça mais apenas quando a tendência for alta, faça um vazio quando a tendência for baixa, evite negociações fora de tendência.

  3. Teste os parâmetros para cada variedade e encontre a combinação de parâmetros adequada para cada variedade.

  4. Optimizar as chances de entrada, considerando a entrada no eixo central do corredor.

  5. O que é necessário é aumentar o volume das reservas, mas também controlar os prejuízos globais.

Resumir

A estratégia de stop loss do ATR é usada para capturar lucros através da criação de canais de negociação e negociação contínua em grandes tendências, além de usar a configuração de stop loss dinâmica do ATR para controlar o risco. A estratégia é apropriada para variedades com maior flutuação e pode obter uma melhor utilização de capital. Na prática, os parâmetros de otimização são necessários e a adição de julgamentos de tendências pode ser considerada para aperfeiçoar ainda mais.

Código-fonte da estratégia
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Investoz

//@version=4
strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(26, type=input.integer, minval=1, title="Length")
mul = input(1, type=input.float, minval=0, title="Length")
mullow = input(2, 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("SALJ", strategy.short, when=bear_cross)
    strategy.close("SALJ", when=bull_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)