Kaique Mitsuo Silva Yamamoto
Mercado financeiroAutomação de EstratégiasProfit / Nelogica NTSL

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.

NTSL — Backtesting e Otimização no Profit

O backtest é a primeira validação de uma estratégia — simula a execução no histórico para avaliar o desempenho antes de arriscar capital real. O Profit oferece dois modos de simulação com níveis distintos de fidelidade.

Funções de execução: NTSL — Funções de Execução | Automação: NTSL — Automação


Modos de Backtest

OHLC (Open-High-Low-Close)

Disponível no Profit Pro e Ultra.

  • Simula usando apenas os preços OHLC de cada candle
  • Rápido — ideal para testar conceitos e otimizar parâmetros
  • Menor precisão: não reproduz a sequência real de preços intracandle
  • Stops podem ser atingidos em ordem diferente da real
Candle: Abertura → Máxima → Mínima → Fechamento
        (ordem assumida — pode não refletir a realidade)

Quando usar: análise de estratégias com stops distantes do mercado, swing trade, posições de mais de 1 candle.


Tick a Tick

Disponível somente no Profit Ultra.

  • Reproduz fielmente o fluxo real de preços usando dados de tick
  • Máxima precisão — stops são atingidos exatamente como ocorreria ao vivo
  • Mais lento que o modo OHLC
  • Essencial para estratégias com stops apertados (scalping, day trade)

Quando usar: scalping, estratégias com stops < 50 pontos, qualquer estratégia que será usada em automação ao vivo.

CaracterísticaOHLCTick a Tick
DisponibilidadePro + UltraUltra apenas
PrecisãoModeradaAlta
VelocidadeRápidoMais lento
Uso recomendadoConceito, swingDay trade, scalping

Executando o Backtest

  1. Abra o Editor de Estratégias (ícone na barra ou menu)
  2. Escreva ou abra sua estratégia de execução
  3. Clique em "Compilar" para verificar erros de sintaxe
  4. Vá para a aba Backtest no editor
  5. Selecione o modo: OHLC ou Tick a Tick
  6. Configure período e parâmetros
  7. Clique em "Executar"

O gráfico exibirá os sinais de entrada/saída e o relatório de performance será gerado automaticamente.


Relatório de Performance

O backtest gera um relatório com as principais métricas:

Métricas Principais

MétricaDescriçãoMeta
Total de TradesNúmero de operações simuladasMín. 100-200 para significância
Taxa de Acerto% de trades positivosDepende do RR — ver abaixo
Profit FactorLucro bruto / Perda bruta> 1.5 (idealmente > 2.0)
Drawdown MáximoMaior queda do equity em %< 20% (prop firms: < 8%)
Resultado LíquidoP&L total do períodoPositivo, descontando custos
Média por TradeResultado médio por operaçãoPositivo após custos

Curva de Equity

A curva de equity mostra a evolução do capital ao longo do tempo. Características desejáveis:

  • Inclinação ascendente e consistente
  • Drawdowns moderados e recuperação rápida
  • Sem períodos longos de estagnação
// No código: plotar equity acumulada
var
  fResultAcum : Float;

begin
  fResultAcum := AutomationResult(True);
  Plot(fResultAcum);
end;

Otimização de Parâmetros (Profit Ultra)

O Otimizador de Parâmetros testa até 100.000 combinações diferentes de parâmetros e classifica as melhores pelo critério escolhido.

Como usar

  1. Após rodar o backtest, clique em "Otimizar estratégia"
  2. Defina o range de cada parâmetro (ex: Periodo de 5 a 50, step 1)
  3. Selecione a métrica de otimização (Profit Factor, Resultado, Drawdown...)
  4. Aguarde o processamento
  5. Analise os resultados ordenados

Cuidados com Overfitting

O otimizador encontra os melhores parâmetros para o passado — não necessariamente para o futuro.

Sinal de overfitting:
- Parâmetros muito específicos (ex: exatamente Periodo=17, Desvio=1.73)
- Performance cai drasticamente com pequenas variações (+/-1 no parâmetro)
- Resultado excelente no período otimizado, péssimo fora dele

Validação recomendada:

Período total: 2020–2025 (5 anos)

In-sample  (otimização): 2020–2023
Out-of-sample (validação): 2024–2025

Regra: se o out-of-sample mantiver ≥ 50% do desempenho in-sample → estratégia robusta

Análise de Sensibilidade

Teste o comportamento em vizinhanças do parâmetro ótimo:

Parâmetro encontrado: Periodo = 21

Teste de sensibilidade:
Periodo = 18, 19, 20, 21, 22, 23, 24

Se apenas Periodo=21 funciona → overfitting
Se resultados são bons em 18-24 → região robusta ("platô")

Custos de Transação

Sempre configure corretamente os custos para não superestimar resultados:

  • Corretagem: valor por ordem (ou por contrato)
  • Emolumentos B3: taxa da bolsa
  • Slippage: desvio esperado entre preço simulado e preço real

Para mini contratos (WIN, WDO):

  • Emolumentoses: ~R$ 0,10 por contrato por lado
  • Corretagem: R$ 0 a R$ 1,00 por ordem (depende da corretora)
// Estimar slippage no backtest — usar preço +/- N ticks
input
  SlippageTicks(2);

begin
  if bSinalCompra then
    BuyStop(High[1] + SlippageTicks * MinPriceIncrement,
            High[1] + SlippageTicks * MinPriceIncrement);
end;

Processo Completo: Backtest → Ao Vivo

EtapaDuraçãoO que avaliar
Backtest OHLCConceito válido? Profit Factor > 1.5?
Backtest Tick a TickResultados semelhantes ao OHLC?
OtimizaçãoRegião robusta nos parâmetros?
Out-of-sample≥ 50% do desempenho in-sample?
Conta simulada1-3 mesesSlippage real vs simulado? Emocional?
Conta real (lote mínimo)1-3 mesesExecução real conforme esperado?
Escala gradualAumentar lote após 3 meses positivos

Estratégias para Melhorar a Qualidade do Backtest

// 1. Não operar em dias de baixa liquidez
if (Volume < 1000) then exit;

// 2. Evitar o primeiro e último candle do pregão
if (Time < 905) or (Time >= 1655) then exit;

// 3. Verificar histórico mínimo antes de calcular
if (CurrentBar < 50) then exit;

// 4. Usar resultado acumulado para bloquear trading em dia ruim
if (DailyResult(False) <= -200) then exit;

Referências

Referências externas

On this page