Wednesday, 7 March 2018

Sistema de comércio nanosegundo


O Evangelista de Tecnologia.
Explorando a liderança da tecnologia de computação com foco na rede.
O Evangelista de Tecnologia.
Iniciado em 98 Nanossegundos.
por scottcschweitzer em 18 de outubro de 2017.
Imagine uma corrida diária com centenas de dragsters de combustível superior, todos alinhados retumbando em paralelo esperando a mesma luz verde da árvore de Natal antes de lançar a linha. Em alguns mercados eletrônicos, com produtos específicos, todas as manhãs de semana é exatamente o que acontece. É uma corrida onde ser o mais rápido é o principal atributo usado para determinar se você vai estar fazendo negócios. Em qualquer dia, apenas os finistas superiores são recompensados ​​com trades. Aqueles que transmitem suas primeiras ordens do dia, o mais rápido, recebem uma posição favorável na fila da fila e são susceptíveis de fazer algum negócio nesse dia. Neste mercado, TODOS os nanosegundos (um bilionésimo de segundo) são importantes e podem ser monetizados. Na semana passada, o novo benchmark foi estabelecido em 98 nanosegundos, além do seu algoritmo de negociação, em alguns casos, 150 nanossegundos de tique total para o comércio.
& # 8220; Latency & # 8221; é o termo da indústria para os atrasos na rede inevitáveis, e & # 8220; Tick to Trade Latency & # 8221; agrega o tempo de viagem da rede para um sinal de dados de mercado UDP para chegar a um sistema de negociação e para que o sistema comercial transmita uma ordem TCP na troca. No ano passado, o Solarflare introduziu o envio de TCP de aplicativo de nanosegundos (ANTS) e baixou a caixa de seleção # 8220; Latência de marcação para comércio e # 8221; barra para 350 Nanossegundos. O ANTS é executado em colaboração com o Onload Engine (AOE) da Solarflare & # 8217; com base em um FPGA Altera Stratix. Solarflare avançou ainda mais esta plataforma de negociação de alta velocidade para atingir 250 nanosegundos. Então, na primavera de 2017, a Solarflare colaborou com a LDA Technologies. A LDA trouxe seus núcleos Lightspeed TCP para a mesa e substituiu o AOE por uma placa Xilinx FPGA mais uma vez, baixando o & # 8220; Tick to Trade Latency & # 8221; para 120 nanosegundos. Agora, através de novos avanços e movendo-se para a mais recente plataforma de computação Penguin Computing Skylake, todos os três sócios anunciaram um benchmark qualificado STAC-T0 de 98 nanosegundos & # 8220; Tick to Trade Latency! & # 8221;
Havia mesmo um caso único neste teste STAC-T0, onde a latência foi medida em 68 nanossegundos negativos, o que significa que um comércio poderia ser injetado na troca antes que os dados do mercado da bolsa tivessem sido completamente recebidos. Em comparação com os sistemas de negociação tradicionais que exigem que todo o pacote de rede de dados de mercado seja recebido antes de qualquer processamento pode ser feito, esses sistemas FPGA avançados recebem os dados do mercado no pacote em blocos de quatro bytes e podem começar a processar esses dados enquanto ele chega . Imagine aparecer na cozinha antes que sua esposa termine de chamar seu nome para o jantar. Poderia ter bons e maus efeitos colaterais de uma ação tão rápida, você tem um ou dois momentos para provar algumas coisas antes que a mesa esteja definida, ou você pode receber algumas tarefas de último minuto. O mesmo vale para essas negociações agressivas.
Na semana passada, em um Podcast com o mesmo nome, tivemos uma discussão com Vahan Sardaryan, CEO da LDA Technologies, onde fomos isso com mais detalhes.
A Penguin Computing também está produzindo a plataforma completa, incluindo a tecnologia ANTS da Solarflare e NIC, a LDA Technologies Lightspeed TCP, juntamente com um FPGA Xilinx de alto desempenho para fornecer a Máquina de Negociação Ultimate.
The Ultimate Trading Machine.
Compartilhar isso:
Comentários:
19 de outubro de 2017.
Pode-se também ler 4 bytes de / dev / random e usar isso como sinal comercial para trocar ainda mais rápido, sem hardware especial!

