Estratégia de acompanhamento da tendência baseada em SMA e ATR

Autora:ChaoZhang, Data: 2024-01-18 16:04:51
Tags:

img

I. Nome da estratégia

A estratégia é chamadaEstratégia de acompanhamento da tendência baseada em SMA e ATR.

II. Visão geral da estratégia

Esta estratégia usa o indicador SMA para determinar a direção da tendência do preço e define posições de stop loss com o indicador ATR para rastrear a tendência.

III. Princípio da estratégia

1. Sinais de entrada

(1) Faça o long quando o preço de fechamento subir e for superior à SMA.
(2) Vai curto quando o preço de fechamento cai e está abaixo da SMA.

2. Parar a configuração de perdas

Utilize o valor do indicador ATR multiplicado pelo múltiplo de perda de parada definido como a posição de perda de parada.

3. Parar de atualizar a perda

Depois de cada barra fechar, verifique a posição de stop loss e atualize-a para um valor de stop loss mais próximo do preço atual.

4. Sinais de saída

Activar o stop loss quando o preço tocar a linha de stop loss.

IV. Vantagens da Estratégia

1. Forte capacidade de acompanhamento de tendências

A configuração dinâmica de stop loss do indicador ATR permite o acompanhamento automático das tendências.

2. Bom controle da absorção

Regras estritas de stop loss ajudam a controlar o drawdown máximo por negociação.

3. Configuração de parâmetros simples

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

V. Riscos da estratégia

1. Risco de Stop Loss ser muito solto

Se o múltiplo de stop loss for demasiado elevado, a posição de stop loss poderá ser demasiado frouxa, aumentando assim o drawdown.

2. Riscos de Falsa Escapatória

Os falsos breakouts de preços podem levar a perder a direcção da tendência.

3. Riscos da otimização de parâmetros

A dependência excessiva da otimização dos parâmetros pode levar ao ajuste da curva.

VI. Orientações para a otimização da estratégia

1. Otimização do algoritmo de stop loss

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

2. Adicionar sinais de filtro

Outros indicadores podem ser adicionados para filtrar falhas, por exemplo, adicionando condições de volume de negociação.

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

Histórico de testes retrospectivos para avaliar a adaptabilidade dos parâmetros a diferentes produtos e prazos.

VII. Resumo

A ideia geral desta estratégia é clara. Ele julga a direção da tendência através da SMA e usa o ATR para rastrear tendências com bom controle de drawdown. É adequado para negociação de tendências de médio e longo prazo. Mas os parâmetros ainda precisam de um ajuste adequado na negociação ao vivo e os riscos de otimização excessiva devem ser evitados.


/*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")


Mais.