Introdução
O Profit Pro, da Nelogica, é uma das plataformas de trading mais utilizadas no Brasil para operar na B3. Uma das suas funcionalidades mais poderosas é a linguagem NTLS (Nelogica Trading Language Script), que permite criar robôs (Expert Advisors) automatizados para executar estratégias de daytrade sem intervenção manual.
Neste post, vamos construir juntos um robô simples baseado em cruzamento de médias móveis, cobrindo os principais elementos de uma estratégia: definição de posição, quantidade de contratos, entradas e saídas com StopGain e StopLoss.
O que é NTLS?
NTLS é a linguagem de programação proprietária do Profit Pro. Com ela você pode:
- Criar indicadores personalizados
- Programar robôs de execução automática
- Definir alertas e sinais de entrada/saída
- Fazer backtest de estratégias diretamente na plataforma
A linguagem tem sintaxe similar ao Pascal e é executada diretamente no gráfico, com acesso a preços, volumes e indicadores em tempo real.
Estrutura do Robô: Médias Móveis
A estratégia de cruzamento de médias móveis é um dos sistemas mais clássicos do trading algorítmico:
- Quando a média curta cruza para cima a média longa → Compra
- Quando a média curta cruza para baixo a média longa → Venda
Código NTLS Comentado
{=============================================
Robô de Médias Móveis - Daytrade
Plataforma: Profit Pro (Nelogica)
Linguagem: NTLS
=============================================}
{ ---- PARÂMETROS CONFIGURÁVEIS ---- }
input
Posicao : Integer = 1; { 1 = Comprado, -1 = Vendido, 0 = Sem filtro }
Contratos : Integer = 1; { Quantidade de contratos por operação }
PeriodoCurta : Integer = 9; { Período da média móvel rápida }
PeriodoLonga : Integer = 21; { Período da média móvel lenta }
StopGain : Float = 150; { Objetivo de lucro em pontos }
StopLoss : Float = 75; { Limite de perda em pontos }
{ ---- VARIÁVEIS ---- }
var
MediaCurta : Float;
MediaLonga : Float;
CruzouCima : Boolean;
CruzouBaixo : Boolean;
begin
{ Calcula as médias móveis simples }
MediaCurta := MediaMovel(PeriodoCurta, Close);
MediaLonga := MediaMovel(PeriodoLonga, Close);
{ Detecta cruzamento para cima (compra) }
CruzouCima := (MediaCurta[1] <= MediaLonga[1]) and (MediaCurta > MediaLonga);
{ Detecta cruzamento para baixo (venda) }
CruzouBaixo := (MediaCurta[1] >= MediaLonga[1]) and (MediaCurta < MediaLonga);
{ ---- LÓGICA DE COMPRA ---- }
{ Entra comprado se houve cruzamento de alta e posição permite compra }
if CruzouCima and (Posicao >= 0) and not IsBought then
begin
BuyAtMarket(Contratos);
SetStopGain(StopGain);
SetStopLoss(StopLoss);
end;
{ ---- LÓGICA DE VENDA ---- }
{ Entra vendido se houve cruzamento de baixa e posição permite venda }
if CruzouBaixo and (Posicao <= 0) and not IsSold then
begin
SellShortAtMarket(Contratos);
SetStopGain(StopGain);
SetStopLoss(StopLoss);
end;
{ ---- REVERSÃO DE POSIÇÃO ---- }
{ Fecha compra ao cruzar para baixo }
if CruzouBaixo and IsBought then
SellAtMarket(Contratos);
{ Fecha venda ao cruzar para cima }
if CruzouCima and IsSold then
BuyToCoverAtMarket(Contratos);
end;
Explicação dos Principais Elementos
🔧 Parâmetros (input)
| Parâmetro | Tipo | Descrição |
|---|---|---|
Posicao | Integer | Define se o robô opera comprado (1), vendido (-1) ou nos dois lados (0) |
Contratos | Integer | Quantidade de contratos por ordem |
PeriodoCurta | Integer | Período da MM rápida (ex: 9) |
PeriodoLonga | Integer | Período da MM lenta (ex: 21) |
StopGain | Float | Pontos de objetivo de lucro |
StopLoss | Float | Pontos máximos de perda permitida |
📈 Funções NTLS Utilizadas
MediaMovel(Periodo, Preco)— calcula a média móvel simplesBuyAtMarket(n)— envia ordem de compra a mercado com n contratosSellShortAtMarket(n)— envia ordem de venda a descobertoSellAtMarket(n)— fecha posição compradaBuyToCoverAtMarket(n)— fecha posição vendidaSetStopGain(pontos)— define o alvo de lucro em pontosSetStopLoss(pontos)— define o stop de proteção em pontosIsBought/IsSold— verifica se há posição aberta
Como Adicionar o Robô no Profit Pro
- Abra o Profit Pro e acesse Ferramentas → Editor de Estratégias
- Clique em Novo e selecione o tipo Expert Advisor (Robô)
- Cole o código acima e clique em Compilar
- Aplique o robô em um gráfico do ativo desejado (ex: WINM25, WDOM25)
- Configure os parâmetros conforme sua estratégia e ative a execução automática
Dicas para Otimizar o Robô
- 🔍 Backtest sempre: antes de operar ao vivo, rode o backtest com dados históricos no próprio Profit Pro
- ⏱️ Escolha o timeframe certo: para daytrade, os gráficos de 1min, 5min ou 15min costumam funcionar melhor
- 💰 Gestão de risco: calibre o StopLoss de acordo com o seu risco máximo diário
- 📊 Combine com filtros: adicione filtros de tendência (ex: IFR, Bandas de Bollinger) para reduzir sinais falsos
- 🚫 Horários críticos: considere não operar nos primeiros e últimos 30 minutos do pregão
Conclusão
Programar um robô de daytrade no Profit Pro com NTLS é mais acessível do que parece. Com poucos parâmetros e uma lógica clara, já é possível automatizar uma estratégia completa com entradas, saídas, StopGain e StopLoss. O exemplo de médias móveis serve como uma excelente base para evoluir para estratégias mais sofisticadas.
Tem dúvidas ou quer ver um robô mais avançado? Deixa nos comentários! 👇
Deixe uma resposta