A estratégia é chamadaEstratégia de acompanhamento da tendência baseada em SMA e ATR.
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.
(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.
Utilize o valor do indicador ATR
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.
Activar o stop loss quando o preço tocar a linha de stop loss.
A configuração dinâmica de stop loss do indicador ATR permite o acompanhamento automático das tendências.
Regras estritas de stop loss ajudam a controlar o drawdown máximo por negociação.
Apenas 3 parâmetros facilitam o ajuste e otimização.
Se o múltiplo de stop loss for demasiado elevado, a posição de stop loss poderá ser demasiado frouxa, aumentando assim o drawdown.
Os falsos breakouts de preços podem levar a perder a direcção da tendência.
A dependência excessiva da otimização dos parâmetros pode levar ao ajuste da curva.
Outros tipos de algoritmos de stop loss podem ser testados, como stop loss móvel, stop loss proporcional, etc.
Outros indicadores podem ser adicionados para filtrar falhas, por exemplo, adicionando condições de volume de negociação.
Histórico de testes retrospectivos para avaliar a adaptabilidade dos parâmetros a diferentes produtos e prazos.
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")