Estratégia de acompanhamento de tendências com base em SMA e ATR


Data de criação: 2024-01-18 16:04:51 última modificação: 2024-01-18 16:04:51
cópia: 0 Cliques: 637
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências com base em SMA e ATR

Nome da estratégia

Esta estratégia chama-seEstratégia de acompanhamento de tendências com base em SMA e ATR

Segundo, um resumo da estratégia

Esta estratégia usa o indicador SMA para determinar a direção da tendência de preços e usa o indicador ATR para definir a posição de stop loss para acompanhar a tendência. Faça um curto-circuito quando o preço cai em uma tendência ascendente e faça mais quando o preço quebra uma tendência descendente, realizando uma negociação de tendência.

Três, estratégia.

1. Entrar em sinal

(1) Fazer mais quando o preço de fechamento sobe e está acima do SMA (2) Fazer um corte quando o preço de fechamento cai e está abaixo do SMA

2. Parar a perda

Utilize o valor do indicador ATR multiplicado pelo múltiplo de stop loss definido como posição de stop loss.

3. Parar de atualizar

A cada fechamento da linha K, verifique a posição de stop loss e atualize-a para a mais próxima do preço atual.

4. Sinal de saída

O preço tocou a linha de stop loss e saiu.

Quatro, vantagens estratégicas

1. Forte capacidade de rastreamento de tendências

A configuração de stop loss dinâmica com o indicador ATR permite o acompanhamento automático da tendência.

2. A capacidade de retirada é boa.

As regras rígidas de stop loss ajudam a controlar o máximo de retração de uma única transação.

3. Parâmetros simples

Apenas 3 parâmetros para ajuste e otimização.

Cinco, riscos estratégicos.

1. Perda de liquidez pode ser excessiva

Se o parâmetro de perda for definido de forma excessiva, isso pode levar a que a posição de perda fique muito relaxada, aumentando a retração.

2. Riscos de uma falsa invasão

Quando ocorre uma falsa ruptura no preço, isso pode levar a uma desorientação da tendência e deve ser combinado com outros sinais de filtragem de indicadores.

3. Parâmetros de otimização de risco

A otimização de parâmetros excessivamente dependentes pode levar à otimização da curva. A estabilidade dos parâmetros deve ser cuidadosamente avaliada.

Seis, estratégias para otimizar

1. Otimização de algoritmos de stop loss

Outros tipos de algoritmos de stop loss podem ser testados, como stop loss móvel, stop loss proporcional, etc.

2. Aumentar os sinais de filtragem

Outros indicadores podem ser adicionados para filtrar as falsas rupturas.

3. Avaliação da estabilidade dos parâmetros

A adaptabilidade dos parâmetros para diferentes variedades e ciclos é avaliada através de retrospectiva histórica.

VII. Conclusão

Esta estratégia tem uma visão geral clara, determina a direção da tendência através do SMA e usa o ATR para rastrear a tendência. A capacidade de controle de retração é boa e é adequada para a negociação de tendências de linha média e longa.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="SMA with ATR", overlay=true)

smaLen = input.int(100, title="SMA Length")

atrLen     = input.int(10, title="ATR Length")
stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25)


smaValue  = ta.sma(close, smaLen)
stopValue = ta.atr(atrLen) * stopOffset


lowerCloses = close < close[1] and 
     close[1] < close[2] and
     close[2] < close[3]

enterLong = close > smaValue and 
     lowerCloses


longStop = 0.0
longStop := if enterLong and strategy.position_size < 1
    close - stopValue
else
    math.max(close - stopValue, longStop[1])


higherCloses = close > close[1] and 
     close[1] > close[2] and
     close[2] > close[3]

enterShort = close < smaValue and 
     higherCloses


shortStop = 0.0
shortStop := if enterShort and strategy.position_size > -1
    close + stopValue
else
    math.min(close + stopValue, shortStop[1])


plot(smaValue, color=#4169e1, linewidth=2, title="SMA")

plot(strategy.position_size > 0 ? longStop : na, color=color.lime,
     style=plot.style_linebr, title="Long stop", linewidth=2)

plot(strategy.position_size < 0 ? shortStop : na, color=color.red,
     style=plot.style_linebr, title="Short stop", linewidth=2)


if enterLong
    strategy.entry("EL", strategy.long)

if enterShort
    strategy.entry("ES", strategy.short)


if strategy.position_size > 0
    strategy.exit("SL Long", from_entry="EL", stop=longStop)

if strategy.position_size < 0
    strategy.exit("SL Short", from_entry="ES", stop=shortStop)


if enterLong
    strategy.cancel("Exit Short")

if enterShort
    strategy.cancel("Exit Long")