Quando o robô faz uma operação?

Olá Trader.

Hoje irei abordar um assunto fundamental na automatização de investimentos: a confirmação do sinal de entrada (e saída) para execução de operações. Isto é, quando o robô faz uma operação, com base no comportamento do indicador (ou indicadores) acompanhado(s).

Diferentes interpretações dos sinais geram resultados operacionais totalmente diferentes! Por isto é importante que sua estratégia esteja de acordo com a dinâmica operacional de seu robô. Então, vamos a um post completo que, após a leitura, te permitirá:

  • Configurar corretamente seu robô investidor, entendendo quando ele irá fazer uma operação e tendo uma estratégia (parâmetros) coerente com esta dinâmica de trades.
  • Identificar corretamente no gráfico as operações de seu robô.

Índice

1. Quando o robô faz uma operação? Em qual momento ele entra?

2. Quando acontece a confirmação da operação?

3. A influência do tempo na entrada do robô

Robô de exemplo do post

Neste post, utilizo uma estratégia simples em todos os exemplos. Suas principais características são:

  • Ativo negociado: minicontrato de Dólar futuro (WDO)
  • Gráfico acompanhado: candlestick
    • Periodicidade: 1 minuto
  • Sentido das operações: comprado e vendido
    • Realiza reversões
  • Quantidade por operação (volume negociado): 2 contratos
  • Critérios de entrada:
    • Cruzamento de duas médias móveis
      • Média curta: exponencial de 9 períodos
      • Média longa: simples de 40 períodos
  • Critérios de saída:
    • Descruzamento das médias (realiza reversões)
    • Stop de perda e ganho (target)
      • Stop loss de 5 pontos
      • Stop gain (alvo) de 5 pontos
  • Tipo de ordem: ordens a mercado

Para ver outras formas de usar o indicador Médias Móveis, clique aqui.

Sobre a estratégia, cabe destacar o caso da reversão: caso o robô esteja comprado e a média curta cruze para baixo da longa ele passará para uma posição vendida de 2 contratos. Isto se dá através de uma única ordem de venda de 4 contratos – 2 para eliminar a posição comprada e 2 para abrir nova posição vendida.

A estratégia utilizada nas operações foi a Tangram Bot 2, disponível em breve para todos os assinantes SmarttBot. A tela de parâmetros deste robô está abaixo:

Parâmetros do Robô da Estratégia Exemplo

[clique para ampliar] Parâmetros do Robô da Estratégia Exemplo

Quando o robô faz uma operação? Em qual momento ele entra?

Um robô investidor, ou estratégia automatizada de investimentos, é basicamente um programa de computador capaz de enviar ordens de compra e venda para a bolsa de valores em nome de um investidor. Este programa segue uma dinâmica operacional definida – chamada de estratégia – que é ajustada em seus parâmetros para se comportar como o investidor deseja. Depois de configurado e colocado em execução o robô acompanha o mercado continuamente, aguardando que suas condições de operação sejam atendidas e enviando ordens de compra e venda de acordo com sua programação.

A capacidade de acompanhar o mercado continuamente e tomar decisões em milésimos de segundo é a principal vantagem dos robôs investidores. O robô de exemplo do post, que opera com base em duas médias móveis, precisa de acompanhar os seguintes dados para definir suas entradas:

  1. Preço de fechamento do ativo;
  2. Preço da média móvel curta;
  3. Preço da média móvel longa.

Dos itens listados acima, o 2º e 3º são calculados com base no 1º, então o robô só precisa processar, para efetivamente decidir suas operações, o valor de fechamento do ativo a cada período. No caso do Robô de exemplo a periodicidade definida é de 1 minuto. Isto significa que a cada minuto o robô terá disponível um novo preço de fechamento do ativo e poderá então calcular um novo valor para as duas médias móveis acompanhadas. Com as médias calculadas, o robô opera:

  • Comprando quando a média curta passa de baixo para cima da longa;
  • Vendendo quando a média curta passa de cima para baixo da longa.

Um robô – assim como qualquer programa de computador – trabalha com operadores lógicos e números para tomar suas decisões, então, vamos tentar ver as regras acima da mesma forma que um robô enxergaria, em um exemplo com candles e uma tabela de dados:

