Wednesday 20 December 2017

High frequency trading systems architecture


Design de sistema de comércio de alta freqüência e gerenciamento de processo. Design de sistema de negociação de alta freqüência e gerenciamento de processos. Roy E Welsch. Department Projeto de Sistema e Gestão Program. Publisher Massachusetts Institute of Technology. Date Emitido 2009.Trading empresas hoje em dia são altamente dependentes de mineração de dados, Modelagem de computador e desenvolvimento de software Os analistas financeiros executam muitas tarefas semelhantes às de software e indústrias de fabricação No entanto, o setor financeiro ainda não adotou totalmente padrões de engenharia de sistemas de alto padrão e abordagens de gerenciamento de processos que foram bem sucedidos no software e indústrias de fabricação. As metodologias tradicionais de concepção de produtos, controle de qualidade, inovação sistemática e melhoria contínua encontradas em disciplinas de engenharia podem ser aplicadas ao campo financeiro Esta tese mostra como o conhecimento adquirido de disciplinas de engenharia pode melhorar o design e gestão de processos de negociação de alta freqüência s Sistemas de negociação de alta freqüência são baseados em computação Estes sistemas são sistemas de software automáticos ou semi-automáticos que são inerentemente complexos e exigem um alto grau de precisão de projeto O design de um sistema de negociação de alta freqüência vincula vários campos, incluindo finanças quantitativas, Engenharia de software No setor financeiro, onde teorias matemáticas e modelos de negociação são relativamente bem pesquisados, a capacidade de implementar esses projetos em práticas comerciais reais é um dos elementos-chave da competitividade de uma empresa de investimento A capacidade de converter idéias de investimento em negociação de alto desempenho Esta tese fornece um estudo detalhado composto de alta freqüência sistema de comércio de design, modelagem de sistemas e princípios e gestão de processos para o desenvolvimento do sistema ênfase particular é dada para backtesting e otimização, que são Considerado E as partes mais importantes na construção de um sistema de negociação Esta pesquisa constrói modelos de engenharia de sistemas que orientam o processo de desenvolvimento Ele também usa sistemas de negociação experimental para verificar e validar princípios abordados nesta tese Finalmente, esta tese conclui que os princípios de engenharia de sistemas e estruturas podem ser a chave Para o sucesso na implementação de sistemas de negociação de alta freqüência ou de investimento quantitativo. Thesis SM - Instituto de Tecnologia do Massachusetts, Programa de Design e Gestão de Sistemas, 2009 Catalogado a partir da versão em PDF da tese Inclui referências bibliográficas p 78-79. HFT. High frequência de negociação HFT é um programa de plataforma de negociação que usa computadores poderosos para transacionar um grande número de encomendas em velocidades muito rápidas Ele usa algoritmos complexos para analisar vários mercados e executar Ordens baseadas nas condições do mercado Normalmente, os comerciantes com a execução mais rápida N velocidades são mais rentáveis ​​do que os comerciantes com velocidades de execução mais lentas. BREAKING Down Negociação de alta freqüência - HFT. High frequência de negociação tornou-se popular quando as trocas começaram a oferecer incentivos para as empresas para adicionar liquidez ao mercado Por exemplo, Tem um grupo de provedores de liquidez chamados Suplementar Liquidez Provedores SLPs que tenta adicionar a concorrência ea liquidez para as cotações existentes na troca Como um incentivo para as empresas, a NYSE paga uma taxa ou desconto para fornecer essa liquidez Em julho de 2017, 0 0019 para NYSE e NYSE MKT-listados títulos na NYSE Com milhões de transações por dia, isso resulta em uma grande quantidade de lucros O SLP foi introduzido após o colapso do Lehman Brothers em 2008, quando a liquidez era uma grande preocupação para os investidores. Benefícios do HFT. O principal benefício da HFT é que ele melhorou a liquidez do mercado e removeu os spreads de oferta e demanda que anteriormente seriam muito pequenos. Isso foi um teste Aumento de spreads aumentou Um estudo avaliou como os spreads de compra e venda canadenses mudaram quando o governo introduziu taxas sobre HFT, e verificou-se que os spreads de oferta e venda aumentaram em 9.Critiques de HFT. HFT é controverso e foi encontrado com algumas críticas duras substituiu uma grande quantidade de negociantes de corretor e usa modelos matemáticos e algoritmos para tomar decisões, tomando a decisão humana ea interação fora da equação As decisões acontecem em milissegundos, e isto poderia Como um exemplo, em 6 de maio de 2010, o Dow Jones Industrial Average DJIA sofreu a sua maior ponto ponto intraday nunca, diminuindo 1.000 pontos e caindo 10 em apenas 20 minutos antes de subir novamente Uma investigação do governo culpou um enorme Ordem que desencadeou um sell-off para o crash. An crítica adicional de HFT é que permite que as grandes empresas a lucrar às custas dos caras pouco, ou os investidores institucionais e de varejo Anothe R queixa principal sobre HFT é a liquidez fornecida por HFT é a liquidez fantasma, o que significa que fornece liquidez que está disponível para o mercado um segundo e passou o próximo, impedindo os comerciantes de realmente ser capaz de negociar esta liquidez. Na verdade, existem apenas 3 grandes blocos Em um sistema de negociação Algo 1 Gerenciador de dados de mercado, por exemplo, manipulador FAST 2 Módulo de Estratégia, por exemplo, estratégia crossOver 3 Roteador de Ordem, por exemplo, roteador FIX. Você pode adicionar verificações de risco no Módulo de Estratégia ou no Módulo Router Ordem ou ambos Enquanto seu fluxo de dados estiver correto, Você deve ser bom para ir Lembre-se de que você está projetando um ATS para latência mínima, e adicionando mais camadas ou complexidade virá ao custo da arquitetura ATS latency. Minimal. E se você adicionar os sinos e assobios, seria parecido com o seguinte. Se você estiver interessado também no nitty-gritty da execução da arquitetura acima, você deve manter as seguintes coisas na mente. Evitar bloqueios mutexes No caso de você ter que usá-lo, tente substituí-los com bloqueio Menos estruturas usando atomics Existem algumas bibliotecas disponíveis para estruturas de dados lockless eg libcds, kit de simultaneidade etc C -11 suporta atômico std e você deve se esforçar para usá-los também Evite o que é feito em QuickFIX Sua escrita para a flexibilidade de segurança reutilização como criação de bloqueio de objeto E destruição é feita para cada invocação de qualquer mensagem para roteador Certamente não há maneira de escrever um código de latência sensível. Nem tempo de execução de alocação de memória runtime pathway deve usar o gerenciamento de memória personalizado e sem bloqueio com pool de memória pré-alocada Toda a inicialização pode ser feito em Isto deve-se ao conceito OOP de acoplamento frouxo, mas é necessário evitar o custo de tempo de execução do polimorfismo dinâmico. Use Modelos No modelo de Threading, o modelo IO eo gerenciamento de memória devem ser projetados para colaborar entre si. Mesma veia, eu também sugiro que você olhar para C templatization para alcançar a flexibilidade de code. OS Hardware optimizatio N Finalmente, você deve olhar para trabalhar com o Linux RT Kernel e cartão de rede Solarflare com driver OpenOnLoad para alcançar a latência mínima você pode olhar para isolar a cpu e executar seu programa nesse núcleo particular. E finalmente, a API pública que você precisaria Expor aos desenvolvedores de estratégia Eu gostaria que este fosse o conjunto mínimo que encapsularia toda a complexidade daquela classe de destino de troca particular OrderRouter bool virtual público sendNewOrd OrderInfo 0 virtual bool sendRplOrd OrderInfo 0 virtual bool sendCxlOrd OrderInfo 0 virtual. Mas isso significa que o OrderInfo A classe precisa ter TODOS os detalhes exigidos pela troca de destino Em geral, as trocas requerem o mesmo tipo de informação, mas à medida que você avança e suporta mais destinos de intercâmbio você se encontra adicionando mais variáveis ​​nesta classe. Questiona desafios que você precisaria se perguntar 1 Arquitetura multi-processo ou arquiteturas Multi-Threaded Re se construir um processo monolítico com vários segmentos ou gravar vários processos O custo do processo múltiplo é a latência de passagem de mensagem, enquanto o custo para o processo único de vários threads é que qualquer falha pode derrubar todo o sistema 2 Mensagem passando enquanto você pode escolher A partir de uma infinidade de opções, você está restrito por consideração de latência IPC mais rápido seria memória compartilhada, mas então como você faria a sincronização gastar algum tempo com essas duas perguntas, porque eles seriam o bloco de construção em que sua arquitetura stands. Edit FIX e FAST Em relação ao protocolo padrão popular, FIX é para enviar ordens e FAST é para dados de mercado. Dito isto, a maioria das trocas tem seu próprio protocolo nativo que é mais rápido do que FIX, porque FIX é geralmente implementado em cima de seu protocolo nativo. Para a velocidade de implantação Por outro lado, enquanto FIX é adotado pela maioria das trocas, FAST não goza de aceitação tão ampla Se alguma coisa, Haveria apenas um punhado de troca adotá-lo A maioria deles ou enviar mais FIX-se baixa latência, ou usar seu próprio protocolo binário nativo, por exemplo, na Índia, NSE, BSE e MCX MCXSX, todas as três trocas dá-lhe FIX protocolo, além de Nativa, mas apenas BSE dá-lhe FAST para dados de mercado E que também está mudando de FAST para nativo com introdução de EOBI você pode extrapolar a mesma coisa para outras changes.4k Views View Upvotes Não para Reproduction. As John mencionado, OMS é o Crux de qualquer plataforma de negociação e você deve começar a pesquisar sobre isso Você teria que gastar tempo para determinar o seu ciclo de vida comercial, eventos e recursos que você deseja incorporar no OMS e aqueles que você quer que o seu Algo Engine lidar Metcetera oferece um código aberto OMS, eu não o usei pessoalmente, mas é um dos poucos no market. The próxima coisa que você deve olhar é fornecer uma interface para dados de origem e empurrá-lo para fora Isto é para um sistema de entrada de ordem do cliente para jogar no O Rder detalhes e motor Algo para fonte-lo Um monte de Sell Side OMS s usar uma combinação de programas proprietários escritos em Java C usando FIX O protocolo FIX permite que você se comunique em tempo real entre sistemas em um formato de mensagem predefinido simplificado estabelecido pelo protocolo FIX Comunidade Ir para A FIX Protocolo Organização Home Page para ler mais sobre ele Também olha para Open Source FIX Engine uma implementação de código aberto do mecanismo FIX. Próximo vem uma interface de dados de mercado para fonte em tempo real informações sobre o mercado de segurança, As informações que você procura realmente depende do tipo de estratégia que você deseja implementar Acredito que o Interactive Broker fornece um feed de dados em tempo real via FIX. Conectividade do Exchange é o próximo onde o seu Algo interpreta os sinais, criar uma ordem e rotas para um Exchange ou ECN Desenvolvendo em casa poderia ser difícil como você precisaria trabalhar E Xchange, certifique sua plataforma e pague uma taxa de associação regular Uma maneira mais barata é usar uma API de corretor como IB e rotear a ordem através deles. Os dados históricos são de essência também como você pode querer comparar o comportamento atual do mercado com seus valores históricos Parâmetros como propagação média, perfis VWAP, volume médio diário, etc podem ser necessários para influenciar a tomada de decisão Você pode tê-lo no banco de dados preferido, mas se a velocidade da essência, em seguida, baixá-lo no cache do servidor quando você começar o seu programa. Uma vez que seus sistemas periféricos são Esta infra-estrutura básica permite que você insira uma ordem de algo pai, ler dados de mercado, reagir aos sinais, mas gerar ordens filho e colocá-lo no livro de ordens de troca e Dados históricos para influenciar a tomada de decisão O OMS mantém a ligação entre a ordem filho pai, seus status em tempo real e atualizações pelo algo ou plataforma de conectividade de troca O que você deseja implementar dentro do Algo é completamente com você.2 3k Vistas Ver Upvotes Não é para reprodução.

No comments:

Post a Comment