Quando um robô trader faz uma operação?

Pontos-chave:

  • Robôs traders operam de acordo com parâmetros pré-definidos: somente quando a movimentação dos preços e/ou dos indicadores atinge esses parâmetros determinados o robô dispara uma ordem de compra ou de venda.
  • Operando com robôs tem-se a vantagem de evitar cruzamentos falsos: o robô só entra ou sai de uma operação quando o critério de fato se confirma.
  • Também é possível parametrizar o robô para realizar operações em determinados horários.

Neste post abordaremos 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á:

  • Identificar corretamente no gráfico as operações de seu 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 Plus, disponível em nossa loja de estratégias.

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

Um robô trader (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 para efetivamente decidir suas operações, o robô só precisa processar o valor de fechamento do ativo a cada período. No caso do robô do 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. Para isso usaremos 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 ocorreriam 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 atual > mé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, mostrando 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 duração 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, pois 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.

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 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.