Arbitragem de latência Segunda-feira, 14 de Fevereiro de 2022 – Posted in: Arbitrage Software

O fato de existirem tantos mercados no mundo fez com que as mesmas commodities/moedas/metais/criptomoedas passassem a ser negociadas em muitos lugares simultaneamente. Essa negociação distribuída se deve, por exemplo, à localização geográfica e às diferenças de fuso horário, ou às diferenças nos locais de produção. Na maioria dos casos, por causa dessa variação na negociação, o preço de um mesmo instrumento varia entre diferentes plataformas de negociação. Se você compra um produto em uma bolsa a um preço e o vende em outra bolsa um pouco mais caro, essa operação é chamada de arbitragem de latência. Idealmente, a compra e a venda acontecem muito rapidamente. Outros nomes são arbitragem de atraso e trading de alta frequência.

Considera-se que o trading de alta frequência começou quando a SEC autorizou o funcionamento de plataformas eletrônicas de negociação em 1998. No início, as transações de alta frequência eram realizadas em um intervalo de alguns segundos, mas em 2010 esse tempo havia caído para milissegundos e, às vezes, para centenas ou dezenas de microssegundos. No início dos anos 2000, o trading de alta frequência gerava menos de 10% das transações do mercado, mas sua participação aumentou com o tempo. Segundo a NYSE, o volume negociado aumentou 2.6 vezes entre 2005 e 2009, e parte desse crescimento se deveu aos traders de alta frequência. Atualmente, a arbitragem de latência responde por mais de 80 por cento de toda a negociação nos mercados financeiros. É provável que grandes bancos e outras empresas financeiras também pratiquem trading de alta frequência, além da negociação tradicional. À medida que as estratégias de trading de alta frequência se tornam mais difundidas, fica mais difícil lucrar com elas. Frederi Viens (Purdue University) estima que os lucros de todo o trading HFT nos Estados Unidos caíram de $5 bilhões em 2009 para $1.25 bilhão em 2012. Ainda assim, apesar da concorrência cada vez mais intensa, a arbitragem de latência continua sendo uma das formas de ganho mais lucrativas nos mercados financeiros. Há casos em que algoritmos de trading dessa área não tiveram um único dia de perda ao longo de anos.

Definição

A arbitragem de latência é uma forma de negociação em que um participante tem vantagem sobre os demais por se conectar mais rapidamente a uma fonte de cotações. Ou seja, seu ponto de envio de ordens está fisicamente mais próximo do que os pontos equivalentes dos outros participantes.

Como funciona, explicado de forma simples

Suponha que duas pessoas cheguem a uma feira e vejam dois vendedores de pêssegos. Digamos que o preço dos pêssegos no primeiro seja de 20 rublos e, no segundo, de 22 rublos. Suponha que os pêssegos sejam absolutamente iguais, para excluir a escolha pela qualidade, o que significa que os compradores normalmente comprarão primeiro os pêssegos de 20 rublos até acabarem e só então irão ao vendedor que cobra 22 rublos. O primeiro comprador vai com a intenção de comprar pêssegos por 20 rublos. De repente, o segundo comprador passa à sua frente pelo outro lado, compra rapidamente todos os pêssegos de 20 rublos e ali mesmo os coloca à venda por, por exemplo, 21 rublos. O importante aqui é que o preço de venda seja maior que o preço de compra, mas não maior que o preço do próximo vendedor. Se for maior, o comprador comprará por 22 rublos; se for menor, onde está o lucro?

Como funciona tecnicamente

O mecanismo é o mesmo: se houver um bom preço no mercado, é preciso comprar o mais rápido possível para revender imediatamente a um preço mais alto. Isso é alcançado por meio de diversos recursos técnicos e geográficos. Softwares e equipamentos especiais são usados para obter essa vantagem de curto prazo, mas praticamente 100% confiável. Também se aplicam requisitos elevados às redes de comunicação. Apenas as tecnologias mais avançadas da área de fibra óptica são utilizadas. E, claro, o fator decisivo é a localização do equipamento de negociação. Por mais tecnológico e de alta qualidade que seja, não é possível superar a velocidade da luz, que é justamente a velocidade com que os dados são transmitidos pelo cabo. Em busca de lucro, instituições financeiras listadas pela Forbes firmam contratos caros com bolsas de valores para instalar seus servidores no mesmo prédio que os servidores da bolsa. Esse princípio de posicionamento de equipamentos de negociação é chamado de colocation. Como esse serviço pode estar disponível para qualquer um que firme um contrato, não é raro que isso gere disputas sobre a igualdade de condições para todos os locatários. Por exemplo, o comprimento do cabo entre o equipamento de cada participante e os servidores da bolsa deve ser idêntico para todos, não importa se o equipamento está a 5 metros ou a 100 metros do servidor.

