Estratégia de Stop Loss de Média de Faixa Verdadeira Seguindo Tendência

ATR TS
Data de criação: 2024-05-24 18:12:01 última modificação: 2024-05-24 18:12:01
cópia: 8 Cliques: 521
1
focar em
1617
Seguidores

Estratégia de Stop Loss de Média de Faixa Verdadeira Seguindo Tendência

Visão geral

A estratégia usa a amplitude real média (ATR) como base para rastrear o stop loss (TS) para atingir o objetivo de acompanhar a tendência, ajustando dinamicamente a posição de parada. Quando o preço se move na direção favorável, a posição de parada também se ajusta, bloqueando os lucros obtidos.

Princípio da estratégia

  1. O ATR reflete a volatilidade do mercado e é usado para medir a amplitude média das mudanças de preço.
  2. A distância de parada nLoss é calculada com base nos parâmetros ATR e KeyValue. KeyValue é o múltiplo do usuário personalizado, nLoss é o produto de KeyValue e ATR, indicando que a distância de parada é o número de vezes ATR.
  3. Calcule o trailingStop xATRTrailingStop. Quando você tem uma posição múltipla, defina-a como “o maior valor entre o preço máximo da linha K anterior e o preço de fechamento - nLoss”; Quando você tem uma posição vazia, defina-a como “o menor valor entre o preço mínimo da linha K anterior e o preço de fechamento + nLoss”.
  4. Gera um sinal de abertura de posição. Quando o preço de fechamento atravessa o xATRTrailingStop, faça mais; Quando o preço de fechamento atravessa o xATRTrailingStop, faça vazio.

Análise de vantagens

  1. A posição de stop-loss se ajusta dinamicamente com a oscilação dos preços, bloqueando os lucros e permitindo que os lucros se ampliem com a tendência.
  2. A posição de stop loss é baseada no cálculo do ATR, e é capaz de refletir objetivamente a volatilidade do mercado, sendo mais flexível e eficaz em comparação com o stop loss fixo, que é uma configuração subjetiva.
  3. Aumentando o ATR com o parâmetro KeyValue, você pode definir a distância de parada adequada de acordo com suas preferências de risco. Um KeyValue maior traz um espaço de parada mais amplo e uma menor frequência de parada.

Análise de Riscos

  1. As estratégias de tendência não funcionam bem em mercados de turbulência, com frequentes paralisações quando a tendência unilateral não é visível, resultando em uma rápida perda de capital.
  2. O tempo de entrada depende do sinal de cruzamento entre o preço de fechamento e a linha de parada dinâmica, que pode ocorrer em situações de choque.
  3. A estratégia de stop loss não pode evitar o salto de brecha causado pelo Big Money ou pelo Lido. A velocidade de ajuste da posição de stop loss não acompanha a velocidade da mudança de preço, resultando em perdas reais muito maiores do que as perdas controláveis esperadas.

Direção de otimização

  1. Pode-se adicionar indicadores de tendência, como o sistema de linha média, indicadores de dinâmica, etc., com base na estratégia, entrando apenas quando a tendência é clara, evitando a negociação frequente em mercados de turbulência.
  2. Pode-se considerar a introdução de estratégias de stop-loss, como a posição de posse calculada de acordo com a fórmula de Kelly, a configuração de um stop-loss de retirada de um número fixo de benefícios, etc., para reduzir a possibilidade de reversão de lucros potenciais no final da tendência.
  3. Para a brecha de salto alto, pode-se definir um limite máximo de stop loss, como um valor fixo ou uma porcentagem fixa, que, uma vez atingido o limite, é imediatamente interrompido, independentemente de onde o preço de stop loss está localizado.

Resumir

A estratégia de parada de rastreamento de ATR pode ajustar dinamicamente a posição de parada de acordo com a amplitude da flutuação dos preços, o que pode ter um bom efeito em situações de tendência. No entanto, a estratégia também não pode lidar com o risco de mercados turbulentos, parada muito frequente e fenda de salto difícil de evitar.

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

//@version=5
strategy("Long TAP", overlay=true)

// Constants
keyValueDefault = 3.0
keyValueStep = 0.5
atrPeriodDefault = 10

// Inputs
keyValue = input.float(keyValueDefault, title="Key Value")
atrPeriod = input.int(atrPeriodDefault, title="ATR Period")

// Calculations
xATR = ta.atr(atrPeriod)
nLoss = keyValue * xATR

// Trailing Stop Calculation
var float xATRTrailingStop = 0.0
xATRTrailingStop := ta.highest(math.max(nz(xATRTrailingStop[1], 0), close - nLoss), 1)
xATRTrailingStop := ta.lowest(math.min(nz(xATRTrailingStop, 0), close + nLoss), 1)

// Position Calculation
var int pos = 0
pos := nz(pos[1], 0)
if (close[1] < nz(xATRTrailingStop, 0) and close > nz(xATRTrailingStop, 0))
    pos := 1
else if (close[1] > nz(xATRTrailingStop, 0) and close < nz(xATRTrailingStop, 0))
    pos := -1

// Plotting Trailing Stop
var color xcolor = na
if (pos == -1)
    xcolor := color.red
else if (pos == 1)
    xcolor := color.green
plot(xATRTrailingStop, color=xcolor, title="Trailing Stop")

// Buy/Sell Signals
buySignal = ta.crossover(close, xATRTrailingStop)
sellSignal = ta.crossunder(close, xATRTrailingStop)

// Strategy
if (buySignal)
    strategy.entry("Long", strategy.long)
    label.new(bar_index, xATRTrailingStop, text="Buy Signal", color=color.green, style=label.style_label_up, yloc=yloc.belowbar)
if (sellSignal)
    strategy.entry("Short", strategy.short)
    label.new(bar_index, xATRTrailingStop, text="Sell Signal", color=color.red, style=label.style_label_down, yloc=yloc.abovebar)

// Alerts
alertcondition(buySignal, title='UT BOT Buy', message='UT BOT Buy')
alertcondition(sellSignal, title='UT BOT Sell', message='UT BOT Sell')