

Neste artigo, exploraremos o design e a implementação de algoritmos de negociação em criptomoedas. Em particular, nos concentramos em algoritmos de execução, algoritmos de criador de mercado e diversas considerações sobre microestrutura de mercado. Também examinamos onde a prática se desvia da teoria, particularmente ao lidar com as peculiaridades dos mercados de criptomoedas.
O objetivo do algoritmo de execução é transformar o estado do portfólio em um estado diferente, minimizando o custo disso. Por exemplo, se você quiser aumentar sua exposição ao BTCUSD em 1.000, provavelmente não vai querer lançar uma ordem de mercado no canal de negociação da BitMEX imediatamente, causando um deslizamento massivo. Em vez disso, você pode considerar construir lentamente sua posição desejada por meio de uma combinação de ordens de mercado e limitadas em diversas bolsas diferentes.
Geralmente há 3 camadas de algoritmos de execução: macrotrader, microtrader e roteador inteligente.
A camada macrotrader divide uma grande ordem inicial ou ordem pai em subordens menores ao longo do tempo. Na verdade, esta é a parte de agendamento de todo o algoritmo. VWAP, TWAP e POV são exemplos comuns e simples de algoritmos de macrotrader. Normalmente, há muitos modelos diferentes de impacto de mercado que podem ser usados para projetar uma camada macrotrader complexa. Os modelos de impacto de mercado são projetados para observar a reação do mercado a uma execução. O mercado permanecerá o mesmo após a execução? Ou ir mais longe? Ou isso vai voltar até certo ponto? Dois dos modelos de impacto de mercado mais importantes são o modelo de impacto de mercado permanente de Almgren-Chriss (1999, 2000) e o modelo de impacto de mercado transitório de Obizhaeva-Wang (2013). Com base nisso, na prática, os efeitos de mercado não são permanentes, então Obizhaeva-Wang parece ser mais realista e, desde então, muitos novos modelos foram desenvolvidos para resolver suas deficiências.

Leitura adicional: A influência do mercado começa a decair após negociação algorítmica https://arxiv.org/pdf/1412.2152.pdf
A camada microtrader decide para cada ordem filha se ela será executada como uma ordem de mercado ou uma ordem limitada e, se for uma ordem limitada, a que preço. Há pouca literatura sobre design de microtrader porque o tamanho de uma subordem geralmente é uma pequena fração de todo o mercado, então como ela é executada não é importante. No entanto, o mercado de criptomoedas é diferente porque a liquidez é muito fina e o deslizamento é muito perceptível, mesmo para subordens de tamanho comum na prática. Os projetos de microtrader geralmente se concentram em tempo e profundidade, posição na fila e outras características da microestrutura do mercado. As ordens de mercado (que são iguais às ordens limitadas se ignorarmos a latência) têm garantia de execução, enquanto as ordens limitadas não têm essa garantia. Se a execução não for garantida, você poderá ficar para trás no plano de negociação definido com seu macrotrader.
A camada do roteador inteligente decide como direcionar ordens para diferentes bolsas. Por exemplo, se a Kraken tem 60% da liquidez e a GDAX (Coinbase ProPrime) tem 40% da liquidez em algum nível de preço específico, então o microtrader deve importar ordens para as bolsas Kraken e GDAX em uma proporção de 60% e 40% respectivamente . Lugar.
Agora você poderia dizer que os arbitradores e os formadores de mercado no mercado movem a liquidez de uma bolsa para outra, então se você executar metade de suas ordens na Kraken e esperar alguns segundos, parte da liquidez irá dos arbers para os arbers. estatísticas sobre liquidez GDAX na Kraken e você pode fazer o resto a preços semelhantes. No entanto, mesmo neste caso, os arbers cobrarão um prêmio para seu próprio lucro e repassarão seus próprios custos de hedge para a taxa de criação de mercado da Kraken. Além disso, alguns participantes do mercado colocam ordens em quantidades maiores do que desejam em diversas bolsas e cancelam os valores excedentes quando são interrompidos.
No final das contas, é melhor ter seu próprio roteador inteligente local. Este roteador inteligente local também tem uma vantagem de latência em relação a serviços de roteador inteligente de terceiros. No primeiro caso, você pode encaminhar diretamente para a bolsa, enquanto no último caso, você primeiro precisa enviar uma mensagem para um serviço de roteador de terceiros, que então envia seu pedido para a bolsa (além disso, você deve enviar uma O terceiro paga a taxa do roteador). A soma de quaisquer dois catetos de um triângulo é maior que o terceiro cateto.
A criação de mercado envolve fornecer liquidez imediata a outros participantes do mercado e ser compensado por isso. Você assume o risco de estoque em troca de valor esperado positivo. Em última análise, os formadores de mercado são compensados por dois motivos. Primeiro, os tomadores de mercado têm uma alta preferência temporal e precisam de imediatismo. Em troca, os formadores de mercado que facilitam a liquidez podem compensar sua menor preferência temporal e paciência. Em segundo lugar, os lucros PnL dos formadores de mercado são de esquerda e, normalmente, a maioria dos traders tem uma preferência de direita. Em outras palavras, os formadores de mercado são semelhantes às casas de apostas em mercados de apostas, cassinos, seguradoras e loterias nacionais. Eles ganham pouco com frequência e perdem muito com pouca frequência. Como recompensa por esse retorno inesperado, os formadores de mercado são compensados com o valor esperado.

