Pergunta

Ao longo do último par de semanas eu vim através de lotes de artigos sobre negociação de alta frequência. Todos eles falam sobre o quão importante computadores e software é isso, mas uma vez que são todos escritos a partir de um ponto de vista financeiro não há detalhes sobre o que faz software fazer?

Alguém pode explicar a partir de um ponto de programadores de vista o que é negociação de alta frequência? e porque é o computador / software tão importante neste campo?

Foi útil?

Solução

Para expandir o que Paulo disse:

O servidor execução HFT ou UHFT são quase sempre colocado no centro de dados do Exchange. Isso minimiza a latência e também permite que os algos usar ordens de Flash (que podem ser proibidos em breve) para obter primeiro olhar para o fluxo de ordem antes da ordem é transmitido para o mercado. muitos de Algo vai avaliar um fim em apenas alguns milissegundos e este é um jogo onde milissegundos importa. grupos comerciais foram conhecidos para puxar todas as paradas incluindo a contratação de desenvolvedores do kernel para componentes de sistema operacional de compilação personalizada para melhor otimizar o tempo entre quando uma ordem atinge o NIC e quando a ação resultante é tomada.

Há um par de grandes baldes de estratégias que estão sendo usados ??hoje:

O primeiro está sendo negociado na frente de ordens de blocos grandes. Para usar o exemplo de Paulo de compra de um milhão de ações da IBM, HFT algo de vai estar a olhar para a compra de pressão. A firmas computadores em diferentes intercâmbios e dark pools terão de compartilhar informações uma vez que o pedido será dividido e tipicamente executadas em vários intercâmbios e dark pools. Um algo HFT vai usar máquina / estatística modelos aprenderam a prever o tamanho da pressão de compra e se determina que não é suficiente ele vai ações também se acumulam de todos os mercados e tentar vendê-los por um preço ligeiramente superior.

O segundo é a liquidez de negociação rebate onde as trocas pagará os participantes do mercado para adicionar liquidez. ( Veja Direct Edge Preço ) Ações que são comprados ou vendidos só pode ser realizada por muito curto período de tempo. O objetivo é apenas para recolher o desconto e quebrar mesmo em tudo o resto.

Em ambos os tipos de estratégia a idéia é fazer com que moedas de um centavo (ou frações) em um comércio e fazer isso muitas vezes por dia.

Como você pode ter notado, há uma série de postos de trabalho HFT disponível e, portanto, os negócios estão cada vez mais lotado. Eu vejo isso como tipo como arb estatístico a partir de início de 2000 e, eventualmente, o comércio não vai ser muito rentável uma vez que muitos jogadores estão tentando fazê-lo.

Quanto ao porquê de software é importante: milissegundos importa. Latência é super importante e o código precisa ser apertado, rápido e rock sólida e estável. Ter um acidente de algo e ser pego com ações quando o mercado se move contra você não é muito rentável. Engenharia para estes requisitos é necessariamente diferente e requer habilidades diferentes. Esmaga a carteira de pedidos cheia em tempo real faz requer alguns cavalos de potência e bons algoritmos. É divertido e, embora interessante.

Outras dicas

Existem duas partes para qualquer sistema HFT:

  1. em tempo real de negociação super baixa latência - assine o tempo real livro de ordens e preço informação de lotes de diferentes fontes, executar algoritmos calibrados concebidos para tanto realizar um grande fim com deslizamento mínimo (ou seja, você quer comprar 1 milhão ações da IBM até o final do dia sem mover o mercado muito), ou apenas para tentar estatisticamente ganhar dinheiro baseado em arbitragem de curto prazo. Este sistema também tem de fornecer boas ferramentas de gestão de riscos e posição para permitir que um ou mais humanos operadores para monitorar e controlar o que o sistema está a fazer de forma eficaz.

  2. Durante a noite / Weekly etc. análise de grandes quantidades de "tick data" (preço, prazo e informações do livro de ordem, e dados históricos sobre os sistemas de atividades de negociação anterior), procurando otimizar e "procurar" a melhor algoritmos para ser executado em tempo real por parte # 1. ou seja, "calibrar" e testar os algoritmos que serão executados em # 1.

O primeiro requer baixa latência e extremamente bom acesso aos mercados (ou seja, uma ligação directa à rede para a troca com lúpulo mínimas). Esta parte geralmente tem de ser escrito numa linguagem não-CG como C ou C ++ (um segundo atraso de meio enquanto que o colector de lixo pára o mundo poderia ser muito caro). O segundo geralmente requer uma grade e muita boa simulação e software de análise estatística, AI algoritmos etc.

Gostaria apenas de acrescentar, que a maioria das aplicações prevalentes nesse tipo de negociação tendem a ser CEP (processamento de eventos complexos). Alguns exemplos são StreamBase, Apama e Aleri. Na outra extremidade, para lidar com as quantidades maciças de dados, as pessoas usam bancos de dados de alta velocidade, como KDB, OneTick e Vhayu.

Se você quiser entender o tipo de desafios técnicos, sugiro olhando para esses fornecedores em primeiro lugar. Seus materiais de marketing vai lhe dar um bom senso das aplicações de negócios, bem como os desafios técnicos.

Em certos momentos (por exemplo, numa futuros de validade) é necessário para fazer milhares de transações por minuto -, obviamente, os humanos não podem fazer isso sem ajuda. Este BTW é um momento muito estressante para o programador, como se alguma coisa der errado, não há quase nenhuma chance de recuperação -. Programadores tendem a ver os seus arquivos de log ir streaming de perto com seus corações um pouco na sua boca

Você precisa controlar os preços, decidir rapidamente o que está indo para cima e para baixo e comprar e vender em conformidade. Desde lá está muitas posições diferentes trocou o software melhor você usar para essa análise e ofertas realizando mais dinheiro você pode potencialmente fazer.

Melhor significaria sempre atualizando dados, identificar tendências interessantes de tal maneira que você pode reagir a elas rapidamente, sendo fácil de usar ao executar operações frequentemente necessárias.

porque é o computador / software tão importante neste campo?

O mais alto desempenho e menor latência é desejável, uma vez que o mais rápido que você pode reagir a coisas, mais dinheiro você pode potencialmente fazer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top