Sistema de comércio nanosegundo
Obter através da App Store Leia esta publicação em nosso aplicativo!
Quão rápido são os sistemas de negociação HFT de última geração hoje?
Todo o tempo que você ouve sobre comércio de alta freqüência (HFT) e quão rápido são os algoritmos. Mas estou pensando - o que é rápido nos dias de hoje?
Não estou pensando na latência causada pela distância física entre uma troca e o servidor que executa um aplicativo comercial, mas a latência introduzida pelo próprio programa.
Para ser mais específico: qual é o tempo decorrido dos eventos que chegam no fio em um aplicativo para esse aplicativo, emite um pedido / preço no fio? Isto é, hora do tic-to-trade.
Estamos falando sub-milissegundo? Ou sub-microssegundo?
Como as pessoas conseguem essas latências? Codificação em montagem? FPGAs? Código de C ++ bom e antigo?
Foi recentemente publicado um artigo interessante sobre o ACM, fornecendo muitos detalhes sobre a tecnologia HFT de hoje, que é uma excelente leitura:
Você recebeu excelentes respostas. Há um problema, porém - a maioria das algotrading é um segredo. Você simplesmente não sabe o quão rápido é. Isso vai nos dois sentidos - alguns podem não dizer o quão rápido eles funcionam, porque eles não querem. Outros podem, digamos, "exagerar", por muitas razões (atraindo investidores ou clientes, por um).
Os rumores sobre picossegundos, por exemplo, são bastante escandalosos. 10 nanosegundos e 0,1 nanosegundos são exatamente a mesma coisa, porque o tempo necessário para que a ordem atinja o servidor de negociação seja muito mais do que isso.
E, o mais importante, embora não seja o que você perguntou, se você tentar negociar algorítmicamente, não tente ser mais rápido, tente ser mais inteligente. Eu vi algoritmos muito bons que podem lidar com segundos de latência e ganhar muito dinheiro.
Eu sou o CTO de uma pequena empresa que fabrica e vende sistemas HFT baseados em FPGA. Construindo nossos sistemas no topo do Solarflare Application Onload Engine (AOE), estamos constantemente oferecendo latência de um evento de mercado "interessante" no fio (10Gb / S UDP market data feed de ICE ou CME) para o primeiro byte do mensagem de ordem resultante atingindo o fio na faixa de 750 a 800 nanosegundos (sim, submicosegundo). Nós antecipamos que nossos sistemas de próxima versão estarão na faixa de 704 a 710 nanosegundos. Algumas pessoas reivindicaram um pouco menos, mas isso é em um ambiente de laboratório e na verdade não está sentado em uma COLO em Chicago e limpa as ordens.
Os comentários sobre física e "velocidade da luz" são válidos, mas não relevantes. Todo mundo que é sério sobre a HFT tem seus servidores em um COLO na sala ao lado do servidor da troca.
Para entrar neste domínio sub-microsegundo, você não pode fazer muito na CPU do host, exceto os comandos de implementação da estratégia de alimentação para o FPGA, mesmo com tecnologias como o bypass do kernel você tem 1.5 microssegundos de despesas gerais inevitáveis. então neste domínio tudo está jogando com FPGAs.
Uma das outras respostas é muito honesta ao dizer que, neste mercado altamente secreto, poucas pessoas falam sobre as ferramentas que eles usam ou seu desempenho. Cada um de nossos clientes exige que nem digamos a ninguém que eles usem nossas ferramentas nem divulguem nada sobre como elas as usam. Isso não só dificulta o marketing, mas também evita o bom fluxo de conhecimento técnico entre colegas.
Devido a esta necessidade de entrar em sistemas exóticos para a parte do mercado "wicked fast", você descobrirá que os Quants (as pessoas que aparecem nos algoritmos que fazemos rápido) estão dividindo seus algos em eventos-a - camadas de tempo de resposta. No topo da tecnologia, o heap é o sistema de microsecondos secundários (como o nosso). A próxima camada são os sistemas C ++ personalizados que fazem uso intenso do bypass do kernel e estão na faixa de 3-5 microsegundos. A próxima camada são as pessoas que não podem se dar ao luxo de estar em um fio de 10Gb / S apenas um roteador de lúpulo da "troca", eles podem estar ainda em COLO, mas por causa de um jogo desagradável que chamamos de "roleta de porta" eles estão no dezenas de centenas de microsecondos. Uma vez que você entra em milissegundos, quase não é HFT.
"sub-40 microssegundos", se você quiser acompanhar a Nasdaq. Esta figura é publicada aqui nasdaqomx / technology /
Um bom artigo que descreve o estado do HFT (em 2018) e oferece algumas amostras de soluções de hardware que tornam possível o uso de nanosegundos: as ruas de parede precisam de velocidade de negociação: a era de nanosegundos.
Com a corrida pela menor "latência" continuando, alguns participantes do mercado estão falando sobre picossegundos - trilhões de segundo.
EDIT: Como Nicholas mencionou gentilmente:
O link menciona uma empresa, a Fixnetix, que pode "preparar um comércio" em 740ns (ou seja, o tempo de um evento de entrada ocorre a uma ordem que está sendo enviada).
Para o que vale a pena, o produto de mensagens FTL da TIBCO é sub-500 ns para dentro de uma máquina (memória compartilhada) e alguns micro segundos usando RDMA (Remote Direct Memory Access) dentro de um data center. Depois disso, a física se torna a principal parte da equação.
Então, essa é a velocidade com que os dados podem ser obtidos a partir do feed para o aplicativo que toma decisões.
Pelo menos um sistema reivindicou.
30ns mensagens interthread, que provavelmente é um benchmark tweaked up, então qualquer um que fala sobre números mais baixos está usando algum tipo de CPU mágica.
Uma vez que você está no aplicativo, é apenas uma questão de quão rápido o programa pode tomar decisões.
Hoje em dia, o tic-to-trade de um dígito em microssegundos é a barra para empresas HFT competitivas. Você deve poder fazer dígitos únicos altos usando apenas o software. Então & lt; 5 usec com hardware adicional.
O comércio de alta freqüência ocorreu pelo menos desde 1999, depois que a Bolsa de Valores dos EUA (SEC) autorizou as trocas eletrônicas em 1998. Na virada do século 21, os negócios da HFT tiveram um tempo de execução de vários segundos, enquanto que até 2018 isso diminuiu em milissegundos e até mesmo em microssegundos.
Nunca será inferior a alguns microsegundos, devido ao limite de velocidade de em-w / luz, e apenas um número sortudo, que deve estar em menos de um quilômetro de distância, pode até sonhar em aproximar-se disso.
Além disso, não há codificação, para alcançar essa velocidade, você deve se tornar físico ... (o cara com o artigo com o interruptor 300ns, que é apenas a latência adicional desse switch!, Igual a 90m de viagem através de um óptico e um pouco menos em cobre)