Leitura adicional: Skewness https://en.wikipedia.org/wiki/Skewness
De uma perspectiva de alto nível, ordens limitadas são opções gratuitas em outros mercados. O restante do mercado tem o direito, mas não a obrigação, de comprar ou vender o ativo ao preço limite da ordem limitada. Em um mercado onde a informação é perfeitamente conhecida, ninguém venderia opções gratuitas. Isso ocorre porque o mercado em geral não é um mercado onde as informações são perfeitamente conhecidas e vender opções gratuitas nunca faz sentido. Por outro lado, se as informações de mercado forem completamente desconhecidas, os formadores de mercado neutros em relação ao risco estarão dispostos a vender essas opções de ordens de limite gratuitas com spreads extremamente pequenos, porque toda negociação é ruído. Obviamente, os participantes reais do mercado são uma mistura de pessoas, cada uma com um grau único de informações conhecidas e desconhecidas.
Ao projetar um algoritmo de criador de mercado, há três perspectivas a serem consideradas: a do criador de mercado, a dos participantes do mercado e a de outros criadores de mercado.
As opiniões dos formadores de mercado são representadas por seus inventários. Se você já tem muita exposição a ativos, talvez seja melhor diminuir o preço e vice-versa. Você faz isso por dois motivos diferentes. Primeiro, como corporação, você tem um certo grau de aversão ao risco (provavelmente menor do que um indivíduo, mas sua curva de utilidade do dinheiro ainda é côncava).
Existem muitas estruturas para o formato desta função de utilidade (por exemplo, CARA, CRRA, HARA, etc.). Em segundo lugar, como um provedor passivo de liquidez no mercado, você enfrentará risco de seleção adversa. Os beneficiários de liquidez positiva podem saber algo que você não sabe ou simplesmente ser mais inteligentes do que você. É basicamente uma questão de vender opções gratuitas ao mercado.
Além disso, mesmo no nível mecânico, uma ordem de mercado que move o preço reduz o preço para marcação a mercado, enquanto uma ordem de mercado que move o preço para cima move o preço para marcação a mercado. No momento exato de qualquer negociação, você está sempre do lado errado. Além disso, as cotações dos formadores de mercado terão um impacto passivo no mercado. Em outras palavras, o ato de enviar uma ordem para o livro de ordens não preenchidas pelo menos afasta o mercado de você.

