profitchart:youtube:codigos:robo_fechafora_atr
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:
- 📉 Fechamento acima da banda superior → sinal de venda
- 📈 Fechamento abaixo da banda inferior → sinal de compra
<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:
- 🌊 É maior em mercados voláteis (mais espaço)
- 😌 É menor em mercados calmos (stop mais apertado)
<br>
3️⃣ Definição do Alvo
Duas opções:
- 🎯 Média das Bollinger: Espera o preço retornar à média central
- 💰 Múltiplo do risco: Se arriscou 2 ATR, busca 4 ATR de ganho (2:1)
📐 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
- ✅ Stop em ATR adapta automaticamente à volatilidade
- ✅ Em dias voláteis, stop maior protege contra ruído
- ✅ Em dias calmos, stop menor maximiza eficiência
⚠️ 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
profitchart/youtube/codigos/robo_fechafora_atr.txt · Última modificação: por 127.0.0.1

