O Detector de Mentiras: Criando seu Primeiro Robô de Backtest (Médias Móveis)

Introdução: Humanos mentem, Números não.

Você já ouviu algum “guru” dizer que este ou aquele setup é infalível? Que “basta comprar quando a média cruzar”?

No trading discricionário (manual), nós mentimos para nós mesmos. Ignoramos os stops, lembramos apenas dos gains e operamos baseados na emoção do momento. Na Academia do Mercado, nós não “achamos” nada. Nós testamos tudo.

Hoje, você vai transformar aquele código visual do post anterior em um Robô de Execução. Vamos criar um algoritmo que compra e vende automaticamente baseado em uma Média Móvel, e vamos descobrir se essa estratégia realmente dá dinheiro ou se é apenas lenda urbana.

Prepare-se. Vamos ligar o Detector de Mentiras do Profit Chart.


A Lógica: Simples, mas Poderosa

Para este primeiro backtest, usaremos a estratégia mais clássica da análise técnica: Seguimento de Tendência (Trend Following).

  • A Tese: Se o preço fecha acima da Média Móvel de 9 períodos, a tendência é de alta -> COMPRA.
  • A Tese: Se o preço fecha abaixo da Média Móvel de 9 períodos, a tendência é de baixa -> VENDA.

Parece simples demais? Grandes fortunas foram construídas apenas seguindo tendências. O segredo não é a complexidade, é a disciplina de execução. E robôs têm disciplina infinita.

Detector // BACKTEST_OS v1.0
Acertos: 0
Win Rate: 0%
A aguardar sinal do mercado…
Preço
MMA (9)
MMA (21)
A INICIAR MOTOR DE BACKTEST…

O Código (NTSL)

Copie o código abaixo e cole no seu Editor de Estratégias (mesmo processo do post anterior).

Atenção: Observe os novos comandos BuyAtMarket (Comprar a Mercado) e SellShortAtMarket (Vender a Mercado). São eles que transformam um indicador em um robô.

(Use o botão de cópia no canto direito do bloco abaixo 👇)

Input
  Periodo(9);

Var
  MinhaMedia : Float;

Begin
  // 1. Calculo da Media Movel Exponencial
  MinhaMedia := MediaExp(Periodo, Close);

  // 2. Plotagem (Visual)
  Plot(MinhaMedia);
  SetPlotColor(1, clAqua); // Corrigido para clAqua (Ciano)
  SetPlotWidth(1, 2);

  // 3. Estrategia de Execucao
  // Se fechar acima da media, Compra
  if (Close > MinhaMedia) then
    BuyAtMarket;

  // Se fechar abaixo da media, Vende
  if (Close < MinhaMedia) then
    SellShortAtMarket;

End;

Como Rodar o Backtest (O Momento da Verdade)

Agora que o código está compilado, não vamos colocar dinheiro real ainda. Vamos simular o passado.

No Editor de Estratégias, clique no botão “Backtest”.

Escolha o ativo: WDO (Mini Dólar) ou WIN (Mini Índice).

Dê duplo clique no ativo WIN.

Escolha o tempo gráfico: Tente 5 minutos ou 15 minutos.

Clique em Executar.

Analisando o Resultado

O Profit vai gerar um relatório completo. Não olhe apenas para o “Lucro Líquido”. Como um analista Quant, você deve olhar para:

  • Fator de Lucro (Profit Factor): Se for maior que 1.00, a estratégia é lucrativa. Se for menor, ela perde dinheiro.
  • Declínio Máximo: O quanto o robô “entregou” de lucro ou ficou negativo no pior momento.
  • Percentual de Operações Vencedoras: Robôs de tendência costumam errar muito (40% de acerto), mas quando acertam, ganham muito (gains longos).

Dever de Casa

O código acima é “bruto”. Ele fica virando a mão o tempo todo (compra/vende) a cada candle que cruza a média.

O desafio para você: O que acontece se você mudar o Periodo(9) para Periodo(20) ou Periodo(50)? O robô ganha mais ou menos dinheiro? Altere o valor em Parâmetros do lado esquerdo da tela.

Na próxima aula, vamos aprender a filtrar esses sinais para não operar em momentos de consolidação (o “moedor de carne” de robôs).


Entre no nosso Grupo VIP do Telegram para discutir os resultados deste Backtest.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima