Sunday 24 September 2017

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


Eu tenho tido algumas conversas muito interessantes desde que eu ofereci a minha estrutura de negociação intraday não-público em troca de informações sobre estratégias rentáveis, que é por isso que eu Pretende prolongar esta chamada inicialmente limitada no tempo de forma indefinida. Note que eu não estou procurando idéias de estratégia. Eu tenho muitas dessas eu mesmo. O desafio não está em vir acima com uma idéia, mas em escolher o caminho certo e testá-lo até o final, quando youll quer saber que funciona ou que ele doesnt. O fator crítico aqui é o tempo. Então, o que eu essencialmente negocio é o tempo que investei no desenvolvimento de uma sólida estrutura de negociação intradia intradía contra o tempo que você investiu no desenvolvimento de uma estratégia de negociação rentável. Pode ser uma estratégia de estoque, ETF, futuro ou opção. Todas as discussões e informações trocadas serão mantidas confidenciais. Estou naturalmente aberta a puramente discutir idéias, mas por favor não espere que eu testá-los para você e não se queixar se eu implementá-los sem pedir sua aprovação. Chamada de propostas Procura de estratégias de negociação com backtests rentáveis ​​Até 15 de junho. Estou aceitando propostas para estratégias promissoras de negociação em ações, moedas e índices de estoque de commodities. A estratégia deve ser rentável no backtesting e tem uma proporção de sharpe anualizada de pelo menos 1,0. No dia 1º de julho, as duas estratégias mais promissoras serão selecionadas e seus autores poderão escolher uma das seguintes opções: 1) Obter uma cópia completa e gratuita do quadro de negociação reforçada e não pública baseado em R que desenvolvi e usei Desde 2012 e que os autores podem usar para a negociação ao vivo suas estratégias com Interactive Brokers. (A versão pública simplificada pode ser baixada aqui) 2) Entre em um acordo de cooperação no qual eu comprometo-se a implementar sua estratégia em R e em papel, por um período máximo de três meses. Todos os negócios individuais serão compartilhados com os autores quando eles ocorrem. Além disso, o código R que é específico para a estratégia (não o código da estrutura de negociação) será entregue aos autores da estratégia. O que enviar: Uma descrição por escrito da estratégia mais uma lista de negócios mais o retorno timeseries do backtest ou executável Roctavepython código que calcula diretamente o backtest return timeseries, juntamente com o conjunto de dados completo dos preços utilizados no backtest. Enviar para o meu e-mail disponível na seção Contato Atualização do puro R Intraday Trading Framework Finalmente encontrei o tempo para fazer isso. Há muito tempo. O framework agora é executado com as versões mais recentes (unix) do IB TWSGW (versão 9493 e superior). Isto em si exigiu uma reescrita parcial de várias funções do grande, mas agora um pouco desatualizado pacote IBrokers R por Jeff Ryan. Também a configuração padrão para negociação EURUSD foi atualizado para que ele é agora um pedaço de bolo para executar o exemplo dummy estratégia. Basta clonar o repositório git para sua máquina local. GithubcensixINTRADAY-PartAB e siga o README. Algo sobre Hardware Ainda sou fã de possuir meu próprio metal. Claro, fazer coisas com imagens de máquina configuráveis ​​na nuvem é popular porque você não tem que passar pelo aborrecimento de gerenciar seu próprio hardware, mas, não é que hassle realmente apenas um problema para grandes organizações onde centenas de usuários têm de ser mantidos felizes em Custo mínimo. Assim é a nuvem não só uma solução para um problema de pessoas que têm de gerenciar a escala, mas estão ao mesmo tempo tentando vender-em que a solução para o joe individual lá fora que, vamos enfrentá-lo, doesnt realmente precisa dele. Enfim, como eu disse, eu sou um fã de possuir meu próprio metal. O hardware acessível barato pode ajudá-lo a um longo caminho se você tomar o tempo para configurá-lo corretamente. Uma área de trabalho RAM de 16-64Gb com uma ou duas GPUs fará tudo o que você precisar. Parece que as estratégias de backtesting usam mais recursos de computação do que o real live trading, razão pela qual estes dias você pode configurar e executar uma estratégia intraday de qualquer laptop decente com confiança, enquanto que para o backtesting e pesquisa que você realmente iria querer o CPU RAM GPU monstro Acima ou um pequeno e pequeno cluster de supercomputas, como descrevi recentemente aqui. Pure R Intraday trading framwork Download completo disponível Eu fiz INTRADAY-PartA. tar. gz e INTRADAY-PartB. tgz disponíveis para download. Censixdownloads. html Encontrar relações entre ativos que podem ser usados ​​para arbitragem estatística Em vez de se concentrar em prever a direção de preços ea volatilidade de preços com modelos não-lineares derivados com métodos de aprendizagem automática, uma alternativa seria tentar descobrir relações de preço exploráveis ​​entre ativos da mesma classe E reagir (comércio) quando o erro de preços acontece, ou seja, fazer arbitragem estatística. De certa forma, isso é de alguma forma mais fácil do que tentar prever os preços, uma vez que a única coisa que se deve fazer é encontrar uma relação relativamente estável, linear ou não linear entre um grupo de pelo menos dois ativos e assumir que, a partir do momento em que Sua detecção, essa relação continuará por algum tempo no futuro. A negociação com base nessa suposição é, então, muito mais um processo reativo que é desencadeado por movimentos de preços que divergem significativamente da relação modelada. Tradicional Pair Trading e negociação de ativos em um VECM (Vector Error Correction Model) relação são bons exemplos para statarb usando modelos lineares. Então, por que não usar uma simples rede neuronal de uma camada ou mesmo um RBM para descobrir uma relação de preços não-linear entre dois ativos não-cointegrados e se esse processo de descoberta for bem-sucedido, troque-o de forma semelhante a um par clássico. As coisas se tornam ainda mais interessantes quando os grupos com mais do que apenas dois ativos são considerados. Este seria então o equivalente não-linear de um VECM. Variável de Seleção de Recursos vs. Profundidade Digamos que temos um alvo de previsão de timeseries univariáveis ​​que pode ser de regressão de tipo ou classificação, e nós precisamos decidir quais recursos de entrada selecionar. Mais concretamente, temos um grande universo de timeseries que podemos usar como entradas e gostaríamos de saber quantos devemos escolher (largura) e também quanto tempo atrás queremos buscar cada um (profundidade). Há um espaço bidimensional de escolhas, delimitado pelos seguintes quatro casos extremos, sob o pressuposto de que temos um total de N séries e podemos, no máximo, olhar para trás K timestaps: (1) escolher apenas uma série e lookback Um timestep, (2) escolher apenas uma série e lookback K timesteps, (3) escolher N series e lookback um timestep, (4) escolher N series e lookback K timesteps. A escolha ótima provavelmente não será uma dessas, uma vez que (1) e (2) podem não conter informações predictoras suficientes e (3) e especialmente (4) não serão viáveis ​​devido à computação de contstraints ou conterem muito ruído aleatório. A maneira sugerida de se aproximar disso é começar pequeno em (1), ver qual o desempenho que você obtém e, em seguida, aumentar o tamanho do espaço de entrada, seja em largura ou em profundidade, até que você tenha alcançado um desempenho satisfatório de predição ou até que você tenha esgotado Seus recursos de computação e precisam abandonar toda a abordagem: (ou comprar um novo (fazenda de) desktop (s) :) Usando Autocodificadores Empilhados e Máquinas Boltzmann Restritas em R 12 de fevereiro de 2014 Stacked Autoencoders (SAs) e Máquinas Restritas Boltzmann RBMs) são modelos muito poderosos para aprendizagem não supervisionada. Infelizmente, no momento da escrita, parece que não existem implementações R diretas disponíveis, o que é surpreendente, uma vez que ambos os tipos de modelos existem por um tempo e R possui implementações para muitos outros tipos de modelos de aprendizagem de máquinas. Como uma solução alternativa, SAs poderia ser implementado usando um dos vários pacotes de rede neural de R rapidamente (nnet, AMORE) e RBMs, bem, alguém teria que escrever uma boa implementação de R para eles. Mas dado que o treinamento de ambos os tipos de modelos requerem muitos recursos computacionais, também queremos uma implementação que possa fazer uso de GPUs. Então, no momento, a solução mais simples que parece ter é usar Theano. Ele pode usar GPUs e fornece implementações de autocodificadores (Denoising) empilhados e RBMs. Além disso, o código PythonTheano para várias outras variantes mais exóticas da Máquina Boltzmann está flutuando em torno da rede também. Podemos usar rPython para chamar essas funções Python de R, mas o desafio é o dado. Obtendo grandes conjuntos de dados para a frente e para trás entre R e Python sem usar a serialização ascii que rPython implementa (muito lento) precisa ser resolvido. Uma implementação pelo menos igualmente potente de autoencoders que suporta o uso de GPU está disponível através da estrutura Torch7 (demo). No entanto, as funções Torch7 são chamadas de usar lua e chamá-las de dentro de R, em vez disso, exigirá algum trabalho no nível C. Em conclusão: Use Theano (Python) ou Torch7 (lua) para modelos de treinamento com suporte a GPU e escreva os modelos treinados para arquivar. Em R, importe o modelo treinado do arquivo e use para previsão. Update 25 April 2014: A seguinte solução agradável Call Python de R através de Rcpp deve nos trazer um passo mais perto de usar Theano diretamente da R. Quais Freqüências para o Comércio. January 13, 2014 Quando tentar encontrar testes padrões exploráveis ​​do mercado que um poderia negociar como um comerciante de varejo, uma das primeiras perguntas é: Que freqüências negociando a olhar Monthly Weekly Daily Ou intraday em qualquer lugar entre 5 segundos a 1 hora Com tempo limitado disponível para Realizando pesquisas em todos esses prazos, isso se torna uma questão importante para responder. Eu e outros temos observado que parece haver uma relação simples entre a freqüência de negociação ea quantidade de esforço necessária para encontrar uma estratégia rentável que seja puramente quantitativa e tenha um risco aceitável. Em suma: Quanto menor (mais lenta) a freqüência que você deseja negociar, mais inteligente sua estratégia rentável precisa ser. Como exemplo, pode-se olhar para o fim (muito) alta freqüência do espectro, onde as estratégias de mercado baseado em matemática muito simples pode ser muito rentável, se você conseguir estar perto o suficiente para o centro de mercado. Tomando um grande salto para o reino de freqüência diária, está se tornando muito mais difícil encontrar estratégias quantitativas que são rentáveis, enquanto ainda está sendo baseado em matemática bastante simples. Negociação em intervalos semanais e mensais, usando métodos quantitativos simples ou indicadores técnicos é apenas uma receita muito boa para o desastre. Assim, assumindo por um momento que essa relação é verdadeira e considerando que podemos e queremos usar sofisticadas técnicas de aprendizagem de máquinas em nossas estratégias de negociação, poderíamos começar com uma janela de freqüência semanal e trabalhar o nosso caminho rumo a freqüências mais altas. A negociação semanal não precisa ser automatizada e pode ser feita a partir de qualquer interface de corretagem baseada na web. Poderíamos desenvolver um saco de estratégias, usando dados históricos publicamente disponíveis em combinação com o nosso algoritmo de aprendizagem favorito para encontrar padrões negociáveis ​​do mercado e, em seguida, executar a estratégia manualmente. Nesta escala, todo o esforço deve ir para encontrar e aperfeiçoar a estratégia quantitativa e muito pouco pensamento precisa ser colocado em execução de comércio. Esforço de automação de comércio: 0. Inteligência de estratégia necessária: 100 Negociação diária deve ser automatizada, a menos que você realmente pode dedicar uma parte fixa de seu dia para monitorar os mercados e executar negócios. A integração de algoritmos de aprendizagem de máquina com negociação diária automatizada não é uma tarefa trivial, mas pode ser feita. Esforço de automação de comércio: 20, Inteligência de estratégia necessária: 80 Em prazos intradiários, que vão desde minutos e segundos até sub-segundos, o esforço que você terá de realizar para automatizar seus negócios pode ficar em qualquer lugar na faixa entre 20 e 90. Felizmente, A escala de tempo torna-se a mais estúpida sua estratégia pode ser, mas mudo é naturalmente um conceito relativo aqui. Esforço de automação de comércio: 80, Inteligência de estratégia necessária: 20 Que recursos usar. Hand-crafted vs aprendido 10 de dezembro de 2013 Em um ponto no projeto de um (máquina) sistema de aprendizagem você inevitável perguntar-se que recursos para alimentar em seu modelo. Há pelo menos duas opções. O primeiro é usar recursos artesanais. Esta opção irá normalmente dar-lhe bons resultados se os recursos são bem concebidos (que, naturalmente, é uma tautologia, uma vez que você só iria chamá-los bem concebidos se lhe deram bons resultados.). Projetar recursos artesanais requer conhecimento especializado sobre o campo para o qual o sistema de aprendizagem será aplicado, ou seja, classificação de áudio, reconhecimento de imagem ou em nosso caso de negociação. O problema aqui é que você não pode ter qualquer um desses conhecimentos especializados (ainda) e será muito difícil de vir ou tomar um monte de tempo ou mais provável ambos. Portanto, a alternativa é aprender os recursos dos dados ou, em outras palavras, usar o aprendizado não supervisionado para obtê-los. Um requisito aqui é que você realmente precisa de muitos dados. Muito mais do que você precisaria para hand-crafted recursos, mas, em seguida, novamente ele doesnt tem que ser rotulado. O benefício no entanto é claro. Você realmente não precisa ser um especialista no campo específico que você projetar o sistema para, ou seja, negociação e finanças. Então, enquanto você ainda precisa descobrir qual subconjunto dos recursos aprendidos será melhor para o seu sistema de aprendizagem, isso também é algo que você teria a ver com os recursos feitos à mão. Minha sugestão: Tente desenhar algumas características feitas à mão por si mesmo. Se eles não executar e você tem boas razões para acreditar que é possível ter melhores resultados do que aqueles que você está recebendo, use métodos de aprendizagem sem supervisão para aprender recursos. Você pode até criar um sistema híbrido que use recursos projetados e aprendidos juntos. Por que eu uso Open Source ferramentas para a construção de aplicações comerciais 19 de novembro de 2013 Quando eu comecei a olhar para fazer a minha própria negociação automatizada, eu tinha três requisitos sobre o conjunto de ferramentas que eu queria usar. 1) Eles devem custar o mínimo possível para me começar, mesmo que isso significava que eu tinha que fazer um monte de programação e personalizações próprio (que custaria tempo) 2) Deve haver uma comunidade de pessoas afins lá fora Usando essas mesmas ferramentas para uma finalidade similar. 3) As ferramentas devem permitir que eu vá tão profundamente nas entranhas do sistema como necessário, mesmo se no começo meu objetivo era mais para descobrir o básico. Eu não queria me encontrar em uma situação em que dois anos abaixo da linha eu precisaria mudar para um conjunto diferente de ferramentas, só porque os que eu tinha começado com não me permitem fazer o que eu queria por causa de problemas com Fontes fechadas e licenciamento restritivo. Como resultado, eu vim para escolher R como a minha língua de escolha para o desenvolvimento de algoritmos de negociação e eu comecei a usar Interactive Brokers, uma vez que fornecem uma API para interface com seu sistema de corretagem. Embora existam muitas ferramentas de negociação agradável que se conectam ao IB Trader Workstation e alguns podem ser usados ​​para negociação automatizada, nenhum deles oferece o mesmo poder, flexibilidade e apoio comunitário que o projeto R tem. Além disso, R tem realmente um incrível repositório de livre e muito adavanced estatística e pacotes de aprendizagem da máquina, algo que é essencial se você quiser criar algoritmos de negociação. Copyright copy Censix 2013 - 2015Computador Estratégias de Negociação Geradas Plataforma Exporte suas estratégias para MetaTrader4, NinjaTrader ou Tradestation com código-fonte completo Melhorar as estratégias existentes, alterando as regras de negociação Otimizar sua estratégia usando a otimização Walk-Forward No StrategyQuant você não precisa definir as regras de negociação de Seu novo sistema comercial. Ele usa técnicas de aprendizagem de máquina para gerar novas e exclusivas estratégias de negociação. Nenhum conhecimento de programação ou de negociação é necessário. Ele é capaz de criar estratégias que você como um comerciante wouldnt pensar, e é capaz de fazê-lo rapidamente e testar as estratégias geradas imediatamente. StrategyQuant pode gerá-lo centenas de estratégias de troca novas - cada único, backtested em datatimeframes múltiplos para assegurar a robustez máxima. As estratégias resultantes podem ser salvas como uma estratégia Tradestation em EasyLanguage, estratégia NinjaTrader C ou MetaTrader 4 Expert Advisor com código-fonte completo. Robusto backtesting e análise estratégica StrategyQuant inclui a análise de desempenho de estratégia mais complexa do mercado. Ele contém várias ferramentas poderosas que permitem testar sua estratégia de robustez para evitar ajuste de curva e otimização, incluindo Monte Carlo, análise Walk-Forward e gráficos 3D. Plataformas suportadas StrategyQuant gera estratégias de negociação que podem ser usadas nas seguintes plataformas de negociação: Plataforma de negociação favorita para forex e CFDs Plataforma de negociação em destaque para futuros, ações, ETFs, commodities Como exatamente funciona Vamos dizer que você quer criar uma nova estratégia de negociação para EURUSD: Escolha a origem de dados EURUSD, escolha o período eo intervalo de tempo. Defina em quais blocos a estratégia deve consistir (indicadores, dados de preços, operadores, etc.). Definir quais devem ser os parâmetros da estratégia resultante - por exemplo, o lucro líquido total deve ser superior a 5000, Drawdown deve ser inferior a 20, ReturnDD razão deve ser acima de 4, deve produzir pelo menos 300 comércios. Em seguida, basta acertar o botão Iniciar e StrategyQuant fará o trabalho. Ele irá gerar aleatoriamente novas estratégias de negociação usando blocos de construção que você selecionou, os testa imediatamente e armazena aqueles que se encaixam seus requisitos para sua revisão. Você pode então rever as estratégias recentemente geradas, realizar testes adicionais ou exportá-los como MetaTrader4 EAs. É uma incrível peça de software que eu comprei StrategyQuant em dezembro de 2011 e têm vindo a usá-lo diariamente desde então, basta colocar - é uma incrível peça de software. Até agora eu criei vários EAs que funcionam muito bem no backtest, tanto que eu os adicionei às minhas contas ao vivo. No passado eu estava desapontado com os resultados comerciais EA e até hoje eu estou convencido de que quando um EA comercial rentável é liberado que os corretores rapidamente encontrar uma maneira de neutralizá-lo em seu fim através do MT4 corretor plugins. Com GB eu posso automaticamente desenvolver e testar estratégias de negociação que ninguém (especialmente meu corretor) no mundo sabe sobre, ou, está usando e lucrar com eles. Suporte para o produto também é excelente com um fórum de membros, instruções detalhadas e novas versões. Parabenizo a Mark ea equipe do StrategyQuant por este software que muda o jogo. Muitos agradecimentos mais uma vez - Neil Rickaby Começar a desenvolver seus próprios sistemas automatizados de negociação Nós todos sabemos o quão difícil é encontrar uma estratégia de negociação rentável que pode ser negociado mecanicamente. Com StrategyQuant você será capaz de projetar seus próprios sistemas de negociação automatizados. Em vez de comprar EAs desenvolvido por outra pessoa você pode simplesmente gerar seus próprios. Você pode até mesmo gerar um portfólio de EAs diferentes para o comércio em pares diferentes. A abordagem usada em StrategyQuant é o futuro da negociação automática, e StrategyQuant é a melhor e mais complexa ferramenta disponível para os comerciantes forex. StrategyQuant v. 3.8 Licença de por vida com todos os futuros upgrades de graça Possibilidade de gerar um número ilimitado de estratégias de negociação Exportação simples para MT4 EA, NinjaTrader C ou Tradestation EasyLanguage Acesso ao fórum da comunidade privadaLocalização de páginas usa cookies para melhorar a funcionalidade eo desempenho e fornecer propaganda. Se você continuar navegando no site, você concorda com o uso de cookies neste site. Veja nosso Contrato de Usuário e Política de Privacidade. O Slideshare usa cookies para melhorar a funcionalidade e o desempenho e para fornecer publicidade relevante. Se você continuar navegando no site, você concorda com o uso de cookies neste site. Consulte nossa Política de Privacidade e o Contrato do Usuário para obter detalhes. Explore todos os seus tópicos favoritos no aplicativo SlideShare Obtenha o aplicativo SlideShare para Salvar para mais tarde, mesmo desconectado Continue para o site móvel Upload Login Signup Toque duas vezes para diminuir o zoom Troca Algorítmica e Aprendizado de Máquinas por Michael Kearns, Professor de Ciência da Informática e da Informação Este SlideShare LinkedIn Corporation cópia 2017

No comments:

Post a Comment