Como funciona a simulação com robôs investidores na SmarttBot

Neste artigo, vamos esclarecer como funciona a simulação com robôs investidores na SmarttBot. Para uma visão mais ampla sobre simulações e discussões sobre os dados que podem ser utilizados, os principais problemas existentes em qualquer simulador e as boas práticas para reduzí-los, veja este outro post.

Desde o lançamento do nosso primeiro simulador em 2013, optamos por utilizar dados tick by tick (negócio a negócio) para registrar os negócios, tornando assim o simulador mais fiel ao que aconteceria em conta real se comparado à utilização apenas de dados de candles. Com o passar dos anos e o surgimento de diferentes perfis de estratégias em execução na plataforma, em especial de estratégias de scalper que operam com alvos muito curtos, muitas vezes buscando um único tick de ganho em cada operação, percebemos que precisávamos ir além e prover um simulador que apresentasse resultados mais próximos da realidade também para essas estratégias, e lançamos em maio de 2018 um novo simulador. 

Atualmente temos duas formas de simular, sendo elas:

  • Simulador Padrão: Utiliza os próximos negócios no mercado após a ordem de entrada/saída de sua estratégia automatizada para considerar que sua ordem foi executada;
  • Simulador Moderado (novo): Utiliza os próximos negócios no mercado após a ordem de entrada/saída de sua estratégia automatizada e considera o agressor dos negócios para definir se a sua ordem foi efetivamente executada e qual o preço.

Pareceu confuso? Vamos explicar melhor, diferenciando ordens a mercado e a limite. Vamos utilizar como exemplo uma ordem de compra, para não duplicar as explicações. O funcionamento do simulador acontece de forma equivalente em ordens de venda, com as devidas adaptações.

Ordem a mercado


Simulador Padrão:
Suponha que você enviou uma ordem a mercado de compra de 100 contratos no mini-dólar (cada tick vale 0,5 pontos). O simulador irá receber o próximo negócio e considerar que o preço de compra foi equivalente ao preço desse negócio. Se esse negócio possuir menos de 100 contratos, a simulação irá considerar novos negócios até totalizar os 100 contratos necessários, conforme exemplo abaixo: (Essa medida visa garantir que o mercado tinha liquidez no momento da ordem enviada)

Exemplo de uma ordem a mercado no simulador padrão

Simulador Moderado: O simulador moderado possui a mesma lógica do simulador padrão, mas se diferencia ao considerar preços diferentes de execução de acordo com o agressor do negócio recebido. No caso de uma compra, se o agressor também for de compra será considerado o mesmo preço, porém se o agressor for de venda o simulador irá piorar o preço em um tick. Essa medida tem o objetivo de trazer mais realidade para o simulador, pois uma ordem de compra enviada a mercado será necessariamente uma agressão de compra.

Na melhor das hipóteses, o preço médio final da ordem será o mesmo que no simulador padrão. Na pior das hipóteses, será um tick pior. Abaixo mostramos o preço de execução para diferentes agressores, considerando o mesmo exemplo anterior.

 

Exemplo de uma ordem a mercado no simulador moderado

 

Ordem limite


Simulador Padrão:
Suponha que você enviou uma ordem limite de compra de 100 contratos com o preço de 3700 no mini-dólar (cada tick vale 0,5 pontos). A ordem ficará “pendurada” no book, como se fosse a primeira da fila no nível de preço enviado. Ou seja, quando acontecer o primeiro negócio num preço menor ou igual ao preço da ordem limite, ela começará a ser executada, até completar o número de contratos definido.

Simulador Moderado: Vamos considerar novamente o exemplo anterior de compra. No simulador moderado consideramos que a ordem limite fica “pendurada” no book como a última da fila. Para isso, a ordem será executada apenas se tiver um negócio um tick abaixo (no caso da compra) ou então se tiver um negócio no mesmo nível de preço mas o agressor for de compra, assim como a ordem enviada. De ambas as formas, é garantido que não existe mais nenhuma ordem no book no preço da ordem limite, ou seja, garantimos que a ordem haveria sido executada.

Abaixo temos um exemplo com 5 negócios após o envio da ordem limite de compra de 100 contratos a 3700.

 

Exemplo de uma ordem limite nos simuladores padrão e moderado

 

Conclusão


Acreditamos que realizar a simulação considerando os detalhes descritos é extremamente necessário para uma boa aproximação entre simulação e mercado real. As principais características cobertas nos simuladores SmarttBot são:

  • Resultados que variam de acordo com o volume negociado;
  • Resultados consistentes em robôs que utilizam ordens limite;
  • Maior precisão em momentos de movimento mais rápido / maior volatilidade; e
  • Slippage real mais próximo de zero.

Tais testes exigem grande esforço computacional, afinal, para cada robô – em simulação ou operação real -, deve-se enviar e processar os dados de todos negócios realizados, em todos ativos acompanhados pela estratégia. Porém na SmarttBot acreditamos que este é o nível de qualidade mínimo para uma simulação de qualquer estratégia de investimentos.

Apesar de todos os esforços, uma simulação é sempre uma aproximação do que aconteceria se o robô estivesse em ambiente real. Dessa forma, ainda podem ocorrer diferenças entre as operações em ambiente simulado e em ambiente real. No entanto, as mudanças realizadas no simulador moderado e descritas nesse post minimizam essas divergências, fazendo com que os resultados apresentados sejam mais compatíveis com o que realmente aconteceria no mercado.

Espero que tenha gostado do conteúdo. Caso ainda tenha dúvidas, você pode falar conosco por meio dos nossos canais de contato.

 

Bruno Barroso

Product Manager de Pesquisa & Desenvolvimento da SmarttBot e analista CNPI-T, atua no desenvolvimento e operacionalização de estratégias de investimento automatizadas para a bolsa de valores. Engenheiro e mestre em Modelagem Matemática Computacional pelo CEFET-MG, apaixonado por tecnologia, finanças, esportes e cinema, não necessariamente nessa ordem.