Tabela de conteúdos

Robô de Fecha Fora com Stop ATR

Download

Resumo

📋 Descrição

Robô que opera o setup “Fecha Fora” das Bandas de Bollinger.

Quando um candle fecha fora da banda (superior ou inferior), o robô abre uma posição na direção contrária (reversão à média), usando stop loss baseado em ATR.


🎯 Lógica do Setup

Situação Ação Expectativa
🔴 Fecha fora da Banda Superior Venda Retorno à média
🟢 Fecha fora da Banda Inferior Compra Retorno à média
🛡️ Stop Loss ATR dinâmico Proteção adaptativa
🎯 Alvo Média ou múltiplo Realização de lucro

⚙️ Como Funciona

1️⃣ Detecção do Sinal

O robô monitora cada candle fechado e verifica:

<br>

2️⃣ Cálculo do Stop Dinâmico

O ATR mede a volatilidade média recente. Multiplicando o ATR por um fator (ex: 2), obtemos um stop que:

<br>

3️⃣ Definição do Alvo

Duas opções:


📐 Fórmulas

📊 Bandas de Bollinger

MediaMovel = Media(Periodo, Fechamento)
DesvioPadrao = StdDevs(Fechamento, Periodo)
BandaSuperior = MediaMovel + (Multiplicador × DesvioPadrao)
BandaInferior = MediaMovel - (Multiplicador × DesvioPadrao)

<br>

📈 ATR (Average True Range)

ValorATR = AvgTrueRange(Periodo, 0);

<br>

🛡️ Stop Loss

StopCompra = PrecoEntrada - (ATR × MultiplicadorATR)
StopVenda = PrecoEntrada + (ATR × MultiplicadorATR)

💻 Código NTSL

parametro
  PeriodoBB(20);           // Período das Bandas de Bollinger
  DesviosBB(2.0);          // Número de desvios padrão
  PeriodoATR(14);          // Período do ATR
  MultiplicadorATR(2.0);   // Multiplicador para o Stop (2 = 2x ATR)
  AlvoMedia(verdadeiro);   // verdadeiro = alvo na média, falso = alvo em múltiplo do risco
  MultiplicadorAlvo(2.0);  // Se AlvoMedia=falso, alvo = risco × este valor
 
var
  mm, desvioPadrao, valorATR : real;
  bandaSuperior, bandaInferior : real;
  stopLoss, alvo : real;
  fechaForaCima, fechaForaBaixo: booleano;
 
inicio
  // Cálculo das Bandas de Bollinger
  mm := Media(PeriodoBB, Fechamento);
  desvioPadrao := StdDevs(Fechamento, PeriodoBB);
  bandaSuperior := mm + (DesviosBB * DesvioPadrao);
  bandaInferior := mm - (DesviosBB * DesvioPadrao);
 
  // Cálculo do ATR
  valorATR := AvgTrueRange(PeriodoATR, 0);
 
  // Detecção do Fecha Fora
  FechaForaCima := (Fechamento[1] < bandaSuperior[1]) e (Fechamento > bandaSuperior);
  FechaForaBaixo := (Fechamento[1] > bandaInferior[1]) e (Fechamento < bandaInferior);
 
  // ========== LÓGICA DE ENTRADA ==========
 
  // Entrada na COMPRA (fecha fora da banda inferior)
  se FechaForaBaixo e nao(HasPosition) entao
    BuyAtMarket;
 
  // Entrada na VENDA (fecha fora da banda superior)
  se FechaForaCima e nao(HasPosition) entao
    SellShortAtMarket;
 
  // ========== LÓGICA DE SAÍDA ==========
 
  // Saída da COMPRA
  se IsBought entao
  inicio
    // Calcula Stop e Alvo
    stopLoss := BuyPrice - (valorATR * MultiplicadorATR);
 
    se AlvoMedia entao
      alvo := mm
    senao
      alvo := BuyPrice + (valorATR * MultiplicadorATR * MultiplicadorAlvo);
 
    SellShortStop(stopLoss); // Stop Loss
    SellShortLimit(alvo);    // Take Profit
  fim;
 
  // Saída da VENDA
  se IsSold entao
  inicio
 
    // Calcula Stop e ATR
    stopLoss := SellPrice + (valorATR * MultiplicadorATR);
 
    // Calcula Alvo
    se AlvoMedia entao
      alvo := mm
    senao
      alvo := SellPrice - (valorATR * MultiplicadorATR * MultiplicadorAlvo);
 
    BuyStop(stopLoss); // Stop Loss
    BuyLimit(alvo);    // Take Profit
  fim;
 
  // ========== VISUALIZAÇÃO ==========
  Plot(mm);
  Plot2(bandaSuperior);
  Plot3(bandaInferior);
 
fim;

🔍 Como Interpretar

🚦 Sinais de Entrada

Sinal Condição Interpretação
🟢 Compra Candle fecha abaixo da banda inferior Sobrevendido
🔴 Venda Candle fecha acima da banda superior Sobrecomprado

<br>

🛡️ Gestão de Risco


⚠️ Limitações

Risco Descrição
📉 Drawdown Pode ocorrer em tendências fortes
🔄 Falso sinal “Fecha fora” em tendência pode ser continuação
💡 Sugestão Usar filtro de tendência (ex: ADX > 25)

🚀 Melhorias Possíveis

# Melhoria Benefício
1 📊 Filtro de tendência (ADX, MA200) Evitar operar contra tendência
2 🕐 Filtro de horário Evitar abertura/fechamento
3 📈 Trailing stop após 1:1 Maximizar ganhos
4 📊 Confirmação com volume Filtrar sinais fracos

Vídeos


➕ Mais informações

🗃️ ScApp_FechaForaComATR.psf

📽️ Vídeo explicativo