Hacking de um sistema HFT.
Comparado com algoritmos de aprendizado de máquina ou processamento de sinal de estratégias de negociação convencionais, os sistemas de alta freqüência comercial podem ser surpreendentemente simples. Eles não precisam tentar prever os preços futuros. Eles já conhecem os preços futuros. Ou melhor, eles sabem os preços que estão no futuro para outros participantes do mercado mais lentos. Recentemente, obtivemos alguns contratos para simulação de sistemas HFT para determinar o seu potencial de lucro e latência máxima. Este artigo trata de testar os sistemas HFT do hacker & # 8217; s s.
A vantagem da HFT está recebendo cotações de preços mais cedo e recebendo pedidos cheios mais rapidamente do que a maioria dos participantes do mercado. Seu lucro depende da latência do sistema, do atraso entre a cotação de preços e a subsequente execução da ordem na troca. A latência é o fator mais relevante de um sistema HFT. Pode ser otimizado de duas maneiras: minimizando a distância à troca e maximizando a velocidade do sistema comercial. O primeiro é mais importante do que o último.
A localização.
Idealmente, um servidor HFT está localizado diretamente na troca. E, na verdade, a maioria das trocas é uma querida venda do espaço do servidor em suas adegas & # 8211; Quanto mais perto do hub principal da rede, mais caro é o espaço. Sinais elétricos em uma viagem blindada com cerca de 0,7 ... 0,9 vezes a velocidade da luz (300 km / ms). 1 m mais perto da fonte de sinal significa uma enorme vantagem de 8 nanossegundos em ida e volta. Quantas oportunidades de comércio desaparecem após 8 ns? Não sei, mas as pessoas estão dispostas a pagar por qualquer nanossegundo salvo.
Infelizmente (ou, felizmente, de uma perspectiva de custo), o sistema HFT que nós examinaremos aqui não pode tirar proveito de colocação na troca. Por razões que iremos ver em breve, deve trocar e receber cotações da NYSE e do CME simultaneamente. Existe um cabo de alta velocidade e também um link de rádio de microondas que funciona entre as duas cidades. A localização teoricamente ideal de um sistema HFT é Warren, Ohio, exatamente a meio caminho entre Nova York e Chicago. Não sei se existe um nó de alta velocidade em Warren, mas, se for, a distância de 357 milhas para ambas as trocas seria equivalente a uma latência de ida e volta de cerca de 4 ms.
Warren, Ohio & # 8211; HFT Meca do mundo (imagem de Jack Pearce / Wikipedia Commons)
Sem dúvida, um servidor nesta cidade agradável chegaria a um custo menor do que um servidor na adega da New York Stock Exchange. A dica gratuita do meu hoje para se enriquecer: compre um espaço de garagem em Warren, toque o link de cabo ou rádio de Nova York-Chicago de alta velocidade e aloje as barras de servidor!
O software.
Quando você já investiu dinheiro para a localização ideal e conexão do sistema HFT, você também quer um software comercial que corresponda à velocidade requerida. Plataformas de comércio comercial e # 8211; até Zorro & # 8211; normalmente não são rápidos o suficiente. E você não sabe o que eles fazem atrás de suas costas. Os sistemas HFT, portanto, normalmente não são baseados em uma plataforma de negociação, mas codificados diretamente. Não em R ou Python, mas em um idioma rápido, geralmente um dos seguintes:
C ou C ++. Boa combinação de alto nível e alta velocidade. C é fácil de ler, mas muito eficaz e quase tão rápido quanto o idioma da máquina. Pentium Assembler. Escreva o seu algoritmo nas instruções da máquina. Mais rápido do que C quando o algoritmo é executado principalmente em loops que podem ser otimizados manualmente. Existem especialistas para otimizar o código do montador. Desvantagem: qualquer programador tem dificuldade em entender os programas de montagem criados por outro programador. CUDA, HLSL ou montador de GPU. Execute o seu algoritmo na tubulação de sombreador da placa de vídeo do PC. Isso faz sentido quando é fortemente baseado em operações vetoriais e matriciais. VHDL. Se algum software for muito lento e o sucesso do comércio realmente depende de nanosegundos, a solução final é codificar o sistema em hardware. Na VHDL você pode definir unidades aritméticas, filtros digitais e seqüenciadores em um chip FPGA (Field P rogrammable G ate A Rray) com uma taxa de clock de até 100 MHz. O chip pode ser conectado diretamente à interface de rede.
Com exceção da VHDL, especialmente programadores de jogos de computador 3D são normalmente familiares com os idiomas de alta velocidade. Mas a linguagem padrão dos sistemas HFT é C / C ++ simples. Também é usado neste artigo.
O algoritmo.
Muitos sistemas HFT se alimentam de comerciantes usando métodos avançados. Eles pegaram sua cotação, compram o mesmo bem alguns microseconds anteriormente e vendem para você com lucro. Algumas trocas impedem isso no interesse do jogo justo, enquanto outros intercâmbios incentivam isso no interesse de ganhar mais taxas. Para este artigo, nós não usamos métodos avançados, mas simplesmente exploramos a arbitragem entre ES e SPY. Nós estamos assumindo que nosso servidor está localizado em Warren, Ohio, e tem uma conexão de alta velocidade para Chicago e para Nova York.
ES é um futuro de S & P500 negociado em Chicago, exposto à oferta e à demanda. SPY é uma ETF negociada em Nova York, emitida pela State Street em Boston e seguindo o índice S & amp; P500 (menos as taxas do State Street & # 8217; s). 1 ES Point é equivalente a 10 centavos SPY, então o preço ES é cerca de dez vezes o preço SPY. Uma vez que ambos os ativos são baseados no mesmo índice, podemos esperar que seus preços estejam altamente correlacionados. Houve algumas publicações (1) que afirmam que esta correlação será dividida em prazos baixos, fazendo com que um recurso feche o outro. Nós verificaremos se isso é verdade. Qualquer diferença de preço ES-SPY de curta duração que exceda os spreads de oferta e solicitação e os custos de negociação constituem uma oportunidade de arbitragem. Nosso algoritmo de arbitragem funcionaria dessa maneira:
Determine a diferença SPY-ES. Determine seu desvio da média. Se o desvio exceder os spreads de lance de oferta mais um limite, abra as posições em ES e SPY em direções opostas. Se o desvio reverte seu sinal e excede os spreads de oferta-lance mais um limiar menor, feche as posições.
Este é o algoritmo HFT Barebone em C. Se você nunca viu o código HFT antes, pode parecer um pouco estranho:
A função tradeHFT é chamada de algum framework & # 8211; não mostrado aqui & # 8211; que obtém as cotações dos preços e envia os pedidos comerciais. Os parâmetros são os melhores preços de oferta e oferta da ES e do SPY a partir do topo do livro de pedidos (assumimos que o preço SPY é multiplicado por 10 para que ambos os ativos estejam na mesma escala). A função retorna um código que informa o quadro para abrir ou fechar posições opostas ou para não fazer nada. A variável Arbitrage é a diferença de preço médio de SPY e ES. Sua média (ArbMean) é filtrada por uma EMA lenta, e o Desvio da média também é ligeiramente filtrada por uma EMA rápida para evitar reações em cotações de atípulo. A variável Posição constitui uma pequena máquina de estado com os 3 estados de comprimento, curto e nada. O limite de entrada / saída está aqui ajustado para 40 centavos, equivalente a um spread SPY ruim multiplicado por 10. Este é o único parâmetro ajustável do sistema. Se quisermos realmente negociá-lo, tivemos que otimizar o limite usando vários meses & # 8217; Dados ES e SPY.
Este sistema minimalista seria bastante fácil de converter para o montador Pentium ou mesmo para um chip FPGA. Mas não é realmente necessário: mesmo compilado com o compilador Lite-C do Zorro & # 8217; a função tradeHFT é executada em apenas 750 nanosegundos. Um compilador C altamente otimizador, como o Microsoft VC ++, reduz o tempo de execução para 650 nanossegundos. Como o intervalo de tempo entre duas citações ES é normalmente de 10 microssegundos ou mais, a velocidade de C é bastante suficiente.
Nosso experimento HFT deve responder duas perguntas. Primeiro, as diferenças de preços são grandes o suficiente para obter lucros de arbitragem? E em segundo lugar, em que latência máxima o sistema ainda funcionará?
Para testar um sistema HFT, os dados de preços normais que você pode baixar livremente dos corretores ganharam # 8217; t. Você precisa comprar um livro de pedidos de alta resolução ou dados BBO (B est B id e O ffer) que inclui os horários de troca. Sem saber o horário exato em que a cotação de preços foi recebida no intercâmbio, não é possível determinar a latência máxima.
Algumas empresas estão gravando todas as cotações de todas as trocas e estão vendendo esses dados. Qualquer um tem seu formato de dados específico, então o primeiro desafio é converter isso em arquivos de dados flexíveis que avaliamos com o nosso software de simulação. Nós estamos usando este formato de alvo muito simples para cotações de preços:
A empresa que vê o Chicago Mercantile Exchange entrega seus dados em um formato CSV específico com muitos campos adicionais, dos quais não precisamos aqui (por exemplo, o volume comercial ou a hora de chegada da cotação). As citações de todos os dias são armazenadas em um arquivo CSV. Este é o script Zorro para tirar do contrato ES dezembro 2018 e convertê-lo em um conjunto de dados de cotações de preços T1:
Nós estamos conversando aqui 10 dias em outubro de 2018 para o nosso backtest. O script primeiro analisa o arquivo CSV em um conjunto de dados binário intermediário, que é convertido no formato de destino T1. Uma vez que os carimbos de hora estão na hora local de Chicago, devemos adicionar uma hora para convertê-los na hora de NY.
A empresa que vê a Bolsa de Nova York entrega dados em um formato específico altamente comprimido chamado & # 8220; NxCore Tape & # 8221 ;. Nós estamos usando o plug-in Zorro NxCore para converter isso em outra lista T1:
A função de retorno de chamada é chamada por qualquer citação no arquivo de fita. Nós não precisamos da maioria dos dados, então filtramos apenas as citações SPY (& # 8220; eSPY & # 8221;).
Verificando a ineficiência.
Com dados de ambas as fontes, agora podemos comparar os preços ES e SPY em alta resolução. Aqui, é uma amostra típica de 10 segundos das curvas de preço:
SPY (preto) vs. ES (vermelho), 5 de outubro de 2017, 10:01:25 e # 8211; 10: 01.35.
A resolução é de 1 ms. ES é plotado em $ unidades, SPY em unidades de 10 centavos, com um pequeno deslocamento para que as curvas se situem umas sobre as outras. Os preços apresentados são preços de venda. Podemos ver que ES se move em etapas de 25 centavos, SPY em etapas de 1 centavo. Os preços ainda estão bem correlacionados mesmo em uma escala de milissegundos. ES parece rastrear um pouco.
Também podemos ver uma oportunidade de arbitragem no preço íngreme no centro em torno de 10:01:30. A ES reagiu um pouco mais devagar, mas mais forte em algum evento, provavelmente um salto de preço moderado de um dos estoques do S & amp; P 500. Esse evento também desencadeou uma rápida seqüência de cotações ASPY oscilantes, provavelmente de outros sistemas HFT, até a A situação se acalmou novamente alguns 100 ms mais tarde (a escala não é linear, pois os períodos de tempo sem citações são ignorados). Por vários milissegundos, a diferença ES-SPY excedeu o spread de oferta de ambos os ativos (geralmente 25 centavos para ES e 1 ... 4 centavos para SPY). Gostaríamos aqui, idealmente, vender ES e comprar SPY imediatamente após o preço ES passo. Portanto, verificamos que a ineficiência teorizada realmente existe, pelo menos nesta amostra.
O script para exibir gráficos de alta resolução:
O script primeiro lê os dois arquivos de dados históricos que nós criamos acima e, em seguida, os analisamos por linha. Para manter as citações ES e SPY em sincronia, sempre lemos a citação com o timestamp menor dos conjuntos de dados (aspas são armazenadas em ordem ascendente). A função priceQuote verifica os preços de outliers, armazena o preço de venda na variável AskPrice e a diferença de oferta-oferta no Spread e aumenta a contagem de barras para traçar as curvas de preço. Uma barra da curva é equivalente a 1 ms. A variável AssetBar é a última barra com uma cotação de preço desse recurso, e é usada aqui para evitar traçar antes da primeira cotação chegar.
Testando o sistema.
Para testar nosso sistema HFT, precisamos apenas modificar o script acima e chamar a função tradeHFT no loop:
Este script executa um backtest de HFT de um dia de negociação, das 9:30 às 15:30, hora de Nova York. Podemos ver que apenas chama a função HFT com os preços ES e SPY e, em seguida, executa o código retornado na declaração switch-case. Ele abre 100 unidades de cada recurso (equivalente a 2 contratos ES e 1000 SPY). A latência de ida e volta é configurada com a variável EntryDelay. No modo HFT (Preencher = 8), um comércio é preenchido no preço mais recente após o atraso dado. Isso garante uma simulação de latência realista quando cotações de preços são inseridas com os seus horários de troca.
Aqui, o lucro do HFT no final do dia com diferentes valores de latência de ida e volta:
O sistema de arbitragem ES-SPY HFT faz cerca de US $ 800 por dia com uma pequena latência pouco realista de 500 microssegundos. Infelizmente, devido às 700 milhas entre a NYSE e a CME, você precisa de uma máquina de tempo para isso (ou algum método mais rápido do que a luz de teletransporte quântico). Um servidor HFT em Warren, Ohio, a latência de 4 ms geraria cerca de US $ 300 por dia. Um servidor ligeiramente fora da linha direta NY-Chicago ainda pode processar US $ 200 diariamente. Mas o sistema deteriora-se rapidamente quando localizado mais longe, como acontece com um servidor em Nashville, Tennessee, com uma latência de aproximadamente 10 ms. Esta é uma forte dica de que alguns sistemas de alta velocidade na proximidade de ambas as trocas já estão ocupados com a exploração da arbitragem ES-SPY.
Ainda assim, US $ 300 por dia resultam em uma receita anual decente de US $ 75.000. No entanto, o que precisava de você para investir para isso, além do hardware e software? Com SPY em US $ 250, as 100 unidades traduzem para 100 * $ 2500 + 100 * 10 * $ 250 = volume de comércio de meio milhão de dólares. Então você receberia apenas 15% de retorno anual em seu investimento. Mas você pode melhorar isso adicionando mais pares de ETF de NY e seus futuros equivalentes de CME para a estratégia de arbitragem. E você pode aprimorá-lo ainda mais quando encontrar um corretor ou serviço similar que possa receber suas ordens diretamente nas bolsas. Devido ao ETF / cobertura futura, o cargo está quase sem risco. Então, você provavelmente poderia negociar uma grande alavancagem. E também uma taxa mensal fixa, uma vez que as comissões de corretores não foram incluídas no teste.
Conclusão.
Quando os sistemas reagem rápido o suficiente, os lucros podem ser alcançados com métodos muito primitivos, como a arbitragem entre ativos altamente correlacionados. A localização tem um grande impacto nos lucros da HFT. A arbitragem ES-SPY não pode ser trocada por todos de todos os lugares. Você está competindo com pessoas que estão fazendo isso já. Possivelmente em Warren, Ohio.
Eu acrescentei os scripts e a lista de ativos ao arquivo de script de 2017 no & # 8220; HFT & # 8221; e & # 8220; History & # 8221; pastas. Infelizmente eu não consegui adicionar os arquivos de histórico de preço ES / SPY, já que não possuo os dados. Para reproduzir os resultados, obtenha o histórico do BBO da Nanex ™ ou Nanotick ™ & # 8211; seus dados podem ser lidos com os scripts acima. Você também precisará do Zorro S versão 1.60 ou superior, que suporte o modo de preenchimento HFT.
Referências.
Termo aditivo. Perguntei-me como o lucro seria afetado quando o servidor estiver localizado em Nova York, com atraso de sinal de 0,25 ms para a NYSE e atraso de sinal de 4,8 ms para o CME. Para simular isso, modifique o script:
A primeira linha simula as chegadas das cotações com atraso de 4,8 e 0,25 ms, as outras linhas estabelecem diferentes atrasos nas ordens para SPY e ES. Alternativamente, você pode atrasar artificialmente as citações de SPY recebidas por mais 4.55 ms, de modo que seus carimbos de hora combinem de novo com as citações de ES. Em ambos os casos, o sistema retorna cerca de US $ 240 por dia, quase tanto quanto em Warren. No entanto, um sistema similar localizado em Aurora, perto de Chicago (trocar os atrasos no script), produziria lucro zero. A assimetria é causada pelos períodos constantes relativamente longos de ES, tornando a latência SPY mais relevante para o dinheiro no final do dia.
34 pensamentos sobre & ldquo; Hacking a HFT system & rdquo;
Bem feito senhor, ótima explicação.
Pergunto-me se seria possível usar este tipo de sistema para negociar a arbitragem entre diferentes mercados da Bitcoin e outras moedas digitais conectadas. Até agora eu sei que eles oferecem uma maior gama de spreads entre os diferentes mercados e as diferentes moedas em troca uns dos outros ou em uma Moeda normal.
Sim, e isso poderia ser muito mais promissor, já que o comércio de criptografia ainda está no estágio pioneiro e provavelmente não há muitos bitcoins de negociação de sistemas HFT, se houver algum. O problema é a infra-estrutura e a confiabilidade das trocas de bitcoína. Você ouve permanentemente que uma ou outra troca está indo para baixo ou não paga mais.
Não é possível arbitrar bitcoin, há taxa muito alta em troca, olhe para o melro, poderia fazer como 2% mês, mas agora nem mesmo 0,5%
Grande artigo sobre HFT. No entanto, tenho uma pergunta. Você poderia explicar por que você usa SpreadSPY / SpreadES para decidir a magnitude do desvio para entrar ou fechar uma posição?
Como o desvio de preço deve ser maior do que os spreads de oferta-lance para fazer lucro. O ES spread é relativamente constante, mas SPY spread pode ser de até 6 centavos, então deve ser considerado ao abrir uma posição. O spread é dividido e verificado na abertura e no fechamento.
Bom trabalho jcl. Por sinal, o script Zorro é capaz de obter dados de preços de 2 corretores para a arbitragem?
Não é esse script, já que ele é apenas para teste de backtest. Mas geralmente, a arbitragem do corretor não deve ser problema, eu usaria dois Zorros em execução paralela para isso. Mas eu ouvi dizer que a arbitragem do agente raramente funciona.
Este é um artigo muito bom JCL. Gostei de ler isso imensamente.
Eu tenho muita experiência são esses métodos e seu artigo me levou de volta aos primeiros dias desse comércio.
A principal questão é o custo da infra-estrutura para suportar isso em um nível significativo. Nós usamos microondas e lazers, que não são baratos.
Sub 8ns pode fazer a diferença. Enquanto o CME possui cabos equidistantes, existem alguns outros truques que você pode empregar para ganhar vantagem.
Btw há um livro chamado Flash Boys escrito por Michael L. Lewis, que descreve as formas mais comuns de HFT. Também foi dito que você simplesmente pode simplesmente colocar seus servidores no meio entre duas cidades porque o cabo não está indo direto e # 8211; Vai em ziguezague através de outras cidades, então o melhor é colocar seu próprio cabo.
ótimo tutorial lá. Muito apreciado 🙂
Como incluíria as taxas de ordem para entrar / sair da posição nos cálculos de arbitragem?
Digamos que eu tenho um Tomador de Taxa de 0,025%
posso aumentar & # 8201; A propagação deste tipo para o sistema funcionar?
(askSPY + (askSPY * takerFee)) & # 8211; (BidES & # 8211; (bidES * takerFee))
Eu não adicionaria isso à propagação. Ou somar as taxas para cima em uma variável de Taxa separada, ou subtraí-las diretamente do eqüino predefinido & # 8220; & # 8221; variável que contém o lucro acumulado dos negócios.
Você não usaria carros no código HFT. Muito devagar . Use dois inteiros em uma estrutura para representar um preço, precisão fixa. Além disso, todos estão usando microondas agora para index arb entre NY4 e Aurora.
O código HFT hoje normalmente usa flutuadores. A multiplicação de números inteiros precisa apenas de cerca de 1 ... 4 ciclos de clock menos do que a multiplicação de FPU e, como você tem sobrecarga para deslocamento, etc, os carros normalmente são mais rápidos. O Lite-C possui um tipo de variável de ponto fixo 22.10, mas não oferece vantagem de velocidade em CPUs modernas. Você usa inteiros somente quando precisar dele para fins especiais, por exemplo, realizando seu sistema em hardware.
JCL & # 8211; Nós não usamos ponto flutuante de qualquer tipo (duplos, flutuadores) na HFT, pois é muito difícil de comparar. O ponto fixo geralmente é a escolha.
Boa parte. Alguns pensamentos:
(1) seus dados SPY provavelmente foram capturados e timestamp & # 8217; ed em NYC enquanto os dados do ES eram timestamp & # 8217; ed in Aurora / Chicago.
(2) a maioria das empresas comerciais que coletam dados de tiques para revenda têm timestamps realmente ruins, que derivam até milissegundos intradía.
(3) A maioria das empresas (por exemplo, Reuters) captura todos os dados em apenas um local (por exemplo, NYC), mesmo que a troca esteja em Chicago & # 8211; e eles usam a rede mais barata & # 8211; Isso seria muito favorável em um backtesting.
(4) Os futuros de ES têm um desconto em relação ao spot SPY, dependendo da quantidade de dias até o vencimento que você não está tendo em conta;
(5) Você está atravessando o mercado e pagando a propagação toda vez que você troca # 8211; você não contabiliza isso; Toda vez que você vende um estoque ou futuro, você tem que usar o BID / preço mais baixo e vice-versa.
(5.a) Você pode mitigar o spread-crossing usando um simulador de mercado que levará em conta o volume do mercado e a posição da fila, mas você terá que codificar também um gerenciamento de posição mais flexível. Nesse caso, a lógica de negociação será mais complexa.
(6) você não contabiliza taxas e comissões.
(7) O VHDL para FPGA ainda é software e a maioria do desenvolvimento de RTL é feito em Verilog na minha experiência, não na VHDL.
(8) Os FPGAs hoje em dia têm uma ida e volta de 200 nanos, tick-to-trade, incluindo a lógica de negociação.
(9) você não está verificando se o livro se espalhou é largo & # 8211; Isso acontece com frequência e tira qualquer EMA.
Os problemas de comparação do FP não devem desempenhar nenhum papel, pois você normalmente compara os carros alegóricos acima ou abaixo, e não na igualdade. Posso imaginar o uso de pontos fixos em alguns casos especiais, como contagem de passos de preços discretos ou quando seu sistema é executado em um FPGA.
Os marcadores de tempo das empresas de coleta de dados não são usados ​​nos testes HFT. Você está usando timestamps de troca. O desconto de expiração não é muito relevante quando suas negociações são de milissegundos. Os spreads de mercado, no entanto, são relevantes e são, naturalmente, contabilizados como você vê nos scripts. Se eu ignorasse os spreads do mercado, o script faria dez mil dólares todos os dias, e não poucas centenas. As tarifas não estão incluídas como já mencionado. Eles normalmente dependem da sua infra-estrutura e não do algoritmo HFT. VHDL e Verilog são ambos os idiomas para definir componentes de hardware. Usamos o VHDL, mas essa é uma questão de preferência pessoal.
Obrigado por toda a informação, é muito educacional!
Eu tenho apenas uma pergunta que eu não posso ajudar, mas me pergunto sobre:
Como alguém que pode cobrar EUR170 por mudar apenas uma linha de código às vezes, escrever esse extenso blog público deve valer uma fortuna em seu tempo. Você paga para fazê-lo? (Desde que você mencionou que você estará pronto para fazer palestras no youtube para pagar, eu aceito que você tenha pago o blog). E, o mais importante, qual a agenda da entidade que lhe paga? O que eles ganham com isso? & # 8230; a não ser que seja um segredo, é claro.
Assim como a maioria dos blogueiros, eu estou fazendo isso no meu tempo livre, então não há nenhuma entidade sinistra que me pague. E, embora teoricamente, de fato, devemos cobrar 170 euros por mudar uma única linha de código, na realidade isso não acontece. Nesse caso, aconselhamos o cliente a mudar essa linha sozinho.
Oh, eu vejo, mas nesse caso, você pode querer considerar fazer um blog de vídeo do youtube depois de tudo. O meio de vídeo é, sem dúvida, mais interativo e envolvente. Isso aumentaria muito o seu esforço altruísta de comunicar suas experiências e idéias ao público em geral. Eu sei que eu assisto seus vídeos com certeza.
Obrigado por todo seu trabalho!
Atualmente, estou lendo seu livro, a meio caminho e sinto que estou aprendendo muito.
No entanto, há uma declaração no início (ou no & # 8220; começar & # 8221; como você gostaria de dizer:]) que me confundiu: você disse que a alavancagem maior não aumenta o risco e na verdade, quanto maior a alavancagem, mais longe nós somos de uma chamada de margem # 8221 ;.
Eu simplesmente não posso afundar minha cabeça em torno dessa afirmação. Eu sempre pensei que a alavancagem multiplica (amplifica) a volatilidade de um ativo em relação à nossa margem. Digamos que um movimento hipotético de preços sem alavancagem em alguma posição nossa que nos vá contra nós reclama 10% de nossa margem & # 8211; então, nós só seremos eliminados por 10 movimentos consecutivos contra nós (nossa perda de stop teria tempo para reagir). No entanto, alavancando, por exemplo, 10 vezes, na mesma situação, a margem total desapareceria nesse movimento de um preço em vez de dez. O que significa que o risco é realmente amplificado e estamos muito mais expostos ao perigo de chamada de margem devido a flutuações aleatórias simples. Estou recebendo algo errado?
Provavelmente deveria ter dito: maior alavancagem não aumenta o risco com o mesmo volume comercial.
Se você trocar um volume X, você recebe uma chamada de margem quando sua perda exceder seu capital menos a margem alocada, que é X / Alavancagem. Você vê que quanto maior a alavancagem, maior é o termo (Capital-X / Leverage) e, portanto, maior é a perda máxima que sua conta pode sobreviver.
Alavancagem mais elevada, de fato, aumenta o risco quando tenta que você troque um volume maior.
Ohha! Então, estamos sempre comprando a mesma quantidade de ativos, exceto quando alavancamos, devemos comprometer menos margem para apoiar a transação. O que, por sua vez, significa que temos menos margem em risco! Isso faz sentido, obrigado pela explicação.
Então eu terminei de ler o & # 8220; Black Book of Financial Hacking & # 8221; e foi estudar o manual Zorro # 8211; e o que eu vejo? O livro e o manual têm sobreposição de 90% !! E o manual realmente vai muito mais em profundidade. Consenso para o leitor: Não gaste seu dinheiro no livro, apenas leia o manual.
JCL, como o autor do livro e o manual Zorro, você concordaria com esta observação?
Considerando que o projeto Zorro é patrocinado, você já deve ter obtido muito dinheiro trabalhando no manual. E então, você testemunharia estar praticando uma cobrança de dinheiro sem vergonha revendo uma versão abreviada do manual como seu livro? xD hahahaha.
Comprei o livro também. Eu acho que o livro é muito útil para explicar os conceitos fundamentais mais que o manual. Não me arrependi de comprar o livro. Eu ainda recomendaria isso para iniciantes.
Apenas para esclarecer, apesar de ter escrito tanto o livro como o manual, eles são completamente diferentes. Uma é uma introdução em algo trading e a outra é um manual de software que assume que você já conhece algo trading. A única sobreposição é o curso de programação, mas por razões óbvias, um manual de software não pode fornecer tantos detalhes e exemplos como um livro. O curso no manual tem 7 páginas e o curso no livro talvez 100 páginas.
Eu não sei, pelo que eu já vi, mesmo as conversas motivadoras entre Alice e Bob para cada exercício são exatamente as mesmas # 8230; Mas talvez isso seja apenas minha impressão. ^^
jcl, fora do tópico, mas vejo que você vai se apresentar na Quant Expo. Não poderei participar. Você estará gravando a apresentação por acaso?
Eu acredito que será registrada pelo organizador, mas não sei onde e quando o vídeo será publicado.
Ligeiramente fora do tópico, mas na idéia de HFT. É possível arbitrar a propagação de uma conta de varejo?
Coloque as ordens Comprar e vender para ignorar os movimentos de preços e apenas se concentrar na diferença de spread?
Claro, isso é chamado de arbitragem estatística. Você precisa de 2 ativos altamente correlacionados, mas um pouco menos correlacionados do que ES e SPY.
Continuando no último comentário & # 8230;
Muito interessado em conhecer seus pontos de vista. E obrigado por um ótimo blog!
Nossos clientes HFT não eram realmente comerciantes de varejo. Mas stat arb é facilmente possível, você normalmente usa outros pares onde os desvios são longos e o tempo preciso é menos relevante. Os negócios de milissegundos e os servidores de colocação perto da troca são, de fato, um pouco difíceis para os comerciantes privados, embora eu tenha ouvido falar de alguns que alegadamente fizeram isso.

Os comerciantes financeiros de alta freqüência agora podem ter uma latência de 20 nanosegundos abaixo de 200 nanosegundos.
A Solarflare oferece aos clientes as soluções de rede de latência mais baixas para aplicações eletrônicas / de alta freqüência e outros serviços financeiros com seus adaptadores de servidor de 10GbE de alto desempenho e middleware de aceleração de aplicativos Onload ™. These products enable customers to leverage their existing Ethernet and IP infrastructures while achieving the absolute lowest latency with no need to modify applications.
The CTO of an equity trading firm, who agreed to talk with HPCwire‘s sister pub EnterpriseTech anonymously, said his company has been a Solarflare customer for four years and that its IT department has validated Solarflare’s claims for TCPDirect of 20-30 nanoseconds latency.
Financial traders are in a race to make transactions ever faster. In today’s high-tech exchanges, firms can execute more than 100,000 trades in a second for a single customer. This summer, London and New York’s financial centres will become able to communicate 2.6 milliseconds (about 10%) faster after the opening of a transatlantic fibre-optic line dubbed the Hibernia Express, costing US$300 million. As technology advances, trading speed is increasingly limited only by fundamental physics, and the ultimate barrier — the speed of light.
Through glass optical fibres, information travels at two-thirds of the speed of light in a vacuum (300,000 kilometres per second). To go faster, data must travel through the air. Next up may be hollow-core fibre cables, through which light would travel in a tiny air gap at light speed.
High-frequency trading relies on fast computers, algorithms for deciding what and when to buy or sell, and live feeds of financial data from exchanges. Every microsecond of advantage counts. Faster data links between exchanges minimize the time it takes to make a trade; firms fight over whose computer can be placed closest; traders jockey to sit closer to the pipe. It all costs money — renting fast links costs around $10,000 per month.
Locating servers at major exchanges and as close as possible the actual computers that commit the trades.
Solarflare is regarded as a partner that allows high frequency trading firms to focus on core competencies, rather than devoting in-house time and resources to lowering latency.
“It used to be the case that there weren’t a lot of commercial, off-the-shelf products applicable to this space,” he said. “If one of our competitors wanted to do something like this for competitive advantage, Solarflare can do it better, faster, cheaper, so they’re basically disincentivized from doing so. In a sense this is leveling the playing field in our industry, and we like that because we want to do what we’re good at, rather than spending our time working on hardware. We’re pleased when external vendors provide state-of-the-art technology that we can leverage.”
TCPDirect is a user-space, kernel bypass application library that implements Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), the industry standards for network data exchange, over Internet Protocol (IP). It’s as part of Onload, Solarflare’s application acceleration middleware designed to reduce CPU utilization and increase message rates.
The latency through any TCP/IP stack, even written to be low-latency, is a function of the number of processor and memory operations that must be performed between the application sending/receiving and the network adapter serving it. According to Ahmet Houssein, Solarflare VP/marketing and strategic development, TCP/IP’s feature-richness and complexity means implementation trade-offs must be made between scalability, feature support and latency. Independently of the stack implementation, going via the kernel imposes system calls, context switches and, in most cases, interrupts that increase latency.
SOURCES – Nature, Tradingmesh, Solarflare.
Support us today!
NextBigFuture is on Patreon now!
Facebook Group.
Arquivos.
NextBigFuture.
Registration on or use of this site constitutes acceptance of our Terms of Service and Privacy Policy.

High Frequency Financial Traders can now have 20 nanosecond latency down from 200 nanoseconds.
Solarflare offers customers the lowest latency networking solutions for electronic/high frequency trading and other financial services applications with its high-performance 10GbE server adapters and Onload™ application acceleration middleware. These products enable customers to leverage their existing Ethernet and IP infrastructures while achieving the absolute lowest latency with no need to modify applications.
The CTO of an equity trading firm, who agreed to talk with HPCwire‘s sister pub EnterpriseTech anonymously, said his company has been a Solarflare customer for four years and that its IT department has validated Solarflare’s claims for TCPDirect of 20-30 nanoseconds latency.
Financial traders are in a race to make transactions ever faster. In today’s high-tech exchanges, firms can execute more than 100,000 trades in a second for a single customer. This summer, London and New York’s financial centres will become able to communicate 2.6 milliseconds (about 10%) faster after the opening of a transatlantic fibre-optic line dubbed the Hibernia Express, costing US$300 million. As technology advances, trading speed is increasingly limited only by fundamental physics, and the ultimate barrier — the speed of light.
Through glass optical fibres, information travels at two-thirds of the speed of light in a vacuum (300,000 kilometres per second). To go faster, data must travel through the air. Next up may be hollow-core fibre cables, through which light would travel in a tiny air gap at light speed.
High-frequency trading relies on fast computers, algorithms for deciding what and when to buy or sell, and live feeds of financial data from exchanges. Every microsecond of advantage counts. Faster data links between exchanges minimize the time it takes to make a trade; firms fight over whose computer can be placed closest; traders jockey to sit closer to the pipe. It all costs money — renting fast links costs around $10,000 per month.
Locating servers at major exchanges and as close as possible the actual computers that commit the trades.
Solarflare is regarded as a partner that allows high frequency trading firms to focus on core competencies, rather than devoting in-house time and resources to lowering latency.
“It used to be the case that there weren’t a lot of commercial, off-the-shelf products applicable to this space,” he said. “If one of our competitors wanted to do something like this for competitive advantage, Solarflare can do it better, faster, cheaper, so they’re basically disincentivized from doing so. In a sense this is leveling the playing field in our industry, and we like that because we want to do what we’re good at, rather than spending our time working on hardware. We’re pleased when external vendors provide state-of-the-art technology that we can leverage.”
TCPDirect is a user-space, kernel bypass application library that implements Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), the industry standards for network data exchange, over Internet Protocol (IP). It’s as part of Onload, Solarflare’s application acceleration middleware designed to reduce CPU utilization and increase message rates.
The latency through any TCP/IP stack, even written to be low-latency, is a function of the number of processor and memory operations that must be performed between the application sending/receiving and the network adapter serving it. According to Ahmet Houssein, Solarflare VP/marketing and strategic development, TCP/IP’s feature-richness and complexity means implementation trade-offs must be made between scalability, feature support and latency. Independently of the stack implementation, going via the kernel imposes system calls, context switches and, in most cases, interrupts that increase latency.
SOURCES – Nature, Tradingmesh, Solarflare.
Support us today!
NextBigFuture is on Patreon now!
Facebook Group.
Arquivos.
NextBigFuture.
Registration on or use of this site constitutes acceptance of our Terms of Service and Privacy Policy.

No comments:

Post a Comment