Arquitetura de um sistema de comércio de alta freqüência
Arquitetura de um sistema de comércio de alta freqüência.
Malásia Resources Corporation (MYRS) - Investir.
Arquitetura de uma margem de sistema de negociação de alta freqüência com negociação de opções.
O design de um sistema de comércio de alta freqüência liga. Arquitetura do sistema de negociação de alta freqüência.
como trocar opções binárias sem dinheiro. Como você troca forex. sistema de comércio on-line de bombay stock exchangeSystem Architecture of Algo Trading Platform - Продолжительность: 4:04 QuantInsti Quantitative. Considerações de arquitetura de negociação de alta freqüência com.
Um guia prático para o mundo rápido e sempre em mudança de alta. Contém as ferramentas e as técnicas necessárias para a construção de um sistema de negociação de alta freqüência. Bill HFT: informações sobre a relação ordem / comércio, taxas excessivas de uso do sistema e sinalização de algoritmos comerciais. Comércio de alta freqüência - uma discussão de. Forex ni halal ke. Arquitetura de um sistema de comércio de alta freqüência. Reclame aqui mercado forex.
Análise do sistema de negociação Vsd.
Как бы то ни было, системы, подобные Liquidnet или Advanced Execution System. Мои знакомые - профессионалы в High Frequency Trading используют. como o sistema de negociação de alta freqüência se conecta à troca. como criar um relatório de captura comercial usando o mecanismo de reparo Appia? Uma vantagem é o valor percebido presente dentro de um determinado comércio que foi criado por. Essencialmente, o comércio de alta freqüência é a aplicação básica de um.
Otimizando o aplicativo GatiRT * de alta freqüência de negociação no mais recente servidor de arquitetura Intel®.
Por Aditi Rathi (Intel), publicado em 7 de fevereiro de 2018.
Por: Aditi Rathi (Intel) e Shailender Sharma (Gati)
A negociação de alta freqüência (HFT) é uma forma de negociação algorítmica onde o comércio é realizado em microssegundos e as baixas latências são alcançadas usando servidores high-end e algoritmos computacionais muito eficientes. No mundo comercial, o jejum nunca é rápido o suficiente, pois os comerciantes obtêm lucro obtendo informações (por exemplo, lances e ofertas) e colocando transações mais rápidas do que seus concorrentes. GatiRT *, da Gati Technologies, é um conjunto de aplicações que conseguem latências de microsecondes de ordem única, implantando algoritmos altamente eficientes e rápidos, sintonizados e otimizados para a mais recente arquitetura Intel®. Este artigo descreve duas aplicações: GatiRT Feed-Handler (GatiRT FH) e GatiRT Order-Book / Super-Book (GatiRT OB) que abordam as partes que consomem mais tempo do caminho de negociação a termo.
Ambos os GatiRT FH e GatiRT OB foram especificamente projetados para ser simples e duplo roscados, respectivamente. GatiRT FH é um módulo de kernel enquanto o GatiRT OB é uma aplicação de espaço de usuário que utiliza apenas dois núcleos de uma máquina dual socket 12cores / socket (deixando o resto para estratégias de negociação e módulos de roteamento de pedidos). Ao executar certas afinações de nível do sistema e do sistema operacional no mais recente processador Intel® Xeon® E5-2600 v2, as aplicações em conjunto obtiveram redução de latência de 36,5%. A versão otimizada foi executada 15% mais rapidamente no processador Intel® Xeon® E5-2600 v2 mais recente que o processador Intel® Xeon® antigo E5-2600. Essas medidas de desempenho foram feitas em uma configuração de teste em plataformas de desenvolvimento de software Intel® no Intel Performance Lab em Bangalore, na Índia. Ω.
Ω Os softwares e as cargas de trabalho usados em testes de desempenho podem ter sido otimizados somente para desempenho em microprocessadores Intel®. Testes de desempenho, como SYSmark * e MobileMark *, são medidos usando sistemas, componentes, software, operações e funções específicas de computadores. Qualquer alteração em qualquer desses fatores pode fazer com que os resultados variem. Você deve consultar outras informações e testes de desempenho para ajudá-lo a avaliar completamente suas compras contempladas, incluindo o desempenho desse produto quando combinado com outros produtos. Para mais informações, vá para Intel / performance.
INTRODUÇÃO.
GatiRT Feed-Handler (GatiRT FH) é um módulo kernel que inicia imediatamente após o driver Ethernet e faz todo o processamento de pacotes específicos de feed e a normalização de pacotes em formato independente de alimentação. O módulo também executa filtragem inteligente ou filtragem baseada em assinatura de símbolos, onde os pacotes são filtrados com base em símbolos seletivos e id de pedidos antes de processar as mensagens completas.
GatiRT Order-Book / Super-Book builder (GatiRT OB) é executado no espaço do usuário. Ele recebe dados processados independentes de alimentação genérica de GatiRT FH e cria o livro de pedidos e o Super-livro. O Order-Book é um instantâneo ao vivo de lances e ofertas disponíveis e executadas para símbolos específicos, e o Super-Book é um livro de pedidos cumulativo de símbolos múltiplos. Uma vez que o livro de encomendas está disponível, podemos executar múltiplos algoritmos de negociação e executar trocas na troca com base na rentabilidade do símbolo (estoque). O GatiRT também fornece uma API para ler o Order-Book através de uma interface de memória compartilhada para facilitar a integração com as estratégias de negociação de um cliente e outros módulos de software de terceiros.
O diagrama a seguir explica como as aplicações GatiRT se interligam com vários outros módulos de software para formar o processo de negociação geral.
O aplicativo GatiRT OB processa uma variedade de feeds (ITCH, BATS, Direct Edge - DEA e DEX, NYSE *, ARCA e feeds consolidados, como CQS e UQDF) e cria livros de pedidos para vários símbolos em latências de microsegundo de um dígito.
Como o diagrama mostra, no caminho direto de uma solução HFT, as principais áreas de latência são:
(a) Caminho de dados da troca para o servidor.
(b) Alimentação de dados da porta de rede para o aplicativo no servidor.
(c) Processamento de pedidos.
Quando um pedido é criado, o processo é executado em sentido inverso, ou seja, do servidor cliente de volta para o Exchange onde a ordem é processada. Como este é um mercado muito competitivo, a maioria das empresas é co-localizada dentro da troca. Daí a latência (a) é a mesma para todos os comerciantes co-localizados. A latência de processamento de aplicativos (c) também é muito pequena devido aos servidores de alta velocidade com alguma variação dependendo do algoritmo e cálculos que os comerciantes decidem usar. Normalmente, a latência (c) é inferior a um microssegundo. A principal área de preocupação é a latência (b). Sem usar manipuladores de alimentação, os feeds levam a latências de dois dígitos juntamente com jitter para alcançar o aplicativo.
GatiRT resolve esse problema fornecendo uma solução determinista de um dígito de microssegundo. Isso reduz a latência (b) por um fator de alguns milhares e torna-o determinista. Construir um livro de encomendas e superbook simplifica e acelera o processamento inicial de dados em (c). Essas características fazem do GatiRT uma solução única com uma vantagem competitiva significativa em relação a outras soluções contemporâneas.
O GatiRT OB é composto pelos seguintes componentes:
Módulo Kernel: executa análise de feed para vários feeds suportados, executa filtragem com base em assinatura de símbolos ou id de pedidos e também cria um formato comum para todos os feeds para que a aplicação de espaço de usuário possa executar operações genéricas independentemente da alimentação. Módulo de espaço de usuário: cria o livro de pedidos e o super livro para todos os feeds por bases de símbolos. Este módulo também expõe uma API para disponibilizar o Catálogo de pedidos para software de terceiros, que oferece flexibilidade aos usuários finais para anexar uma estratégia de negociação. O módulo também gera vários logs com dados para análise de latência e de latência geral. Binário de inscrição: é usado para assinar apenas os símbolos que o usuário precisa negociar.
O aplicativo GatiRT OB registra muitas estatísticas de filtragem para cada assinatura. Isso facilita a depuração de mensagens perdidas e vários outros tipos de erros. As latências de alimentação por tipo de mensagem podem ser registradas em arquivos separados por feed-latency_feed. txt específicos. As estatísticas registradas também podem ser exibidas através de ferramentas gráficas de sistema de gerenciamento de rede (NMS) baseadas na interface de usuário (Cactus ou Nagios).
Arquitetura Intel®.
O aplicativo GatiRT OB foi portado e sintonizado nas plataformas 2-socket E5-2600 v2 e E5-2600. Considerando que o módulo do kernel se torna parte da pilha do SO, o módulo do espaço do usuário foi vinculado a dois núcleos para garantir que ele ocupe apenas dois núcleos. A idéia é deixar a maior quantidade possível de núcleos para outros módulos de software, como o mecanismo de estratégia do cliente, gerenciamento de riscos e módulos de roteamento de pedidos, etc. A idéia é tornar os módulos padrão o mais leve possível e oferecer aos nossos clientes o máximo flexibilidade e eficiência na mesma máquina. É aí que ter um núcleo de 50% de núcleos adicionais no processador Intel® Xeon® E5-2600 v2 são um grande benefício. Os benefícios micro-arquitetônicos relevantes do processador Intel® Xeon® E5-2600 v2 sobre o processador Intel® Xeon® E5-2600 são mostrados no diagrama abaixo. O E5-2600 v2 vem com 50% de núcleos extras, LLC extra 50% e suporte de velocidade de memória mais rápido em comparação com a geração anterior. Existem muitos outros benefícios micro-arquitetônicos, alguns dos quais estão tabulados abaixo.
Características do processador Intel® Xeon® E5-2600 v2 (IVB).
e até 50% de maior desempenho com 50% de núcleos extras e 50% de cache de último nível (LLC)
O suporte do Float 16 foi adicionado para acelerar a conversão de dados entre os formatos de ponto flutuante de 16 bits e 32 bits.
^ Requer um sistema com tecnologia Intel® Turbo Boost. A tecnologia Intel® Turbo Boost e a Intel® Turbo Boost Technology 2.0 só estão disponíveis em determinados processadores Intel®. Consulte o fabricante do seu PC. O desempenho varia dependendo do hardware, software e configuração do sistema. Para mais informações, visite intel / go / turbo.
∞ Disponível em processadores Intel® Core ™ selecionados. Requer um sistema habilitado para tecnologia Intel® HT. Consulte o fabricante do seu PC. O desempenho variará dependendo do hardware e software específicos utilizados. Para obter mais informações, incluindo detalhes sobre quais processadores suportam tecnologia HT, visite intel / info / hyperthreading.
Para obter mais informações sobre o processador Intel® Xeon® E5-2600 v2, consulte software. intel/en-us/articles/intel-xeon-processor-e5-2600-v2-product-family-technical-overview. Para obter mais informações sobre vários aplicativos financeiros otimizados em várias tecnologias da Intel, visite o serviço de informações / serviços financeiros.
Consulte o Apêndice A para uma tabela que compara os detalhes da configuração do sistema para os dois processadores.
Casos de teste e análise dos resultados do teste.
Para realizar testes no aplicativo GatiRT OB, foi criada a seguinte configuração, onde Gati02 é um servidor Intel® Xeon® processador E5-2600 v2 baseado em servidor executando o aplicativo GatiRT e Gati01 é o sistema gerador de tráfego.
Todos os casos de teste foram executados ao reproduzir um arquivo de captura de pacotes contendo os dados ao vivo de todos os feeds de troca usando a ferramenta tcpreplay. Alimentos em tempo real idênticos foram enviados através do seguinte comando para todos os testes:
tcpreplay --limit = 50000000 --multiplicador = 3 --stat = 5 - i eth0 20180811_2_evening. pcap.
A saída deste comando é a taxa de dados e os pacotes por segundo enviados. Um instantâneo dele é mostrado abaixo:
No final do tráfego de entrada, executamos scripts de cálculo de latência média que calculam a latência média por alimentação para todos os pacotes registrados nos arquivos latency_.txt e a latência média geral para todos os feeds. O instantâneo a seguir mostra uma amostra do cálculo médio de latência.
Realizamos os seguintes cinco casos de teste com diferentes ajustes do sistema e do sistema operacional na arquitetura do processador Intel® Xeon® E5-2600 v2, depois calculamos a latência média de três iterações consecutivas para cada um.
Caso de Teste 1. Configurações Padrão na Plataforma de Desenvolvimento de Software Intel® (SDP). Consulte o Apêndice A para detalhes da configuração.
Caso de teste 2. BIOS Tuning e Desabilitando recursos não necessários.
∞Disponível em determinados processadores Intel® Core ™. Requer um sistema habilitado para tecnologia Intel® HT. Consulte o fabricante do seu PC. O desempenho variará dependendo do hardware e software específicos utilizados. Para obter mais informações, incluindo detalhes sobre quais processadores suportam tecnologia HT, visite intel / info / hyperthreading.
Caso de teste 3. Desativar a tecnologia Intel® Turbo Boost ^
^ Requer um sistema com tecnologia Intel® Turbo Boost. A tecnologia Intel® Turbo Boost e a Intel® Turbo Boost Technology 2.0 só estão disponíveis em determinados processadores Intel®. Consulte o fabricante do seu PC. O desempenho varia dependendo do hardware, software e configuração do sistema. Para mais informações, visite intel / go / turbo.
Caso de Teste 4. Linux Power Governor definido como "performance" (o padrão é "on-demand")
Caso de Teste 5. IRQ Balance desligado.
Estes resultados de teste são representados de forma gráfica abaixo para facilitar a comparação.
Conclusão.
A Gati Technologies Inc. acredita em unir suas versões de software ao roteiro tecnológico em constante evolução da Intel. Sua aplicação é desenvolvida de forma inteligente para se dimensionar bem, e, portanto, com apenas ajustes de nível de sistema e sistema operacional, seu software pode ser otimizado para cada nova geração. Os testes no GatiRT Feed-Handler (GatiRT FH) e GatiRT Order-Book / Super-Book (GatiRT OB) viram uma redução de latência aproximada de 36,5% do desempenho out-of-box para desempenho sintonizado no processador Intel® Xeon® E5-2600 v2 Ω.
Realizamos os mesmos testes e afinações tanto no processador Intel® Xeon® E5-2600 quanto nas arquiteturas E5-2600 v2 mais recentes para uma comparação de maçãs para maçãs. Mesmo com o sistema subutilizado, a versão otimizada foi executada 15% mais rápido no processador Intel® Xeon® E5-2600 v2 mais recente que o processador Intel® Xeon® antigo E5-2600. No caso de um sistema ocupado (com todos os outros módulos de um sistema de negociação integrado), o desempenho deve aumentar muito mais com uma melhor utilização de todos os recursos. Algumas outras afinações que funcionarão nesse caso são: usar memória mais rápida suportada pelo E5-2600 v2 e ativar a tecnologia Intel® Hyper-Threading e a tecnologia Intel® Turbo Boost enquanto afimizam núcleos e páginas de memória para diferentes módulos (isto assegurará um jitter reduzido ).
Essas medidas de desempenho foram feitas em uma configuração de teste em plataformas de desenvolvimento de software Intel® no Intel Performance Lab em Bangalore, na Índia.
Ω Os softwares e as cargas de trabalho usados em testes de desempenho podem ter sido otimizados somente para desempenho em microprocessadores Intel®. Testes de desempenho, como SYSmark * e MobileMark *, são medidos usando sistemas, componentes, software, operações e funções específicas de computadores. Qualquer alteração em qualquer desses fatores pode fazer com que os resultados variem. Você deve consultar outras informações e testes de desempenho para ajudá-lo a avaliar completamente suas compras contempladas, incluindo o desempenho desse produto quando combinado com outros produtos. Para mais informações, vá para Intel / performance.
Sobre a Gati Technologies, Inc.
A Gati Technologies é uma empresa global líder fornecendo soluções para o comércio de alta freqüência. O manipulador de alimentação de latência ultra-baixa GatiRT TM TM está entre os manipuladores de alimentação mais rápidos do mundo. Ele oferece baixa latência de microsegundo de um dígito da porta à memória da aplicação. GatiRT TM é construído usando tecnologia pendente de patente em servidores baseados em Intel® comercialmente disponíveis. O GatiRT TM fornece não só as cotações mais rápidas, mas também uma vantagem de custo / desempenho sem precedentes. A Gati fornece serviços ao seu cliente, permitindo que eles integrem rapidamente o GatiRT TM com sua plataforma de negociação.
Apêndice A.
Comparação dos dois processadores Intel® Xeon® e SDPs.
Apêndice B.
Lista de afinações do BIOS no caso de teste 2:
NUMA habilitado O Turbo Boost habilitado Hyper Threading desativado EIST (Tecnologia Intel® Speedstep Enhahnced) ativou CPU - Controles de estado C (CPU Pkg C Limite de Estado, Core C1 / C3, Core C1 / C6) todos os estados de CPU - C desativados (ALL) - todos os estados P Eficientes em energia com deficiência - todos desabilitados Mwait / Monitor - desativados Sob memória térmica, modo de economia de energia de memória desativado, MDLL DESLIGADO desativado, modo de aceleração MEMHOT desativado, Memória Elétrica Bloqueio desativado Limite de energia a longo prazo Substituição desativado Avanço de voltagem avançado virado para o manual Sob CPU - Advanced PM Turning, Power Performance Tuning desativado, ENERGY_PERF_BIAS_CONFIG modo girado para PERF, Power / Performance Switch desativado, PERF_P_LIMIT_EN em E5-2600 e PERF_PLIMIT_DISABLE em E5-2600 v2 Desativado CPU Power and Performance Policy no E5-2600 voltado para Performance Workload Configuração configurada para UMA em E5-2600 e Padrão em E5-2600 v2 Altos núcleos de CPU ativos configurados para 12 em E5-2600 v2 Todas as características relacionadas à virtualização VT ou VT-x ou VT-d, AES-NI suppo rt, desabilitado Sob QPI Phy & amp; Link Layer, Link L1 Habilitado habilitado, Link Speed Mode definido para Fast QPI Frequency Select set to Auto Max no E5-2600 Memória Desempenho configurado para Alta freqüência, Tensão de memória ajustada para Auto, Frequência de memória definida para 1600 em E5-2600 e E5 -2600 v2; Otimização de energia de memória definida como Desempenho otimizado no E5-2600 Em configurações de memória, Tentativa de Inicialização Rápida desativada, MRC Multi-threaded configurado para Auto Em Configurações ACPI, BDAT ACPI Table Support desativado e Ativar Hibernação desabilitada.
INFORMAÇÃO NESTE DOCUMENTO É FORNECIDA EM CONEXÃO COM PRODUTOS INTEL. NENHUMA LICENÇA, EXPRESSA OU IMPLÍCITA, POR ESTOPPEL OU DE OUTRA FORMA, A QUALQUER DIREITO DE PROPRIEDADE INTELECTUAL É CONCEDIDA POR ESTE DOCUMENTO. EXCEPTO COMO FORNECIDO NOS TERMOS E CONDIÇÕES DE VENDA DA INTEL PARA TAL PRODUTOS, A INTEL NÃO ASSUME NENHUMA RESPONSABILIDADE QUALQUER E INTEL RENUNCIA A QUALQUER GARANTIA EXPRESSA OU IMPLÍCITA RELATIVA À VENDA E / OU USO DE PRODUTOS INTEL, INCLUINDO RESPONSABILIDADE OU GARANTIAS RELATIVAS À ADEQUAÇÃO A UM DETERMINADO PROPÓSITO, COMERCIALIZAÇÃO OU INFRACÇÃO DE QUALQUER PATENTE, DIREITOS AUTORAIS OU OUTRO PROPRIEDADE INTELIGENTE DIREITA.
A MENOS QUE SEJA ACORDADO DE OUTRA MANEIRA POR ESCRITO POR INTEL, OS PRODUTOS INTEL NÃO SÃO DESENHADOS OU DESTINADOS A QUALQUER APLICAÇÃO EM QUE A FALHA DO PRODUTO INTEL PODERIA CRIAR UMA SITUAÇÃO ONDE OCORRER LESÃO PESSOAL OU MORTE.
A Intel pode fazer alterações em especificações e descrições de produtos a qualquer momento, sem aviso prévio. Os designers não devem confiar na ausência ou características de quaisquer características ou instruções marcadas como "reservadas" ou "indefinidas". A Intel reserva isso para futuras definições e não se responsabiliza por conflitos ou incompatibilidades decorrentes de mudanças futuras. A informação aqui estão sujeitas a alterações sem aviso prévio. Não finalize um design com estas informações.
Os produtos descritos neste documento podem conter defeitos de projeto ou erros conhecidos como errata, o que pode fazer com que o produto se desvie das especificações publicadas. As erratas atualizadas atuais estão disponíveis mediante solicitação.
Entre em contato com seu escritório de vendas local da Intel ou com o seu distribuidor para obter as últimas especificações e antes de colocar sua ordem de produto.
Podem ser obtidas cópias de documentos que possuem um número de ordem e são referenciadas neste documento, ou outra literatura da Intel, ligando para 1-800-548-4725, ou vá para: intel / design / literature. htm.
Qualquer código-fonte de software reimpresso neste documento é fornecido sob uma licença de software e só pode ser usado ou copiado de acordo com os termos dessa licença.
Intel, o logotipo Intel® e Xeon® são marcas registradas da Intel Corporation nos EUA e / ou em outros países.
Copyright © 2018 Intel Corporation. Todos os direitos reservados.
* Outros nomes e marcas podem ser reivindicados como propriedade de outros.
QUANTLABS.
Quant Resources for Traders.
A arquitetura de um sistema de negociação automatizado completo de alta freqüência HFT com inventário de hardware e software.
A arquitetura de um sistema de negociação automatizado completo de alta freqüência HFT com inventário de hardware e software.
À medida que eu construo minha intranet e infraestrutura para o meu sistema totalmente automatizado. Aqui está o inventário de hardware e software:
1 servidor Intel I7 Windows 7 para plataforma comercial e conectores de alimentação de dados, etc.
1 Duo Core Ubuntu Master para Redis back end e outros processos Java e processos R.
2 PCs mais antigos utilizados como trabalhadores R doRedis para escravos de cluster com sistemas R e Java.
2 Old Mac Minis e 1 G4 Mac utilizados como trabalhadores de escravos R e potenciais aplicativos Java limitados.
Os processos Java incluem o simulador de estoque e o estoque e outros criadores de ativos de mercado.
Espero que isto ajude.
OBSERVAÇÃO Eu agora posto minhas ALERTAS DE NEGOCIAÇÃO na minha conta pessoal de FACEBOOK e TWITTER. Não se preocupe porque não publico vídeos de gato estúpidos ou o que eu como!
Como funcionam os sistemas comerciais.
A negociação automatizada algorítmica ou a negociação algorítmica foi no centro do mundo comercial há mais de uma década. A porcentagem de volumes atribuídos à negociação automatizada algorítmica teve um aumento significativo na última década. Como resultado, tornou-se um mercado altamente competitivo que é fortemente dependente da tecnologia. Conseqüentemente, a arquitetura básica de sistemas de negociação automatizados que executam estratégias algorítmicas sofreu grandes mudanças ao longo da última década e continua a fazê-lo. Para as empresas, especialmente aquelas que utilizam sistemas de negociação de alta freqüência, tornou-se uma necessidade de inovar em tecnologia para competir no mundo do comércio algorítmico, tornando assim a comercialização de algoritmos um foco de avanços nas tecnologias de computadores e redes.
Nesta publicação, desmistificaremos a arquitetura por trás dos sistemas de negociação automatizada para nossos leitores. Comparamos a nova arquitetura dos sistemas de negociação automatizados com a arquitetura comercial tradicional e compreendemos alguns dos principais componentes por trás desses sistemas.
Arquitetura Tradicional.
Qualquer sistema comercial, conceitualmente, não passa de um bloco computacional que interage com a troca em dois fluxos diferentes.
Recebe dados de mercado Envia solicitações de pedidos e recebe respostas da troca.
Os dados de mercado que são recebidos geralmente informam o sistema do último livro de pedidos. Pode conter algumas informações adicionais, como o volume negociado até o momento, o último preço e quantidade negociada para um script. No entanto, para tomar uma decisão sobre os dados, o comerciante pode precisar analisar valores antigos ou derivar determinados parâmetros do histórico. Para atender a isso, um sistema convencional teria um banco de dados histórico para armazenar os dados do mercado e as ferramentas para usar esse banco de dados. A análise também envolveria um estudo das tradições passadas pelo comerciante. Daí, outro banco de dados para armazenar as decisões comerciais também. Por último, mas não menos importante, uma interface GUI para o comerciante visualizar todas essas informações na tela.
Todo o sistema comercial pode agora ser dividido em.
A troca (s) - o mundo externo O servidor Mercado Data receptor Comercializar dados do mercado Armazenar ordens geradas pelo usuário Aplicação Pegue as entradas do usuário, incluindo as decisões de negociação Interface para visualizar as informações, incluindo os dados e ordens Um gerente de pedidos enviando ordens para o troca.
Nova arquitetura.
A arquitetura tradicional não pôde aumentar as necessidades e demandas do comércio automatizado com DMA. A latência entre a origem do evento para a geração da ordem foi além da dimensão do controle humano e entrou nos reinos de milissegundos e microssegundos. Assim, as ferramentas para lidar com dados do mercado e sua análise precisava se adaptar de acordo. O gerenciamento de pedidos também precisa ser mais robusto e capaz de lidar com mais pedidos por segundo. Uma vez que o período de tempo é tão pequeno em comparação com o tempo de reação humano, o gerenciamento de riscos também precisa lidar com pedidos em tempo real e de forma completamente automática.
Por exemplo, mesmo que o tempo de reação para uma ordem seja de 1 milissegundo (o que é bastante comparado às latências que vemos hoje), o sistema ainda é capaz de fazer 1000 decisões comerciais em um único segundo. Isso significa que cada uma dessas 1000 decisões comerciais deve passar pelo gerenciamento de riscos no mesmo segundo para alcançar a troca. Este é apenas um problema de complexidade. Uma vez que a arquitetura agora envolve lógica automatizada, 100 comerciantes agora podem ser substituídos por um único sistema de negociação automatizado. Isso adiciona escala ao problema. Então, cada uma das unidades lógicas gera 1000 pedidos e 100 dessas unidades significam 100.000 pedidos a cada segundo. Isso significa que a tomada de decisão e a peça de envio de pedidos precisam ser muito mais rápidas do que o receptor de dados de mercado, de modo a combinar a taxa de dados.
Por isso, o nível de infra-estrutura que este módulo exige deve ser muito superior em comparação com o de um sistema tradicional (discutido na seção anterior). Daí o motor que executa a lógica da tomada de decisão, também conhecido como o mecanismo "Processamento de eventos complexos", ou CEP, mudou-se do aplicativo para o servidor. A camada de aplicação, agora, é pouco mais do que uma interface de usuário para visualizar e fornecer parâmetros para o CEP.
O problema da escala também leva a uma situação interessante. Digamos que 100 lógicas diferentes estão sendo executadas em um evento de dados de mercado único (como discutido no exemplo anterior). No entanto, pode haver peças comuns de cálculos complexos que precisam ser executados para a maioria das 100 unidades lógicas. Por exemplo, cálculo de gregos para opções. Se cada lógica funcionasse de forma independente, cada unidade faria o mesmo cálculo grega que iria desnecessariamente usar os recursos do processador. Para otimizar a redundância do cálculo, os cálculos redundantes complexos geralmente são mantidos em um mecanismo de cálculo separado que fornece os gregos como uma entrada para o CEP.
Embora a camada de aplicação seja principalmente uma visão, algumas das verificações de risco (que agora são operações com fome de recursos devido ao problema da escala), podem ser descarregadas para a camada de aplicação, especialmente aquelas que estão relacionadas com sanidade de entradas de usuários como o dedo gordo erros. O resto das verificações de risco são realizadas agora por um Sistema de Gerenciamento de Risco (RMS) separado no Gerenciador de Pedidos (OM), imediatamente antes de liberar um pedido. O problema da escala também significa que, quando anteriormente, havia 100 comerciantes diferentes gerenciando seus riscos, agora existe apenas um sistema RMS para gerenciar riscos em todas as unidades / estratégias lógicas. No entanto, algumas verificações de risco podem ser específicas para certas estratégias e alguns talvez precisem ser feitos em todas as estratégias. Daí o próprio RMS envolve, RMS de nível de estratégia (SLRMS) e RMS global (GRMS). Também pode envolver uma UI para visualizar o SLRMS e o GRMS.
Emergência de protocolos para sistemas de negociação automatizados.
Com inovações, as necessidades são necessárias. Uma vez que a nova arquitetura foi capaz de dimensionar para muitas estratégias por servidor, surgiu a necessidade de se conectar a vários destinos a partir de um único servidor. Assim, o gerenciador de pedidos hospedou vários adaptadores para enviar pedidos para vários destinos e receber dados de várias trocas. Cada adaptador atua como um intérprete entre o protocolo que é entendido pela troca e o protocolo de comunicação dentro do sistema. Intercâmbios múltiplos significam adaptadores múltiplos.
No entanto, para adicionar uma nova troca ao sistema, um novo adaptador deve ser projetado e conectado à arquitetura, uma vez que cada troca segue seu protocolo apenas otimizado para recursos fornecidos pela troca. Para evitar esse incômodo de adição de adaptador, os protocolos padrão foram projetados. O mais proeminente entre eles é o protocolo FIX (Financial Information Exchange) (veja nossa publicação na introdução ao protocolo FIX). Isso não só torna gerenciável conectar-se a destinos diferentes, mas também reduzir drasticamente o mercado para quando se conectar a um novo destino. Para leitura adicional: Conectando o FXCM ao FIX, um tutorial detalhado.
A presença de protocolos padrão facilita a integração com fornecedores de terceiros, também para análises ou feeds de dados de mercado. Como resultado, o mercado torna-se muito eficiente, pois a integração com um novo destino / fornecedor não é mais uma restrição.
Além disso, a simulação torna-se muito fácil, pois receber dados do mercado real e enviar ordens para um simulador é apenas uma questão de usar o protocolo FIX para se conectar a um simulador. O próprio simulador pode ser construído internamente ou adquirido de um fornecedor de terceiros. Os dados gravados de forma semelhante apenas podem ser reproduzidos com os adaptadores sendo agnósticos para saber se os dados estão sendo recebidos do mercado ao vivo ou de um conjunto de dados gravados.
Emergência de arquiteturas de baixa latência.
Com os blocos de construção de um sistema de negociação algorítmica no local, as estratégias otimizadas na capacidade de processar enormes quantidades de dados em tempo real e tomar decisões comerciais rápidas. Mas com o advento de protocolos de comunicação padrão como FIX, a barreira de entrada de tecnologia para configurar uma mesa de negociação algorítmica, tornou-se menor e, portanto, mais competitivo. À medida que os servidores obtiveram mais memória e freqüências de clock mais altas, o foco mudou para reduzir a latência para a tomada de decisões. Ao longo do tempo, reduzir a latência tornou-se uma necessidade por muitas razões, como:
A estratégia faz sentido apenas em um ambiente de baixa latência. Sobrevivência dos mais aptos - os concorrentes escolhem você se você não for rápido o suficiente.
O problema, no entanto, é que a latência é realmente um termo abrangente que engloba vários atrasos diferentes. Para quantificar todos eles em um termo genérico, geralmente não faz muito sentido. Embora seja muito fácil de entender, é bastante difícil quantificar. Por isso, torna-se cada vez mais importante como o problema da redução da latência é abordado.
Se olharmos para o ciclo de vida básico,
Um pacote de dados de mercado é publicado pela troca O pacote viaja pelo fio O pacote chega a um roteador do lado do servidor. O roteador encaminha o pacote pela rede do lado do servidor. O pacote chega na porta Ethernet do servidor. Dependendo se este é processamento UDP / TCP ocorre e o pacote despojado de seus cabeçalhos e trailers faz o caminho para a memória do adaptador. O adaptador então analisa o pacote e o converte em um formato interno para a plataforma de negociação algorítmica. Este pacote agora viaja através dos vários módulos do sistema - CEP, tick shop, etc. O CEP analisa e envia uma solicitação de pedido. através do reverso do ciclo como o pacote de dados do mercado.
Alta latência em qualquer uma dessas etapas garante uma latência alta durante todo o ciclo. Assim, a otimização de latência geralmente começa com o primeiro passo neste ciclo que está no nosso controle, ou seja, "o pacote viaja através do fio". A coisa mais fácil de fazer aqui seria encurtar a distância até o destino, tanto quanto possível. Colocações são instalações fornecidas por trocas para hospedar o servidor de negociação nas proximidades da troca. O diagrama a seguir ilustra os ganhos que podem ser feitos cortando a distância.
Para qualquer tipo de estratégia de alta freqüência envolvendo um único destino, Colocation tornou-se um facto deve. No entanto, as estratégias que envolvem múltiplos destinos precisam de um planejamento cuidadoso. Vários fatores, como o tempo gasto pelo destino para responder pedidos de pedidos e sua comparação com o tempo de ping entre os dois destinos, devem ser considerados antes de tomar essa decisão. A decisão também pode depender da natureza da estratégia.
A latência da rede geralmente é o primeiro passo na redução da latência geral de um sistema de comércio algorítmico. No entanto, existem muitos outros locais onde a arquitetura pode ser otimizada.
Latência de propagação.
A latência de propagação significa o tempo necessário para enviar os bits ao longo do fio, limitados pela velocidade da luz, é claro.
Foram introduzidas várias otimizações para reduzir a latência de propagação além de reduzir a distância física. Por exemplo, o tempo estimado de ida e volta para um cabo comum entre Chicago e Nova York é de 13,1 milissegundos. As redes de propagação, em outubro de 2018, anunciaram melhorias de latência que trouxeram o tempo estimado de ida e volta para 12,98 milissegundos. A comunicação por microondas foi adotada ainda mais por empresas como Tradeworx, trazendo o tempo estimado de ida e volta para 8,5 milissegundos. Observe que o mínimo teórico é de cerca de 7,5 milissegundos. As inovações contínuas estão empurrando os limites da ciência e alcançando rapidamente o limite teórico da velocidade da luz. Os últimos desenvolvimentos em comunicação a laser, adotados anteriormente em tecnologias de defesa, afugentaram ainda mais uma latência já diluída por nanosegundos em curtas distâncias.
Latência de processamento de rede.
Latência de processamento de rede significa latência introduzida por roteadores, switches, etc.
O próximo nível de otimização na arquitetura de um sistema de negociação algorítmico seria o número de lúpulos que um pacote levaria para viajar do ponto A ao ponto B. Um salto é definido como uma parte do caminho entre a fonte e o destino durante o qual um pacote não passa por um dispositivo físico como um roteador ou um switch. Por exemplo, um pacote pode percorrer a mesma distância através de dois caminhos diferentes. Mas pode ter dois saltos no primeiro caminho versus 3 saltos no segundo. Supondo que o atraso de propagação seja o mesmo, os roteadores e switches introduzem sua própria latência e geralmente como uma regra de polegar, mais o lúpulo é a latência adicionada.
A latência do processamento de rede também pode ser afetada pelo que chamamos de microbursas. Microbursts são definidos como um aumento súbito da taxa de transferência de dados que pode não afetar necessariamente a taxa média de transferência de dados. Uma vez que os sistemas de negociação algorítmica são baseados em regras, todos esses sistemas reagirão ao mesmo evento da mesma maneira. Como resultado, muitos sistemas participantes podem enviar ordens que levam a uma onda repentina de transferência de dados entre os participantes e o destino que leva a um microburst. O diagrama a seguir representa o que é um microburst.
A primeira figura mostra uma visão de 1 segundo da taxa de transferência de dados. Podemos ver que a taxa média está bem abaixo da largura de banda disponível de 1Gbps. No entanto, se mergulhar mais profundamente e olhar a imagem de segundos (a vista de 5 milissegundos), vemos que a taxa de transferência aumentou acima da largura de banda disponível várias vezes por segundo. Como resultado, os buffers de pacotes na pilha de rede, tanto nos pontos de extremidade da rede quanto nos roteadores e switches, podem transbordar. Para evitar isso, normalmente uma largura de banda muito superior à taxa média observada é geralmente alocada para um sistema de comércio algorítmico.
Latência de serialização.
A latência de serialização significa o tempo necessário para puxar os bits para dentro e fora do fio.
Um tamanho de pacote de 1500 bytes transmitidos em uma linha T1 (1.544.000 bps) produziria um atraso de serialização de cerca de 8 milissegundos. No entanto, o mesmo pacote de 1500 bytes usando um modem de 56K (57344bps) levaria 200 milissegundos. Uma linha Ethernet 1G reduziria essa latência para cerca de 11 microssegundos.
Latência de interrupção.
A latência de interrupção significa uma latência introduzida por interrupções ao receber os pacotes em um servidor.
A latência de interrupção é definida como o tempo decorrido entre quando uma interrupção é gerada quando a fonte da interrupção é atendida. Quando é gerada uma interrupção? Interrupções são sinais para o processador emitido por hardware ou software, indicando que um evento precisa de atenção imediata. O processador, por sua vez, responde suspendendo sua atividade atual, salvando seu estado e manipulando a interrupção. Sempre que um pacote é recebido no NIC, uma interrupção é enviada para lidar com os bits que foram carregados no buffer de recebimento da NIC. O tempo necessário para responder a esta interrupção não afeta apenas o processamento da nova carga útil, mas também a latência dos processos existentes no processador.
Solarflare introduziu onload aberto em 2018, que implementa uma técnica conhecida como bypass do kernel, onde o processamento do pacote não é deixado para o kernel do sistema operacional, mas para o próprio espaço de usuários. Todo o pacote é diretamente mapeado para o espaço do usuário pela NIC e é processado lá. Como resultado, as interrupções são completamente evitadas.
Como resultado, a taxa de processamento de cada pacote é acelerada. O diagrama a seguir demonstra claramente as vantagens do bypass do kernel.
Latência da aplicação.
A latência da aplicação significa o tempo gasto pelo processo para processar.
Isso depende dos vários pacotes, do processamento alocado para a lógica do aplicativo, da complexidade do cálculo envolvido, da eficiência da programação, etc. O aumento do número de processadores no sistema, em geral, reduzirá a latência da aplicação. O mesmo ocorre com o aumento da frequência do relógio. Muitos sistemas de negociação algorítmica aproveitam a dedicação de núcleos de processadores para elementos essenciais da aplicação, como a lógica de estratégia, por exemplo. Isso evita a latência introduzida pela troca do processo entre os núcleos.
Da mesma forma, se a programação da estratégia foi feita, tenha em mente os tamanhos de cache e a localização do acesso à memória, então haveria muitos hits no cache da memória resultando em uma redução adicional da latência. Para facilitar isso, muitos sistemas usam linguagens de programação de nível muito baixo para otimizar o código para a arquitetura específica dos processadores. Algumas empresas chegaram até a extensão da queima de cálculos complexos em hardware usando matrizes de portas totalmente programáveis (FPGA). Com a crescente complexidade vem o custo crescente e o diagrama a seguir ilustra isso.
Níveis de sofisticação.
O mundo do comércio algorítmico de alta freqüência entrou em uma era de competição intensa. Com cada participante adotando novos métodos de expulsão da concorrência, a tecnologia progrediu aos trancos e barrancos. As arquiteturas de negociação algorítmica modernas são bastante complexas em comparação com as suas partes anteriores. Consequentemente, os sistemas avançados são mais caros de construir tanto em termos de tempo e dinheiro.
Conclusão:
Esta foi uma publicação detalhada sobre a arquitetura do sistema de negociação algorítmica, com certeza nós damos um conhecimento muito profundo dos componentes envolvidos e também dos vários desafios que os desenvolvedores de arquitetura precisam lidar / superar para construir sistemas de negociação automatizados robustos.
Se você quiser aprender vários aspectos da negociação algorítmica, consulte o Programa Executivo em Negociação Algorítmica (EPAT ™). O curso abrange módulos de treinamento como Statistics & amp; Econometria, Computação Financeira e Tecnologia e Algorítmica e Negociação quantitativa. EPAT ™ equipa você com os conjuntos de habilidades necessárias para construir uma carreira promissora na negociação algorítmica. Inscreva-se agora!
Posts Relacionados:
2 pensamentos sobre "Como os sistemas comerciais funcionam"
15 de dezembro de 2017.
Postagem muito boa. Eu simplesmente tropecei em seu blog e queria dizer que eu realmente gostei de navegar em suas postagens no blog. Afinal, vou me inscrever no seu feed e espero que você escreva novamente em breve!
15 de dezembro de 2017.
Estamos realmente satisfeitos por você gostar de nossas postagens. A apreciação é o que nos mantém em pé.
Certifique-se de continuar adicionando conteúdo fresco periodicamente. Compartilhe nossas postagens e ajude-nos a espalhar a palavra sobre como as pessoas podem aproveitar a partir de negociação algorítmica e quantitativa.
Комментарии
Отправить комментарий