Monday 5 March 2018

Aprendizagem de máquinas em estratégias de negociação


Em primeiro lugar, você se concentrar em reunir o máximo de dados possível e colocar em uma única forma de tabela grande Isso seria histórico de dados de preços Talvez aumentar este com artigos de jornal, postagens de blog, Então treinam um algoritmo supervisionado para a decisão de venda de compra Algoritmos adequados são regressão logística mais rápidas e florestas aleatórias mais precisas normalmente Existem outros, como máquinas de vetores de suporte, árvores de decisão impulsionadas, redes neurais de 3 camadas, mas elas não oferecem uma boa precisão Como florestas aleatórias e, muitas vezes, mais lento, bem como ou mais velocidade de regressão logística Na minha opinião, a melhor escolha seria simplesmente regressão logística, ea melhor implementação é vapal 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 open source Isso também permite que você veja claramente quais indicadores colunas na tabela são predictive. Y Ou poderia também adicionar artigos de jornal, etc diretamente como texto para isso usando o truque de hashing Isso também é implementado em vapal wabbit também, e assim você pode lidar muito grande livre de texto de texto artigos em uma única linha well. Having feito o acima Até o ponto que você não pode mais coletar mais fontes de dados, é hora de passar para o estágio de engenharia de características Você já fez algumas dessas quando você fez nlp coisas, mas você estava usando técnicas padrão - ou seja, não acho que inventar seus próprios métodos. Estão duas opções neste momento - manual e automático. Normalmente, as pessoas neste momento inventar suas próprias características Isto é o que os comerciantes gastam a maior parte do seu tempo fazendo - as chamadas estratégias ou regras Estes são testados contra os dados - chamado backtesting . Outra, mais recente, o método autônomo também recentemente tornou-se disponível - aprendizagem não supervisionada profunda Aprendizagem não supervisionada existia antes, mas era da variedade superficial e não funcionou bem na prática Profundamente aprendendo redes neurais usando autoen Codificadores é um novo método inventado há apenas 6 anos que funciona muito bem Este artigo é uma demonstração dele. Essencialmente, jogando muitos computadores no problema, é possível formar estratégias automaticamente Quanto maior a rede neural, melhor ela faz - mas, conseqüentemente, mais computadores são necessários Isso na minha opinião, porém, é melhor mais barato do que tentar contratar muito criativo altamente analítico trabalhando pessoas.17 9k Vistas Ver Upvotes Não para Reprodução. Estou realmente no início de fazer o meu comércio automatizado Sistema, a resposta à sua pergunta é como você quer ganhar dinheiro, você quer daytrade ou comprar e segurar ao longo do tempo, quais são suas métricas vai ser para considerar um bom investimento comercial Você precisa saber sobre o mercado que você está Vai servir, no seu caso, o mercado de ações Se você está indo para fazer um algoritmo de aprendizagem para rotas de transporte rodoviário você deve saber as possíveis variáveis ​​envolvidas no transporte rodoviário, juntamente com as armadilhas em potencial que você vai executar i Nto. Você pode obter todas as respostas no mundo, mas a menos que você é um codificador muito inteligente que pode ter em quase infinate variáveis ​​e descrever a sua importância e relação uns com os outros. Data também é uma consideração, quantas ações você vai acompanhar Que tipo de dados você precisa Estes feeds serão executados em milhares Month potencialmente. Depois de descer este caminho para o ano passado, é um grande trabalho e barreira à entrada Você precisa obter o conhecimento e blueprint sua estratégia.4 2k Views View Upvotes Não para Reprodução. Tad Slaff estudou na Universidade de Colorado Boulder. Here é um simples passo-a-passo simples Guia sobre como usar um algoritmo de aprendizado de máquina para o comércio É uma visão geral básica e deve dar-lhe as informações que você precisa para construir o seu Eu tenho começado recentemente, lendo e aprendendo sobre aprendizagem de máquina Pode alguém jogar alguma luz em como ir aproximadamente ele ou melhor qualquer um pode compartilhar Seu ex Perience e alguns ponteiros básicos sobre como ir sobre ele ou pelo menos começar a aplicá-lo para ver alguns resultados de conjuntos de dados Como ambicioso faz este sound. Also, fazer mencionar sobre algoritmos padrão que deve ser tentado ou olhou ao fazer this. asked Feb 1 11 a 18 35. Parece haver 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 go, e sentar-se enquanto eles se aposentam. Meu conselho para you. Learn Estatísticas e aprendizagem de máquina primeiro, então se preocupe sobre como aplicá-los a um determinado problema Não há almoço livre 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 O ponto inteiro destes algoritmos está tentando encontrar uma maneira de ajustar um modelo aos dados e produzir o baixo viés ea variação na predição isto é que o Treinamento e teste de erro de previsão será baixa e semelhante Aqui está um exemplo de um sistema de comércio 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 básico 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 a evolução e aprendizado de máquina para otimização de carteira 2017 É uma revisão extensiva de diferentes abordagens de aprendizagem de máquina em comparação com comprar e - hold Depois de quase 200 páginas, eles chegam à conclusão básica Nenhum sistema de negociação foi capaz de superar o benchmark ao usar os custos de transação É desnecessário dizer que isso não Significa que ele 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. Como um dos 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 seria negar a sua vantagem Embora os nossos resultados podem dar suporte à hipótese de mercado que Não exclui a existência de sistemas que funcionem Pode ser como a teoria da probabilidade Especula-se que os avanços no campo da teoria de probabilidade aconteceu várias vezes, mas nunca compartilhado Isso pode ser devido à sua aplicação prática no jogo Então, novamente, talvez isso seja Todas as alquimias modernas Andr Christoffer Andersen Apr 30 13 at 10 01.Minha Conselho para Você Há vários Inteligência Artificial Inteligência Artificial ML ramos lá fora. Eu só tentei 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 algumas análises de sentimento too. Spend 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 Para combinar as 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 olhar para o Chatter O consenso geral entre os comerciantes é que a Inteligência Artificial é um voodoo Ciência, 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-lhe 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 nenhuma maneira é fácil. Minimização Overfitting Como já ouvimos antes, uma questão fundamental com algoritmos AI é overfitting aka dano datamining 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. Há várias maneiras de minimizar overfitting. Use um conjunto de validação não dá feedback para o algoritmo, mas ele permite que você detectar quando Seu algoritmo está começando potencialmente overfit isto é você pode parar o treinamento se você overfitting demais. Use a aprendizagem em linha da máquina elimina pela maior parte a necessidade para o back-testing e é muito aplicável para os algoritmos que tentam mak E predições do 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 aprendizagem estatística são úteis para trading.1 Primeiro os mencionados anteriormente alguns métodos estatísticos focados em trabalhar em conjuntos de dados ao vivo Significa que você sabe que você está observando apenas uma amostra de dados e você deseja extrapolar Você, portanto, tem que lidar com a amostra E fora de problemas de amostra, overfitting e assim por diante A partir deste 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 na amostra apenas de aprendizagem estatística. Ao vivo, as matemáticas aplicadas que lidam com eles tinham de 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 Vem da inovação xi, que é ii d. O objetivo da aprendizagem estatística é construir uma metodologia L ith como insumos uma observação parcial pi de X e ajustar progressivamente uma estimativa hat theta de theta, para que saibamos tudo o que é necessário Em X. Se você pensa em usar o aprendizado estatístico para encontrar os parâmetros de uma regressão linear podemos modelar o espaço de estado como este underbrace yx end right left begin ab 1 1 0 0 end right cdot underbrace x 1 epsilon end right que assim permite Observar y, xn em qualquer n aqui theta a, b. Então você precisa encontrar uma maneira de construir progressivamente um estimador de theta usando nossas observações Por que não uma descida gradiente na distância L2 entre y ea regressão C hat a, hat bn Soma yk - chapéu a, xk h Em b 2.Here gamma é um esquema de ponderação. Normalmente, uma boa maneira de construir um estimador é escrever corretamente os critérios para minimizar e implementar uma descida gradiente que irá produzir o esquema de aprendizagem L. Voltando ao nosso problema genérico original que precisamos de alguns Matemática aplicada para saber quando pares de sistemas dinâmicos em X, hat theta convergem, e precisamos saber como construir estimando esquemas L que convergem para o original theta. To dar-lhe ponteiros sobre tais resultados matemáticos. Now podemos voltar para o segundo Aspecto da aprendizagem estatística que é muito interessante para estrategistas comerciantes quant.2 Os resultados utilizados para provar a eficiência dos métodos de aprendizagem estatística pode ser usado para provar a eficiência dos algoritmos de negociação Para ver que é suficiente para ler novamente o sistema dinâmico acoplado que permite Para escrever aprendizagem estatística esquerda MF rho Mn, xi L pi Mn, fim n right. Now M são variáveis ​​de mercado, rho é subjacente PnL, L é uma estratégia de negociação Basta substituir a minimização de um critério por max Imitando o PnL. Veja, por exemplo, a divisão ótima de ordens entre pools de liquidez, uma aproximação de algoritmo stochatic por Gilles Pags, Sophie Laruelle, Charles-Albert Lehalle neste artigo, os autores mostram quem usar esta abordagem para dividir uma ordem otimamente em diferentes pools escuros simultaneamente Aprender a capacidade das piscinas para fornecer liquidez e usar os resultados para trade. The ferramentas de aprendizagem estatística pode ser usado para construir estratégias de negociação iterativa a maioria deles são iterativos e provar sua eficiência. A resposta curta e brutal é que você don t Primeiro, porque ML e estatísticas não é algo que você pode comandar bem em um ou dois anos Meu horizonte de tempo recomendado para aprender nada não trivial é 10 anos ML não é uma receita para ganhar dinheiro, mas apenas outro meio para observar a realidade Em segundo lugar, porque qualquer bom estatístico sabe Que a compreensão dos dados eo domínio do problema é 80 do trabalho É por isso que você tem estatísticos com foco em análise de dados de Física, em genômica, em sabermetrics Etc Para o registro, Jerome Friedman, co-autor da ESL citado acima, é um físico e ainda detém uma posição de cortesia em SLAC. So, o estudo de Estatística e Finanças por alguns anos Seja paciente Vá seu próprio way. Mileage pode vary. answered Feb 9 11 at 4 41.I totalmente de acordo Só porque você sabe aprendizagem de máquina e estatísticas, isso não implica que você sabe como aplicá-lo para financiar Dr. Mike agosto 10 11 em 20 25. Também uma coisa importante a lembrar é que você ganhou Estarem negociando contra pessoas, você estará negociando contra outros algoritmos de inteligência artificial que estão assistindo a sua pilha de negócios e estão furiosamente calculando as probabilidades de que o coletivo seria assustado por um declínio manufaturado e tendo essa pequena perda na criação de um pico Mergulhar e enganar todos aqueles AI s em parar, e depois rodar o mergulho de volta para ele e montar a onda, ganhando suas perdas O mercado de ações é um jogo de soma zero, tratá-lo como entrar em um jogo de boxe profissional, se você aren ta 20 Ano veterano, você está indo para lo Se Eric Leschinski 13 de fevereiro de 16 em 1 56.One aplicação básica é a previsão financeira distress. Get um monte de dados com algumas empresas que têm inadimplentes, e outros que não têm, com uma variedade de informações financeiras e ratios. Use um método de aprendizagem da máquina Como SVM para ver se você pode prever que as empresas serão padrão e que não. Use SVM no futuro para empresas de curto prazo de alta probabilidade e empresas de baixa probabilidade por defeito, com o produto das vendas a descoberto. Dizendo Picking moedas de um centavo na frente de rolos de vapor Você está fazendo o equivalente a vender um out-of-the-money colocar Neste caso, você vai fazer pequenos lucros durante anos, em seguida, ficar totalmente limpo quando o mercado derrete a cada 10 anos Ou assim Há também uma estratégia equivalente que compra out-of-the-money coloca eles perdem dinheiro durante anos, em seguida, fazer uma matança quando o mercado derrete Ver Talab s The Black Swan Contango 5 de junho 11 em 22 20.Remember que internacionais As empresas gastaram Vermelhos de bilhões de dólares e horas de homem nas melhores e mais brilhantes mentes de inteligência artificial nos últimos 40 anos, eu falei com algumas das torres de mente responsáveis ​​pelos alfas sobre Citadel e Goldman Sachs e a arrogância dos noviços para pensar Eles podem montar um algoritmo que vai toe toe com eles, e ganhar, é quase tão tolo como uma criança dizendo que ele vai saltar para a lua Boa sorte garoto, e cuidado com o espaço marciano Não dizer novo Campeões não podem ser feitas, mas as probabilidades são contra você Eric Leschinski 13 de fevereiro de 16 às 2 00.Uma possibilidade vale a pena explorar é usar o suporte vector ferramenta de aprendizagem máquina na plataforma Metatrader 5 Em primeiro lugar, se você não estiver familiarizado com ele, Metatrader 5 é uma plataforma desenvolvida para que os usuários implementem negociação algorítmica em mercados de forex e CFD Eu não tenho certeza se a plataforma pode ser estendida para ações e outros mercados É tipicamente usado para técnicas de análise com base em estratégias ou seja, usando indicadores baseados em hist Orical dados e é usado por pessoas que procuram para automatizar a sua trading. The Support Vector Machine Learning Tool foi desenvolvido por uma da comunidade de usuários para permitir que as máquinas de vetores de apoio a ser aplicada a indicadores técnicos e aconselhar sobre os comércios Uma versão demo gratuita do Ferramenta pode ser baixado aqui se você quiser investigar mais. Como eu entendo, a ferramenta usa dados de preços históricos para avaliar se negócios hipotéticos no passado teria sido bem sucedida então leva esses dados, juntamente com os valores históricos a partir de uma série de personalizável Indicadores MACD, etc osciladores, e usa isso para treinar uma máquina de vetores de apoio Então, ele usa a máquina de vetores de suporte treinado para sinalizar compra futura negociações de venda Um desciption melhor pode ser encontrado no link. I jogou com um pouco com alguns muito Resultados interessantes, mas como com todas as estratégias de negociação algorítmica eu recomendo sólido voltar para a frente de testes antes de levá-lo para o mercado ao vivo. Y, mas apesar de ser usado como um exemplo popular no aprendizado de máquina, ninguém nunca conseguiu uma previsão de mercado de ações. Não funciona por várias razões verificar caminhada aleatória por Fama e um pouco de outros, tomada de decisão racional falácia, suposições erradas , Mas o mais atraente é que se ele iria trabalhar, alguém seria capaz de tornar-se insanamente ricos em meses, basicamente, possuir todo o mundo Como isso não está acontecendo e você pode ter certeza de todos os bancos têm tentado, temos boas provas , Que simplesmente não funciona. Além disso, como você acha que vai conseguir o que dezenas de milhares de profissionais não conseguiram, usando os mesmos métodos que eles têm, além de recursos limitados e apenas versões básicas de seus métodos. 7 47. Apenas um aparte no que diz respeito a sua razão mais atraente estratégias têm limites de capacidade, ou seja, níveis além do qual o seu impacto no mercado iria exceder o alfa disponível, mesmo assumindo que você tinha capital ilimitado Eu não tenho certeza o que você quer dizer com um stock ma Rket previsão índice futuros ETF s, mas certamente há uma abundância de pessoas fazendo previsões de curto prazo, e beneficiando deles, todos os dias em mercados afekz Nov 23 15 em 13 19.I ecoar muito do que Shane escreveu Além de ler ESL, Em primeiro lugar, os problemas que traço em outra questão sobre esta troca são muito relevantes. Em particular, o problema do viés de datamining é um sério obstáculo a qualquer estratégia baseada na aprendizagem de máquinas. Vai detalhar o que eu fiz para fazer aproximadamente 500k de negociação de alta freqüência de 2009 a 2018 Desde que eu estava negociando completamente independente e não estou mais executando o meu programa estou feliz de dizer todos os Meus negociação foi principalmente em Russel 2000 e futuros DAX contratos. Para meu sucesso, eu acredito, não estava em uma equação financeira sofisticada, mas sim na concepção do algoritmo global que ligou muitos componentes simples e usou aprendizado de máquina para otimizar para máximo prof Itability Você ganhou t necessidade de conhecer qualquer terminologia sofisticada aqui, porque quando eu configurar o meu programa era tudo baseado na intuição Andrew Ng s incrível aprendizagem máquina curso ainda não estava disponível - btw se você clicar nesse link você vai 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 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 em Um tempo Isto 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 tratada para cima e para baixo exatamente os mesmos indicadores de agrupamento 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á era ele considerado como um Comércio executado Isso foi inexato, porque o tempo de atraso real foi inconsistente e unreported. When eu coloquei ofertas ou ofertas eu tive que olhar para o fluxo de execução de comércio fornecido pela API e usá-los para medir quando a minha ordem teriam sido executados contra Para fazer isso direito eu Tinha que rastrear a posição da minha ordem na fila É um sistema first-in first-out Mais uma vez, eu não poderia fazer isso perfeitamente, mas fiz uma melhor aproximação. Para refinar a minha simulação de execução de ordem o que fiz foi pegar meus arquivos de log de Live trading através da API e compará-los a arquivos de log produzidos por negociação simulada a partir do mesmo período de tempo exato eu era capaz de obter a minha simulação para o ponto que era bastante preciso e para as peças que eram impossíveis de modelo, Pelo menos produzir resultados que foram estatisticamente semelhantes nas métricas que eu pensei que eram importantes. Fazendo negócios rentáveis. Com um modelo de simulação de ordem no lugar eu poderia agora enviar ordens no modo de simulação e ver um PL simulado Mas como seria m Y sistema saber quando e onde comprar e vender. As previsões de movimento de preço foram um ponto de partida, mas não toda a história O que eu fiz foi criar um sistema de pontuação para cada um dos 5 níveis de preços sobre a oferta e oferta Estes incluíam um nível acima do interior Lance para uma ordem de compra e um nível abaixo da oferta interna para uma ordem de venda. Se a pontuação em qualquer nível de preço foi acima de um 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 para mim em um determinado preço mudou as probabilidades estatísticas do comércio. As variáveis ​​usadas nesta etapa Foram todos sujeitos a otimização Isso foi feito da mesma maneira que eu otimizado variáveis ​​nos indicadores de movimento de preço, exceto neste caso eu estava otimizando para linha de fundo P L. O que o meu programa ignorado. Quando negociação como seres humanos que muitas vezes têm poderosas emoções e Preconceitos que podem levar a decisões menos do que o ideal Claramente eu não queria codificar esses preconceitos Aqui estão alguns fatores que meu sistema ignorou. O preço que uma posição foi inserida - Em um escritório de comércio é bastante comum to hear conversation about the price at which someone is long or short as if that should effect their future decision making While this has some validity as part of a risk reduction strategy it really has no bearing on the future course of events in the market Therefore my program completely ignored this information It s the same concept as ignoring sunk costs. Going short vs exiting a long position - Typically a trader would have different criteria that determines where to sell a long position versus where to go short However from my algorithms perspective there was no reason to make a distinction If my algorithm expected a downward move selling was a good idea regardless of if it was currently long, short, or flat. A doubling up strategy - This is a common strategy where traders will buy more stock in the event that there original trade goes against them This results in your average purchase price being lower and it means when or if the stock turns around you ll be set to make your mon ey back in no time In my opinion this is really a horrible strategy unless you re Warren Buffet You re tricked into thinking you are doing well because most of your trades will be winners The problem is when you lose you lose big The other effect is it makes it hard to judge if you actually have an edge on the market or are just getting lucky Being able to monitor and confirm that my program did in fact have an edge was an important goal. Since my algorithm made decisions the same way regardless of where it entered a trade or if it was currently long or short it did occasionally sit in and take some large losing trades in addition to some large winning trades But, you shouldn t think there wasn t any risk management. To manage risk I enforced a maximum position size of 2 contracts at a time, occasionally bumped up on high volume days I also had a maximum daily loss limit to safeguard against any unexpected market conditions or a bug in my software These limits were enforced in my code bu t also in the backend through my broker As it happened I never encountered any significant problems. Running the algorithm. From the moment I started working on my program it took me about 6 months before i got it to the point of profitability and begun running it live Although to be fair a significant amount of time was learning a new programming language As I worked to improve the program I saw increased profits for each of the next four months. Each week I would retrain my system based on the previous 4 weeks worth of data I found this struck the right balance between capturing recent market behavioral trends and insuring my algorithm had enough data to establish meaningful patterns As the training began taking more and more time I split it out so that it could be performed by 8 virtual machines using amazon EC2 The results were then coalesced on my local machine. The high point of my trading was October 2009 when I made almost 100k After this I continued to spend the next four months t rying to improve my program despite decreased profit each month Unfortunately by this point I guess I d implemented all my best ideas because nothing I tried seemed to help much. With the frustration of not being able to make improvements and not having a sense of growth I began thinking about a new direction I emailed 6 different high frequency trading firms to see if they d be interested in purchasing my software and hiring me to work for them Nobody replied I had some new startup ideas I wanted to work on so I never followed up. UPDATE - I posted this on Hacker News and it has gotten a lot of attention I just want to say that I do not advocate anyone trying to do something like this themselves now You would need a team of really smart people with a range of experiences to have any hope of competing Even when I was doing this I believe it was very rare for individuals to achieve success though I had heard of others. There is a comment at the top of the page that mentions manipulated sta tistics and refers to me as a retail investor that quants would gleefully pick off This is a rather unfortunate comment that s simply not based in reality Setting that aside there s some interesting comments. UPDATE 2 - I ve posted a follow-up FAQ that answers some common questions I ve received from traders about this post.

No comments:

Post a Comment