Tuesday 28 November 2017

Trading system machine learning


Como posso começar a aplicar o aprendizado da máquina ao comércio algorítmico Primeiro, você se concentraria em reunir o máximo de dados possível e colocar em um único formulário de tabela grande. Isso seria um histórico de preços. Talvez aumente isso com artigos de jornal, postagens de blog, arquivos secretos transformados em vetores de contagem de palavras, etc. (usando técnicas de processamento de linguagem natural). Você então treinaria um algoritmo supervisionado para a decisão buysell. Algoritmos adequados são regressão logística (mais rápido) e florestas aleatórias (mais precisas, geralmente). Há outros, como máquinas de vetor de suporte, árvores de decisão reforçada, redes neurais de 3 camadas, mas essas don039t oferecem tão boa precisão como florestas aleatórias (e muitas vezes mais lentas também) ou a mesma velocidade que a regressão logística. Na minha opinião, a melhor escolha seria simplesmente a regressão logística, e a melhor implementação é o vowpal wabbit - extremamente rápido, pode lidar com enormes quantidades de dados - 1 terabyte por hora em uma máquina, mais rápido ainda em cluster - e de código aberto. Isso também permite que você veja claramente quais indicadores (colunas na tabela) são preditivos. Você também pode adicionar artigos de jornal, etc. diretamente como texto para isso, usando o truque de hashing. Isso também é implementado no wobbit vowpal, e assim você também pode lidar com artigos de texto de formato livre muito grandes em uma única linha. Tendo feito o acima, até o ponto, você não pode mais coletar mais fontes de dados, é tempo de se mudar para o estágio de engenharia de recursos. Você já fez algo disso quando você fez coisas nlp (mas você estava usando técnicas padrão - ou seja, não pensou em não desenvolver seus próprios métodos). Existem duas opções neste momento: manual e automático. Normalmente, as pessoas neste momento inventam seus próprios recursos. Isso é o que os comerciantes passam a maior parte do tempo - as chamadas quotstrategiesquot ou quotrulesquot. Estes são testados em relação aos dados - chamado backtesting. Outra, mais recente, o método authomatic também se tornou disponível - aprendizagem profunda sem supervisão. A aprendizagem não supervisionada existia antes, mas era da variedade quotshallowquot e não funcionava bem na prática. Redes neurais de aprendizagem profunda usando autoencoders é um novo método (inventado há apenas 6 anos) que funciona muito bem. Este artigo é uma demonstração disso. Essencialmente, ao lançar muitos computadores no problema, é possível formar estratégias automaticamente. Quanto maior a rede neural, melhor ela faz - mas, consequentemente, são necessários mais computadores. No entanto, isso (na minha opinião) é melhor do que tentar contratar muitas pessoas altamente criativas e críticas humanas. Esta publicação detalhará o que fiz para fazer aprox. 500k de negociação de alta freqüência de 2009 a 2010. Desde que eu estava negociando completamente de forma independente e já não estou executando o meu programa Irsquom feliz em contar tudo. Minha negociação foi principalmente em contratos de futuros Russel 2000 e DAX. A chave para o meu sucesso, eu acredito, não estava em uma equação financeira sofisticada, mas sim no projeto de algoritmo geral que uniu muitos componentes simples e a aprendizagem de máquinas usadas para otimizar a máxima rentabilidade. Você wonrsquot precisa conhecer qualquer terminologia sofisticada aqui, porque quando eu configurei meu programa, tudo foi baseado na intuição. (Andrew Ngrsquos, um curso incrível de aprendizado de máquina ainda não estava disponível - por favor, se você clicar nesse link, você será levado ao meu projeto atual: CourseTalk, um site de revisão para MOOCs) Primeiro, eu só quero demonstrar que meu sucesso não foi simplesmente o resultado de sorte. O meu programa fez 1000-4000 negócios por dia (meio e meio curto) e nunca entrou em posições de mais de alguns contratos por vez. Isso significava que a sorte aleatória de qualquer comércio em particular era muito rápida. O resultado foi que nunca perdi mais de 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 dar uma sensação de variação diária. Observe que isso exclui os últimos 7 meses porque - à medida que os números pararam de subir - eu perdi minha motivação para inseri-los. Histórico de negociação Antes da criação do meu programa de negociação automatizado, a Irsquod teve 2 anos de experiência como comerciante de dia de negociação. Isso foi em 2001 - eram os primeiros dias do comércio eletrônico e havia oportunidades para que ldquoscalpersrdquo ganhasse um bom dinheiro. Eu só posso descrever o que eu estava fazendo como parecido com jogar um jogo de vídeo com uma suposta vantagem. Ser bem-sucedido significou ser rápido, ser disciplinado e possuir boas habilidades de reconhecimento de padrões intuitivas. Eu consegui fazer cerca de 250k, pagar meus empréstimos estudantis e ter dinheiro restante. Win Durante os próximos cinco anos, eu lançaria duas startups, pegando algumas habilidades de programação ao longo do caminho. Não seria até o final de 2008 que eu voltaria a negociar. Com o dinheiro escorrendo da venda da minha primeira inicialização, a negociação ofereceu esperanças de algum dinheiro rápido enquanto eu descobri minha próxima jogada. Em 2008, eu era o primeiro dia do dia comercializando futuros usando o software chamado T4. Irsquod estava querendo algumas teclas de atalho de entrada de pedidos personalizadas, então, depois de descobrir que a T4 tinha uma API, assumi o desafio de aprender C (a linguagem de programação necessária para usar a API) e segui adiante e me criei algumas teclas rápidas. Depois de ficar com os pés molhados com a API, logo tive aspirações maiores: queria ensinar o computador a trocar por mim. A API forneceu um fluxo de dados de mercado e uma maneira fácil de enviar ordens para a troca - tudo o que eu tinha que 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 trabalhei, consegui assistir o comércio de computadores nesta mesma interface. Ver as ordens reais entrando e saindo (por si com meu dinheiro real) foram emocionantes e assustadoras. O design do meu algoritmo Desde o início, meu objetivo era configurar um sistema, de modo que eu pudesse estar razoavelmente confiante com Irsquod ganhar dinheiro antes de fazer qualquer transação ao vivo. Para realizar isso, eu precisava construir uma estrutura de simulação de negociação que, com a maior precisão possível, simulasse a negociação ao vivo. Embora a negociação no modo ao vivo exigisse o processamento de atualizações de mercado transmitidas pela API, o modo de simulação exigia a leitura de atualizações de mercado a partir de um arquivo de dados. Para coletar esses dados, configurei a primeira versão do meu programa para simplesmente conectar-se à API e registrar as atualizações do mercado com timestamps. Acabei usando 4 semanas de dados de mercado recentes para treinar e testar meu sistema. Com um quadro básico no local, eu ainda tinha a tarefa de descobrir como criar um sistema comercial lucrativo. Como se verifica, meu algoritmo seria dividido em dois componentes distintos, que Irsquoll explorava por sua vez: Previsão de movimentos de preços e Realização de negociações rentáveis ​​Previsão de movimentos de preços Talvez um componente óbvio de qualquer sistema de negociação seja capaz de prever onde os preços se moverão. E o meu não foi exceção. Eu definei o preço atual como a média da oferta interna e da oferta interna e eu estabeleci o objetivo de prever onde o preço seria nos próximos 10 segundos. O meu algoritmo precisaria apresentar esta previsão momento a momento durante o dia da negociação. Criando indicadores de otimização de amplificador Eu criei um punhado de indicadores que provaram ter uma habilidade significativa para prever movimentos de preços de curto prazo. Cada indicador produziu um número que era positivo ou negativo. Um indicador era útil se, com maior frequência, um número positivo correspondesse com o mercado subindo e um número negativo correspondesse com o mercado descer. Meu sistema me permitiu determinar rapidamente a capacidade preditiva de qualquer indicador, então eu consegui experimentar muitos indicadores diferentes para ver o que funcionou. Muitos dos indicadores apresentaram variáveis ​​nas fórmulas que os produziram e consegui encontrar os valores ótimos para essas variáveis ​​ao fazer comparações lado a lado dos resultados obtidos com valores variáveis. Os indicadores mais úteis foram todos relativamente simples e foram baseados em eventos recentes no mercado que negociei, bem como os mercados de títulos correlacionados. Fazendo previsões de movimento de preço exato Tendo indicadores que simplesmente predisseram um movimento de preço para cima ou para baixo não era suficiente. Eu precisava saber exatamente quanto o movimento do preço era previsto por cada valor possível de cada indicador. Eu precisava de uma fórmula que convertesse um valor indicador para uma previsão de preços. Para realizar isso, rastreei os movimentos de preços previstos em 50 baldes que dependiam do alcance em que o valor do indicador caiu. Isso produziu previsões únicas para cada balde que eu então consegui representar no Excel. Como você pode ver a mudança de preço esperada aumentar à medida que o valor do indicador aumenta. Com base em um gráfico como esse, consegui fazer uma fórmula para ajustar a curva. No começo, eu fiz isso manualmente manualmente, mas logo escrevi algum código para automatizar esse processo. Observe que nem todas as curvas indicadoras tiveram a mesma forma. Observe também que os baldes foram distribuídos logaritticamente de modo a espalhar os dados de forma uniforme. Finalmente, note que os valores dos indicadores negativos (e as respectivas previsões de preços descendentes correspondentes) foram lançados e combinados com os valores positivos. (Meu algoritmo tratado de forma ascendente e exata exatamente o mesmo.) Combinando indicadores para uma única previsão. Uma coisa importante a considerar era que cada indicador não era totalmente independente. Eu não poderia simplesmente adicionar todas as previsões que cada indicador faz 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 estivesse indicando vários indicadores ao mesmo tempo, eu tinha que ter uma mudança cuidadosa, isso afetaria as previsões de outro. Para ajustar todos os indicadores ao mesmo tempo, configurei o otimizador para passar 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 dentro de algumas passagens. Com cada indicador agora nos dando a previsão de preço adicional de Itrsquos 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 estava dourado. Mas você precisa ter em mente que o mercado é composto por lances e ofertas - itrsquos não apenas um preço de mercado. O sucesso na negociação de alta freqüência se resume a obter bons preços e itrsquos não é tão fácil. Os seguintes fatores tornam difícil a criação de um sistema rentável: com cada troca, eu tinha que pagar comissões tanto para o meu corretor quanto para a troca. O spread (diferença entre a oferta mais alta e a oferta mais baixa) significava que, se eu fosse simplesmente comprar e vender aleatoriamente, Irsquod perderia uma tonelada de dinheiro. A maior parte do volume do mercado eram outros bots que só executariam um comércio comigo se achassem que tinham alguma vantagem estatística. Ver uma oferta não garantiu que eu pudesse comprá-la. No momento em que minha ordem de compra chegou ao intercâmbio, era muito possível que essa oferta fosse cancelada. Como um pequeno jogador do mercado, não havia nenhuma maneira de eu competir sozinho na velocidade. Construindo uma simulação de negociação completa Então eu tive 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 fazer o teste e otimizar um sistema de negociação completo onde eu estava enviando ordens e entrando em posições. Neste caso, Irsquod será otimizado para o PampL total e, em certa medida, PampL médio por comércio. Isso seria mais complicado e, de certa forma, impossível modelar exatamente, mas eu fiz o melhor que pude. Aqui estão alguns dos problemas que tive para lidar: quando um pedido foi enviado ao mercado em simulação, tive que modelar o tempo de atraso. O fato de meu sistema ter visto uma oferta não significava que pudesse comprá-lo imediatamente. O sistema enviaria o pedido, espere aproximadamente 20 milissegundos e, em seguida, apenas se a oferta ainda fosse considerada como um comércio executado. Isso foi inexato porque o tempo de atraso real era inconsistente e não relatado. Quando eu coloquei lances ou ofertas, tive que olhar para o fluxo de execução comercial (fornecido pela API) e usá-los para avaliar quando meu pedido teria sido executado. Para fazer isso, tive que rastrear a posição do meu pedido na fila. (Itrsquos um primeiro-em primeiro-out sistema.) Novamente, eu couldnrsquot fazer isso perfeitamente, mas eu fiz uma melhor aproximação. Para refinar a simulação de execução do meu pedido, fiz os meus arquivos de log da negociação ao vivo através da API e comparei-os aos arquivos de log produzidos por negociação simulada do mesmo período. Eu consegui minha simulação até o ponto de ser bastante precisa e, para as partes que eram impossíveis de modelar exatamente, me assegurei pelo menos de produzir resultados estatisticamente similares (nas métricas que achava importantes). Fazendo negociações rentáveis ​​Com um modelo de simulação de pedidos no local, eu poderia agora enviar ordens no modo de simulação e ver um PampL simulado. Mas como meu sistema saberia quando e onde comprar e vender As previsões de movimento de preços eram um ponto de partida, mas não toda a história. O que fiz foi criar um sistema de pontuação para cada um dos 5 níveis de preço na oferta e oferta. Estes incluíram um nível acima da oferta interna (para um pedido 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 estivesse acima de um certo limite que significaria que meu sistema deveria ter um bidoffer ativo lá - abaixo do limite, então todas as ordens ativas deveriam ser canceladas. Com base nisso, não era incomum que meu sistema apresentasse um lance no mercado e, em seguida, cancelasse-o imediatamente. (Embora eu tentei minimizar isso como itrsquos irritante como diabos para quem olhasse a tela com olhos humanos - incluindo eu.) As pontuações do nível de preços foram calculadas com base nos seguintes fatores: A previsão do movimento do preço (que discutimos anteriormente). O nível de preços em questão. (Os níveis internos significaram que foram necessárias maiores previsões de movimento de preços). O número de contratos na frente do meu pedido na fila. (Menos foi melhor.) O número de contratos por trás do meu pedido na fila. (Mais foi melhor.) Essencialmente, esses fatores serviram para identificar ldquosaferdquo lugares para bidoffer. A previsão do movimento do preço por si só não era adequada porque não contava o fato de que ao colocar uma oferta não fui preenchida automaticamente - eu só me encheram se alguém me vendesse lá. A realidade era que o simples fato de alguém me vender a um certo preço alterou as probabilidades estatísticas do comércio. As variáveis ​​utilizadas nesta etapa estavam todas sujeitas a otimização. Isso foi feito exatamente da mesma maneira que otimizei variáveis ​​nos indicadores de movimento de preços, exceto neste caso eu estava otimizando a linha inferior PampL. O que o meu programa ignorou Quando comercializamos como seres humanos muitas vezes temos poderosas emoções e desvios que podem levar a decisões menos do que ótimas. Claramente, 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 negociação, Itrsquos é bastante comum para ouvir a conversa sobre o preço pelo qual alguém é longo ou curto, como se isso pudesse afetar sua futura tomada de decisões. Embora isso tenha alguma validade como parte de uma estratégia de redução de risco, ele realmente não tem influência no futuro dos eventos no mercado. Portanto, meu programa ignorou completamente essa informação. Itrsquos o mesmo conceito que ignorar custos irrecuperáveis. Ir a curto vs. sair de uma posição longa - Normalmente, um comerciante teria critérios diferentes que determinam onde vender uma posição longa em relação a onde ir curto. No entanto, da minha perspectiva de algoritmos não havia motivo para fazer uma distinção. Se o meu algoritmo esperava que uma venda de movimento para baixo fosse uma boa idéia, independentemente de ser atualmente longa, curta ou plana. Uma estratégia uprdquo ldquodoubling - Esta é uma estratégia comum em que os comerciantes comprarão mais ações no caso de o comércio original ir contra elas. Isso resulta em seu preço de compra médio sendo menor e significa quando (ou se) o estoque gira em torno de você será definido para fazer seu dinheiro de volta em nenhum momento. Na minha opinião, esta é realmente uma estratégia horrível, a menos que você seja o Warren Buffet. Yoursquore enganou em pensar que você está indo bem porque a maioria de seus negócios serão vencedores. O problema é quando você perde você perder grande. O outro efeito é que dificilmente julgar se você realmente tem uma vantagem no mercado ou está apenas tendo sorte. Ser capaz de monitorar e confirmar que o meu programa de fato teve uma vantagem foi um objetivo importante. Uma vez que meu algoritmo tomou decisões do mesmo modo, independentemente de onde ele entrou em um comércio ou, se fosse atualmente longo ou curto, ocasionalmente sentava-se (e aceitou) alguns grandes negócios perdidos (além de alguns grandes negócios vencedores). Mas, você não deve pensar que não houve nenhuma gestão de risco. Para gerenciar o risco, apliquei um tamanho de posição máximo de 2 contratos por vez, ocasionalmente superado em dias de alto volume. Eu também tive um limite máximo de perda diária para proteger contra quaisquer condições de mercado inesperadas ou um erro no meu software. Esses limites foram aplicados no meu código, mas também no backend através do meu corretor. Como aconteceu, nunca encontrei problemas significativos. Execução do algoritmo Desde o momento em que comecei a trabalhar no meu programa, demorei cerca de 6 meses antes de chegar ao ponto de rentabilidade e começar a executá-lo ao vivo. Apesar de ser justo, uma quantidade significativa de tempo era aprender uma nova linguagem de programação. Enquanto trabalhava para melhorar o programa, vi maiores lucros para cada um dos próximos quatro meses. Todas as semanas, eu treinaria o sistema com base nas 4 semanas anteriores de dados. Eu achei que isso atingiu o equilíbrio certo entre capturar tendências de comportamento do mercado recente e garantir que meu algoritmo tivesse dados suficientes para estabelecer padrões significativos. À medida que o treinamento começou a tomar mais e mais tempo, eu o separei para que ele possa ser executado por 8 máquinas virtuais usando o Amazon EC2. Os resultados foram então agrupados 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 gastar os próximos quatro meses tentando melhorar meu programa, apesar da diminuição do lucro a cada mês. Infelizmente, neste ponto, acho que a Irsquod implementou todas as minhas melhores idéias porque nada que tentei pareceu ajudar muito. Com a frustração de não poder fazer melhorias e não ter um senso de crescimento, comecei a pensar em uma nova direção. Eu enviei 6 empresas diferentes de comércio de alta freqüência para ver se theyrsquod estava interessado em comprar meu software e me contratar para trabalhar para eles. Ninguém respondeu. Eu tive algumas idéias de inicialização novas que queria trabalhar, então eu nunca segui. UPDATE - Posteci isso no Hacker News e tem tido muita atenção. Eu só quero dizer que não defendo ninguém tentando fazer algo assim agora. Você precisaria de uma equipe de pessoas realmente inteligentes com uma variedade de experiências para ter alguma esperança de competir. Mesmo quando eu estava fazendo isso, eu acreditava que era muito raro que os indivíduos conseguissem o sucesso (embora eu tivesse ouvido falar de outros). Há um comentário no topo da página que menciona estatísticas manipuladas e se refere a mim como um investidor de ldquoretail que quants Escolheria o pick-off do mundo. Este é um comentário bastante infeliz que não é simplesmente baseado na realidade. Estabelecendo isso de lado therersquos alguns comentários interessantes: news. ycombinatoritemid4748624 UPDATE 2 - Irsquove postou um FAQ de seguimento que responde algumas perguntas comuns Irsquove recebido de comerciantes sobre esta publicação. ML4Trading Machine Learning for Trading 2017 palavras-chave: algorítmicas, algoritmos, negociação, aprendizagem de máquinas ML, finanças, ações, mercados, finanças quantitativas, tecnologia georgia, gt, Tucker Balch Anúncios importantes Por favor inscreva-se com a praça para este curso: piazza Projeto 1A descrição 2017Fall7646Projeto1A terça terça 26 de agosto às 11:55 PM Projeto 1B descrição 2017Fall7646Projeto1B prevista quinta-feira setembro 4 às 11:55 PM Projeto 1C descrição 2017Fall7646Projetor1C terça-feira 16 de setembro às 11:55 PM finprojeto1 CompInvestIHomework1 em 5 de outubro às 11:55 PM Guia de estudo de meio período 2017MidTermGuide finproject2 CompInvestIHomework2 devido domingo 12 de outubro às 11:55 PM todos os finprojs aqui: ComputationalInvestingI finproject3 CompInvestiHomework3 Na próxima terça-feira, 23 de outubro às 11:55 PM Finproject4 CompInvestiHomework4 devido domingo 2 de novembro às 11:55 PM Projeto 2 descrição 2017Fall7646Projetado 2 terça-feira 18 de novembro às 11:55 PM Projeto 3 descrição 2017Fall7646Projeto 3 devido terça-feira 2 de dezembro às 11:55 PM Projeto 4 descrição 2017Fall7646Projetado4 sexta-feira 12 de dezembro às 11:55 PM Visão geral do curso Este curso Apresenta estudantes aos desafios do mundo real de implementar estratégias de negociação baseadas em aprendizado de máquinas, incluindo os passos algorítmicos da coleta de informações para pedidos de mercado. O foco é sobre como aplicar abordagens de aprendizado de máquina probabilística para decisões de negociação. Consideramos abordagens estatísticas como regressão linear, KNN e árvores de regressão e como aplicá-las a situações reais de negociação de ações. Quem é o curso para o curso é aberto e destinado a estudantes de graduação e graduação de nível superior em Informática, ISYE, Gerenciamento de Amp. Matemática. Pré-requisitos: os alunos devem ter habilidades de codificação fortes e alguma familiaridade com os mercados de ações. Nenhuma experiência financeira ou de aprendizado de máquina é assumida. Heres um teste curto para verificar se você tem fortes habilidades de programação: questionário. Se você não faz bem nesse quiz, você deve deixar o curso, ou certifique-se de planejar para que você possa dedicar mais tempo ao curso. Tenha em atenção que este curso atende estudantes de CS com experiência em aprendizado de máquina, bem como estudantes em outras grandes empresas como ISYE, MGMT ou MATH que tenham experiências diferentes. Todos os tipos de alunos são bem-vindos. Os tópicos do ML podem ser revisados ​​para estudantes de CS, enquanto as partes de finanças serão revisadas para estudantes de finanças. No entanto, mesmo se você tiver experiência nesses tópicos, você achará que os consideramos de uma maneira diferente da que você já viu antes, em particular com o objetivo de implementar para negociação. Responsabilidades do aluno Leia os e-mails enviados para a lista de e-mail do curso. Verifique pelo menos diariamente. Participe na aula e no site da praça. Não plági. Instrutor de Logística de Curso: Professor Associado Tucker Balch Horário de funcionamento: TuTh 4: 30-5: 30 (após a aula) ou com nomeação primeiro nome no telefone cc. gatech. edu 678-523-8685 AT: Brian Hrolenok, Alex Moreno, Jayita Bhattacharya Course Website: wiki. quantsoftware. orgwikiML4Trading. (Esta página da web) Livro de texto obrigatório: o que Hedge Funds realmente faz Algumas partes do curso serão baseadas em leituras da Aprendizagem de Máquina: Uma Perspectiva Probabilística por Kevin Murphy. Pré-requisitos: a aprendizagem de máquinas e a experiência de gerenciamento de portfólio não são assumidas, o curso é projetado para fornecer aos alunos os antecedentes necessários que eles precisarão sobre esses tópicos. A programação será no idioma de Python. Espera-se que os estudantes sejam programadores fortes (ou estão dispostos a investir esforços significativos em aprender a programar em Python). InformingenvironmentforML4Trading GT T-Square site para a classe: TBD. Fórum de discussão na praça. Recursos Objetivos Para o curso No final deste curso, os alunos devem ser capazes de: compreender as estruturas de dados utilizadas para negociação algorítmica. Saiba como construir software para acessar dados de capital vivo, avaliá-lo e tomar decisões comerciais. Compreenda 3 algoritmos de aprendizagem de máquinas populares e como aplicá-los a problemas comerciais. Entenda como avaliar um desempenho de algoritmos de aprendizado de máquina para dados de séries temporais (dados de preço de ações). Saiba como e por que as técnicas de mineração de dados (aprendizagem em máquina) falham. Construa um sistema de software de negociação de ações que use dados diários atuais. Usamos dados diários. Este não é um curso HFT, mas muitos dos conceitos aqui são relevantes. Nós não interagem (comércio) diretamente com o mercado, mas geraremos alocações de capital que você poderia negociar se quisesse. 70.0: Projetos 15.0: Processamento de texto: Projeto ML 1 10.0: KNN Aprendiz: Projeto ML 2 15.0: Aprendiz Random Forest: Projeto ML 3 15.0: Previsão de preços: Projeto ML 4 7.5: finproj: Projeto de otimização de portfólio 7.5: finproj: Market Simulator Project 10.0: Exame intercalar 20.0: Trabalho de casa e atendimento 5.0: Atendimento, tomado em horários aleatórios. Uma pontuação caiu. 15.0 Trabalho de casa: os demais projetos de finanças, igualmente ponderado Plagio de política tardia Na maioria dos casos, espero que todos os códigos que enviou tenham sido escritos por você. Vou apresentar algumas bibliotecas em sala de aula que você pode usar (como pandas e numpy). Caso contrário, todos os códigos-fonte, imagens e redacções que você fornecer devem ter sido criados por você sozinho. O que é permitido: Reunião com outros alunos para discutir implementações. Você deve falar sobre soluções no nível de pseudo-código. Compartilhando fragmentos de código para resolver problemas específicos (pequenos), como exemplos de como abordar seções de arrays em Python. Nesse caso, o código compartilhado não deve ser superior a 5 linhas. Pesquisando a web para outras soluções que você pode desenhar (mas não copiar diretamente). Se você está inspirado por uma solução na web, você DEVE citar esse código com comentários em seu código. O que não é permitido: copiando seções de código com mais de 5 linhas. Tenha em atenção que a simples alteração dos nomes das variáveis ​​não é suficiente. Código de cópia da web. Uso de idéias da web que não são citadas nos comentários. Terça-feira, 19 de agosto de 2017 Visão geral do curso, Projeto 1 A Atribuição quinta-feira, 21 de agosto de 2017 Visão geral dos arquivos do Projeto 1 N, deixe um instrutor descrevendo uma solução na aula: não é necessário que você o siga Saco de palavras modelo Hashing truque tf-idf terça-feira 26 Agosto 2017 Projeto 1A devido hoje à noite, perguntas Definição do Projeto 1B definição tf (t, d) definição idf (t, D) Definição do Projeto 1C No geral: Como o instrutor resolve o problema Quinta-feira 28 de agosto de 2017 Como resolver Projeto 1B Palavras por matriz de tamanho de documentos : Wordcount, tf, tfidf Palavras array: palavras, idf Como obter palavras array Revisão das soluções para o Projeto 1A Segunda 1 de setembro de 2017: GT Feriado Terça-feira, 2 de setembro de 2017 Revisão da solução de referência para o Projeto 1B Introdução ao ML: Paramétrico, Não-Paramétrico Como usar o ML para negociação Selecionando X e Y Mudança relativa, não preço absoluto Mudança relativa do mercado é importante Como funciona o longshort: Classificar SP500 e longo 250, outro curto 250 Quinta-feira, 4 de setembro de 2017 Como o treinamento supervisionado funciona para Tim Dados da série e roda para a frente validação cruzada Exemplo de estratégias de negociação ML (talvez) introdução KNN do livro Murphy. Leituras Requeridas Murphy: Capítulo 1 Terça-feira, 9 de setembro de 2017 Designação de atribuição final do Projeto 1C Definição do problema de regressão Mostrar exemplo com dados Qual é a API para um estudante de regressão aprendiz KNNAmentecedente (k 3) learner. addEvidence (Xtrain, Ytrain) Yquery learner. query ( Xtest) Como comparamos a qualidade de dois aprendentes de regressão Quinta-feira, 11 de setembro de 2017 Livro Qualquer dúvida sobre o Projeto 1C (para a próxima terça-feira) Revise como medir a semelhança do d1 amp. D2 via coseno Visão geral das próximas semanas: Implementar e testar o aprendente do KNN Instalar QSTK Como implementar o teste do KNN Pop Sexta-feira 12 de setembro de 2017: o curso do Coursera inicia Leituras necessárias Janelas de Andrew Moores no KNN 1 Terça-feira, 16 de setembro de 2017 Revisão: Modelo polinomial parametrizado graus de polinômio 1 graus de liberdade No erro de amostra versus graus de liberdade Fora do erro de amostra Versus graus de liberdade Definição de superposição Módulo 11: Visão geral da parte Fin Parte 21: Então você quer ser um gestor de fundos Módulo 22 : Métricas comuns para avaliar o desempenho do fundo Quinta-feira, 18 de setembro de 2017 Módulo 23: métricas comuns, pt 2 Módulo 24: Demonstração de métricas do Excel Leituras necessárias Murphy 1.4.7 (superação) Capítulos 1, 2, 3, 4 no livro de texto do curso Leituras opcionais Plataformas de deslizamento 2 Terça-feira, 23 de setembro de 2017 Workshop de Instalação do QSTK Quinta-feira, 25 de setembro de 2017 Módulo 31: Mecânica de Mercado Módulo 32: Caderno de encargos, Módulo de Venda Curta 33: Como Hedge Funds Exploit, Mecânica de Mercado Leituras opcionais Plataformas de deslizamento 3 Terça 30 de setembro de 2017 Revista de avaliação intermediária revisão finproj1 Quinta-feira, 2 de outubro de 2017 Exame intercalar Terça-feira, 7 de outubro de 2017 Módulo 34: A computação dentro de um fundo de hedge Módulo 91: Onde as informações vêm do Módulo de Arbitragem 92: 3 Versões do Módulo 93 de EMH: Estudos de Eventos finproj2 Quinta-feira, 9 de outubro de 2017 3 maneiras de Avaliar o valor da empresa: Book, Market Cap, Intrinsic Módulo 41: Valor intrínseco Módulo 43: Análise fundamental do valor da empresa Sexta-feira, 10 de outubro de 2017: Leituras obrigatórias do dia de queda Capítulos 8, 10, 11 em curso te Xtbook Terça-feira, 14 de outubro de 2017: Queda de outono Quinta-feira, 16 de outubro de 2017 Módulo 121: Eventos de revisão e Sobrevida de sobreviventes Como dizer o quanto de dinheiro faça um finprojeto de backtester3: devido em uma semana Módulo 43: Análise fundamental do valor da empresa Voltar para: 3 maneiras Para avaliar o valor da empresa: Book, Market Cap, Intrinsic Review Valor intrínseco (1 ano por 1 milhão de anos) Módulo 41: Valor intrínseco Terça-feira, 21 de outubro de 2017 Módulo 42: Como as notícias afetam os preços Módulo 71: Modelo de preços de ativos de capital Módulo 72: O que é o Módulo Beta 73: Como os fundos Hedge usam CAPM Módulo 122: Preços reais versus preços ajustados (divisores de amplificadores de dividendos) Módulo 123: limpeza de dados (verificação da sanidade) Quinta-feira, 23 de outubro de 2017 Módulo 112: entradas e saídas de um módulo de otimizador de portfólio 113: a importância de Correlação e Covariância (nos retornos diários) Módulo 114: A Fronteira Eficiente Módulo 115: Como otimizadores funcionam (Em geral, não apenas para carteiras) finproj4 introdução Leituras Necessárias Capítulo 7, 12, 13, 14 no livro didático Terça-feira, 28 de outubro de 2017 Módulo 151: Módulo 150: Direito Fundamental Parte 1 Módulo 153: Direito Fundamental Parte 2 Módulo 141: Recapitulação CAPM, visão geral para carteiras Módulo 142: Exemplo de uso de CAPM para apostas longshort eliminando risco de mercado Quinta-feira 30 de outubro de 2017 Módulo 191: Exemplo de informações Feeds Módulo 192: Introdução ao módulo de análise técnica 193: Alguns exemplos de indicadores técnicos Módulo 194: Apresentação das bandas de Bollinger para finproj5 Leituras necessárias Capítulo 9 no livro de texto do curso Terça-feira, 4 de novembro de 2017 Classe cancelada

No comments:

Post a Comment