Máquinas aprendizagem opções negociação


Este post irá detalhar o que eu fiz para fazer cerca de 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 estou feliz de dizer a todos Minha negociação foi principalmente em Russel 2000 e DAX futuros contratos. A chave para o meu sucesso, creio eu, não estava em uma equação financeira sofisticada, mas sim no projeto de algoritmo geral que uniu muitos componentes simples e usou aprendizado de máquina para otimizar para rentabilidade máxima Você ganhou t necessidade de conhecer qualquer terminologia sofisticada aqui porque quando Eu setup meu programa que era toda baseado na intuição O curso de aprendizagem surpreendente da máquina de Andrew Ng 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 Demonstram que o meu sucesso não foi simplesmente o resultado da sorte Meu programa fez 1000-4000 comércios por dia meio tempo, meio curto e nunca entrou em posições de mais de alguns contratos de cada vez T Seu significou a sorte aleatória de qualquer um comércio especial média fora muito rápido 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 no modo vivo exigido 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 o 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 tratados acima 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 comércio 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á foi 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 determinado estava acima de um certo 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 a mim a um certo 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 seria gleefully pick off Este é um comentário bastante infeliz que s simplesmente não baseado na realidade Definição de que há lá alguns comentários interessantes. UPDATE 2 - Eu ve postado um FAQ que responde Algumas questões comuns que eu recebi de comerciantes sobre este post. O termo arbitrage estatístico arbit-arbitra engloba uma grande variedade de estratégias de investimento que normalmente visam explorar uma relação de equilíbrio estatístico entre dois ou mais títulos O principal geral é que qualquer divergência do equilíbrio É um efeito temporário e que as apostas devem ser colocadas sobre o processo de reverter para ele s equilíbrio. A principal ressalva de stat-arb pares negociação estratégias tipo é que, como a divergência de equilíbrio cresce o comércio torna-se mais desejável, no entanto em algum ponto a divergência Vai crescer tão grande que se tem de admitir que a relação de equilíbrio não existe mais o modelo está quebrado Naturalmente é desejável Para estimar o poder dos instrumentos estatísticos utilizados para determinar essas relações e para avaliar a duração de qualquer equilíbrio observado fora da amostra. Este post irá investigar o poder dos testes estatísticos em relação a pares de negociação para os seguintes testes estatísticos ADF, BVR , HURST, PP, PGFF, JO-T e JO-E. O principal geral é que para dois estoques e eles formam um par estacionário e, por definição, reverting se a seguinte equação mantém. Se é entre e depois e são co - integrado, é o coeficiente de reversão da média Um teste estatístico deve ser realizado para verificar se, isso é conhecido como um teste de raiz unitária Se a série contém uma raiz unitária não é adequado para negociação de pares Existem vários testes raiz unitária, cada execução Um teste diferente no processo residual Pode-se tentar estimar o modelo residual de AR 1 e verificar se utiliza o método de regressão linear convencional calculando a razão t padrão. No entanto, foi demonstrado por Dicky e Fuller 1979 que a T-ratio não segue a distribuição t, portanto, os testes de significância não-padrão são necessários conhecidos como testes raiz unitária. Como com todos os modelos há trade off ao determinar o tamanho da janela de treinamento, muito tempo uma janela eo modelo pode conter irrelevante Dados e ser lento para se ajustar a eventos recentes, uma janela muito curta e o modelo só responde a eventos recentes e esquece rapidamente sobre eventos passados ​​Este trade-off é problemático em testes de co-integração, foi demonstrado em Clegg, M January 2017 On the Persistência de cointegração em pares de negociação que para um tamanho de janela fixa o poder da maioria dos testes de raiz unitária diminuir como tende a 1 a partir de baixo, para 250 pontos de dados com a barragem de testes de co-integração detectar apenas co-integração menos de 25 do Time. Intuitively isso faz sentido, o mais lento o processo é reverter os pontos mais dados serão necessários para ver a reversão É um tanto indesejável que o poder dos testes raiz unitária variam dependendo das propriedades de t Ele subjacente processo, no entanto, não é necessário para os pares de sucesso de negociação que todos os pares co-integrado são identificados como tal a propriedade de poder variável de testes de raiz unitária é em grande parte irrelevante. O que é mais interessante é a taxa de falso positivo, Reverter quando eles não são, e como os resultados são persistentes. Gerar 1000 co-integrado série de tempo com e uniformemente distribuído no conjunto, e no conjunto de acordo com Clegg isso é semelhante aos tipos de pares de ações encontradas na realidade Repita isso para Diferentes comprimentos de séries de tempo e teste para ver quantas séries de tempo se classificam corretamente como reverberação média integrada de co-integrado usando vários testes para pValues ​​diferentes. Na maioria dos testes PP e PGFF outperform os outros métodos Quando o processo estava reverendo fortemente com menos de 0 85 os testes PP, PGFF, JO-E e JO-T identificaram corretamente o processo como média co-integrada que reverteu mais de 75 do tempo em pValue 0 01 Para alguns dos weake R reverter pares com mais de 0 95 o desempenho dos testes estatísticos é lamentável com apenas 250 pontos de dados. Vale a pena ter em mente que 250 pontos de dados é approximatlythe número de dias de negociação em um ano, e talvez dá uma indicação de quanto Dados históricos é necessário em uma estratégia de negociação de pares. Testes Positivos Positivos. Follow o mesmo procedimento delineado para o teste de precisão, mas escolheu no conjunto para gerar séries de tempo que isn t co-integrado Veja que porcentagem dos caminhos obter falsamente relatado como co - Reverting. I nunca vi esse gráfico em um livro de texto e foi surpreendido com os resultados, tanto HURST e BVR relatório mais falsos positivos como aumentos Quanto mais o processo explode o mais provável que o teste foi para mostrar um falso positivo. Outros testes se comportam de uma forma razoável com poucos falsos positivos. Esta parte do tutorial sobre o uso do algoritmo NEAT explica como os genomas são atravessados ​​de forma significativa mantendo suas informações topológicas E como os genomas do grupo de especiação em espécies podem ser usados ​​para proteger genomas fracos com novas informações topológicas de serem prematuramente erradicadas do pool de genes antes que seu espaço de peso possa ser otimizado. A primeira parte deste tutorial pode ser encontrada aqui. Inovação Numbers. Part 1 mostrou duas mutações, link mutação e mutate nó que ambos adicionados novos genes para o genoma Cada vez que um novo gene é criado através de uma inovação topológica um número de inovação global é incrementado e atribuído a esse gene. O número de inovação global é Rastreando a origem histórica de cada gene Se dois genes têm o mesmo número de inovação, então eles devem representar a mesma topologia, embora os pesos podem ser diferentes Isso é explorado durante o crossover gene. Genome Crossover Mating. Genomes crossover leva dois genomas pai permite chamá-los A E B e cria um novo genoma permite chamar a criança de tomar os genes mais fortes de A e B copiando qualquer estrutura topológica Em cada número de inovação o gene do pai mais apto é selecionado e inserido no genoma infantil Se ambos os genomas pai são a mesma aptidão então o gene é Aleatoriamente selecionados de qualquer dos pais com probabilidade igual. Se o número de inovação estiver presente somente em um dos progenitores, então isso é conhecido como um gene disjunto ou em excesso e representa uma inovação topológica, ele também é inserido na criança. A imagem abaixo mostra o processo de cruzamento para Dois genomas do mesmo fitness. Speciation leva todos os genomas em um pool de genoma dado e tenta dividi-los em grupos distintos conhecidos como espécies Os genomas em cada espécie terá características semelhantes. Uma maneira de medir a semelhança entre dois genomas é necessária, Se dois genomas forem semelhantes, eles são da mesma espécie. Uma medida natural a ser usada seria uma soma ponderada do número de genes supressos disjuntos Ng diferenças topológicas ea diferença de pesos entre os genes correspondentes Se a soma ponderada é inferior a algum limiar, em seguida, os genomas são da mesma espécie. A vantagem de dividir os genomas em espécies é que durante o passo de evolução genética onde genomas com baixa aptidão são abatidos Removido inteiramente da associação do genoma melhor que tendo cada genoma lutar para ele s lugar de encontro a todo o outro genoma no pool inteiro do genoma nós podemos fazê-lo lutar por ele lugar de s de encontro aos genomas da mesma espécie Esta maneira espécie que forma de uma inovação topological nova Que pode não ter uma alta aptidão ainda devido a não ter it s pesos otimizados irá sobreviver ao culling. Summary de todo o processo. Criar um pool de genomas com n genomas aleatórios. Tome cada genoma e aplicar a simulação de problema e calcular o genoma fitness. Assign Cada genoma a uma espécie. Em cada espécie abate os genomas que removem alguns dos genomas mais fracos. Cada espécie selecionou aleatòria genomas na espécie a qualquer um Crossover ou mutate. Repeat todos os acima. Post navigation. I não tenho muita certeza, se esta questão se encaixa aqui here. I recentemente começou, ler e aprender sobre a aprendizagem da máquina Alguém pode jogar alguma luz sobre como ir sobre ele ou melhor Alguém pode compartilhar sua experiência e poucos ponteiros básicos sobre como ir sobre ele ou atleast começar a aplicá-lo para ver alguns resultados de conjuntos de dados Como ambicioso faz este sound. Also, fazer menção sobre algoritmos padrão que deve ser experimentado ou olhou ao fazer isso . Parece ser uma falácia básica que alguém pode vir junto e aprender alguns algoritmos de aprendizado de máquina ou AI, configurá-los como uma caixa preta, ir e ir sentar enquanto eles se aposentam. Meu conselho Para você. Aprenda as estatísticas e aprendizado de máquina primeiro, então se preocupe sobre como aplicá-los a um determinado problema Não há almoço grátis aqui Análise de dados é trabalho duro Leia os elementos de Aprendizagem Estatística o pdf está disponível gratuitamente no site e don T começar a tentar Construir um modelo até que você compreenda pelo menos os primeiros 8 capítulos. Uma vez que você entenda as estatísticas e aprendizado de máquina, então você precisa aprender a backtest e construir um modelo de negociação, contabilidade de custos de transação, etc, que é uma área inteira. Você tem uma alça sobre a análise e as finanças, então será um pouco óbvio como aplicá-lo O ponto inteiro desses algoritmos está tentando encontrar uma maneira de ajustar um modelo de dados e produzir baixo viés e variação na predição ou seja, que O treinamento e teste de erro de previsão será baixo e semelhante Aqui está um exemplo de um sistema de negociação usando uma máquina de vetores de suporte em R, mas apenas tenha em mente que você estará fazendo um enorme desserviço se você don t passar o tempo para entender o Basics antes de tentar aplicar algo esoteric. Just para adicionar uma atualização divertida recentemente me deparei com esta tese de mestre Uma nova estrutura de negociação algorítmica Aplicando evolução e aprendizado de máquina para otimização de portfólio 2017 É uma revisão extensiva de diferentes abordagens de aprendizagem de máquina em comparação com buy-and-hold Depois de quase 200 páginas, eles chegam à conclusão básica Nenhum sistema de comércio foi capaz de superar o benchmark ao usar os custos de transação Não é preciso dizer que isso não significa que Não pode ser feito Eu não passei algum tempo revendo seus métodos para ver a validade da abordagem, mas certamente fornece mais algumas evidências a favor do teorema do almoço não-livre. Os autores da referida tese de mestrado posso citar o meu próprio trabalho e dizer Se alguém realmente obtém resultados rentáveis ​​não há incentivo para compartilhá-los, como iria negar a sua vantagem Embora os nossos resultados podem apoiar a hipótese do mercado não impede A existência de sistemas que funcionam Poderia ser como a teoria da probabilidade Especula-se que os avanços no campo da teoria da probabilidade aconteceu várias vezes, mas nunca compartilhado Isso poderia ser devido à sua Aplicação prática em jogos de azar Então, novamente, talvez isso é tudo alquimia moderna Andr Christoffer Andersen 30 de abril 13 às 10 01.Minha Conselho para Você Há vários Inteligência Artificial Inteligência Artificial ML ramos lá fora. Eu só tentei a programação genética e algumas redes neurais , E eu pessoalmente acho que a aprendizagem de ramo de experiência parece ter o maior potencial GP GA e redes neurais parecem ser as metodologias mais comumente exploradas com a finalidade de predições do mercado de ações, mas se você fizer alguma mineração de dados em Predict Wall Street você Pode ser capaz de fazer alguma análise de sentimento também. Passar algum tempo aprendendo sobre as várias técnicas ML AI, encontrar alguns dados de mercado e tentar implementar alguns desses algoritmos Cada um terá seus pontos fortes e fracos, mas você pode ser capaz de combinar o Previsões de cada algoritmo em uma previsão composta semelhante ao que os vencedores do Prêmio NetFlix did. Some Recursos Aqui estão alguns recursos que você pode querer loo K into. The Chatter O consenso geral entre os comerciantes é que a Inteligência Artificial é uma ciência voodoo, você não pode fazer um computador prever os preços das ações e você tem certeza de perder seu dinheiro se você tentar fazê-lo No entanto, as mesmas pessoas vão dizer que Apenas sobre a única maneira de ganhar dinheiro no mercado de ações é construir e melhorar a sua própria estratégia de negociação e segui-lo de perto que não é realmente uma idéia ruim. A idéia de algoritmos AI não é construir Chip e deixá-lo de comércio para você , Mas para automatizar o processo de criação de estratégias É um processo muito tedioso e de modo nenhum é fácil. Minimização Overfitting Como já ouvimos antes, uma questão fundamental com algoritmos AI é overfitting aka datamining bias dado um conjunto de dados, o seu algoritmo AI Pode encontrar um padrão que é particularmente relevante para o conjunto de treinamento, mas pode não ser relevante no conjunto de teste. Existem várias maneiras de minimizar overfitting. Use um conjunto de validação não dá feedback para o algoritmo, mas ele também Ws você detectar quando seu algoritmo está potencialmente começando a overfit ou seja, você pode parar de treinar se você está overfitting demais. Use máquina on-line aprendizagem que em grande parte elimina a necessidade de back-testing e é muito aplicável para algoritmos que tentam fazer previsões de mercado. Ensemble Learning fornece-lhe uma maneira de ter vários algoritmos de aprendizagem da máquina e combinar suas previsões A suposição é que vários algoritmos podem ter overfit os dados em alguma área, mas a combinação correta de suas previsões terá melhor poder preditivo. Dois aspectos da estatística Aprendizagem são úteis para trading.1 Primeiro os mencionados anteriormente alguns métodos estatísticos focados em trabalhar em dados vivos Isso significa que você sabe que você está observando apenas uma amostra de dados e você quer extrapolar Você assim tem que lidar em amostra e fora de Problemas de amostra, overfitting e assim por diante Desse ponto de vista, a mineração de dados é mais focada em datasets mortos, ou seja, você pode ver quase todos os dados , Você tem um problema apenas na amostra de aprendizagem estatística. Como a aprendizagem estatística é sobre o trabalho em conjunto de dados ao vivo, a matemática aplicada que lidam com eles tinha que se concentrar em um problema de duas escalas. Onde X é o espaço de estado multidimensional para estudar você tem nele suas variáveis ​​explicativas e as que prever, F contém a dinâmica de X que precisa de alguns parâmetros theta A aleatoriedade de X comes from the innovation xi , which is ii d. The goal of statistical learning is to build a methodology L ith as inputs a partial observation pi of X and progressively adjust an estimate hat theta of theta , so that we will know all that is needed on X. If you think about using statistical learning to find the parameters of a linear regression we can model the state space like this underbrace yx end right left begin ab 1 1 0 0 end right cdot underbrace x 1 epsilon end right which thus allows to observe y, xn at any n here theta a, b.Then you need to find a way to progressively build an estimator of theta using our observations Why not a gradient descent on the L2 distance between y and the regression C hat a, hat bn sum yk - hat a , xk h at b 2.Here gamma is a weighting scheme. Usually a nice way to build an estimator is to write properly the criteria to minimize and implement a gradient descent that will produce the learning scheme L. Going back to our original generic problem we need some applied maths to know when couple dynamical systems in X, hat theta converge, and we need to know how to build estimating schemes L that converge towards the original theta. To give you pointers on such mathematical results. Now we can go back to the second aspect of statistical learning that is very interesting for quant traders strategists.2 The results used to prove the efficiency of statistical learning methods can be used to prove the efficiency of trading algorithms To see that it is enough to read again the coupled dynamical system that allows to write statistical learning left M F rho Mn, xi L pi Mn , n end right. Now M are market variables, rho is underlying PnL, L is a trading strategy Just replace minimizing a criteria by max imizing the PnL. See for instance Optimal split of orders across liquidity pools a stochatic algorithm approach by Gilles Pags, Sophie Laruelle, Charles-Albert Lehalle in this paper, authors show who to use this approach to optimally split an order across different dark pools simultaneously learning the capability of the pools to provide liquidity and using the results to trade. The statistical learning tools can be used to build iterative trading strategies most of them are iterative and prove their efficiency. The short and brutal answer is you don t First, because ML and Statistics is not something you can command well in one or two years My recommended time horizon to learn anything non-trivial is 10 years ML not a recipe to make money, but just another means to observe reality Second, because any good statistician knows that understanding the data and the problem domain is 80 of the work That s why you have statisticians focusing on Physics data analysis, on genomics, on sabermetrics etc For the record, Jerome Friedman, co-author of ESL quoted above, is a physicist and still holds a courtesy position at SLAC. So, study Statistics and Finance for a few years Be patient Go your own way. Mileage may vary. answered Feb 9 11 at 4 41.I totally agree Just because you know machine learning and statistics, it does not imply that you know how to apply it to finance Dr Mike Aug 10 11 at 20 25.Also an important thing to remember is you won t be trading against people, you will be trading against other artificial intelligence algorithms who are watching your trades pile in, and are furiously calculating the odds that the collective yous would be spooked out by a manufactured decline and taking that minor loss in creating a spike dip and fool all those AI s into stopping out, and then rolling the dip back into it and ride the wave, earning your losses The stock market is a zero sum game, treat it like entering a pro boxing match, if you aren t a 20 year veteran, you re going to lo se Eric Leschinski Feb 13 16 at 1 56.One basic application is predicting financial distress. Get a bunch of data with some companies that have defaulted, and others that haven t, with a variety of financial information and ratios. Use a machine learning method such as SVM to see if you can predict which companies will default and which will not. Use that SVM in the future to short high-probability default companies and long low-probability default companies, with the proceeds of the short sales. There is a saying Picking pennies up in front of steam rollers You re doing the equivalent of selling an out-of-the-money put In this case, you ll make tiny profits for years, then get totally cleaned out when the market melts down every 10 years or so There is also an equivalent strategy that buys out-of-the-money puts they lose money for years, then make a killing when the market melts down See Talab s The Black Swan Contango Jun 5 11 at 22 20.Remember that international companies have spent hund reds of billions of dollars and man hours on the very best and brightest artificial intelligence minds over the last 40 years I ve spoken to some of the towers of mind responsible for the alphas over at Citadel and Goldman Sachs, and the hubris from novices to think they can put together an algorithm that will go toe to toe with them, and win, is almost as silly as a child telling you he s going to jump to the moon Good luck kid, and watch out for the space martians Not to say new champions can t be made, but the odds are against you Eric Leschinski Feb 13 16 at 2 00.One possibility worth exploring is to use the support vector machine learning tool on the Metatrader 5 platform Firstly, if you re not familiar with it, Metatrader 5 is a platform developed for users to implement algorithmic trading in forex and CFD markets I m not sure if the platform can be extended to stocks and other markets It is typically used for technical analysis based strategies i e using indicators based on hist orical data and is used by people looking to automate their trading. The Support Vector Machine Learning Tool has been developed by one of the community of users to allow support vector machines to be applied to technical indicators and advise on trades A free demo version of the tool can be downloaded here if you want to investigate further. As I understand it, the tool uses historical price data to assess whether hypothetical trades in the past would have been successful It then takes this data along with the historical values from a number of customisable indicators MACD, oscillators etc , and uses this to train a support vector machine Then it uses the trained support vector machine to signal future buy sell trades A better desciption can be found at the link. I have played around with it a little with some very interesting results, but as with all algorithmic trading strategies I recommend solid back forward testing before taking it to the live market. answered Dec 10 12 at 11 59.Sorr y, but despite being used as a popular example in machine learning, no one has ever achieved a stock market prediction. It does not work for several reasons check random walk by Fama and quite a bit of others, rational decision making fallacy, wrong assumptions , but the most compelling one is that if it would work, someone would be able to become insanely rich within months, basically owning all the world As this is not happening and you can be sure all the bank have tried it , we have good evidence, that it just does not work. Besides How do you think you will achieve what tens of thousands of professionals have failed to, by using the same methods they have, plus limited resources and only basic versions of their methods. answered Jun 4 15 at 7 47.Just an aside regarding your most compelling reason strategies have capacity limits, i e levels beyond which your market impact would exceed the available alpha, even assuming you had unlimited capital I m not sure what you mean by a stock ma rket prediction index futures ETF s , but certainly there are plenty of people making short-term predictions, and benefitting from them, every day in markets afekz Nov 23 15 at 13 19.I echo much of what Shane wrote In addition to reading ESL, I would suggest an even more fundamental study of statistics first Beyond that, the problems I outlined in in another question on this exchange are highly relevant In particular, the problem of datamining bias is a serious roadblock to any machine-learning based strategy.

Comments