Gráfico de Candles + 2 Médias Móveis + Tabela de Dados

Gráfico de Candles + 2 Médias Móveis + Tabela de Dados

Acima vemos tanto o gráfico candlestick quanto as médias móveis (exponencial de 9 períodos e simples de 40), além de seus valores em tabela. Para vermos como o robô enxerga os dados para fazer seus posicionamentos, vamos ver novamente os mesmos dados, porém exibindo apenas o que o robô considera para sua tomada de decisão:

Gráfico sem Candles + 2 Médias Móveis + Tabela de Dados

Gráfico sem Candles + 2 Médias Móveis + Tabela de Dados

Na figura acima ocorreria operações em apenas um momento, uma compra indicada pelo cruzamento que ocorreu no candle de 11:59:00. O robô simplesmente faz, a cada período, a seguinte verificação lógica:

se média curta anterior <= média longa anterior E média curta atualmédia longa atual = COMPRA

se média curta anterior >= média longa anterior E média curta atual < média longa atual = VENDA

demais casos = não faz nada

Entenda o processo de formação de candles

Olhando gráficos estáticos, como é o caso das figuras acima, temos um “retrato” das operações do mercado agrupadas minuto a minuto, nos respectivos candles de cada período. Mas o que acontece com estes gráficos durante o pregão? Com o mercado em andamento os candles vão se formando um a um, com o candle do período atual mudando de forma até seu encerramento. O mesmo acontece com qualquer indicador presente no gráfico, a medida que os valores do candle (máximo, mínimo, abertura e fechamento) são definidos ou modificados.

Para ilustrar vamos ver, de forma acelerada, a formação de candles e de duas médias móveis durante alguns minutos do pregão:

Animação de Candles se formando

Animação de Candles se formando

Podemos observar como, com o pregão em andamento, cada candle inicia seu traçado e vai mudando de forma até seu encerramento. Vamos ver a formação agora de um único candle:

Animação da formação de um Candle

Isolei o candle no gráfico e sua formação é mostrada em loop na animação acima. A animação é acelerada, mostra em 10 segundos os 60 segundos de duração do candle. Perceba como o candle começou a se formar como um candle de baixa e depois, no mesmo minuto, os preços mudaram fazendo com que o candle se tornasse de alta. Essa força de alta perdeu um pouco de intensidade fazendo com que o candle fechasse ainda altista, porém longe do seu máximo. O candle final tinha um corpo altista pequeno no centro e dois pavios longos de mesmo tamanho.

Observe agora como as médias móveis (ao fundo) também mudaram durante a formação do candle. Principalmente a média vermelha, que é a mais curta. Já que nossa estratégia opera no cruzamento das médias, basta comprar ou vender quando as linhas se cruzarem, correto? Quase! Vamos ver mais alguns candles antes de concluirmos:

Falso cruzamento e falso sinal de entrada

Animação falso cruzamento de médias

Animação falso cruzamento de médias

Acima temos a formação de dois candles de forma acelerada e em loop. No topo esquerdo do gráfico temos o valor das duas médias, em azul e vermelho. A animação é pausada no momento de fechamento do primeiro candle e o valor das médias é destacado para deixar claro que não houve cruzamento das médias. Porém, durante a “vida”dos dois candles da animação elas se cruzam e descruzaram, terminando descruzadas no final do minuto de cada candle.

Um operador manual “afobado”, que opere sempre que as linhas se cruzarem, teria feito 4 operações apenas nestes 2 minutos, com um gasto desnecessário de corretagem, algum prejuízo de slippage e terminando o minuto da mesma forma que entrou, com a mesma quantidade de ativos em carteira. As operações seriam uma entrada por compra no cruzamento da média e uma saída por venda no final do candle, já que o cruzamento não se confirmou / as médias se descruzaram, uma vez para cada candle.

A animação acima também mostra uma situação perigosa para o investidor “manual”: nela as médias estão muito próximas, dando a impressão de cruzamento no fechamento. Porém, quando analisamos os valores das médias com maior precisão, 4 casas decimais no caso, vemos que efetivamente não houve cruzamento. Felizmente, os robôs trabalham com critérios objetivos e grande precisão de dados, identificando corretamente cruzamentos e não operando em falsas entradas.

Quando acontece a confirmação da operação?

