Filtro Anti-Violino

Filtro Anti-Violino 2.0 : Salve seu Robô Agora

Introdução: O “Moedor de Carne”

Você precisa instalar um Filtro Anti-Violino no seu código hoje mesmo. Se você fez o dever de casa do post anterior, provavelmente descobriu uma verdade inconveniente: o robô de Média Móvel ganha muito dinheiro na tendência, mas devolve quase tudo quando o mercado fica lateral.

No jargão do trading, chamamos isso de Violinada. É exatamente aqui que o Filtro Anti-Violino entra em ação para proteger seu capital. O preço sobe, seu robô compra. O preço cai logo em seguida, seu robô vende. Você perde na compra, perde na venda e paga corretagem duas vezes.

Um robô profissional não opera sempre. Ele sabe a hora de ficar de fora. Hoje, vamos instalar dois “sensores” no seu código para impedir que ele opere no “Moedor de Carne”.


Arma 1: O Horário de Ouro (Time Filter)

A primeira regra do Filtro Anti-Violino é simples: só opere quando tem gente operando. Robôs de tendência precisam de volume e volatilidade. Operar na hora do almoço (12:00 – 13:00) ou no final do pregão (após as 17:00) costuma ser pedir para perder dinheiro.

No NTSL, vamos usar a função Time para dizer ao robô: “Só trabalhe se for depois das 09:10 e antes das 16:50”.

Arma 2: O ADX (O Velocímetro do Mercado)

O ADX (Average Directional Index) é um indicador peculiar. Ele não diz se o mercado vai subir ou cair. Ele diz se o mercado tem FORÇA.

  • ADX abaixo de 20: O mercado está “dormindo” (Lateral). Perigo! ⛔
  • ADX acima de 25: O mercado “acordou” (Tendência). Hora de operar! ✅

Vamos combinar essas duas armas no seu código agora.

O Código com Filtro Anti-Violino (Versão 2.0)

Apague o código antigo e cole este novo. Note as partes destacadas com comentários.

Input
  PeriodoMedia(9);
  PeriodoADX(14);
  NivelADX(25);     // So opera se o ADX for maior que 25
  HorarioInicio(0910);
  HorarioFim(1150);

Var
  MinhaMedia : Float;
  MeuADX     : Float;
  EstaNoHorario : Boolean;
  TemForca      : Boolean;

Begin
  // 1. Calculos
  MinhaMedia := MediaExp(PeriodoMedia, Close);
  MeuADX     := ADX(PeriodoADX, 10); // O 10 é o tipo de media do ADX (Wilder)

  // 2. Definindo os Filtros (Regras de Protecao)
  
  // Regra de Horario: Verdadeiro se Hora atual >= 09:10 E <= 11:50
  if (Time >= HorarioInicio) and (Time <= HorarioFim) then
    EstaNoHorario := true
  else
    EstaNoHorario := false;

  // Regra de Forca: Verdadeiro se ADX > 25
  if (MeuADX > NivelADX) then
    TemForca := true
  else
    TemForca := false;

  // 3. Plotagem Visual (Para voce conferir)
  Plot(MinhaMedia);
  SetPlotColor(1, clAqua);
  
  // Dica: Se o mercado estiver ruim, a media fica Cinza
  if (TemForca = false) then SetPlotColor(1, clGray);


  // 4. Estrategia de Execucao BLINDADA
  
  // Para COMPRAR, precisa de 3 "Sins":
  // 1. Preço acima da media? SIM.
  // 2. Está no horario? SIM.
  // 3. O ADX mostra força? SIM.
  if (Close > MinhaMedia) and (EstaNoHorario) and (TemForca) then
    BuyAtMarket;

  // Para VENDER:
  if (Close < MinhaMedia) and (EstaNoHorario) and (TemForca) then
    SellShortAtMarket;

  // 5. Encerramento Forçado (Day Trade)
  // Se der 17:00, fecha tudo para nao dormir posicionado
  if (Time >= 1700) then
    ClosePosition;

End;

O Teste de Fogo

Agora que o Filtro Anti-Violino está ativo, rode o Backtest novamente no mesmo ativo (WIN ou WDO) e no mesmo tempo gráfico que você usou no post anterior.

Filtro Anti-Violino
Filtro Anti-Violino

Compare os resultados:

  1. Número de Operações: Deve ter caído drasticamente (o robô parou de operar à toa).
  2. Taxa de Acerto: Provavelmente subiu.
  3. Drawdown: Deve ter diminuído. O robô protegeu seu capital nos dias ruins.

Você acabou de aprender o segredo dos Quants: “Não operar” também é uma posição. E muitas vezes, é a mais lucrativa.

Filtro Anti-Violino

O Filtro Anti-Violino funcionou e seu robô parou de perder dinheiro na lateralidade? Poste o print do seu Backtest no nosso Instagram marcando @AcademiaB3. Se tiver dúvida, entre em contato conosco

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