Pontos-chave:
- A SmarttBot disponibiliza dois tipos de simulações para seus robôs: simulações otimistas e pessimistas. A simulação pessimista é mais recomendada pois verifica o pior cenário em que seu robô poderia trabalhar.
- Na simulação otimista as ordens a mercado são executadas no valor do último negócio, enquanto que no simulador pessimista as ordens sofrem um grau de slippage.
- No simulador otimista as ordens a limite são interpretadas como sendo as primeiras do topo do book, enquanto que no simulador pessimista elas são colocadas no último lugar.
- Entenda nossos simuladores
- Ordem a mercado
- Ordem limite
- Conclusão
- Simulador otimista (antigo 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 pessimista (antigo moderado): 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.
- 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.
Neste artigo vamos esclarecer como funciona a simulação com robôs traders 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 reduzi-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 as negciações, 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.
Entenda nossos simuladores
Atualmente temos duas formas de simular, sendo elas:
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 otimista: 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):
Simulador pessimista: O simulador pessimista possui a mesma lógica do simulador otimista, 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 otimista. 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.
Ordem limite
Simulador otimista: Suponha que você enviou uma ordem limite de compra de 100 contratos com o preço de 3.700 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 pessimista: Vamos considerar novamente o exemplo anterior de compra. No simulador pessimista 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.
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:
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 pessimista 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, considerando o pior caso na análise.
Espero que tenha gostado do conteúdo. Caso ainda tenha dúvidas, você pode falar conosco por meio dos nossos canais de contato.