Voltando ao ponto do começo deste post, precisamos definir quando operar com base na evolução do gráfico e dos indicadores utilizados pelo robô/estratégia. Podemos dizer que a operação só é permitida após sua confirmação, isto é, quando tivermos certeza que todos os sinais necessários para que ela aconteça estão presentes e não irão mudar. Para esta confirmação precisamos esperar então o término do período ou fechamento do candle e o cálculo dos indicadores.

Como esperamos o fechamento dos candles, o horário correto para a execução das ordens é o mais próximo possível da abertura do candle seguinte àquele em que houve a confirmação. Estas ordens então, quando executadas, formarão negócios que fazem parte da formação do candle atual (em formação). Vamos ver um exemplo de operação no cruzamento de médias móveis:

Animação: cruzamento de 2 médias e operação

Animação: cruzamento de 2 médias e operação

Na figura acima, vemos primeiro alguns falsos cruzamentos e então temos um cruzamento verdadeiro (que se manteve após o fechamento do candle). O robô então operou na abertura do candle seguinte e o preço médio de execução da ordem a mercado foi de 3.226,375. Tivemos uma ordem com slippage de 0,375 pontos neste caso, considerando o preço de abertura do candle de 3.226,00.

Confirmação em outros gráficos (Renko)

Como a confirmação depende do fechamento do candle, ela pode não estar vinculada ao tempo. No gráfico de Renko, por exemplo, os candles (blocos) são formados e fechados à medida que negócios ocorrem. Nestes casos, a mesma lógica acontece, precisamos esperar o fechamento de um bloco para operar no começo do bloco seguinte. A diferença é que este fechamento pode acontecer a qualquer momento, inclusive no meio de um minuto ou segundo, por não estar vinculada a uma periodicidade específica.

Animação Hilo no Gráfico Renko

Animação Hilo no Gráfico Renko

Na figura acima, vemos o indicador Hilo Activator calculado em um gráfico de Renko. Podemos perceber como, com os blocos em formação, o HiLo pode mudar de sentido (gerando falsas entradas), mas terminar o candle/bloco apontando para o mesmo sentido que apontava.

Confirmação com stops e alvos

A dinâmica dos preços durante o pregão não é simples, movimentos rápidos podem acontecer dentro de um único candle e sempre esperar o fechamento pode não ser a melhor forma de se operar. É para estes casos que recorremos às ordens de stop. Em outros casos, ao se esperar o fechamento de um candle para se posicionar perde-se muito no preço de entrada – isto é, entra-se em um preço muito pior do que o teria sido conseguido se a entrada ocorresse no momento do cruzamento (com o candle aberto).

Como os stops exigem que determinado preço seja alcançado para seu acionamento, eles não ficam presos à formação de candles. Isto é, quando o preço alvo for atingido, independentemente do candle atual ainda estar aberto, a ordem de eliminação é enviada. Podemos dizer que a confirmação das ordens de stop se dá por preço.

Cabe ressaltar que o parâmetro stop de perda define o limite de prejuízo que uma posição aberta pode ter. Ao ser alcançado tal nível de prejuízo a posição é eliminada com uma ordem a mercado. Por isto, pode ser que o prejuízo bruto da operação seja maior ou menor que o valor definido caso ocorra slippage.

É importante lembrar que o valor inserido nos parâmetros Stop é calculado a partir do preço de entrada da operação e não tem relação com o volume operado. Isto quer dizer que, por exemplo, um stop de perda de R$ 10,00 em um lote de 1.000 ações resultará em um prejuízo bruto de R$ 10.000 quando acionado. Finalmente, os custos operacionais não são considerados pela SmarttBot no cálculo dos stops das operações, mas podem (e devem) ser levados em conta quando estes forem definidos pelo investidor.

Confirmação em estratégias customizadas de investimento

Muitos clientes da SmarttBot operam com suas estratégias próprias. Através do serviço de programação de robôs investidores já implementamos robôs que operam com diferentes formas de confirmação de operação, não apenas como as descritas até agora. O fundamental é não deixar “furos” na lógica da estratégia, especificando como o robô deve se comportar em cada caso. Nosso time de estratégias orienta os clientes a pensarem em todos os casos antes de fecharem a especificação de seus robôs.