O equipamento usado para algoritmos de negociação é altamente especializado, muito caro e, não raramente, feito sob encomenda. Esses chips geralmente são chips DMA (acesso direto à memória) e de alta frequência. Apenas linguagens de programação de baixo nível, como assembly, são usadas para escrever os algoritmos.

Além da conexão por cabo, existem métodos de transmissão de dados de mercado pelo ar. Normalmente, são enlaces de rádio troncais especiais do mundo das telecomunicações. Essas redes privadas de rádio por micro-ondas se estendem por centenas de quilômetros e custam dezenas de milhões de dólares. São usadas quando a bolsa que serve de fonte de cotações fica a uma distância considerável do centro de negociação. Nesse caso, levar um cabo até ela não é economicamente viável nem, no fim das contas, eficaz. O cabo inevitavelmente seguirá a topologia de dutos, túneis, pontes, rodovias, ferrovias etc. Já as linhas de radioenlace podem ser construídas quase em linha reta entre os destinos, instalando os nós da linha em colinas ou telhados de prédios. Como resultado, a distância percorrida pelo sinal no cabo será inevitavelmente várias vezes maior que a distância pelas linhas de radioenlace, simplesmente por causa do relevo. Além disso, há mais roteadores no caminho do cabo do que no rádio, e cada roteador acrescenta um atraso extra.

Essas redes de rádio por micro-ondas utilizam equipamentos de radioenlace especiais, projetados para transmitir sinais com atrasos mínimos. Por exemplo, uma ponte de rádio típica de baixa latência (Low Latency) tem um atraso de 50 ns (50 nanossegundos), enquanto uma ponte de rádio comercial típica tem um atraso 1,000 vezes maior, cerca de 50 μs (microssegundos). A capacidade dessas redes chega a gigabits por segundo.

Se, no caso da colocation no prédio de uma bolsa, o objetivo é superar os participantes que negociam no mesmo local usando a mesma fonte de cotações, a conexão de alta velocidade com uma bolsa remota tem um objetivo um pouco diferente. Não é raro ocorrerem eventos inesperados no mercado, como uma decisão imprevista do Fed ou do BCE, um crash ou um desempenho de negociação excepcionalmente alto em outras cidades e países. Como mencionado acima, não é raro que os mesmos instrumentos sejam negociados em bolsas diferentes. Também não é raro que um instrumento seja produto de uma bolsa e, ao mesmo tempo, seja negociado em outra. Suponha que o principal índice de ações da Alemanha, o DAX, seja negociado na Bolsa de Frankfurt. A Bolsa de Londres também é uma plataforma de negociação desse índice. Nesse caso, tendo colocation na Bolsa de Londres e uma rede direta de radioenlace até a Bolsa de Frankfurt, é possível reagir mais rapidamente a eventos marcantes na economia alemã.

Arbitragem de latência para pessoas comuns

É possível tentar lucrar com essa ineficiência do mercado sem ter alguns milhões no bolso. Do ponto de vista técnico, essa possibilidade é a mesma. É preciso modificar dois terminais. Escolha duas corretoras: uma principal, que é a fonte de cotações, e outra dependente, para onde as ordens de negociação serão enviadas. Para que a verificação das cotações e a abertura das ordens aconteçam instantaneamente, sem perder milissegundos preciosos, todo o sistema deve ser implementado em uma das linguagens de programação mais rápidas, de tipagem estática e compiladas. Para isso, linguagens como C/C++, Java e C# são adequadas. Assim, obtemos um sistema funcional a partir de dois terminais com apenas duas corretoras e contas diferentes. É óbvio que não será possível competir com quem tem colocation nas maiores bolsas de valores, nem com quem faz arbitragem entre elas. Nesses mercados, os traders de alta frequência atuam há mais de vinte anos e investiram dezenas e até centenas de milhões de dólares em seus sistemas e algoritmos. Não é possível vencê-los. Você pode tentar a sorte em bolsas pequenas, que raramente recebem atenção de fundos institucionais, em corretoras de forex e em exchanges de criptomoedas. Os dois pontos principais são os mais importantes:

