NTSL — Módulo de Automação e Execução ao Vivo
Como configurar e usar o Módulo de Automação do Profit: modos de execução, horários de operação, limites de risco, controles de segurança, XRay, ConsoleLog e estratégias OCO.
NTSL — Módulo de Automação e Execução ao Vivo
O Módulo de Automação transforma uma estratégia de execução em um robô que opera ao vivo na sua conta. É o passo após o backtest — conecta o código NTSL à execução real na B3.
Fundamentos da linguagem: NTSL — Fundamentos | Funções de execução: Funções de Execução
Versões e Requisitos
| Versão | Backtesting | Automação ao Vivo |
|---|---|---|
| Profit Chart | Não | Não |
| Profit Pro | OHLC | Sim (módulo pago) |
| Profit Ultra | Tick-a-tick | Sim (módulo pago) |
O Módulo de Automação pode ser testado em trial de 7 dias antes da assinatura.
Criando uma Automação
- No Editor de Estratégias, abra sua estratégia de execução
- Clique em "Automatizar estratégia" na barra de ferramentas
- Configure os parâmetros na janela de criação de automação
- Selecione o ativo e a conta
A automação fica visível na Janela de Detalhes da Automação com abas: Gráfico, Resumo, XRay e Eventos.
Modos de Execução
Fechamento de Candle
O código é executado uma vez ao fechar cada candle. Mais conservador — evita ruído intracandle.
- Adequado para estratégias de swing, tendência, cruzamentos
- Menor volume de execuções — menor risco de ordens duplicadas
Condição Satisfeita
O código é executado a cada tick enquanto a condição for verdadeira. Mais reativo — indicado para scalping e estratégias rápidas.
- Requer cuidado extra com lógica de controle (evitar abrir múltiplas ordens)
- Verificar
HasPositioneHasPendingOrdersantes de cada ordem
// Proteção contra ordens duplicadas — essencial no modo "Condição Satisfeita"
begin
if not HasPosition and not HasPendingOrders then
begin
if (Close > Media(21, Close)) then
BuyAtMarket;
end;
end;Horários de Operação
Intervalo de Execução
Define o horário em que a automação pode enviar ordens:
Início: 09:00 | Fim: 17:00Intervalo de Suspensão
Define um período em que a automação fica pausada (ex: horário do leilão de abertura):
Suspensão: 09:00 às 09:05Encerramento no Código
Complementar à configuração da interface, é boa prática incluir no código:
// Encerrar posição antes do fechamento do pregão
if (Time >= 1655) then
begin
ClosePosition;
exit;
end;
// Não operar nos primeiros 5 minutos
if (Time < 905) then exit;Limites de Risco
Configuráveis na janela da automação:
| Parâmetro | Descrição |
|---|---|
| Objetivo de Ganho Diário | Para a automação quando lucro do dia atinge o alvo |
| Limite de Perda Diária | Para a automação quando perda do dia atinge o limite |
| Perdas Consecutivas | Para após N trades negativos seguidos |
Implementar no Código (complementar)
var
dResult : Float;
begin
dResult := DailyResult(True);
// Stop diário
if (dResult <= -300) then
begin
ClosePosition;
exit;
end;
// Objetivo atingido
if (dResult >= 600) then
begin
ClosePosition;
exit;
end;
// Lógica normal da estratégia
if not HasPosition then
begin
if (Close > Media(21, Close)) then
BuyAtMarket;
end;
end;Controles de Segurança
Controle de Falha
Ação a tomar se a estratégia parar inesperadamente (ex: queda de conexão):
- Fechar posição: encerra o trade e cancela ordens
- Manter posição: deixa o trade aberto para monitoramento manual
- Nenhuma ação: mantém ordens e posição
Controle de Leilão
Define o comportamento durante períodos de leilão (pré-abertura, circuito breaker):
- Zerar posição automaticamente
- Ignorar e aguardar retorno do pregão normal
Controle de Flood
Limita a quantidade de ordens enviadas em um intervalo de tempo para evitar floods de execução. Útil no modo "Condição Satisfeita".
ConsoleLog — Log em Tempo Real
A função ConsoleLog() registra mensagens na aba Eventos da Janela de Detalhes da Automação:
Procedimento ConsoleLog(Mensagem: String; Preco: Float): Void;var
sAvgFast, sAvgSlow, sPrevAvgFast, sPrevAvgSlow : Float;
begin
sAvgFast := Media(9, Close);
sAvgSlow := Media(21, Close);
sPrevAvgFast := sAvgFast[1];
sPrevAvgSlow := sAvgSlow[1];
if (sPrevAvgFast < sPrevAvgSlow) and (sAvgFast > sAvgSlow) then
begin
ConsoleLog("Cruzamento de compra detectado no preço " + FloatToStr(sPrevAvgFast), sPrevAvgFast);
BuyLimit(Close, 1);
end
else if (sPrevAvgFast > sPrevAvgSlow) and (sAvgFast < sAvgSlow) then
begin
ConsoleLog("Cruzamento de venda detectado no preço " + FloatToStr(sPrevAvgSlow), sPrevAvgSlow);
SellShortLimit(Close, 1);
end;
end;Os logs aparecem na aba Eventos com timestamp, tipo de evento e mensagem — excelente para depuração ao vivo.
XRay — Raio-X da Estratégia (Premium)
Disponível no Automação Premium ou superior. O XRay exibe visualmente no gráfico:
- Estado atual de cada condição lógica do código
- Quais condições estão sendo satisfeitas a cada tick
- Depuração visual sem precisar adicionar
ConsoleLogmanualmente
Acesso: botão XRay na janela de detalhes da automação.
Padrão OCO — One Cancels Other
O Profit não tem OCO nativo, mas pode ser implementado com BuyStop + SellShortStop simultâneos:
input
pCompra(136000);
pVenda(134000);
lote(1);
begin
// Envia os dois lados simultaneamente
if not HasPosition and not HasPendingOrders then
begin
BuyStop(pCompra, pCompra, lote);
SellShortStop(pVenda, pVenda, lote);
end;
// Se compra foi executada, cancela a venda e vice-versa
if HasPosition then
CancelPendingOrders;
end;Janela de Detalhes da Automação
| Aba | Conteúdo |
|---|---|
| Gráfico | Gráfico do ativo com sinais da automação plotados |
| Resumo | Status atual: posição, ordens, P&L, parâmetros |
| XRay | Análise visual das condições lógicas (Premium) |
| Eventos | Log de eventos: ConsoleLog, ordens, posições abertas/fechadas |
O Resumo exibe em tempo real:
- Lado da posição (Comprado/Vendido/Neutro)
- Quantidade em aberto
- Preço médio e resultado em aberto
- Resultado do dia e acumulado
Termômetro de Estratégias
Ferramenta que monitora múltiplas automações simultaneamente no mesmo gráfico. Exibe visualmente quantas estratégias estão compradas, vendidas ou neutras — útil para sistemas com múltiplos robôs.
Disponível para usuários com Automação Premium ou superior.
Acesso: cabeçalho do gráfico → ícone do Termômetro, ou menu de contexto do gráfico.
Checklist Antes de Operar ao Vivo
- Backtest com resultados positivos em período representativo (mínimo 1-2 anos)
- Validação em conta simulada por pelo menos 1 mês
- Stop diário configurado tanto na interface quanto no código
- Modo de execução adequado à estratégia (candle close vs tick a tick)
- Horários de operação configurados
-
ConsoleLogadicionado nos pontos críticos para monitoramento - Lote mínimo no início (1 contrato) para validar execução real
- Contato da corretora anotado para emergências
Referências
Referências externas
NTSL — Funções de Execução (Ordens e Posição)
Referência completa das funções de execução em NTSL: ordens a mercado, limite e stop para compra e venda, gestão de posição, resultados e consulta de estado no Profit Nelogica.
NTSL — Backtesting e Otimização no Profit
Como rodar e interpretar backtests no Profit Nelogica: modos OHLC e Tick a Tick, relatório de performance, otimização de parâmetros e processo de validação antes de operar ao vivo.