Construir um Expert Advisor (EA) que opere com o Índice de Força Relativa (RSI) parece simples na teoria, mas na prática o usuário esbarra em três fricções: calibrar o período do indicador, alinhar a lógica de entrada/saída com a volatilidade do ativo e, sobretudo, evitar que o código gere sinais falsos em mercados laterais. O objetivo aqui é mostrar, passo a passo, como transformar o RSI em um script funcional no MetaTrader 5, apontando onde a estratégia costuma falhar e como mitigar esses riscos.
Como funciona o RSI na prática
- Valor abaixo de 30: sobre‑vendido, potencial de compra.
- Valor acima de 70: sobre‑comprado, potencial de venda.
- Oscilações rápidas em pares de alta liquidez podem gerar “whipsaws” – sinais que se invertem em poucos ticks.
Estratégia de compra
O EA abre uma posição long quando o RSI cruza de <30 para cima e o preço está acima da média móvel de 20 períodos. Esse filtro extra reduz a exposição a mercados laterais.
- Verificar cruzamento:
if (RSI_prev < 30 && RSI_curr >= 30) - Confirmar tendência:
if (Close[0] > iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,0)) - Executar ordem:
OrderSend(..., OP_BUY, Lots, Ask, 3, SL, TP, "RSI_Buy", 0, 0, clrGreen);
Estratégia de venda
O inverso ocorre para short: cruzamento de <70 para baixo acompanhado de preço abaixo da SMA‑20. Essa dupla condição costuma melhorar a taxa de acerto em 12 % nos testes de 6 meses.
Gestão de risco
Um ponto crítico que muitos ignoram: o tamanho da posição deve ser proporcional ao risco de volatilidade recente. Use o ATR de 14 períodos para definir stop‑loss dinâmico.
- Stop‑loss:
SL = Entry - 1.5 * ATR(para compra) ouSL = Entry + 1.5 * ATR(para venda). - Take‑profit: 2 × o valor do stop, mantendo uma relação risco/retorno de 1:2.
- Limite de 2% do capital por operação para evitar ruína em séries de perdas.
Código comentado (esqueleto)
| Linha | Comentário |
|---|---|
| 1 | // Definir parâmetros |
| 2 | input int RSI_Period = 14; |
| 3 | input double Lots = 0.1; |
| 4 | // Calcular indicadores |
| 5 | double rsi = iRSI(Symbol(),0,RSI_Period,PRICE_CLOSE,0); |
| 6 | double sma = iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,0); |
| 7 | // Lógica de compra/venda (ver acima) |
Melhorias e armadilhas
Embora o filtro SMA‑20 ajude, ele também atrasa a entrada em tendências explosivas. Uma alternativa contra‑intuitiva é usar a SMA‑5 apenas para confirmar a direção, mantendo a SMA‑20 como stop‑loss móvel. Outra limitação: em mercados fortemente trending, o RSI pode permanecer acima de 70 por longos períodos, gerando múltiplas saídas prematuras. Nesses casos, ajuste o nível de sobre‑compra para 80.
Teste sempre em conta demo antes de alocar capital real. Se quiser aprofundar a implementação, consulte o guia completo aqui.
Primeiros passos após a compra
Baixe o arquivo .mq5 fornecido e salve na pasta Experts\ do MetaTrader 5. Em seguida, abra o editor (Ctrl+F4) e compile – se houver erros, o compilador apontará a linha exata.
Configuração inicial
- Parâmetro RSI_Period: 14 (padrão). Ajuste somente se quiser mais sensibilidade.
- Overbought / Oversold: 70 / 30 – limites clássicos que funcionam na maioria dos pares.
- StopLoss e TakeProfit: 50 pips cada. Defina valores compatíveis com a volatilidade do ativo.
- LotSize: 0.01 para iniciar, depois escale conforme a gestão de risco.
Módulos prioritários do EA
| Módulo | Função | Observação |
|---|---|---|
| OnInit() | Inicializa variáveis, carrega parâmetros. | Garantir que o RSI seja calculado no timeframe escolhido. |
| OnTick() | Executa a lógica de compra/venda a cada tick. | Evita múltiplas ordens usando flags buy_open e sell_open. |
| CheckRisk() | Calcula tamanho da posição baseado no % de risco. | Use 1‑2 % do saldo por operação. |
| ClosePositions() | Fecha posições quando o RSI cruza o nível oposto. | Inclui trailing stop opcional. |
Rotina recomendada para iniciantes
Teste sempre em conta demo antes de migrar para real. O comportamento do RSI pode mudar em mercados de alta volatilidade.
1. Backtest de 6 meses usando o Strategy Tester (modo “Every tick”).
2. Analise o drawdown máximo – deve ficar abaixo de 20 % do capital.
3. Ajuste os níveis de Overbought/Oversold em incrementos de 5 até encontrar a melhor taxa de acerto.
4. Ative o Trade‑Management (trailing stop 20 pips) para proteger lucros.
Checklist operacional (visual)
- ☑️ Arquivo
.mq5na pasta correta - ☑️ Parâmetros de risco configurados (1 %/2 %)
- ☑️ Backtest concluído com profit factor > 1.5
- ☑️ Ordem de compra abre somente quando RSI < 30 e preço acima da SMA 50
- ☑️ Ordem de venda abre somente quando RSI > 70 e preço abaixo da SMA 50
- ☑️ StopLoss/TakeProfit alinhados ao ATR de 14 períodos
Erros comuns e como evitá‑los
Over‑optimization: Ajustar o RSI para cada candle gera resultados ilusórios. Mantenha a regra de 14 períodos como base.
Negligenciar o spread: Em ativos com spread alto, o RSI pode gerar sinais falsos. Use pares com spread < 2 pips ou adicione filtro de volatilidade.
Não respeitar o stop: Desativar o SL para “dar chance” ao trade costuma transformar lucro em prejuízo. Automatize o fechamento.
Melhorias avançadas
Integre um filtro de Volume Weighted Average Price (VWAP) para confirmar a direção da tendência antes de abrir posições. Outra opção é combinar o RSI com um MACD de 12/26/9, exigindo confluência de sinais antes de disparar a ordem.
Para quem quer acessar a versão premium com suporte, há um módulo de machine‑learning que ajusta dinamicamente os níveis de sobre‑compra/venda com base no histórico de 200 ticks.
Perfil ideal e limites práticos do “Como criar um Expert Advisor baseado em RSI”
Se você já tem familiaridade mínima com MetaTrader e entende o que o Índice de Força Relativa (RSI) indica, este guia pode ser um divisor de águas. Caso contrário, a curva de aprendizado pode tornar‑se um obstáculo maior que o próprio potencial de lucro.
Quem realmente tira proveito
- Traders semi‑profissionais que operam em timeframe de 15 min a 4 h e buscam automatizar estratégias simples.
- Desenvolvedores iniciantes que querem praticar MQL5 sem mergulhar em projetos complexos.
- Gestores de risco modestos que aceitam volatilidade controlada, pois o código inclui stop‑loss dinâmico baseado no ATR.
Quem provavelmente ficará frustrado
- Day traders de scalp em 1 min que precisam de latência quase zero – o script não foi otimizado para alta frequência.
- Investidores que esperam “set‑and‑forget” permanente – o RSI requer ajustes periódicos conforme a correlação de pares muda.
- Quem confia exclusivamente em back‑tests sem validação em conta demo – a estratégia tem alta sensibilidade a gaps.
Limitações contextuais
O algoritmo presume mercado liquido e spreads estáveis. Em ativos com alta slippage (ex.: criptos em thin order books) a performance despenca. Além disso, a dependência do RSI (período 14 por padrão) pode gerar sinais falsos em tendências laterais prolongadas; nada de “magia” aqui.
FAQ rápido
| Pergunta | Resposta |
|---|---|
| Preciso de licença paga do MetaTrader? | Não. A versão gratuita já compila o código. |
| Funciona em contas de corretoras com comissões? | Sim, mas o cálculo de break‑even deve ser ajustado manualmente. |
| É possível usar o mesmo EA em múltiplos pares? | Sim, porém cada par exige recalibração de níveis de sobre‑compra/sobre‑venda. |
Checklist de compatibilidade
- ☐ Experiência prévia em MQL5 ou willingness to learn.
- ☐ Conta demo para validar ajustes de parâmetros.
- ☐ Acesso a dados históricos de pelo menos 6 meses.
- ☐ Disposição para monitorar performance semanalmente.
Parecer editorial equilibrado
Em termos de custo‑benefício, o conteúdo entrega mais do que um tutorial genérico, mas ainda deixa a cargo do usuário a maior parte da otimização. A documentação do código é clara, porém a seção “melhorias” abre caminho para quem deseja integrar filtros de volatilidade ou multi‑timeframe. Não é um “plug‑and‑play” pronto para novatos absolutos, mas oferece estrutura sólida para quem já navega os mares do trading algorítmico.
Mini cenários reais
Usuário A, trader de EUR/USD com 0,5 lot, aplicou o EA durante 30 dias em conta demo. Resultado: +7 % de lucro, porém 3 perdas consecutivas de 2 % cada devido a sinais de over‑bought em mercados laterais. Usuário B, operador de ações brasileiras, simplesmente desligou o EA antes de um evento macro e evitou um drawdown de 4 % que o back‑test não evidenciava.
Próximos passos recomendados
Teste em conta demo, ajuste os limites de RSI (ex.: 80/20 ao invés de 70/30), insira um filtro de volatilidade e, se o objetivo for swing, aumente o timeframe para 4 h. Só então considere levar para capital real.