Sua localização e o ping entre você e a corretora

Que equipamento você tem? Se para o trading manual até um computador doméstico de potência média é suficiente, para os outros tipos é preciso adquirir algo mais sofisticado.

Ao otimizar o primeiro ponto, você precisa descobrir onde fica o servidor da corretora para onde enviaremos as ordens e alugar um servidor o mais próximo possível dele. É melhor alugar um servidor dedicado, pois isso garante que você possa usar toda a capacidade dos recursos que lhe foram atribuídos. A diferença entre um servidor dedicado e um servidor virtual é que, no primeiro caso, você terá acesso direto ao hardware e, no segundo, o acesso é feito por meio da chamada máquina virtual. No segundo caso, quase todos os donos de servidores fazem overselling. Ou seja, digamos que eles instalaram um servidor com um processador de 50 núcleos e 100 GB de RAM. Com um software de virtualização, dividem esses recursos em 30 servidores virtuais, cada um com direito a 2 núcleos e 4 GB de RAM. Mas como isso é possível, você pergunta? Afinal, isso dá 60 núcleos e 120 GB de RAM? O software de virtualização permite fazer isso e criar quantos servidores virtuais se quiser. Os fornecedores desse tipo de serviço se aproveitam do fato de que, em geral, a maioria dos seus clientes não utiliza 100% da capacidade alugada, ou pelo menos contam com o fato de que isso não acontece com frequência. E onde alguém deixou seu servidor subutilizado, outro terá alguns recursos para rodar seu servidor virtual extra. Nesse caso, se o seu software em algum momento precisar de toda a capacidade dos recursos alocados a você, eles podem simplesmente ser insuficientes, pois a capacidade vendida é, na realidade, maior do que a fisicamente disponível. O programa não vai travar por causa disso e, de qualquer forma, fará o cálculo, mas receberá sua capacidade um pouco mais tarde, liberada de outro cliente menos ocupado. Dessa forma, seu algoritmo pode perder um tempo valioso para calcular e tomar decisões no momento certo.

Além disso, é desejável ter acesso direto à bolsa ou à API — a ambas as bolsas, no caso de arbitragem entre elas. Normalmente, trata-se do protocolo FIX ou do PLAZA2. Se não houver essa conexão direta, será preciso usar os terminais de negociação de uma bolsa específica, ou haverá uma combinação de um acesso direto e um terminal. Não é raro que uma corretora não tenha conexão via API, mas tenha uma API para o seu terminal de negociação. Cada caso é individual. O caso mais difícil é quando a bolsa não tem nem terminal nem API, apenas uma interface web para negociação. A automação desse tipo de negociação é mais difícil: será necessário fazer parsing e automatizar ações em páginas web. E isso só faz sentido com um atraso bastante significativo nas cotações. Se uma corretora não tem API de conexão, nem API para o terminal, nem qualquer forma de interação de negociação pela interface web, provavelmente não será possível automatizar essa negociação, e é melhor continuar procurando uma corretora mais adequada.

Estratégia de latência em uma única bolsa

A ideia é posicionar seu servidor o mais próximo possível do servidor da bolsa. Então, aproveitando a velocidade, comprar as ofertas aos melhores preços mais rápido que os outros e revendê-las com um pequeno lucro. Para receber dados e enviar ordens de negociação, você pode usar:

– Um terminal de negociação, se ele suportar a negociação por algoritmos automáticos. Muitos fornecedores de software de negociação oferecem suporte à sua própria linguagem para scripts e sistemas automatizados. Exemplos:

 

  • TradeStation – linguagem EasyLanguage
  • Quik – linguagem QLua
  • Transaq – linguagem ATF
  • NinjaTrader – linguagem NinjaScript
  • JForex – linguagem Java

Você precisará encontrar ou comprar um software para a plataforma específica, ou pagar pelos serviços de um programador para que ele escreva o software para a sua tarefa em um terminal específico.