Um pedido comum, por exemplo, é a possibilidade de operação com candle aberto. Esta modificação aparece como uma nova caixa para ser marcada na tela de parâmetros do robô e, quando ativada, faz com que o robô opere quando seus indicadores sinalizem, mesmo que o candle ainda não esteja fechado. Comumente, ao se ativar esta modificação, usa-se indicadores apenas para entrada e stops para saída, assim evita-se gastos altos com corretagem ao se ficar fazendo várias operações, por exemplo, nos sucessivos cruzamentos e descruzamentos de médias.

Parâmetro para o robô operar com Candle aberto

Parâmetro para o robô operar com Candle aberto

É importante ter consistência em todos elementos de sua estratégia. Um exemplo é a sugestão do analista Leandro Martins, de não se usar stops de ganho (alvo) fixos em estratégias de tendência. Outro exemplo, mais relacionado com o tema do post, é o de não aguardar o fechamento do candle para posicionamentos baseados no indicador VWAP, principalmente em periodicidades longas. Olhe a imagem a seguir e entenda o porquê:

Gráfico com exemplo do indicador VWAP

Gráfico com exemplo do indicador VWAP

A influência do tempo na entrada do robô

Ao se usar periodicidades mais longas, diferente do 1 minuto usado pela estratégia do post, teremos maiores variações de preço dentro de um mesmo candle. Isto quer dizer também que a distância entre o “preço para cruzamento” e o preço de abertura do candle seguinte – ou preço da operação – será maior. O “preço para cruzamento” é o preço de fechamento do candle a partir do qual os indicadores sinalizariam uma operação.

Tenha em mente que a distância entre o preço para cruzamento e o preço de operação pode matar uma boa estratégia de investimento. Este problema pode ser contornado, como mostrado neste post, buscando parâmetros que gerem entradas semelhantes em periodicidades menores, mas este método não serve para qualquer tipo de estratégia. Muitas vezes será necessário buscar robôs que consigam operar de novas formas ou simplesmente “admitir a derrota”, adicionando um filtro de volatilidade em seu robô e não operando em momentos de movimentos rápidos do preço – onde esta distância tende a ficar ainda maior.

É possível que simples filtros de volume, volatilidade ou horário sejam suficientes para fazer com que seu robô se torne vencedor. A melhor parte é que é possível simular gratuitamente suas estratégias na Plataforma SmarttBot e, olhando detalhadamente os relatórios disponíveis, tentar identificar os cenários onde as operações lucrativas acontecem para isolá-los em testes com novos parâmetros.

Espero que tenha gostado do post, não se esqueça de se inscrever em nossa newsletter para ser avisado de novidades e novos conteúdos!

Ficou com dúvidas? Deixe seu comentário abaixo que nossa equipe está pronta para te responder.

Abraços e bons trades a todos!

Ex agente autônomo, apaixonado por estratégias de investimento e inovação! Sócio fundador da SmarttBot, atua desde 2007 no mercado financeiro.

  • neeewwww

    Boa tarde, configurei um robo simulando a entrada no cruzamendo da EMA e do MACD. Porém, estou com uma dúvida: as condições tem que ser exatas no mesmo momento, ou seja a EMA tem que cruzar no mesmo instante o MACD ou é formado por triggers, sendo necessário dois triggers para executar a ordem. Por exemplo, as 9:00 cruza o MACD, acionando o trigger 1 e as 9:05 cruza a EMA, acionando o trigger 2 e encaminhando a ordem. Ou é necessário ambos acontecerem as 9:00? Obrigado,

    • Se estiver selecionado para os dois indicadores, EMA e MACD, operarem baseados no cruzamento, então os dois precisarão cruzar no mesmo candle. Se os dois estiverem configurados com a opção de relação (média curta acima/abaixo da longa e MACD acima/abaixo do sinal), então funcionaria da forma que você mencionou, realizando uma entrada em qualquer momento em que os dois estiverem indicando, independente do indicador que indicou primeiro. Por fim, se um indicador estiver configurado como cruzamento e o outro para analisar a relação, no exato momento em que o primeiro cruzar o segundo será analisado para ver se já está indicando no mesmo sentido (atuando como um filtro). Se estiver, dispara a ordem. Se não estiver, descarta a entrada.