Thursday 3 August 2017

Hft Sistema De Negociação


HFT. High-frequency trading HFT é uma plataforma de negociação de programas que usa computadores poderosos para processar um grande número de ordens em velocidades muito rápidas Ele usa algoritmos complexos para analisar múltiplos mercados e Executar ordens baseadas em condições de mercado Normalmente, os comerciantes com as velocidades de execução mais rápidas são mais rentáveis ​​do que os comerciantes com velocidades de execução mais lento. 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 a adicionar Liquidez ao mercado Por exemplo, a Bolsa de Valores de Nova York NYSE tem um grupo de provedores de liquidez chamado Provedores de Liquidez Suplementares SLPs que tentam adicionar concorrência e liquidez para cotações existentes na bolsa Como um incentivo para as empresas, a NYSE paga uma taxa ou desconto Para fornecer essa liquidez. Em julho de 2016, o desconto médio de SLP foi de 0 0019 para títulos cotados na NYSE e NYSE MKT na NYSE. Com m O SLP foi introduzido após o colapso da Lehman Brothers em 2008, quando a liquidez era uma grande preocupação para os investidores. Benefícios da HFT. O maior benefício da HFT é que tem melhorado mercado De liquidez e de spreads de compra e venda que anteriormente seriam muito pequenos Isso foi testado adicionando taxas sobre HFT, e como resultado, os spreads de lance e demanda aumentaram Um estudo avaliou como os spreads canadenses de oferta e demanda mudaram quando o governo introduziu taxas sobre HFT , E verificou-se que o spread bid-ask aumentou em 9.Critiques de HFT. HFT é controverso e foi encontrado com algumas duras críticas Ele substituiu uma grande quantidade de corretores e usa modelos matemáticos e algoritmos para tomar decisões, tomando Decisão humana e interação fora da equação Decisões acontecem em milissegundos, e isso poderia resultar em grandes movimentos do mercado sem razão. Como exemplo, em 6 de maio de 2010, o Dow Jones Industrial Average DJIA sofreu A sua maior queda intraday ponto nunca, diminuindo 1.000 pontos e caindo 10 em apenas 20 minutos antes de subir novamente Uma investigação do governo culpou uma ordem maciça que desencadeou uma venda para o crash. An crítica adicional de HFT é que permite que as grandes empresas a lucrar com A despesa dos pequenos caras, ou os investidores institucionais e de varejo Outra queixa importante sobre HFT é a liquidez fornecida pela 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 essa liquidez. O que é de alta freqüência trading. High freqüência de negociação é uma plataforma de negociação automatizada utilizada por grandes bancos de investimento fundos de hedge e investidores institucionais que utiliza computadores poderosos para processar um grande número de ordens em velocidades extremamente altas Estas negociação de alta freqüência Plataformas permitem que os comerciantes para executar milhões de ordens e digitalizar vários mercados e trocas em questão de segundos, Dando assim às instituições que usam as plataformas uma enorme vantagem no mercado aberto. Os sistemas usam algoritmos complexos para analisar os mercados e são capazes de detectar tendências emergentes em uma fração de segundo. Por ser capaz de reconhecer mudanças no mercado, a negociação Sistemas de enviar centenas de cestas de ações para fora no mercado em spreads bid-ask que são vantajosas para os comerciantes Por essencialmente antecipando e batendo as tendências para o mercado, as instituições que implementam negociação de alta freqüência pode ganhar retornos favoráveis ​​sobre os negócios que fazem por essência De sua propagação bid-ask, resultando em lucros significativos. Alta freqüência de negociação tornou-se lugar comum nos mercados após a introdução de incentivos oferecidos por trocas para as instituições para adicionar liquidez aos mercados Ao oferecer pequenos incentivos a estes mercado - E as instituições que fornecem a liquidez também vêem lucros aumentados em cada comércio que fazem, em cima De seus spreads favoráveis ​​Embora os spreads e os incentivos ascendam a uma fração de 1 cêntimo por transação, multiplicando isso por um grande número de comércios por os montantes de dia para lucros sizable para comerciantes de alta freqüência. Muitos vêem negociação de alta freqüência como antiético e uma vantagem injusta para Grandes empresas contra instituições menores e investidores Para tentar a sua mão na negociação on-line lida Estimule suas habilidades com Simulated Trading e confira o Investopedia Stock Simulator para negociar ações risco free. Find que fatores influenciam bid-ask spread width Saiba por que algumas ações têm grandes Se espalhar entre preços de compra e de venda Leia a resposta. Saiba mais sobre spreads de compra e venda e por que estoques com altos níveis de liquidez e baixos níveis de volatilidade geralmente têm leituras de troca de resposta Read. Stock são criados para ajudar corretores e outros especialistas em coordenar bid e Ask prices O preço da oferta é Read Answer. Liquidity refere-se a quão fácil é comprar e vender ações sem ver uma mudança em pri Se, por exemplo, você comprou ações Read Answer. A plataforma de negociação é um pedaço de software que atua como um canal para informações entre um comerciante e um corretor Uma negociação Ler estratégias de negociação Answer. Algorithmic, tais como cobertura automática, análise estatística, Execução algorítmica, acesso direto ao mercado e negociação de alta freqüência, pode expor inconsistências de preços, que pose. Algorithmic negociação é o processo de utilização de computadores para colocar os comércios, a fim de gerar lucros a uma velocidade e freqüência que estão além da capacidade de uma pessoa. Olhar em profundidade como funcionam as negociações de alta freqüência e quem são os jogadores. Muitos do crescimento na negociação algorítmica nos mercados de Forex nos últimos anos tem sido devido a algoritmos automatizando certos processos e reduzindo as horas necessárias para conduzir sistemas de negociação exchange. Automated Minimizar as emoções, permitir a entrada de ordem mais rápida, levar a uma maior consistência e resolver problemas piloto de erro. Os comerciantes de sistemas dividem seu tempo entre negociação, dev Eloping, backtesting, otimização e testes diretos, para criar sistemas de negociação viáveis ​​e de alta probabilidade. É a liquidez de mercado fornecida pela negociação de alta freqüência uma realidade ou uma ilusão. O montante máximo de dinheiro os Estados Unidos podem pedir emprestado O teto da dívida foi criado sob A Segunda Liberty Bond Act. A taxa de juros em que uma instituição depositária empresta fundos mantidos no Federal Reserve para outra instituição depositária.1 Uma medida estatística da dispersão de retornos para um determinado título ou índice de mercado A volatilidade pode ser medida. Um ato O Congresso dos EUA aprovou em 1933 como a Lei Bancária, que proibia os bancos comerciais de participar do investimento. A folha de pagamento não-agrícola refere-se a qualquer trabalho fora das fazendas, casas particulares e do setor sem fins lucrativos. A rupia indiana INR, a moeda da Índia A rupia é composta por 1. Este post irá detalhar o que eu fiz para fazer aproximadamente 500k de hig H de 2009 a 2010 Desde que eu estava negociando completamente independentemente e já não estou executando o meu programa estou feliz em dizer tudo Meu negócio foi principalmente em Russel 2000 e contratos de futuros DAX. A chave para o meu sucesso, eu acredito, não estava em Uma equação financeira sofisticada, mas sim no design do algoritmo global que ligados juntos muitos componentes simples e aprendizado da máquina usado para otimizar para rentabilidade máxima Você ganhou t necessidade de conhecer qualquer terminologia sofisticada aqui, porque quando eu configurar o meu programa era tudo baseado na intuição Andrew Ng O curso surpreendente da aprendizagem da máquina não estava ainda disponível - btw se você estalar essa ligação você ll ser feito exame a meu projeto atual CourseTalk, um local da revisão para MOOCs. Primeiro, eu apenas quero demonstrar que meu sucesso não era simplesmente o resultado da sorte My Programa feito 1000-4000 comércios por dia meia longa, meia curta e nunca entrou em posições de mais de alguns contratos de cada vez Isto significou a sorte aleatória de qualquer um comércio especial avera Ged out pretty fast O resultado foi que eu nunca perdi mais de 2000 em um dia e nunca tive um mês perdedor. EDIT Estes números são depois de pagar commissions. And aqui uma carta para dar-lhe uma noção da variação diária Note isso exclui os últimos 7 meses porque - como os números pararam de subir - eu perdi a minha motivação para entrar them. My background. Prior comércio Para a criação do meu programa de negociação automatizado Eu d tinha 2 anos de experiência como um dia comerciante manual Esta foi de volta em 2001 - foi os primeiros dias de comércio eletrônico e houve oportunidades para scalpers para fazer bom dinheiro só posso descrever o que eu estava fazendo Como semelhante a jogar um jogo de vídeo jogo com uma suposta vantagem Ser bem sucedido significava ser rápido, ser disciplinado e ter um bom intuitivo reconhecimento de padrões habilidades que eu era capaz de fazer em torno de 250k, pagar os meus empréstimos estudantis e ter dinheiro sobrando Win. Over Os próximos cinco anos eu iria lançar duas startups, pegando algumas habilidades de programação ao longo do caminho Não seria até o final de 2008 que eu iria voltar a negociação Com o dinheiro a correr baixo da venda da minha primeira inicialização, Negociação ofereceu esperanças de algum dinheiro rápido, enquanto eu descobri o meu próximo movimento. Em 2008, eu estava manualmente dia futuros de negociação usando o software chamado T4 eu estava querendo alguns hotkeys de entrada de pedidos personalizados, então depois de descobrir T4 tinha uma API, eu assumi o desafio De aprender C a linguagem de programação necessária para usar a API e fui em frente e construiu-me algumas hotkeys. After ficando meus pés molhados com a API eu logo tinha maiores aspirações que eu queria ensinar o computador para o comércio para mim A API forneceu tanto um fluxo de Dados de mercado e uma maneira fácil de enviar ordens para a troca - tudo que eu tinha a fazer era criar a lógica no middle. Below é uma imagem de uma janela de negociação T4 O que era legal é que quando eu tenho o meu programa de trabalho eu era capaz de Assistir o comércio de computador nesta mesma interface mesmo Observando ordens reais popping dentro e fora por si com o meu dinheiro real foi emocionante e assustador. O design do meu algoritmo. Desde o início meu objetivo era configurar um sistema tal que eu poderia ser razoavelmente Co Nfident Eu d fazer o dinheiro antes de fazer sempre todos os comércios vivos Para conseguir isto eu necessitei construir uma estrutura de simulação negociando que - como exatamente como possível - simular a negociação viva. Enquanto negociando em modalidade viva requereu atualizações de mercado processando fluidas através da API, Necessário ler atualizações de mercado de um arquivo de dados Para coletar esses dados eu configurar a primeira versão do meu programa para simplesmente ligar à API e registro de atualizações do mercado com timestamps acabei usando 4 semanas de dados de mercado recente para treinar e testar meu sistema em . Com um quadro básico no lugar eu ainda tinha a tarefa de descobrir como fazer um sistema de comércio rentável Como se vê que o meu algoritmo iria dividir em dois componentes distintos, que eu vou explorar em turn. Predicting movimentos de preços e. Making rentável Movimentos de preços de previsão. Talvez um componente óbvio de qualquer sistema de negociação é ser capaz de prever onde os preços vão se mover e mina não foi nenhuma exceção Eu defini a corrente Preço como a média da oferta interna e oferecer dentro e eu definir o objetivo de prever onde o preço seria nos próximos 10 segundos Meu algoritmo precisaria chegar a essa previsão momento a momento durante todo o dia de negociação. Criando otimização Eu criei um punhado dos indicadores que provaram ter uma abilidade significativa de prever movimentos do preço a curto prazo Cada indicador produziu um número que era positivo ou negativo Um indicador era útil se mais frequentemente do que não um número positivo correspondeu com o mercado que vai acima E um número negativo correspondeu com o mercado indo para baixo. Meu sistema me permitiu determinar rapidamente quanto a capacidade de previsão de qualquer indicador tinha assim que eu era capaz de experimentar com um monte de diferentes indicadores para ver o que funcionou Muitos dos indicadores tinham variáveis ​​nas fórmulas Que os produziu e pude encontrar os valores ótimos para essas variáveis, fazendo comparações lado a lado dos resultados obtidos com valores variáveis. Dicators que foram mais úteis foram todos relativamente simples e foram baseados em eventos recentes no mercado que eu estava negociando, bem como os mercados de valores correlacionados. Fazer previsões de preço exato movimento. Tendo indicadores que simplesmente previu um movimento de preços para cima ou para baixo wasn t suficiente Eu precisava saber exatamente quanto movimento de preço foi previsto por cada valor possível de cada indicador que eu precisava de uma fórmula que iria converter um valor indicador para uma previsão de preço. Para isso, eu segui o preço previsto movimentos em 50 baldes que dependiam do intervalo que O valor do indicador caiu em Este produzido único previsões para cada balde que eu era então capaz de gráfico no Excel Como você pode ver a mudança de preço esperado aumenta à medida que o valor do indicador aumenta. Com base em um gráfico como este, eu era capaz de fazer uma fórmula Para ajustar a curva No começo eu fiz essa curva de ajuste manualmente, mas eu logo escreveu algum código para automatizar este processo. Note que nem todas as curvas indicador tinha o mesmo s Hape Observe também que os baldes foram logaritmicamente distribuídos de modo a espalhar os pontos de dados de forma uniforme Finalmente, note que os valores dos indicadores negativos e suas correspondentes predições de preços para baixo foram invertidos e combinados com os valores positivos Meu algoritmo tratada para cima e para baixo exatamente os mesmos indicadores para um único Uma coisa importante a considerar era que cada indicador não era inteiramente independente Eu não poderia simplesmente somar todas as previsões que cada indicador fez individualmente A chave era descobrir o valor preditivo adicional que cada indicador tinha além do que já estava previsto Isto Não era difícil de implementar, mas isso significava que se eu estava ajustando a curva vários indicadores, ao mesmo tempo, eu tinha que ser cuidadoso alterando uma seria efeito as previsões de outro. A fim de curva se encaixam todos os indicadores ao mesmo tempo eu Configurar o otimizador para passo apenas 30 do caminho para as novas curvas de previsão com cada passagem Com este salto 30 eu encontrei Que as curvas de previsão se estabilizariam dentro de poucas passagens. Com cada indicador agora dando-nos a sua previsão de preço adicional eu poderia simplesmente adicioná-los para produzir uma única previsão de onde o mercado estaria em 10 segundos. Por que prever os preços não é suficiente. Você pode pensar que com essa vantagem no mercado eu era dourado Mas você precisa ter em mente que o mercado é composto de lances e oferece - não é apenas um preço de mercado O sucesso na negociação de alta freqüência vem para baixo para obter bons preços e Não é fácil. Os seguintes fatores fazem a criação de um sistema rentável difícil. Com cada troca eu tive que pagar comissões a meu corretor ea troca. A diferença da propagação entre o lance o mais elevado ea oferta mais baixa significou que se eu fosse simplesmente comprar e Vender aleatoriamente eu d estar perdendo uma tonelada de money. Most do volume de mercado foi outros bots que só iria executar um comércio comigo se eles pensaram que tinham alguma edge. Seeing estatística uma oferta não garantia que eu poderia comprá-lo Pelo Tempo minha ordem de compra chegou à troca era muito possível que essa oferta teria sido cancelled. As um jogador de mercado pequeno não havia nenhuma maneira que eu poderia competir em velocidade alone. Building uma simulação de negociação completa. Então eu tinha um quadro que me permitiu Para backtest e otimizar indicadores Mas eu tinha que ir além disso - eu precisava de uma estrutura que me permitiria backtest e otimizar um sistema de comércio completo onde eu estava enviando ordens e ficando em posições Neste caso eu d ser otimização para PL total e Em certa medida média PL por trade. This seria mais complicado e de alguma forma impossível de modelar exatamente, mas eu fiz o melhor que pude Aqui estão alguns dos problemas que eu tive que lidar com. Quando uma ordem foi enviada para o mercado em simulação Eu tive que modelar o tempo do lag O fato que meu sistema viu uma oferta não significou que poderia o comprar imediatamente O sistema emitiria a ordem, espere aproximadamente 20 milissegundos e então somente se a oferta era ainda lá era ele considerado como um Comércio executado Isso foi inexato, porque o tempo de atraso real foi inconsistente e unreported. When eu coloquei ofertas ou ofertas eu tive que olhar para o fluxo de execução de comércio fornecido pela API e usá-los para medir quando a minha ordem teriam sido executados contra Para fazer isso direito eu Tinha que rastrear a posição da minha ordem na fila É um sistema first-in first-out Mais uma vez, eu não poderia fazer isso perfeitamente, mas fiz uma melhor aproximação. Para refinar a minha simulação de execução de ordem o que fiz foi pegar meus arquivos de log de Live trading através da API e compará-los a arquivos de log produzidos por negociação simulada a partir do mesmo período de tempo exato eu era capaz de obter a minha simulação para o ponto que era bastante preciso e para as peças que eram impossíveis de modelo, Pelo menos produzir resultados que foram estatisticamente semelhantes nas métricas que eu pensei que eram importantes. Fazendo negócios rentáveis. Com um modelo de simulação de ordem no lugar eu poderia agora enviar ordens no modo de simulação e ver um PL simulado Mas como seria m Y sistema saber quando e onde comprar e vender. As previsões de movimento de preço foram um ponto de partida, mas não toda a história O que eu fiz foi criar um sistema de pontuação para cada um dos 5 níveis de preços sobre a oferta e oferta Estes incluíam um nível acima do interior Lance para uma ordem de compra e um nível abaixo da oferta interna para uma ordem de venda. Se a pontuação em qualquer nível de preço foi acima de um determinado limite que significaria meu sistema deve ter uma oferta de oferta ativa lá - abaixo do limiar então qualquer ordens ativas Deve ser cancelado Com base nisso, não era incomum que meu sistema iria flash um lance no mercado, em seguida, cancelá-lo imediatamente Embora eu tentei minimizar isso como ele é irritante como o diabo para quem está olhando para a tela com os olhos humanos - incluindo me. The Os níveis de preços foram calculados com base nos seguintes fatores. A previsão de movimento de preço que discutimos anteriormente. O nível de preço em questão Os níveis internos significavam maiores previsões de movimento de preços. O número de contratos na frente do meu Ordem na fila Menos foi better. The número de contratos por trás da minha ordem na fila Mais foi better. Essentially estes fatores serviram para identificar lugares seguros para oferecer oferta A previsão de movimento de preços por si só não era adequada, porque não conta para o fato de que Ao colocar uma oferta eu não estava automaticamente preenchido - só fiquei preenchido se alguém me vendeu lá A realidade era que o mero fato de alguém vender para mim em um determinado preço mudou as probabilidades estatísticas do comércio. As variáveis ​​usadas nesta etapa Foram todos sujeitos a otimização Isso foi feito da mesma maneira que eu otimizado variáveis ​​nos indicadores de movimento de preço, exceto neste caso eu estava otimizando para linha de fundo P L. O que o meu programa ignorado. Quando negociação como seres humanos que muitas vezes têm poderosas emoções e Preconceitos que podem levar a decisões menos do que o ideal Claramente eu não queria codificar esses preconceitos Aqui estão alguns fatores que meu sistema ignorou. O preço que uma posição foi inserida - Em um escritório de comércio é bastante comum Para ouvir a conversa sobre o preço em que alguém é longo ou curto como se isso deve afetar sua tomada de decisão futura Embora isso tenha alguma validade como parte de uma estratégia de redução de risco que realmente não tem qualquer influência sobre o curso futuro dos eventos no mercado Portanto, O programa ignorou completamente esta informação É o mesmo conceito que ignorando custos afundados. Vendo curto vs saindo de uma posição longa - tipicamente um comerciante teria diferentes critérios que determina onde vender uma posição longa versus onde ir curto No entanto a partir de minha perspectiva de algoritmos havia Nenhuma razão para fazer uma distinção Se o meu algoritmo esperava uma venda para baixo movimento foi uma boa idéia, independentemente de se ele estava atualmente longo, curto ou flat. A dobrar estratégia - Esta é uma estratégia comum onde os comerciantes vão comprar mais ações no evento Que há comércio original vai contra eles Isso resulta em seu preço médio de compra sendo menor e isso significa quando ou se o estoque gira em torno de você vai ser configurado para fazer o seu Ey de volta em nenhum momento Na minha opinião, esta é realmente uma estratégia horrível a menos que você re Warren Buffet Você está enganado em pensar que você está fazendo bem, porque a maioria de seus comércios serão vencedores O problema é quando você perde você perde grande O outro efeito é Torna difícil julgar se você realmente tem uma vantagem no mercado ou estão apenas ficando sortudos Ser capaz de monitorar e confirmar que o meu programa, de facto, ter uma vantagem foi um objetivo importante. Desde o meu algoritmo tomou decisões da mesma maneira, independentemente de onde Ele entrou em um comércio ou se era atualmente longo ou curto que ocasionalmente sentar e tomar algumas grandes operações perdedoras, além de alguns grandes negócios vencedor Mas, você shouldn t acho que não havia nenhuma gestão de risco. Para gerenciar o risco eu reforçado um máximo Tamanho de posição de 2 contratos de cada vez, ocasionalmente bumped up em dias de alto volume Eu também tinha um limite máximo de perda diária para proteger contra quaisquer condições de mercado inesperado ou um bug no meu software Estes limites foram aplicadas no meu código bu T também no back-end através do meu corretor Como aconteceu eu nunca encontrei qualquer problems. Running significa o algoritmo. Desde o momento em que eu comecei a trabalhar no meu programa que me levou cerca de 6 meses antes que eu comecei a ponto de rentabilidade e começou a executá-lo Ao vivo Embora para ser justo uma quantidade significativa de tempo estava aprendendo uma nova linguagem de programação Como eu trabalhei para melhorar o programa eu vi aumento de lucros para cada um dos próximos quatro meses. Cada semana eu retrain meu sistema baseado no valor de 4 semanas anteriores de Os dados que eu encontrei este golpeou o contrapeso direito entre capturar tendências comportamentais recentes do mercado e segurar meu algoritmo tiveram bastante dados para estabelecer testes padrões significativos Como o treinamento começou a tomar mais e mais tempo eu o separei para que pudesse ser executado por 8 máquinas virtuais usando amazon EC2 Os resultados foram então coalesced na minha máquina local. O ponto alto da minha negociação foi de outubro de 2009, quando eu fiz quase 100k Depois disso eu continuei a passar os próximos quatro meses t Rying para melhorar meu programa apesar do lucro diminuído cada mês Infelizmente por este ponto eu supor que eu implementei todas minhas melhores idéias porque nada que eu tentei parecer ajudar muito. Com a frustração de não poder fazer melhorias e de não ter um sentido do crescimento eu Comecei a pensar em uma nova direção Eu enviei um e-mail a 6 empresas de negociação de alta freqüência diferentes para ver se eles estariam interessados ​​em comprar meu software e contratar-me para trabalhar para eles Ninguém respondeu que eu tinha algumas novas idéias de inicialização que eu queria trabalhar,.UPDATE - Eu postei isso no Hacker News e ele tem recebido muita atenção Eu só quero dizer que eu não defendo ninguém tentando fazer algo parecido com eles agora Você precisaria de uma equipe de pessoas realmente inteligentes com uma gama de experiências Para ter qualquer esperança de competir Mesmo quando eu estava fazendo isso eu acredito que era muito raro para os indivíduos para alcançar o sucesso, embora eu tinha ouvido falar de others. There é um comentário no topo da página que menciona manipulado sta Tistics e refere-se a mim como um investidor de varejo que quants would gleefully pick off Este é um comentário um pouco lamentável que s simplesmente não baseado na realidade Definição que de lado há alguns comentários interessantes. UPDATE 2 - Eu ve postou um FAQ que responde Algumas perguntas comuns que eu recebi de comerciantes sobre este post.

No comments:

Post a Comment