– Software de terceiros projetado especificamente para arbitragem de latência. Não é raro que uma corretora ofereça um serviço de conexão direta à bolsa; também existem empresas que escrevem o software necessário para um ou outro tipo de conexão, ou até para uma corretora específica, se ela for bastante popular.

– Software próprio, escrito e otimizado para um algoritmo específico da sua estratégia de negociação. Se você não é programador, terá de contratar um para esse trabalho.

Estratégia de latência entre bolsas

Pode ser dividida em mais 2 partes:

A primeira opção é usar as cotações de uma corretora mais rápida e enviar ordens de negociação para uma corretora mais lenta. Nesse caso, também é melhor que o servidor de negociação fique o mais próximo possível do servidor da corretora. Obtemos as cotações da mais rápida, comparamos com as cotações da mais lenta e, se houver uma grande diferença, enviamos uma ordem de negociação para a corretora lenta na direção da diferença entre os instrumentos.

Negociamos em duas bolsas simultaneamente. Nesse caso, abre-se conta nas duas corretoras, as contas são abastecidas com o mesmo valor e o servidor de negociação fica em algum ponto intermediário. Se houver a diferença de preço necessária em algum instrumento, compramos na bolsa onde o preço é mais baixo e vendemos na outra. Dependendo da estratégia, é possível negociar nas duas direções. Assim que o preço se igualar nas duas bolsas, é preciso comprar/vender o ativo de volta. Depois de algum tempo, haverá uma diferença entre os saldos das duas bolsas. O valor total dos depósitos deve ser maior que o valor dos depósitos originais, o que indica o lucro da estratégia. Da conta com o depósito maior, é preciso transferir para a bolsa com o depósito menor, para que voltem a ficar iguais.

Arbitragem de latência em bolsas de valores

Nesta categoria de corretoras, é difícil competir nesse tipo de negociação. O nicho está ocupado há bastante tempo e recebeu investimentos enormes. Entre as bolsas existem as chamadas bolsas agregadoras. Elas obtêm cotações de muitas bolsas e as reúnem em um único livro de ofertas. Ao mesmo tempo, essas bolsas não cruzam as ordens de seus clientes entre si, mas apenas servem de intermediárias entre o cliente e a bolsa cujo volume o cliente compra. Se você executar um volume suficientemente grande a mercado em uma bolsa desse tipo, ele pode ser composto de partes de diferentes corretoras. Aplicar a arbitragem de latência a essas bolsas não é possível, pois negociar por meio delas envolve atrasos inevitáveis e você perderá todas as vantagens.

Arbitragem de latência no forex

Sobre os provedores de liquidez no mercado forex

O mercado de câmbio é descentralizado e geralmente obtém sua liquidez dos provedores. Existem cerca de duas dezenas de provedores de liquidez para forex no mundo. Ao mesmo tempo, as próprias corretoras de forex podem, raramente, ser provedoras de liquidez. Ou seja, uma corretora maior vende suas ofertas a uma corretora menor. No fim, as corretoras de forex podem ter uma composição de provedores completamente diferente, mas em certa medida sobreposta à dos provedores de outras corretoras. Digamos que uma corretora obtém liquidez de um provedor, mistura com ela a liquidez de seus clientes e a revende à corretora seguinte.

No entanto, se o provedor de liquidez oferecer uma API, ela pode ser usada como uma fonte mais rápida em comparação com uma corretora menor.

Escolhendo uma corretora para operar no mercado forex

Atualmente, são conhecidos três modelos de funcionamento das corretoras de forex:

A corretora de forex obtém de alguma fonte os preços das cotações dos instrumentos, mas ao mesmo tempo atua como a outra parte da transação com você, ou seja, é um market maker. Nesse caso, a sua perda total é o ganho total dela. Essas corretoras são conhecidas por não pagarem seus clientes e por gostarem de colocar obstáculos na negociação, na forma de slippages, requotes etc. Não é raro que essas corretoras tenham regulamentos muito estranhos, como a proibição de pipsing, front-running e arbitragem, a exigência de manter a operação aberta por pelo menos alguns minutos etc.

