Sunday, 20 August 2017

Como Criar Sistema De Negociação De Alta Freqüência


Noções básicas de negociação algorítmica: conceitos e exemplos Um algoritmo é um conjunto específico de instruções claramente definidas destinadas a realizar uma tarefa ou processo. A negociação algorítmica (negociação automatizada, negociação em caixa preta ou simplesmente negociação de algo) é o processo de utilização de computadores programados para seguir um conjunto definido de instruções para colocar um negócio a fim de gerar lucros a uma velocidade e frequência que é impossível para um Comerciante humano. Os conjuntos de regras definidos baseiam-se em tempo, preço, quantidade ou qualquer modelo matemático. Além de oportunidades de lucro para o comerciante, algo-trading torna os mercados mais líquidos e torna a negociação mais sistemática, excluindo impactos humanos emocionais sobre as atividades de negociação. Suponha que um comerciante segue estes critérios comerciais simples: Compre 50 ações de uma ação quando sua média móvel de 50 dias ultrapassar a média móvel de 200 dias Vender ações da ação quando sua média móvel de 50 dias estiver abaixo da média móvel de 200 dias Usando este conjunto de duas instruções simples, é fácil escrever um programa de computador que irá monitorar automaticamente o preço das ações (e os indicadores de média móvel) e colocar as ordens de compra e venda quando as condições definidas forem atendidas. O comerciante já não precisa de manter um relógio para preços e gráficos vivos, ou põr nas ordens manualmente. O sistema de negociação algorítmica automaticamente faz isso para ele, identificando corretamente a oportunidade de negociação. Algo-trading oferece os seguintes benefícios: Trades executados nos melhores preços possíveis Instant e exata colocação da ordem de comércio (assim altas chances de execução em níveis desejados) Negociações Temporizado corretamente e instantaneamente, para evitar mudanças significativas de preços Custos de transação reduzidos (veja o exemplo de insuficiência de implementação abaixo) Verificações automáticas simultâneas em várias condições de mercado Redução do risco de erros manuais na colocação das operações Backtest o algoritmo, com base em dados históricos e em tempo real reduzidos Reduzido A possibilidade de erros por comerciantes humanos com base em fatores emocionais e psicológicos A maior parte do atual dia algo-negociação é de alta freqüência de negociação (HFT), que tenta capitalizar sobre a colocação de um grande número de ordens a velocidades muito rápidas em vários mercados e múltiplas decisões Parâmetros, com base em instruções pré-programadas. Algo-trading é usado em muitas formas de negociação e atividades de investimento, incluindo: Investidores de médio a longo prazo ou empresas de compra de lado (fundos de pensão , Fundos mútuos, companhias de seguros) que compram em ações em grandes quantidades, mas não querem influenciar os preços das ações com investimentos discretos de grande volume. Os comerciantes de curto prazo e os participantes do lado da venda (fabricantes de mercado, especuladores e arbitradores) beneficiam-se da execução automatizada do comércio além, de algo-negociar ajudas em criar liquidez suficiente para vendedores no mercado. Os comerciantes sistemáticos (seguidores de tendências, comerciantes de pares, fundos de hedge, etc.) acham muito mais eficiente programar suas regras de negociação e deixar o programa trocar automaticamente. A negociação algorítmica proporciona uma abordagem mais sistemática ao comércio ativo do que métodos baseados em intuição ou instinto de comerciantes humanos. Estratégias Algorítmicas de Negociação Qualquer estratégia para negociação algorítmica requer uma oportunidade identificada que seja rentável em termos de ganhos melhorados ou redução de custos. As estratégias de negociação comuns usadas em algo-trading são as seguintes: As estratégias de negociação algorítmicas mais comuns seguem as tendências em médias móveis. Canal breakouts. Movimentos de nível de preços e indicadores técnicos relacionados. Estas são as estratégias mais fáceis e mais simples de implementar através de negociação algorítmica, porque essas estratégias não envolvem fazer previsões ou previsões de preços. Os negócios são iniciados com base na ocorrência de tendências desejáveis. Que são fáceis e simples de implementar através de algoritmos sem entrar na complexidade da análise preditiva. O exemplo acima mencionado de média móvel de 50 e 200 dias é uma tendência popular seguindo a estratégia. Comprar uma ação cotada dual a um preço mais baixo em um mercado e vendê-lo simultaneamente a um preço mais elevado em um outro mercado oferece o diferencial de preço como o lucro sem risco Ou arbitragem. A mesma operação pode ser replicada para ações versus instrumentos de futuros, já que existem diferenciais de preços de tempos em tempos. Implementar um algoritmo para identificar tais diferenciais de preços e colocar as ordens permite oportunidades rentáveis ​​de forma eficiente. Os fundos de índice definiram períodos de reequilíbrio para trazer as suas participações a par com os respectivos índices de referência. Isso cria oportunidades lucrativas para os comerciantes algorítmicos, que capitalizar sobre os negócios esperados que oferecem 20-80 pontos-base de lucros, dependendo do número de ações no fundo de índice, pouco antes do rebalanceamento do fundo índice. Tais negociações são iniciadas através de sistemas de negociação algorítmica para execução atempada e melhores preços. Um monte de modelos matemáticos comprovados, como a estratégia de negociação delta neutro, que permitem negociação na combinação de opções e sua segurança subjacente. Onde os negócios são colocados para compensar deltas positivos e negativos de modo que o delta da carteira seja mantido em zero. A estratégia de reversão média baseia-se na idéia de que os preços altos e baixos de um ativo são um fenômeno temporário que revertem para seu valor médio periodicamente. Identificar e definir uma faixa de preço e algoritmo de implementação com base em que permite que os comércios sejam colocados automaticamente quando o preço do ativo entrar e sair do seu intervalo definido. Volume ponderada estratégia de preço médio quebra uma grande ordem e libera dinamicamente determinados pedaços menores da ordem para o mercado usando os perfis de volume histórico específico do estoque. O objetivo é executar a ordem próxima ao Preço Médio Ponderado pelo Volume (VWAP), beneficiando assim o preço médio. A estratégia de preço médio ponderado pelo tempo rompe uma grande ordem e libera blocos menores determinados dinamicamente da ordem para o mercado usando intervalos de tempo uniformemente divididos entre uma hora de início e uma de fim. O objetivo é executar a ordem perto do preço médio entre o início eo fim, minimizando assim o impacto no mercado. Até que a ordem de negociação seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com a proporção de participação definida e de acordo com o volume negociado nos mercados. A estratégia de passos relacionados envia ordens a uma percentagem definida pelo utilizador dos volumes de mercado e aumenta ou diminui esta taxa de participação quando o preço da acção atinge níveis definidos pelo utilizador. A estratégia de déficit de implementação visa minimizar o custo de execução de uma ordem, trocando o mercado em tempo real, economizando assim o custo da ordem e beneficiando do custo de oportunidade da execução atrasada. A estratégia vai aumentar a taxa de participação alvo quando o preço das ações se move favoravelmente e diminuí-lo quando o preço das ações se move adversamente. Existem algumas classes especiais de algoritmos que tentam identificar acontecimentos no outro lado. Esses algoritmos de sniffing, usados, por exemplo, por um fabricante de mercado de sell side têm a inteligência interna para identificar a existência de quaisquer algoritmos no lado de compra de uma grande ordem. Essa detecção por meio de algoritmos ajudará o criador de mercado a identificar grandes oportunidades de pedidos e permitir que ele se beneficie ao preencher os pedidos a um preço mais alto. Isso às vezes é identificado como front-running de alta tecnologia. Requisitos técnicos para negociação algorítmica Implementar o algoritmo usando um programa de computador é a última parte, bateu com backtesting. (Para mais sobre negociação de alta freqüência e práticas fraudulentas, consulte: Se você comprar ações on-line, você está envolvido em HFTs. O desafio é transformar a estratégia identificada em um processo informatizado integrado que tenha acesso a uma conta comercial para a colocação de encomendas. São necessários os seguintes: Conhecimento de programação de computadores para programar a estratégia de negociação necessária, programadores contratados ou software de negociação pré-fabricado Conectividade de rede e acesso a plataformas de negociação para colocar as ordens Acesso a feeds de dados de mercado que serão monitorados pelo algoritmo para oportunidades de colocar Ordens A capacidade ea infra-estrutura para backtest o sistema uma vez construído, antes de ir viver em mercados reais Dados históricos disponíveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo Aqui está um exemplo abrangente: Royal Dutch Shell (RDS) está listado em Amsterdam Bolsa de Valores (AEX) e Bolsa de Valores de Londres (LSE). Permite construir um algoritmo para identificar oportunidades de arbitragem. Aqui estão algumas observações interessantes: AEX negocia em Euros, enquanto LSE negocia em libras esterlinas Devido à diferença de hora de uma hora, AEX abre uma hora mais cedo do que LSE, seguido por ambas as trocas que negociam simultaneamente por próximas horas e então negociando somente em LSE durante A última hora à medida que a AEX fecha Podemos explorar a possibilidade de negociação de arbitragem nas ações da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes Um programa de computador que pode ler os preços atuais do mercado Alimentações de preços tanto da LSE quanto da AEX A forex rate feed for Taxa de câmbio GBP-EUR Ordem de capacidade de colocação que pode encaminhar a ordem para a troca correta Capacidade de back-testing em feeds de preços históricos O programa de computador deve executar o seguinte: Leia o feed de preços de entrada de ações RDS de ambas as câmaras Usando as taxas de câmbio disponíveis . Converter o preço de uma moeda para outra Se houver uma discrepância de preço suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade lucrativa, então coloque a ordem de compra em câmbio de menor preço e venda na ordem de câmbio mais alta Se as ordens forem executadas como Desejado, o lucro de arbitragem seguirá Simples e Fácil No entanto, a prática de negociação algorítmica não é tão simples de manter e executar. Lembre-se, se você pode colocar um comércio algo-gerado, assim que os outros participantes do mercado. Conseqüentemente, os preços flutuam em milissegundos e até em microssegundos. No exemplo acima, o que acontece se o seu comércio comprar é executado, mas vender o comércio doesnt como os preços de venda mudar no momento em que sua ordem atinge o mercado Você vai acabar sentado com uma posição aberta. Tornando sua estratégia de arbitragem inútil. Há riscos e desafios adicionais: por exemplo, riscos de falha de sistema, erros de conectividade de rede, intervalos de tempo entre ordens de negociação e execução e, o mais importante de tudo, algoritmos imperfeitos. Quanto mais complexo for um algoritmo, o backtesting mais rigoroso é necessário antes de ser colocado em ação. A análise quantitativa do desempenho de um algoritmo desempenha um papel importante e deve ser examinada criticamente. Sua emocionante para ir para a automação auxiliado por computadores com uma noção de fazer dinheiro sem esforço. Mas um deve certificar-se que o sistema é testado completamente e os limites requeridos são ajustados. Os comerciantes analíticos devem considerar a aprendizagem de programação e sistemas de construção por conta própria, para ter certeza de implementar as estratégias certas de forma infalível. O uso cauteloso e o teste completo de algo-trading podem criar oportunidades lucrativas. O Artigo 50 é uma cláusula de negociação e de liquidação no tratado da UE que delineia as medidas a serem tomadas para qualquer país que. Uma oferta inicial sobre os ativos de uma empresa falida de um comprador interessado escolhido pela empresa falida. De um pool de licitantes. Beta é uma medida da volatilidade, ou risco sistemático, de um título ou de uma carteira em comparação com o mercado como um todo. Um tipo de imposto incidente sobre ganhos de capital incorridos por pessoas físicas e jurídicas. Os ganhos de capital são os lucros que um investidor. Uma ordem para comprar um título igual ou inferior a um preço especificado. Uma ordem de limite de compra permite que traders e investidores especifiquem. Uma regra do Internal Revenue Service (IRS) que permite retiradas sem penalidade de uma conta IRA. A regra exige that. Heres Como você configurar a sua própria operação de negociação de alta freqüência Na semana passada, tivemos o privilégio de sentar-se com Mike Felix e Doutor Lawrence Hansen de Lime Brokerage. Um corretor de agência baseado em Nova York que se especializa em alta freqüência. Baixa latência. O principal para viagem. Aqueles que pensam que as velocidades são inaceitáveis ​​melhor se acostumar com ele porque theyre aqui para ficar e só vai ficar mais rápido a partir daqui. Perguntamos-lhes como seria possível montar sua própria operação de negociação de alta freqüência em um nível amateurretail. Depois de pregar exatamente o que a definição de negociação de alta freqüência é. Nós fomos sobre os passos que você precisa tomar para que isso aconteça. Ver como: Uma página SlidesThis post irá detalhar o que eu fiz para fazer aprox. 500k de negociação de alta freqüência de 2009 a 2010. Desde que eu estava negociando completamente independente e não estou mais executando o meu programa Irsquom feliz em dizer tudo. Minha negociação foi principalmente em contratos de futuros Russel 2000 e DAX. A chave para o meu sucesso, creio eu, não estava em uma equação financeira sofisticada, mas sim no design de algoritmos globais que uniram muitos componentes simples e usaram o aprendizado de máquinas para otimizar para obter a máxima rentabilidade. Você não precisa saber qualquer terminologia sofisticada aqui, porque quando eu configurar o meu programa era tudo baseado na intuição. (Andrew Ngrsquos curso de aprendizagem de máquina incrível ainda não estava disponível - btw se você clicar nesse link yoursquoll ser levado para o meu projeto atual: CourseTalk, um site de revisão para MOOCs) Primeiro, eu só quero demonstrar que o meu sucesso não foi simplesmente o resultado de sorte. Meu programa fazia 1000-4000 comércios por dia (metade de comprimento, meio curto) 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 particular média fora bastante rápido. O resultado foi que eu nunca perdi mais do que 2000 em um dia e nunca tive um mês perdedor: (EDIT Estes números são depois de pagar comissões) E herersquos um gráfico para lhe dar uma noção da variação diária. Observe isso exclui os últimos 7 meses porque - como os números pararam de subir - eu perdi a minha motivação para entrar neles. Meu fundo de negociação Antes de configurar o meu programa de negociação automatizado Irsquod tinha 2 anos de experiência como um comerciante do dia ldquomanualrdquo. Isso foi em 2001 - foram os primeiros dias do comércio eletrônico e houve oportunidades para ldquoscalpersrdquo para fazer bom dinheiro. Eu só posso descrever o que eu estava fazendo como semelhante a jogar um jogo de vídeo de jogo com uma borda suposto. Ser bem sucedido significava ser rápido, ser disciplinado, e ter uma boa intuitiva reconhecimento de padrões de habilidades. Eu era capaz de fazer cerca de 250k, pagar meus empréstimos estudantis e ter dinheiro sobrando. Win Durante 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 voltaria à negociação. Com o dinheiro correndo baixo da venda da minha primeira inicialização, o comércio ofereceu esperanças de algum dinheiro rápido enquanto eu descobri o meu próximo movimento. Em 2008 eu estava ldquomanuallyrdquo dia negociação futuros usando software chamado T4. Irsquod 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 construí algumas teclas de atalho. Depois de ficar com os pés molhados com o API eu logo tinha maiores aspirações: Eu queria ensinar o computador para o comércio para mim. A API forneceu 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 meio. Abaixo está uma captura de tela de uma janela de negociação T4. O que foi legal é que quando eu tenho o meu programa de trabalho que eu era capaz de assistir o comércio de computadores sobre esta mesma interface. Assistindo ordens reais popping dentro e fora (por si com o meu dinheiro real) foi emocionante e assustador. O projeto do meu algoritmo Desde o início o meu objetivo era configurar um sistema tal que eu poderia ser razoavelmente confiante Irsquod ganhar dinheiro antes de fazer qualquer comércios ao vivo. Para conseguir isso eu precisava construir uma estrutura de simulação de negociação que - o mais exatamente possível - simular a negociação ao vivo. Enquanto a negociação no modo ao vivo requeria atualizações do mercado de processamento transmitidas através da API, o modo de simulação exigia a leitura de atualizações do mercado a partir de um arquivo de dados. Para coletar esses dados eu configurar a primeira versão do meu programa para simplesmente se conectar à API e registrar atualizações de mercado com timestamps. Acabei usando 4 semanas de dados de mercado recentes para treinar e testar meu sistema. Com uma estrutura básica no lugar eu ainda tinha a tarefa de descobrir como fazer um sistema de comércio rentável. Como se vê, meu algoritmo se dividiria em dois componentes distintos, que a Irsquoll exploraria por sua vez: Prever movimentos de preços e fazer negócios lucrativos Prever movimentos de preços Talvez um componente óbvio de qualquer sistema de negociação seja ser capaz de prever onde os preços se moverão. E a minha não foi exceção. Eu defini o preço atual como a média do lance interno e oferta interna e eu definir o objetivo de prever onde o preço seria nos próximos 10 segundos. Meu algoritmo precisaria vir acima com esta predição momento-a-momento durante todo o dia de negociação. Criando um amplificador de otimização de indicadores Eu criei um punhado de indicadores que provou ter uma capacidade significativa para prever os movimentos de preços de curto prazo. Cada indicador produziu um número que era positivo ou negativo. Um indicador foi útil se mais frequentemente do que um número positivo correspondeu com o mercado subindo e um número negativo correspondeu com o mercado vai 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 produziram e pude encontrar os valores ótimos para essas variáveis, fazendo comparações lado a lado dos resultados obtidos com valores variáveis. Os indicadores 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 títulos correlacionados. Fazer previsões exatas de movimento de preços Tendo indicadores que simplesmente previam um movimento de preços para cima ou para baixo não era suficiente. Eu precisava saber exatamente quanto movimento de preço foi previsto por cada valor possível de cada indicador. Eu precisava de uma fórmula que converteria um valor indicador para uma previsão de preço. Para conseguir isso, eu segui os movimentos de preço previsto em 50 baldes que dependiam do intervalo em que o valor do indicador caíra. Isso produziu previsões únicas para cada balde que eu era capaz de representar no Excel. Como você pode ver a mudança esperada do preço aumenta enquanto 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 este ldquocurve fittingrdquo manualmente mas eu logo escrevi algum código para automatizar este processo. Note que nem todas as curvas indicadoras tinham a mesma forma. Observe também que os baldes foram logaritmicamente distribuídos de modo a espalhar os pontos de dados uniformemente. Por último, note que os valores dos indicadores negativos (e as respectivas previsões de preços descendentes correspondentes) foram invertidos e combinados com os valores positivos. (Meu algoritmo tratado acima e abaixo exatamente o mesmo.) Combinando indicadores para uma única previsão 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. Isso não era difícil de implementar, mas isso significava que, se eu fosse ldquocurve fittingrdquo múltiplos indicadores, ao mesmo tempo, eu tinha que ser cuidadoso alterando um efeito que as previsões de outro. A fim de ldquocurve fitrdquo 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 de 30, descobri que as curvas de previsão se estabilizariam em poucas passagens. Com cada indicador agora dando itrsquos preço adicional previsão eu poderia simplesmente adicioná-los para produzir uma única previsão de onde o mercado seria 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 ofertas - itrsquos 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 itrsquos não é tão fácil. Os seguintes fatores tornam a criação de um sistema rentável difícil: com cada comércio eu tive que pagar comissões tanto para o meu corretor ea troca. A propagação (diferença entre a oferta mais alta ea oferta mais baixa) significava que se eu fosse simplesmente comprar e vender aleatoriamente Irsquod estar perdendo uma tonelada de dinheiro. A maioria do volume de mercado era outros bots que só executariam um comércio comigo se eles pensassem que tinham alguma vantagem estatística. Vendo uma oferta não garantia que eu poderia comprá-lo. Até o momento a minha ordem de compra chegou à troca era muito possível que essa oferta teria sido cancelada. Como um jogador de mercado pequeno não havia nenhuma maneira que eu poderia competir na velocidade sozinho. Construindo uma simulação de negociação completa Então eu tinha uma estrutura que me permitiu backtest e otimizar indicadores. Mas eu tinha que ir além disso - eu precisava de uma estrutura que me permitisse backtest e otimizar um sistema de comércio completo onde eu estava enviando ordens e ficando em posições. Neste caso, a Irsquod estará a optimizar para a PampL total e, em certa medida, para a PampL média por transacção. Isso 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 de latência. O fato de meu sistema ter visto uma oferta não significava que poderia comprá-la imediatamente. O sistema enviaria a ordem, aguardar aproximadamente 20 milissegundos e então somente se a oferta ainda era lá foi considerado como um comércio executado. Isso era inexato porque o tempo de atraso real era inconsistente e não declarado. Quando eu coloquei lances ou ofertas que 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 teria sido executado contra. Para fazer isso, eu tinha que rastrear a posição da minha encomenda na fila. (Itrsquos um sistema first-in first-out.) Novamente, eu couldnrsquot fazer isso perfeitamente, mas eu fiz uma melhor aproximação. Para refinar minha simulação de execução de ordem o que fiz foi pegar meus arquivos de log de negociação ao vivo pela API e compará-los com arquivos de log produzidos por negociação simulada do mesmo período de tempo. Eu era capaz de obter a minha simulação para o ponto que era bastante preciso e para as partes que eram impossíveis de modelar exatamente eu fiz certo para, 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 PampL simulado. Mas como o meu sistema saberia quando e onde comprar e vender? As previsões de movimento de preços 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 da oferta interna (para uma ordem de compra) e um nível abaixo da oferta interna (para uma ordem de venda). Se a pontuação em qualquer dado nível de preço estava acima de um determinado limite que significaria meu sistema deve ter um bidoffer ativo lá - abaixo do limiar, em seguida, quaisquer ordens ativas devem ser canceladas. Com base nisso, não era incomum que meu sistema pudesse mostrar um lance no mercado e imediatamente cancelá-lo. (Embora eu tentei minimizar isso como itrsquos irritante como heck para quem olha para a tela com olhos humanos - incluindo-me.) Os níveis de preços foram calculados com base nos seguintes fatores: A previsão de movimento de preços (que discutimos anteriormente). O nível de preços em questão. (Os níveis internos significavam que eram necessárias maiores previsões de movimento de preços.) O número de contratos na frente da minha ordem na fila. (Menos foi melhor.) O número de contratos por trás da minha ordem na fila. (Mais era melhor.) Essencialmente esses fatores serviram para identificar ldquosaferdquo lugares para bidoffer. A previsão de movimento de preço por si só não era adequada porque não contava o fato de que ao colocar uma oferta eu não estava automaticamente preenchido - só fiquei preenchido se alguém me vendesse lá. A realidade era que o mero fato de alguém vender a mim a um certo preço mudou as probabilidades estatísticas do comércio. As variáveis ​​utilizadas nesta etapa foram todas sujeitas a otimização. Isso foi feito da mesma maneira como eu otimizado variáveis ​​nos indicadores de movimento de preços, exceto neste caso eu estava otimizando para linha de fundo PampL. O que meu programa ignorou Ao negociar como seres humanos, muitas vezes temos emoções poderosas e preconceitos que podem levar a decisões menos do que 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 itrsquos bastante comum ouvir 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, meu programa ignorou completamente essas informações. Itrsquos o mesmo conceito como ignorando custos irrecuperáveis. Indo 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, da minha perspectiva de algoritmos, não havia razão para fazer uma distinção. Se o meu algoritmo esperava um movimento para baixo vender era uma boa idéia, independentemente de se ele era atualmente longo, curto ou plano. A ldquodoubling uprdquo estratégia - Esta é uma estratégia comum, onde os comerciantes vão comprar mais ações no caso em que há comércio original vai contra eles. Isso resulta em seu preço médio de compra sendo menor e significa quando (ou se) o estoque gira em torno de yoursquoll ser configurado para fazer o seu dinheiro de volta em nenhum momento. Na minha opinião, esta é realmente uma estratégia horrível a menos que você Warren Buffet. Yoursquore 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 é que torna difícil julgar se você realmente tem uma vantagem no mercado ou estão apenas ficando com sorte. Ser capaz de monitorar e confirmar que o meu programa de fato tinha uma vantagem era um objetivo importante. Desde que meu algoritmo tomou decisões da mesma maneira, independentemente de onde ele entrou em um comércio ou se ele estava atualmente longo ou curto que ocasionalmente sentar em (e tomar) algumas grandes operações perdedoras (além de algumas grandes tradições vencedoras). Mas, você shouldnrsquot pensar lá wasnrsquot qualquer gestão de risco. Para gerenciar o risco eu reforcei um tamanho de posição máximo de 2 contratos de cada vez, ocasionalmente batido 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 inesperadas ou um bug no meu software. Estes limites foram aplicados no meu código, mas também no back-end através do meu corretor. Como aconteceu eu nunca encontrei problemas significativos. Executando 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 foi aprender 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 que eu reciclar meu sistema com base no valor de 4 semanas anteriores de dados. Eu encontrei este golpeou o contrapeso direito entre capturar tendências comportamentais recentes do mercado e segurar meu algoritmo teve bastante dados para estabelecer testes padrões significativos. Como o treinamento começou a tomar mais e mais tempo que eu dividi-lo para que ele poderia ser realizado 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 outubro de 2009, quando eu fiz quase 100k. Depois disso, continuei a passar os próximos quatro meses tentando melhorar meu programa, apesar do lucro diminuído a cada mês. Infelizmente por este ponto eu acho que Irsquod implementou todas as minhas melhores idéias porque nada que eu tentei parecia ajudar muito. Com a frustração de não ser capaz de fazer melhorias e não ter um senso de crescimento eu comecei a pensar em uma nova direção. Eu enviei um email a 6 diferentes empresas de negociação de alta freqüência para ver se theyrsquod estar interessado em comprar o meu software e contratar-me para trabalhar para eles. Ninguém respondeu. Eu tinha algumas novas idéias de inicialização que eu queria trabalhar, então eu nunca segui. UPDATE - Eu publiquei isso no Hacker News e ele tem recebido muita atenção. Eu só quero dizer que eu não defendo alguém tentando fazer algo parecido 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 outros.) Há um comentário no topo da página que menciona estatísticas manipuladas e refere-se a mim como um ldquoretail investorrdquo que quants Ldquogleefully escolher offrdquo. Este é um comentário bastante infeliz thatrsquos simplesmente não baseado na realidade. Colocando isso de lado therersquos alguns comentários interessantes: news. ycombinatoritemid4748624 UPDATE 2 - Irsquove postou um follow-up FAQ que responde a algumas perguntas comuns Irsquove recebeu de comerciantes sobre este post. As puramente um cientista de informática youre na posição perfeita para começar em negociação algorítmica . Isso é algo que eu testemunhei em primeira mão em Quantiacs1. Onde cientistas e engenheiros são capazes de saltar para a direita em negociação automatizada sem qualquer experiência anterior. Em outras palavras, as costeletas de programação são o ingrediente principal necessário para começar. Para obter uma compreensão geral de quais desafios esperam por você após a criação de um sistema de negociação algorítmica, confira este post Quora. Construir um sistema comercial a partir do zero vai exigir algum conhecimento de fundo, uma plataforma de negociação, dados de mercado e acesso ao mercado. Embora não seja um requisito, a escolha de uma única plataforma de negociação que fornece a maior parte destes recursos irá ajudá-lo a acelerar rapidamente. Dito isto, as habilidades que você desenvolver será transferível para qualquer linguagem de programação e praticamente qualquer plataforma. Acredite ou não, construindo estratégias de negociação automatizado isnt predicado em ser um especialista do mercado. No entanto, aprender mecânica de mercado básica irá ajudá-lo a descobrir estratégias de negociação rentável. Opções, Futuros e Outros Derivados por John C. Hull - Grande primeiro livro para entrar em finanças quantitativas, e abordá-lo do lado da matemática. Negociação quantitativa por Ernie Chan - Ernie Chan fornece o melhor livro introdutório para negociação quantitativa e orienta você através do processo de criação de algoritmos de negociação em MATLAB e Excel. Negociação Algorítmica de Futuros através da Aprendizagem de Máquinas - Uma desagregação de 5 páginas da aplicação de um modelo de aprendizagem de máquina simples aos indicadores de análise técnica comumente usados. Heres uma lista de leitura agregada PDF com uma repartição completa de livros, vídeos, cursos e fóruns de negociação. A melhor maneira de aprender é fazendo, e no caso de negociação automatizada que se resume a gráficos e codificação. Um bom ponto de partida é exemplos existentes de sistemas de negociação e exposições existentes de técnicas técnicas de análise. Além disso, um cientista de computador qualificado tem a vantagem adicional de ser capaz de aplicar o aprendizado da máquina à negociação algorítmica. Aqui estão alguns desses recursos: TradingView - Uma fantástica plataforma de gráficos visuais por conta própria, TradingView é um grande playground para ficar confortável com a análise técnica. Ele tem o benefício adicional de permitir que você script estratégias de negociação e navegar outras pessoas comércio idéias. Fórum de Negociação Automatizado - Grande comunidade on-line para postar perguntas para iniciantes e encontrar respostas para problemas comuns de quant quando apenas começando. Quant fóruns são um ótimo lugar para se tornar imerso em estratégias, ferramentas e técnicas. Seminário do YouTube sobre ideias comerciais com exemplos de código de trabalho no Github. Aprendizado de Máquinas: Mais apresentações sobre negociação automatizada podem ser encontradas no Quantiacs Quant Club. A maioria das pessoas de um fundo científico (se isso é ciência da computação ou engenharia) tiveram exposição a Python ou MATLAB, que passam a ser linguagens populares para finanças quantitativas. A Quantiacs criou uma caixa de ferramentas de código aberto que fornece backtesting e 15 anos de dados históricos de mercado gratuitamente. A melhor parte é tudo é construído em ambos Python e MATLAB dando-lhe a escolha do que para desenvolver o seu sistema com. Heres um exemplo de tendência de seguir a estratégia comercial em MATLAB. Este é todo o código necessário para executar um sistema de negociação automatizado, apresentando tanto o poder de MATLAB e da Caixa de ferramentas Quantiacs. O Quantiacs permite que você negocie 44 futuros e todos os estoques do SampP 500. Além disso, uma variedade de bibliotecas adicionais como TensorFlow são suportadas. (Limitação de responsabilidade: Eu trabalho na Quantiacs) Uma vez que você está pronto para ganhar dinheiro como um quant, você pode participar do último concurso de negociação Quantiacs automatizado, com um total de 2.250.000 em investimentos disponíveis: Você pode competir com os melhores quents 29.4k Views middot View Upvotes Middot Não é para reprodução Esta resposta foi completamente reescrita Aqui estão 6 base de conhecimento principal para a construção de sistemas de negociação algorítmica. Você deve estar familiarizado com todos eles, a fim de construir sistemas de negociação eficaz. Alguns dos termos usados ​​podem ser ligeiramente técnicos, mas você deve ser capaz de entendê-los por Googling. Nota: (A maioria de) estes não se aplicam se você quiser fazer negociação de alta freqüência 1. Teorias de mercado Você precisa entender como funciona o mercado. Mais especificamente, você deve compreender as ineficiências do mercado, as relações entre os diferentes produtos ativos e o comportamento dos preços. Idéias comerciais resultam de ineficiências do mercado. Você precisará saber como avaliar ineficiências de mercado que lhe dão uma vantagem de negociação versus aqueles que não. Projetar robôs eficazes implica compreender como os sistemas de negociação automatizados funcionam. Essencialmente, uma estratégia de negociação algorítmica consiste em 3 componentes principais: 1) Entradas, 2) Saídas e 3) Posição de dimensionamento. Você precisará projetar esses 3 componentes em relação à ineficiência do mercado que você está captando (e não, este não é um processo direto). Você não precisa saber a matemática avançada (embora ajudará se você aponta construir estratégias mais complexas). Boas habilidades de pensamento crítico e uma compreensão decente sobre estatísticas irão levá-lo muito longe. O design envolve backtesting (teste de borda de negociação e robustez) e otimização (maximizando o desempenho com ajuste de curva mínimo). Você precisará saber como gerenciar um portfólio de estratégias de negociação algorítmica também. As estratégias podem ser complementares ou conflitantes, o que pode levar a aumentos não planejados da exposição ao risco ou cobertura não desejada. Alocação de capital é importante também você dividir capital igualmente durante intervalos regulares ou recompensar os vencedores com mais capital Se você sabe que produtos você deseja negociar, encontrar plataformas de negociação adequadas para esses produtos. Em seguida, aprenda a linguagem de programação API deste platformbacktesters. Se você começar, eu recomendaria Quantopian (ações apenas), Quantconnect (ações e FX) ou Metatrader 4 (FX e CFDs sobre índices de ações, ações e commodities). As linguagens de programação utilizadas são Python, C e MQL4, respectivamente. 4. Gestão de Dados Lixo no lixo para fora. Dados imprecisos levam a resultados de teste imprecisos. Precisamos de dados razoavelmente limpos para testes precisos. Dados de limpeza é um trade-off entre custo e precisão. Se você quiser dados mais precisos, você precisa gastar mais tempo (tempo dinheiro) limpá-lo. Alguns problemas que causam dados sujos incluem dados ausentes, dados duplicados, dados errados (carrapatos ruins). Outras questões que levam a dados enganosos incluem dividendos, desdobramentos de ações e rolagens de futuros, etc. 5. Gerenciamento de Risco Existem dois tipos principais de risco: Risco de Mercado e Risco Operacional. O risco de mercado envolve risco relacionado à sua estratégia de negociação. Considera cenários de pior cenário E se acontecer um evento de cisne preta como a 3ª Guerra Mundial Você tem protegido o risco indesejado Sua posição é muito alta Além de gerenciar o risco de mercado, você precisa olhar para o risco operacional. Falha no sistema, perda de ligação à Internet, fraco algoritmo de execução (levando a preços mal executados, ou negociações perdidas devido à incapacidade de lidar com requotshigh derrapagem) e roubo por hackers são questões muito reais. 6. Live Execution Backtesting e live trading são muito diferentes. Você precisará selecionar corretores adequados (MM vs STP vs ECN). Forex Market News com Forex Trading Fóruns amp Corretores de Forex opiniões é o seu melhor amigo, leia opiniões corretor lá. Você precisa de infra-estrutura adequada (VPN seguro e tempo de inatividade, etc) e procedimentos de avaliação (monitorar o desempenho de seus robôs e analisá-los em relação à ineficiência do mercado) para gerenciar seu robô durante toda a sua vida útil. Você precisa saber quando intervir (modifyupdateshutdownturn em seus robôs) e quando não. Avaliação e otimização de estratégias de negociação Pardo (Grande insights sobre métodos de construção e estratégias de negociação de teste) Comércio seu caminho para a liberdade financeira Van K Tharp (Ridiculous-Click isca título de lado, este livro é uma ótima visão geral de sistemas de negociação mecânica) A microestrutura do mercado é a ciência de como funcionam as trocas e o que realmente acontece quando um comércio é colocado. É importante conhecer essas informações Mesmo que você esteja apenas começando) Algorithmic Trading amp DMA Barry Johnson (Lançamento de luz sobre os algoritmos de execução de bancos. Este não é diretamente aplicável o seu negócio algo, mas é bom saber) The Quants Scott Patterson (Histórias de guerra de alguns quants top. Como uma hora de deitar lida) Quantopian (Código, pesquisa e discute idéias com a comunidade. Usa Python) Fundamentos de Algo Trading Algo Trading101 (Disclaimer: Eu possuo este sitecourse. Aprenda teorias do projeto do robô, teorias do mercado e codificação. Usos MQL4) - Junte-se ao desafio (aprender conceitos de negociação e backtesting teorias. Eles recentemente desenvolveram o seu próprio backtesting e plataforma de negociação para esta parte ainda é novo para mim. Mas sua base de conhecimento sobre os conceitos de negociação são bons.) Recommended BlogsForums (estes inclui finanças , Negociação e fóruns de troca de algo): Linguagens de programação recomendadas: Se você sabe quais produtos você deseja negociar, encontrar plataformas de negociação adequadas para esses produtos. Em seguida, aprenda a linguagem de programação API deste platformbacktesters. Se você começar, eu recomendaria Quantopian (ações somente), Quantconnect (ações e FX) ou Metatrader 4 (FX e CFDs em índices de ações, ações e commodities). As linguagens de programação utilizadas são Python, C e MQL4, respectivamente. 17.1k Vistas middot Ver Upvotes middot Não é para reprodução Se o investimento é um processo, então a conclusão lógica é a automação. Algoritmos não são nada mais do que a formalização extrema de uma filosofia subjacente. Esta é a expressão visual de uma borda de negociação Margem de negociação Ganhe Média Vitória - Perda Perda Média Mudou minha vida ea maneira como me aproximo dos mercados. Visualize sua distribuição, sempre. Ele irá ajudá-lo a esclarecer seus conceitos, lançar luz sobre suas falhas lógicas, mas primeiro vamos começar com a elicitação da filosofia e da crença 1. Por que é importante esclarecer suas crenças Nós trocamos nossas crenças. Mais importante ainda, trocamos nossas crenças subconscientes. Se você não sabe quem você é, os mercados são um lugar caro para descobrir, Adam Smith Muitas pessoas não tomam o tempo para eliciar suas crenças e operar em crenças emprestadas. Perguntas não respondidas e lógica defeituosa é a razão pela qual alguns comerciantes sistemáticos ajustar o seu sistema em torno de cada retirada. Eu costumava ser assim por muitos anos. Exercícios de elicitação da opinião: O trabalho por Byron Katie. Depois que eu completei umas 2 crenças um desafio do dia por 100 dias, eu poderia explicar meu estilo a toda a avó 5 por que. Pergunte a si mesmo uma pergunta com o porquê e mergulhar mais profundo. Mindsets: expansivo e subtrativo ou smoothie Vs band-aid Existem dois tipos de mentalidade, e precisamos de ambos em momentos diferentes: Expansivo para explorar conceitos, idéias, truques etc Subtractive: para simplificar e esclarecer conceitos comerciantes sistemáticos que falham em ser subtractivo têm Uma abordagem smoothie. Eles jogam todos os tipos de coisas em sua estratégia e, em seguida, misturá-lo com um otimizador. Movimento ruim: a complexidade é uma forma de preguiça Os comerciantes sistemáticos excessivamente subtrativos têm uma mentalidade de ajuda de banda. Eles hard-codificar tudo e, em seguida, boa sorte patching quotEssentialist tradersquot compreender que é uma dança entre os períodos de exploração e os tempos de simplificação núcleo duro. Simples não é fácil Me levou 3.873 horas, e eu aceito que pode levar uma vida2. Sair: comece com o fim em mente Contra-intuitivo verdade A única vez quando você sabe se um comércio foi rentável é após a saída, à direita Então, o foco na lógica de saída em primeiro lugar. Na minha opinião, a principal razão pela qual as pessoas não conseguem automatizar sua estratégia é que eles se concentram muito na entrada e não o suficiente na saída. A qualidade das suas saídas dá forma à sua distribuição da PampL, veja a tabela acima Passe um tempo enorme em stop loss, pois afeta 4 componentes do seu sistema de comércio: Vitória, perda, perda média, freqüência de negociação A qualidade do seu sistema será determinada pela qualidade de Sua perda de stop, 3. Dinheiro é feito no módulo de gerenciamento de dinheiro Peso igual é uma forma de preguiça. O tamanho das suas apostas determinará a forma dos seus retornos. Entenda quando sua estratégia não funciona e reduzir o tamanho. Por outro lado, aumentar o tamanho quando ele funciona. Vou escrever mais sobre a posição de dimensionamento no meu site, mas existem muitos recursos através da internet 3. Última e muito menos, Entrada Depois de ter assistido a uma temporada completa de housewivesquot quotdesperate ou quotbreaking badquot, tinha algum chocolate, andou o cão, alimentado O peixe, chamou sua mãe, então é hora de pensar sobre a entrada. Leia a fórmula acima, a coleta de ações não é um componente primário. Pode-se argumentar que uma boa seleção de ações pode aumentar a vitória. Talvez, mas é inútil se não houver nenhuma política adequada de saída, nem gestão de dinheiro. Em termos probabilísticos, depois de ter uma saída fixa, a entrada torna-se uma probabilidade de escala móvel 4. O que se deve focar quando se está a testar Não existe uma média mágica móvel, o valor do indicador. Ao testar seu sistema, concentre-se em três coisas: Falsos positivos: eles corroem o desempenho. Encontre formas simples (elegantes) de reduzi-las, trabalhe nos períodos lógicos quando a estratégia não funciona: nenhuma estratégia funciona o tempo todo. Esteja preparado para isso e prepare planos de contingência com antecedência. Tweaking o sistema durante um drawdown é como aprender a nadar em uma tempestade Poder de compra e gestão de dinheiro: este é outro fato contra-intuitivo. Seu sistema pode gerar idéias, mas você não tem o poder de compra para executar. Por favor, dê uma olhada no gráfico acima Eu construir todas as minhas estratégias a partir do lado curto em primeiro lugar. O melhor teste de robustez para uma estratégia é o lado curto: Thin volume brutalmente volátil curto ciclo Plataformas Eu comecei em WealthLab desenvolvedor. Ele tem uma posição espetacular dimensionamento biblioteca. Esta é a única plataforma que permite backtetsing ampla carteira e otimização. Eu testa todos os meus conceitos sobre WLD. Altamente recomendado. Tem um inconveniente, ele não conecta o sizer da posição com negociar vivo real. Amibroker é bom demasiado. Ele tem uma API que se conecta a Interactive corretores e um decente veneno sizer. Nós programamos em Metatrader para Forex. Infelizmente, Metatrader tem ido para baixo a complexidade coelho buraco. Há uma vibrante comunidade lá fora. MatLab, a arma de escolha para engenheiros. Sem comentários. Tradestation Perry Kaufman escreveu alguns bons livros sobre TS. Há uma comunidade vibrante lá fora. É mais fácil do que a maioria das outras plataformas Conselhos finais Se você quer aprender a nadar, você tem que pular na água. Muitos novatos querem enviar suas idéias de bilhões de dólares para alguns programadores baratos em algum lugar. Não funciona assim. Você precisa aprender a linguagem, a lógica. Embora este seja um tópico muito amplo com referências a construir algoritmos, configuração de infra-estrutura, alocação de ativos e gerenciamento de riscos, mas vou apenas se concentrar na primeira parte de como deve ser o trabalho Na construção de nosso próprio algoritmo, e fazendo as coisas certas. 1. Estratégia de construção. Alguns dos pontos-chave a observar aqui são: Catch Big Trends - Uma boa estratégia deve, em todos os casos, ganhar dinheiro quando o mercado está tendendo. Mercados ir com uma boa tendência que dura apenas 15-20 do tempo, mas este é o momento em que todos os gatos e cães (comerciantes de todos os time-frame, intraday, diário, semanal, longo prazo) estão fora de compras e todos eles Têm um tema comum. Um monte de comerciantes também construir estratégias de reversão média em que eles tentam julgar as condições quando o preço se afastaram da média, e ter um comércio contra a tendência, mas eles devem ser construídos quando você tem sucesso construir e negociado alguns bons sistemas de tendência . As probabilidades de empilhamento acima - as pessoas trabalham frequentemente para tentar construir um sistema que tem uma relação de winloss excelente mas that039s não a abordagem certa. Por exemplo um algo com um vencedor de 70 com um lucro médio de 100 por comércio e uma perda média de 200 por comércio só fará 100 por 10 negócios (rede 10trade). Mas um algo com um vencedor de 30 com lucro médio de 500 por comércio e perda de 100 por comércio fará um lucro líquido de 800 para 10 trades (80trade). Portanto, não é necessário que a proporção de winloss deve ser bom, mas sim as probabilidades de empilhamento que deve ser melhor. Isto vai dizer quotKeep perdas pequenas, mas deixe seus vencedores runquot. Em investimentos, o que é confortável raramente é rentável. Robert Arnott Drawdown - Drawdown é inevitável, se você estiver seguindo qualquer tipo de estratégia. Então, ao projetar um algo don039t tentar reduzir o drawdown ou fazer alguma condição personalizada específica para cuidar desse abaixamento. Esta condição específica pode no futuro pode agir como um obstáculo na captura de uma grande tendência e seu algo pode executar mal. Gestão de Risco - Ao construir uma estratégia, você deve sempre ter um portão de saída, o que o mercado optar por fazer. O mercado é um lugar de probabilidades e você deve projetar um algo para começá-lo fora de um comércio o mais rapidamente possível se ele doesn039t caber seu apetite de risco. Normalmente, argumenta-se que você deve arriscar 1-2 de capital em cada comércio, e é ideal em muitas maneiras como mesmo se você começar arnd 10 negócios falsos em sucessão o seu capital vai cair por apenas 20. Mas este não é o Cenário de mercado real. Alguns comércios perdidos estarão entre 0-1, enquanto alguns podem ir para 3-4, então é melhor definir o capital de perda médio por comércio eo capital máximo que você pode perder em um comércio, como os mercados são completamente aleatórios e não podem ser julgados . De vez em quando, o mercado faz algo tão estúpido que tira o fôlego. - Jim Cramer 2. Testando e otimizando um Deslizamento de Estratégia. Quando estamos testando uma estratégia em dados históricos, estamos sob a suposição de que a ordem será executada no preço predefinido chegado pelo algo. Mas isso nunca será o caso, como temos de lidar com os criadores de mercado e HFT algo039s agora. Sua ordem no mundo today039s nunca será executado no preço desejado, e não haverá derrapagem. Isso deve ser incluído no teste. Impacto no Mercado: O volume negociado pelo algo é outro fator importante a ser considerado ao fazer back-testing e coletar os resultados históricos. À medida que o volume aumenta, as encomendas feitas por algo terão um impacto considerável no mercado e o preço médio da encomenda cheia será muito diferente. Seu algo pode produzir resultados completos diferentes em condições de mercado reais, se você não vai estudar a dinâmica de volume seu algo tem. Otimização: A maioria dos comerciantes sugerem que você não faça ajuste de curva e otimização e eles estão corretos como os mercados são uma função de variáveis ​​aleatórias e nenhuma situação dois será sempre o mesmo. Portanto, otimizar parâmetros para situações particulares é uma má idéia. Eu sugiro que você vá para Zonal Optimization. É uma técnica que eu sigo, comprar zonas de identificação que têm características semelhantes em termos de volatilidade e volume. Otimize essas áreas separadamente, em vez de otimizar para todo o período. O acima são algumas das etapas mais básicas e mais importantes que eu sigo, ao converter um pensamento básico em um algoritmo e verificar a validade de it039s. Quot Todo mundo tem a capacidade de seguir o mercado de ações. Se você conseguiu passar por matemática de quinto grau, pode fazê-lo. QuotPeter Lynch 17.3k Vistas middot Ver Upvotes middot Não é para reprodução Resposta curta: Aprenda matemática aplicada à negociação, a estrutura de mercados e, opcionalmente, ser um programador de sistemas networkdistributed superior. Há três faixas potencialmente paralelas que podem ser tomadas para aprender algoritmo negociação a partir do zero, dependendo do objetivo final de por que você deseja aprender. Aqui eles estão em ordem crescente de dificuldade, que também se correlaciona com o quanto ela se torna a sua parte de sua subsistência. Os anteriores abrirão as oportunidades para os seguintes. Você pode parar em qualquer etapa ao longo do caminho, uma vez que você aprendeu o suficiente ou conseguiu um emprego fazendo isso. Se você quer ser um quant, a maioria usa software de matemática e não realmente ser um programador de um sistema de algo, então a resposta curta é obter um PhD em Matemática, Física ou algum tópico de engenharia matemática pesada relacionada. Tente obter estágios nos melhores fundos de hedge, lojas de apoio ou bancos de investimento. Se você pode obter empregado por uma empresa de sucesso, então você será ensinado lá de outra forma, ele simplesmente won039t acontecer. Mas em qualquer caso, você ainda deve terminar a seção 039Self Study039 abaixo para ter certeza que você realmente quer passar pelo esforço de obter um PhD. A menos que você seja um gênio, se você não tiver um PhD você won039t ser capaz de competir com aqueles que fazem a menos que você se especializar na programação de sistemas de negociação. Se você deseja ser mais do lado da programação, tente aplicar para o emprego após cada etapa, mas não muitas vezes do que uma vez por ano por empresa. Self Study O primeiro passo é entender o que algoritmos trading é realmente e quais sistemas são necessários para apoiá-lo. I039d recomendo a leitura através de quotAlgorithmic Trading amp DMAquot (Johnson, 2010), algo que eu pessoalmente fiz e posso recomendar. Isso permitirá que você entenda em um nível básico. Em seguida, você deve programar o seu próprio livro de encomendas, um simples simulador de dados do mercado e uma implementação de algoritmo no seu on com Java ou CC. Para crédito extra que ajudaria com a obtenção de emprego que você deve escrever sua própria camada de comunicação em rede do zero também. Neste ponto, você pode terminar de responder a pergunta por conta própria. Mas para completar e curiosidade, sinta-se livre para continuar: O próximo livro a abordar é quotTrading amp Intercâmbios: Market Microstructure for Practitionersquot (Harris, 2003). Isso vai entrar em detalhes mais finos de como os mercados funcionam. É outro livro que li, mas não completamente estudado porque eu era um programador de sistemas e não um quant nem um gerente do lado do negócio. Finalmente, se você quiser começar a aprender a matemática sobre como os mercados funcionam, trabalhe com o texto e os problemas em quotOptions, Futures e Other Derivativesquot (Hull, 2003). Eu fiz isso através de cerca de metade desse livro, quer em preparação ou como parte do treinamento interno em um dos meus antigos empregadores. Eu acredito que eu originalmente descobri sobre esse livro, porque foi sugerido ou leitura obrigatória para um dos bem considerados MS Financial Mathematics programas. Para potencialmente ter uma melhor chance de emprego através de um programa de alimentador new-grad, completar um programa de Matemática Financeiro MS se você deseja ser um programador de uma plataforma de negociação ou uma equipe de quants. Se você quer ser o único a projetar o algos, então você precisa ter o percurso PhD explicado anteriormente. Se você ainda não terminou a faculdade, então por todos os meios, tentar obter um estágio no mesmo tipo de lugares. Emprego Não importa o quanto você aprende em livros e na escola, nada vai comparar com os pequenos detalhes que você aprende enquanto trabalhava para uma empresa. Se você não sabe todos os casos de borda e sabe quando seu modelo deixa de funcionar, você vai perder dinheiro. Espero que responda a sua pergunta e que ao longo do caminho de aprender você descobrir se você realmente deseja a transição do estudo para o trabalho do dia-a-dia real. 18.6k Vistas middot Ver Upvotes middot Não tenho reproduzido Eu tenho um fundo como um programador e criação de equipes agilescrum antes de eu comecei a olhar para negociação algorítmica. O mundo da negociação algorítmica me fascina, no entanto, pode ser um pouco esmagadora. Eu comecei a ter alguma perspectiva, mergulhando na plataforma Quantopian, assistindo a série de palestras quant e executando o meu e adaptação comunidade baseada em sistemas de negociação algo em seu ambiente. Como o seguinte: eu então percebi para entrar em mais profundo mais rápido, eu tenho que conhecer pessoas que gostam de criar estratégias de negociação, mas não pode programar - para corresponder-me como um gerente de equipe ágil e programador de sistemas de negociação. Então eu escrevi um livro sobre como criar uma equipe para implementar seus algoritmos de negociação. Construção de sistemas de negociação A maneira ágil: Como construir sistemas de negociação algorítmica vencedora como uma equipe. Na comunidade de Quantopian eu vi pessoas experientes financeiros procurando pessoas para implementar suas estratégias de negociação, mas onde medo de pedir aos programadores para implementar suas idéias. Uma vez que potencialmente pode começar a executar suas idéias de negociação sem eles. Eu abordar esta questão no meu livro. Para evitar programadores para fugir com suas idéias: criar uma especificação para a sua idéia de negociação que usa uma estrutura de codificação que é adaptada para o tipo de estratégia que você deseja desenvolver. Isso pode soar difícil, mas quando você conhece todos os passos do bebê e como eles se encaixam, é bastante simples e divertido de gerenciar Se você gostou desta resposta, por favor vote e siga. 2,7k Vistas middot Ver Upvotes middot Não para Reprodução Olhe para TradeLink (C) ou ActiveQuant (Java). TradeLink039s código é mais elegante. I039m digitando isso em um telefone celular, por favor, desculpe a minha brevidade. Basicamente, olhar para o que vem em vs o que sai como uma forma inicial para enquadrar o problema. Dentro. Dados do mercado, eventos do exhangemarket (execuções aos comércios que seu sistema coloc, acks, rejeições, notificação suspendida negociação, etc.). Fora. Ordens, modificações a ordes. QuotBuy 100 15,5, IOCquot, por exemplo. IOC imediato ou cancelar. Entre. Decisões estratégicas baseadas em informações recolhidas a partir de dados em tempo real, em conjunto com dados históricos e quaisquer outros insumos (trader039s comando de sua interface gráfica para o comércio moreless agressivamente, etc). Coisas como. Fazer um pedido, alterar uma ordem existente, etc. Agora você pode começar a abordar a arquitetura técnica de tal sistema. De importância fundamental seria a capacidade de expressar a estratégia de forma fácil, elegante, apesar da complexidade do processamento de eventos envolvidos (existem várias condições de corrida interessante que pode confundir o seu sistema no que diz respeito ao estado do mercado suas ordens, por exemplo). Eu costumava fazer isso para viver e, provavelmente, pode ir sem parar. Mas digitar em um telefone celular é um impedimento. Espero que você tenha encontrado isso útil. Contacte-me se precisar de mais orientações. 21.3k Exibições middot Ver Upvotes middot Não é para reprodução Stephen Steinberg. Fundador do Raw Athletics Fundador da Capitol Startup Interactive Brokers Interactive Brokers tem uma plataforma de investimento realmente top-notch e preços decentes. It039s definitivamente uma ferramenta poderosa, então você provavelmente poderia obter alternativas mais baratas dos corretores de desconto como Etrade e Scottrade, mas se you039re sério sobre negociação algorítmica, IB é onde it039s. InvestFly O sucesso é toda sobre a prática e testando sua hipótese e algoritmos. Back-test, testar os mercados e compará-lo com os outros. Eu prefiro Investfly - Bolsa de Valores Virtual, Stock Market Game Amp Trading Strategies. Mas há uma tonelada de bons programas lá fora. Idea Geração Don039t começar a partir do zero - Eu gostaria de obter idéias de Investimento Motif (corretagem on-line, idéias de investimento, negociação de ações) e procurando Alpha, mas sempre olhar para o quadro geral e pensar sobre como essas coisas se aplicam à sua própria hipótese e Fórmulas. Cheers e boa sorte 4.5k Vistas middot Ver Upvotes middot Não é para Reprodução Atualizado 101w atrás middot Upvoted por Patrick J Rooney. 5 anos de negociação profissional Eu me especializo em avançado o Para começar com o básico, obter um porão de Amibroker (AmiBroker - Download). Amibroker tem uma linguagem fácil de aprender e motor de backtest poderoso onde você pode protótipo suas idéias. Também obter Howard Bandy 039s livro Quantitative Trading Systems. Este livro é uma boa introdução aos conceitos de desenvolvimento quantitativo. Você também precisa de pelo menos um conhecimento básico de estatística. Há uma abundância de bons cursos MOOC disponíveis para isso de graça. Como este um Estatísticas One - Princeton University Coursera It039s também vale a pena seguir A rua inteira. Que é um mashup de todos os blogs quant, muitos dos quais publicam código Amibroker com suas idéias. De lá, então vale a pena aprender Python (aprender python - Pesquisa do Google), e também fazer Andrew Ng039s excelente Stanford University Machine Learning curso, que é executado gratuitamente em Coursera. Se você quiser colocar seus próprios algoritmos para o teste, bons sites para isso são Quantconnect ou Quantopian. Finalmente, esse cara tem alguns bons conselhos sobre transformá-lo em sua carreira quantstart Boa sorte com a viagem Parcialmente tomada de resposta Alan Clement039s Como pode um desenvolvedor de software em finanças se tornar um desenvolvedor quant 16.3k Vistas middot Ver Upvotes middot Não é para reprodução O que um corretor Posso usar para iniciar o comércio de papel meu algoritmo de graça Como posso construir um sistema de roteamento de ordens para uma plataforma de negociação algorítmica Como rentáveis ​​são os melhores algoritmos de negociação de ações Pode uma única pessoa realmente rentável envolver-se em negociação algorítmica Onde posso obter recursos para começar a aprender Python for Algorithmic trading Qual corretor é bom para negociação algorítmica Eu tenho uma sólida compreensão de stocksderivatives amp tem habilidades de Python. Quero desenvolver um sistema automatizado de negociação algorítmica. Onde eu começo Quais são os melhores retornos de negociação de algoritmos

No comments:

Post a Comment