Leitura adicional: Função de aversão ao risco https://en.wikipedia.org/wiki/Risk_aversion
A visão do tomador de mercado é representada pelo fluxo de ordens. A frequência ponderada pelo volume de chegadas de pedidos como função da profundidade deve ter algumas propriedades principais.
A função deve ser:
Além disso, há o fator desconhecido de qual deveria ser um “preço médio justo”. Ao enviar e cancelar ordens profundas, o preço médio entre o melhor lance e o melhor pedido é suscetível a preços de ruído.
Além disso, dados dois casos com formatos de livro de ordens idênticos, a melhor oferta do último livro de ordens indicará um preço justo, menor do que a melhor oferta do primeiro livro de ordens. Outra questão é se o histórico do livro de ordens é importante e, se for, devemos nos concentrar no preço-tempo ou no volume-tempo? Então, onde a ordem limite ótima do formador de mercado deve ser colocada, dadas as características da liquidez do mercado? Se você estreitar a profundidade no topo do livro de ordens, suas ordens profundas serão abundantes, mas poucas de cada vez. Se você estreitar a profundidade na parte inferior do livro de ordens, suas ordens de profundidade serão finas, mas sempre haverá muitas delas.
Na verdade, este é um problema de otimização convexa com um máximo global único. Outra consideração é que o fluxo de pedidos chega ao longo do tempo e se parece um pouco com um “processo de Poisson” (https://zh.wikipedia.org/wiki/%E6%B3%8A%E6%9D%BE%E8%BF% (87%E7%A8%8B). Alguns argumentam que está mais próximo do “Processo Hawkes” (http://jheusser.github.io/2013/09/08/hawkes.html). Além disso, os saltos de compra e venda que os formadores de mercado tentam capturar são os de menor versão de termo de reversão à média. Como essa reversão média de ultracurto prazo é dimensionada pela volatilidade local, faz sentido que os formadores de mercado ampliem suas cotações quando os preços estão altos e as reduzam quando os volumes estão baixos.

Leitura adicional: intensidade de chegada da ordem em relação à profundidade (https://arxiv.org/pdf/1204.0148.pdf)

Leitura adicional: Processo Hawkes (http://jheusser.github.io/2013/09/08/hawkes.html)
As opiniões de outros formadores de mercado são representadas por este livro de ordens. O livro de ordens revela algumas informações sobre outros formadores de mercado. Há mais ofertas de compra do que de venda perto do topo do livro de ordens, indicando que outros formadores de mercado estão mais dispostos a vender do que a comprar. Esses formadores de mercado podem já ter grandes e desequilibrados estoques excedentes, ou podem simplesmente acreditar que os preços têm mais probabilidade de cair do que de subir no curto prazo. Em ambos os casos, como formador de mercado, você pode ajustar suas cotações com base em desvios no livro de ordens.
Além disso, quando os formadores de mercado estão competindo entre si, você frequentemente verá esse comportamento de “penny tick” se os ticks forem pequenos. Os formadores de mercado trabalham competindo entre si para determinar o preço até que um ponto de capitulação seja alcançado e apenas um “vencedor” tenha precedência. Depois que o vencedor é determinado, o segundo colocado geralmente volta ao preço anterior antes do próximo melhor lance ou oferta. Se você perder uma prioridade de cotação, poderá ganhar uma segunda prioridade de cotação. Isso resulta em um fenômeno de regressão, em que o vencedor agora recua um movimento de preço à frente do segundo colocado e o jogo da mesma escada com dois escaladores começa novamente.

Leitura adicional: http://parasec.net/transmission/order-book-visualisation/
Por fim, os sinais direcionais de longo prazo podem anular os algoritmos de criação de mercado, onde o objetivo do algoritmo de criação de mercado não é mais manter os estoques estáveis ou inalterados, mas levar em consideração algumas metas de longo prazo e desvios correspondentes para fazê-las acontecer.
A velocidade é importante por dois motivos principais. Primeiro, você pode preencher os pedidos no livro de pedidos antes que eles sejam cancelados. Em segundo lugar, você pode cancelar uma ordem no livro de ordens antes que ela seja atendida. Em outras palavras, você quer ter a iniciativa de execução e cancelamento em todos os momentos. Algoritmos de arbitragem (ativos) e algoritmos de execução (ativos) estão mais preocupados com os primeiros, enquanto algoritmos de criação de mercado (passivos) estão mais preocupados com os últimos.
Em geral, em princípio, as estratégias que mais se beneficiam da velocidade são aquelas com a lógica mais simples. Qualquer lógica complexa tende a diminuir o tempo de ida e volta. Esses tipos complexos de estratégias algorítmicas são os carros de Fórmula 1 do mundo do trading. Validação de dados, verificações de segurança, configuração de hardware, métodos de orquestração, etc., podem ser eliminados em favor da velocidade. Ignore OMS, EMS e PMS (Sistema de Gerenciamento de Portfólio de Projetos) e conecte diretamente a lógica de computação na GPU à interface de API binária da central colocalizada. Um jogo rápido e perigoso.
Outro tipo de estratégia sensível à velocidade, a estratégia de arbitragem estatística relativa, é que o servidor está realmente localizado entre várias bolsas, em vez de coexistir com uma única bolsa. Embora não sejam os mais rápidos com dados de uma única bolsa, eles obterão preços antes de qualquer outra estratégia e poderão agir com base em dados correlacionados e cointegrados.

Leitura adicional: Optimal Intermediate Trading Node Locations for the World’s Largest Stock Exchanges (https://www.alexwg.org/publications/PhysRevE_82-056104.pdf)
No jogo da velocidade, o vencedor leva tudo. No exemplo mais simples, se houver uma oportunidade de arbitragem, quem conseguir aproveitá-la primeiro lucrará. O segundo lugar ganha migalhas, o terceiro lugar não ganha nada. Os retornos provavelmente serão distribuídos de acordo com a lei de potência. (Sobre a lei de potência: https://zh.wikipedia.org/wiki/%E5%86%AA%E5%AE%9A%E5%BE%8B)
O jogo de velocidade também é uma competição. Quando todos fizerem a atualização de redes de fibra para micro-ondas ou laser, todos estarão novamente em igualdade de condições e quaisquer vantagens iniciais serão transformadas em commodities.
A maioria dos mecanismos que correspondem a pedidos segue uma abordagem que prioriza o preço e depois o tempo (a correspondência proporcional é uma alternativa menos comum, mas não a consideraremos por enquanto). O melhor preço será executado antes que a ordem limite com o pior preço seja executada. Para ordens limitadas ao mesmo preço, a ordem enviada primeiro será executada antes da ordem enviada depois.
A Binance divide ordens em até 8 casas decimais. Se o preço de uma transação for 0,000001, então o preço de 0,00000001 é 1% da transação. Se o preço da transação for 0,0001, então o preço de 0,00000001 é 1bps (ou seja, um salto). Essa é uma diferença enorme. No primeiro caso, pular uma ordem grande custa um ponto inteiro, então a prioridade de tempo é mais importante, enquanto no último caso, é 100 vezes mais barato, então a prioridade de preço é mais importante.
Em outras palavras, se você tiver que pagar 1% integral para obter prioridade, pode não valer a pena porque você está pagando uma quantia relativamente alta enquanto aumenta a probabilidade de uma quantia relativamente pequena ser preenchida, e provavelmente uma opção melhor seria esperar na fila, mas se você só tiver que pagar 1 bps para obter prioridade de negociação, você pode fazer isso porque está reduzindo o custo marginal em uma quantia relativamente pequena, ao mesmo tempo em que aumenta a probabilidade de uma quantidade relativamente grande de negociações serem preenchidas. Preços menores favorecem a prioridade de preço, preços maiores favorecem a prioridade de tempo.
Isso naturalmente nos leva à próxima pergunta: Quanto vale a sua posição na fila? (Leitura estendida: https://moallemi.com/ciamac/papers/queue-value-2016.pdf)

Há apenas duas maneiras de reduzir o número de negociações em um livro de ordens: cancelando-o ativamente ou preenchendo-o. Se a redução for causada pelo processo de negociação, todos os outros preços, exceto este, também serão reduzidos devido ao processo de negociação. Podemos classificar esses registros de transações organizando-os e marcando se cada redução é devido a uma transação ou a um cancelamento.
Intuitivamente, uma negociação significa que duas partes concordam em negociar a um preço específico, enquanto um cancelamento significa que uma parte decide que não está mais disposta a comprar ou vender a um preço específico. Então, superficialmente, podemos dizer que um cancelamento no melhor lance é um sinal muito forte de que o preço de mercado cairá no curto prazo, seguido por um preço de negociação próximo.
Por outro lado, o preço no livro de ordens começa a subir, o que só pode ter uma possibilidade: aumentar o número de ordens limite restantes.
Tanto os aumentos quanto as diminuições no livro de ordens indicam as intenções privadas dos participantes do mercado, fornecendo assim sinais de movimentos de preços de curto prazo.
Atualmente, a maioria dos índices de preços pega dados de negociação de diversas bolsas e os agrega para obter um preço médio ponderado pelo volume. Em particular, o Índice Tradeblock também aumentará o mecanismo de penalidade para pesos de câmbio, já que os pesos de câmbio estão intimamente relacionados a bolsas inativas e bolsas cujos preços se desviam muito. O que mais podemos melhorar?
No GDAX, a taxa do maker é de 0 pontos base e a taxa do taker é de 30 pontos base. Por exemplo, se o preço da transação for exibido como \(4000/BTC, o preço de venda real é \)4000/BTC e o preço de compra é \(4012/BTC. . O “preço justo” para esta transação deve ser mais próximo de US\) 4.006/BTC do que o preço real exibido. Por outro lado, como a taxa de 25 bps da Bittrex se aplica tanto aos fabricantes quanto aos compradores, o preço real é o preço exibido. Em outras palavras, o preço exibido de US\( 4.000/BTC é, na verdade, um comprador comprando a US\) 4.010/BTC e um vendedor vendendo a US$ 3.990/BTC, com o preço médio sendo o próprio preço exibido.
Portanto, da perspectiva da descoberta de preços, os preços dos registros de transações não são diretamente comparáveis entre as bolsas, mas devem ser padronizados após levar em consideração o acima ao construir um índice de preços. Claro, há alguns fatores complexos que levam a comissões diferentes com base no volume de negociação. Por exemplo, algumas bolsas definem e cobram taxas de taker e maker com base no tamanho do volume de negociação. Isso também sugere dois corolários interessantes.
Primeiro, a descoberta de preços é limitada, em alguns aspectos, ao mesmo tempo em que reforça a assimetria entre as taxas de criador e tomador que divide as bolsas. Supondo que a maioria das contas no GDAX estejam no nível de taxa de criador e tomador de 0/30 bps e que o GDAX normalmente tenha um spread de 1 centavo em seu livro de ordens BTCUSD, o preço mostrado no bid/ask para cada negociação é aproximadamente o “valor justo”, dentro 15 pontos à vista e cada transação alta ou baixa, o preço exibido entre eles é aproximadamente o “valor justo”. Assim, o “preço justo” em tempos calmos oscila rapidamente entre esses dois pontos, sem que ocorra nenhum refinamento adicional na descoberta de preços entre eles.

Livro de ordens GDAX
Em segundo lugar, assim como na relação tributária entre produtores e consumidores, há uma certa equivalência nas taxas de honorários incorridas entre produtores e tomadores. Se você cobrar taxas relativamente maiores dos makers, eles expandirão o livro de pedidos e repassarão algumas das taxas aos compradores. Se você cobrar relativamente mais do tomador em taxas, o criador restringirá o livro de ordens e absorverá algumas das taxas do tomador.
Um caso extremo aqui é quando você gosta tanto do criador que o livro de ordens fica comprimido em um único tick no spread (como vemos frequentemente no GDAX) e o livro de ordens não pode ser mais restrito. Com base nisso, quaisquer taxas adicionais agora recairão sobre a própria bolsa como receita perdida.
Tirando esse exemplo extremo, podemos ver que não importa qual lado cobra as taxas, mas sim a soma das taxas do tomador e do fabricante. Em última análise, assim como acontece com a política tributária da Curva de Laffer, as bolsas enfrentam um problema de otimização de receita em sua política de taxas. Podemos ver que a renda do lucro é a mesma que a política tributária. Se as bolsas não cobram nenhuma taxa, elas não têm renda. Se a bolsa cobrasse 100% em taxas, não haveria negociação e, portanto, nenhuma renda para eles. Com alguma investigação adicional, fica claro que a receita de câmbio no nível da taxa total é uma função côncava com um máximo único.

Glossário: Curva de Laffer (https://en.wikipedia.org/wiki/Laffer_curve)
Continua