A corretora não é, de forma alguma, contraparte nas transações com o cliente e repassa todas as transações ao provedor de liquidez. Essa opção é a mais preferível, pois a corretora é apenas intermediária na transação e não tem interesse na sua perda. Mas essas corretoras são raras, porque sua principal receita é uma pequena taxa por transação. Ela pode estar embutida no preço ou ser cobrada separadamente, permitindo que os clientes operem aos preços do provedor de liquidez. Ao mesmo tempo, quando a corretora fecha um negócio com a contraparte, paga-lhe uma comissão. Como a comissão da corretora é um pouco maior, é assim que ela ganha.

Um sistema misto, em que a corretora repassa parte das transações à contraparte e fecha a outra parte internamente, sendo a outra parte da transação. A maioria das corretoras “normais” opera nesse esquema. Presume-se que essas corretoras inicialmente fecham internamente as transações de todos os novos clientes. Se perceberem que o cliente ganha na maior parte das vezes, suas transações passam a ser repassadas à contraparte. Assim, as corretoras não correm o risco de perder para o cliente e não precisam recorrer a fraudes nem prejudicar a negociação dos clientes.

A escolha da corretora deve começar pelo fato de que ela deve estar sob a jurisdição de um bom regulador financeiro. Atualmente, são eles:

  • FCA – Reino Unido
  • BaFin – Alemanha
  • NFA – EUA
  • FINMA – Suíça

Isso é necessário para eliminar os riscos não relacionados à negociação. Na história, há muitos casos em que uma corretora de forex simplesmente desapareceu com todo o dinheiro de seus clientes. Depois, descobriu-se que seu registro era offshore e que o regulador offshore não se responsabilizava por nada. Com os reguladores mencionados acima, o cliente obtém duas coisas importantes:

  • Contas segregadas. O dinheiro dos clientes e o da corretora são mantidos em contas separadas. A corretora não tem o direito de sacar e se apropriar desse dinheiro, mas pode realizar transações em seu nome com o seu dinheiro.
  • Todos os depósitos dos clientes têm seguro até determinado valor. Em caso de falência da corretora, os clientes receberão o reembolso do valor de seus depósitos, ou do valor do seguro, se o depósito for maior que ele.
  • A corretora é obrigada a ter um provedor de liquidez autorizado e não tem o direito de atuar como a outra parte da transação com o cliente.

Esses três fatos tornam inútil uma atuação desonesta da corretora, e a existência do seguro de depósitos obriga o regulador a monitorar de perto o trabalho das corretoras sob seu controle.

Arbitragem de latência em exchanges de criptomoedas

A maioria das exchanges de criptomoedas oferece negociação via web e conexão via API. Normalmente, a API é composta por uma conexão WebSocket para informações de mercado e uma conexão REST para as funções de negociação. A primeira conexão é rápida, a segunda é lenta. Não se sabe por que é assim, mas historicamente aconteceu dessa forma. Talvez porque a negociação de criptomoedas seja um setor bastante jovem, e os datacenters das exchanges de criptomoedas ainda não tenham recebido investimentos tão fortes em infraestrutura de negociação a ponto de tornar os algoritmos de cotação e negociação tão rápidos quanto os das bolsas de valores. A vantagem é que a API geralmente não é complexa e permite criar algoritmos de negociação em qualquer linguagem de programação.

Estratégias de negociação:

  • Negociar em uma única exchange, mantendo nosso servidor o mais próximo possível do servidor da exchange
  • Negociar em duas ou mais exchanges ao mesmo tempo, criando em cada uma delas um depósito de valor igual.

No segundo caso, não podemos usar uma exchange como a mais rápida e a outra como a mais lenta, pois não sabemos de antemão qual delas será a primeira a apresentar a diferença. Diferentemente do forex, a negociação em exchanges de cripto é realizada nos próprios servidores delas, e as transações não são repassadas a contrapartes, por isso não podemos usar o acesso direto ao provedor como fonte mais rápida. Nesse aspecto, todas as exchanges de criptomoedas são iguais. Mas, como existem muitas delas, não é possível instalar 1 servidor de negociação com ping igual para todas. Por isso, a estratégia terá de ser aplicada apenas a um par de exchanges. Se quiser, você pode expandir o sistema para outras, mas considere apenas sistemas formados por um par de exchanges com um servidor entre elas.