Friday 18 August 2017

Estratégias De Negociação De Máquinas Aprendizagem Em Pares


Aprendizagem de máquinas e negociação automatizada O grande curto (Eu gosto) Pesquisando estratégias de negociação com backtests rentáveis ​​- UPDATE Eu tive algumas conversas muito interessantes desde que eu ofereci o meu quadro de negociação intradía não público em troca de informações sobre estratégias rentáveis, e é por isso que eu Quer prolongar indefinidamente esta chamada inicialmente limitada no tempo. Note que não estou à procura de ideias de estratégia. Eu tenho muitos desses eu mesmo. O desafio não consiste em chegar a uma idéia, mas em escolher o caminho certo e testá-lo até o final, quando você sabe que funciona ou não. 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. Eu, claro, estou aberto para discutir apenas idéias, mas não espere que eu as teste para você e não me quebre se as implemento 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 de negociação promissoras sobre ações, moedas e índices de commodities de ações. A estratégia deve ser rentável no backtesting e tem uma proporção de sharpe anualizada de pelo menos 1,0. Em 1. de julho, as duas estratégias mais promissoras serão selecionadas e seus autores podem escolher uma das seguintes opções: 1) Obtenha uma cópia completa e gratuita do quadro de negociação aprimorado e não-público baseado em R que desenvolvi e usei Desde 2012 e que os autores podem usar para negociar 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 ocorrerem. Além disso, o código R que é específico da estratégia (e não o código da estrutura comercial) será entregue aos autores da estratégia. O que enviar: uma descrição escrita da estratégia mais uma lista de trades mais os timeseries de retorno do backtest ou código de octava Python executável que calcula diretamente os timeseries de retorno do backtest, juntamente com o conjunto de dados completo dos preços usados ​​no backtest. Envie para o meu e-mail disponível na seção Contato Atualização do quadro de negociação intraday puro da R Finalmente achei o tempo para fazer isso. Muito atrasado. A estrutura agora é executada com as versões mais recentes (unix) do IB TWS GW (versão 9493 e superior). Isso, por si só, exigiu uma reescrita parcial de várias funções do pacote IBrokers R, excelente, mas agora desatualizado, de Jeff Ryan. Além disso, a configuração padrão para a negociação de EURUSD foi atualizada para que seja agora um pedaço de bolo para executar a estratégia simulada de exemplo. Basta clonar o repo git para sua máquina local. Github censix INTRADAY-PartAB e siga o README. Algo sobre Hardware Eu ainda sou um fã de possuir meu próprio metal. Claro, fazer as coisas com imagens de máquinas configuráveis ​​na nuvem é popular porque você não precisa passar pelo incômodo de gerenciar seu próprio hardware, mas não é esse aborrecimento realmente apenas um problema para grandes organizações, onde centenas de milhares de usuários devem ser mantidos felizes A um custo mínimo. Então, a nuvem não é apenas uma solução para um problema de pessoas que precisam gerenciar a escala, mas ao mesmo tempo tentam vender - naquela solução para o indivíduo que está lá, que, enfrentá-lo, realmente não precisa disso. Enfim, como eu disse, sou fã de possuir meu próprio metal. O hardware barato na plataforma pode ajudá-lo muito, se você tomar o tempo necessário 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 muito mais recursos de computação do que o comércio real, e é por isso que atualmente você pode configurar e executar uma estratégia intradiária de qualquer laptop decente com confiança, enquanto que para o backtesting e a pesquisa, você realmente gostaria que o monstro GPU GPU da RAM 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. Censix downloads. html Encontrar relacionamentos entre ativos que podem ser usados ​​para arbitragem estatística Em vez de se concentrar em prever a direção do preço e a volatilidade dos preços com os modelos não-lineares derivados dos métodos de aprendizado da máquina, uma alternativa seria tentar descobrir relações de preços exploráveis ​​entre ativos do mesmo Classificar e reagir (comércio) quando o erro de preços acontece, ou seja, fazer arbitragem estatística. Em certo sentido, isso é de alguma forma mais fácil do que tentar prever os preços, uma vez que o único que se faz é 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 de Sua detecção, essa relação continuará por algum tempo no futuro. Negociar sob este pressuposto é então muito um processo reativo que é desencadeado por movimentos de preços que divergem significativamente do relacionamento modelado. Parceria tradicional A negociação e a negociação de ativos em uma relação VECM (Vector Error Correction Model) são bons exemplos para statarb usando modelos lineares. Então, por que não usar uma rede neural simples de uma camada ou mesmo um RBM para descobrir uma relação de preço não-linear entre dois ativos não cointegrados e se esse processo de descoberta for bem-sucedido, troque-o de maneira semelhante a um par clássico. As coisas se tornam ainda mais interessantes quando 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 insumos e gostaríamos de saber o número de quais devemos escolher (largura) e também quanto tempo atrás queremos procurar por 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 séries N e podemos, no máximo, olhar para trás K timesteps: (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 one timestep, (4) escolher N série e Kback timelessps. A escolha ótima provavelmente não será uma dessas, uma vez que (1) e (2) podem não conter informações suficientes e (3), e especialmente (4) não serão viáveis ​​devido ao processamento de sinais ou conter muito ruído aleatório. A maneira sugerida de se aproximar disso é começar pequena em (1), ver o desempenho que você obtém e, em seguida, aumentar o tamanho do espaço de entrada, tanto em profundidade quanto em profundidade, até que você tenha atingido um desempenho de previsão satisfatório ou até que você esgotou Seus recursos de computação e precisam abandonar toda a abordagem :( ou comprar uma nova (farm of) desktop (s) :) Usando Autoencoders Empilhados e Máquinas Boltzmann Restritas em R 12 de fevereiro de 2014 Autoencoderes Empilhados (SAs) e Máquinas Boltzmann Restritas ( 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 solução alternativa, as SAs podem ser implementadas usando um dos vários pacotes de redes neurais de R bastante rápido (nnet, AMORE) e RBMs, bem, alguém deveria escrever uma boa implementação R para eles. Mas dado que o treinamento de ambos os tipos de modelos requer muitos recursos computacionais, também queremos uma implementação que possa usar GPUs. Portanto, no momento, a solução mais simples que parece ter é usar Theano. Ele pode usar GPUs e fornece implementações de autoencoders e RBMs empilhados (desativados). Além disso, o código Python Theano para várias outras variantes mais exóticas da Máquina Boltzmann está flutuando ao redor da rede também. Podemos usar rPython para chamar essas funções Python de R, mas o desafio é o dado. Obter grandes conjuntos de dados de um lado a outro 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 de GPU e escreva os modelos treinados para o arquivo. Em R, importe o modelo treinado a partir do arquivo e use para predição. Atualização 25 de abril de 2014: A seguinte solução agradável Ligue para Python de R para Rcpp deve nos aproximar um pouco de usar Theano diretamente de R. What Frequencies to Trade. 13 de janeiro de 2014 Ao tentar encontrar padrões de mercado exploráveis ​​que se poderia negociar como comerciante de varejo, uma das primeiras questões é: quais frequências de negociação para olhar Mensal Semanal Diariamente ou intradía 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 a ser respondida. Eu e outros observamos que parece haver uma relação simples entre a freqüência comercial e a quantidade de esforço necessária para encontrar uma estratégia lucrativa que seja puramente quantitativa e tenha um risco aceitável. Em resumo: quanto menor (mais lento) a frequência em que deseja trocar, mais inteligente será sua estratégia lucrativa. Tradefreqvssmartness Como exemplo, pode-se olhar para o fim (muito) de alta freqüência do espectro, onde as estratégias de mercado baseadas em matemática realmente muito simples podem ser muito lucrativas, se você conseguir ficar perto o suficiente para o mercado. Fazendo um grande salto no domínio da frequência diária, está se tornando muito mais difícil encontrar estratégias quantitativas que são lucrativas enquanto ainda estão baseadas em matemática bastante simples. Negociar semanalmente e mensalmente, usando métodos quantitativos simples ou indicadores técnicos apenas é uma receita muito boa para o desastre. Então, assumindo por um momento que essa relação é realmente verdadeira e considerando que podemos e queremos usar técnicas de aprendizado de máquina sofisticadas em nossas estratégias de negociação, poderemos começar com uma janela de freqüência semanal e trabalhar em direção a freqüências mais altas. O comércio semanal não precisa ser automatizado e pode ser feito a partir de qualquer interface de corretagem baseada na web. Podemos desenvolver uma bolsa de estratégias, usando dados históricos publicamente disponíveis em combinação com nosso algoritmo de aprendizagem favorito para encontrar padrões de mercado negociáveis ​​e, em seguida, executar a estratégia manualmente. Nesta escala, todo o esforço deve ser encontrado e ajustar a estratégia quantitativa e muito pouco pensamento deve ser implementado na execução comercial. Esforço de automação comercial: 0. Esquerda de estratégia necessária: 100 O comércio diário deve ser automatizado, a menos que você possa realmente dedicar uma parcela fixa do seu dia para monitorar os mercados e executar negócios. Integrar algoritmos de aprendizagem de máquinas com negociação diária automatizada não é uma tarefa trivial, mas pode ser feito. Esforço de automação comercial: 20, inteligência de estratégia necessária: 80 Nos intervalos de tempo intradiários, variando de minutos e segundos a sub segundos, o esforço que você terá que assumir para automatizar seus negócios pode situar-se em qualquer lugar entre 20 e 90. Felizmente, o menor A escala de tempo torna-se o mais fofo que sua estratégia pode ser, mas é estúpido, é claro, um conceito relativo aqui. Esforço de automação comercial: 80, inteligência de estratégia necessária: 20 quais recursos usar. Hand-crafted vs. aprendido 10 de dezembro de 2013 Em um ponto no projeto de um sistema de aprendizagem (máquina), você será inevitável se perguntar quais são os recursos para alimentar seu modelo. Existem pelo menos duas opções. O primeiro é usar recursos artesanais. Esta opção normalmente lhe dará bons resultados se os recursos estiverem bem projetados (é claro que é uma tautologia, pois você só os chamará bem projetados se lhe derem bons resultados). O design de recursos feitos à mão requer conhecimento especializado sobre o campo ao qual o sistema de aprendizagem será aplicado, ou seja, classificação de áudio, reconhecimento de imagem ou no nosso processo de negociação. O problema aqui é que você não pode ter nenhum desses conhecimentos especializados (ainda assim) e será muito difícil chegar ou ter muito tempo ou provavelmente ambos. Portanto, a alternativa é aprender os recursos dos dados ou, em outras palavras, usar a aprendizagem sem supervisão para obtê-los. Um requisito aqui é que você realmente precisa de muitos dados. Muito mais do que você precisaria para recursos feitos à mão, mas, novamente, ele não precisa ser rotulado. O benefício no entanto é claro. Você realmente não precisa ser um especialista no campo específico para o qual você projeta o sistema, ou seja, comércio e finanças. Então, enquanto você ainda precisa descobrir qual subconjunto dos recursos aprendidos será o melhor para o seu sistema de aprendizagem, isso também é algo que você teria que fazer com os recursos criados à mão. Minha sugestão: tente projetar alguns recursos criados à mão por você mesmo. Se eles não realizam e você tem bons motivos 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 ferramentas de código aberto para construção de aplicativos de negociação 19 de novembro de 2013 Quando comecei a procurar minha própria negociação automática, eu tinha três requisitos no conjunto de ferramentas que eu queria usar. 1) Eles devem custar o mínimo possível para começar, mesmo que isso significasse que eu tinha que fazer muita programação e personalizações eu mesmo (isso custaria tempo) 2) Deveria haver uma comunidade de pessoas de mentalidade semelhante lá fora Usando essas mesmas ferramentas para um propósito semelhante. 3) As ferramentas devem permitir-me ir tão profundamente nas entranhas do sistema quanto necessário, mesmo que, no início, meu objetivo fosse mais descobrir o básico. Eu não queria me encontrar em uma situação em que dois anos abaixo eu precisaria mudar para um conjunto diferente de ferramentas, só porque as que eu tinha começado não me permitiram fazer o que eu queria por causa de problemas com Fontes fechadas e licenciamento restritivo. Como resultado, cheguei a escolher R como o meu idioma de escolha para o desenvolvimento de algoritmos de negociação e comecei a usar os Interactive Brokers, pois eles fornecem uma API para interagir com seu sistema de corretagem. Embora existam muitas ferramentas de negociação agradáveis ​​que se conectam ao IB Trader Workstation e algumas podem ser usadas para negociação automatizada, nenhuma delas oferece o mesmo poder, flexibilidade e suporte comunitário que o projeto R possui. Além disso, R tem realmente um incrível repositório de pacotes de aprendizado de estatística e de aprendizado gratuitos e muito adavanced, algo que é essencial se você quiser criar algoritmos de negociação. Cópia de direitos autorais Censix 2013 - 2015 Plataforma de Estratégias de Negociação Geradas por Computador Exporte suas estratégias para MetaTrader4, NinjaTrader ou Tradestation com código fonte completo Melhore estratégias existentes alterando as regras de negociação Otimize sua estratégia usando otimização Walk-Forward Em StrategyQuant você não precisa definir as regras de negociação de Seu novo sistema de negociação. Ele usa técnicas de aprendizado de máquinas para gerar estratégias comerciais novas e exclusivas. Não é necessário conhecimento de programação ou comercialização. Ele é capaz de criar estratégias que você como comerciante não pensaria, e é capaz de fazê-lo rapidamente e testar as estratégias geradas imediatamente. O StrategyQuant pode gerar centenas de novas estratégias de negociação - cada uma, testada de novo em múltiplos cronogramas de dados para garantir a máxima robustez. As estratégias resultantes podem ser salvas como uma estratégia Tradestation em EasyLanguage, NinjaTrader C strategy ou MetaTrader 4 Expert Advisor com código-fonte completo. Testes robustos de backtesting e estratégia StrategyQuant inclui a análise de desempenho de estratégia mais complexa no mercado. Ele contém várias ferramentas poderosas que permitem que você teste sua estratégia de robustez para evitar ajuste de curva e sobre otimização incluindo Monte Carlo, 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 isso funciona Vamos dizer que deseja criar uma nova estratégia de negociação para EURUSD: Você escolherá a fonte de dados EURUSD, escolherá o prazo e o intervalo de tempo. Defina quais blocos a estratégia deve consistir (indicadores, dados de preços, operadores, etc.). Defina o que deve ser os parâmetros da estratégia resultante - por exemplo, o Lucro Líquido total deve estar acima de 5000, o Drawdown deve ser inferior a 20, a relação Return DD deve estar acima de 4, deve produzir pelo menos 300 negociações. Então, basta clicar no botão Iniciar e StrategyQuant fará o trabalho. Ele gerará aleatoriamente novas estratégias de negociação usando os blocos de construção que você selecionou, testando-os de imediato e armazena os que se adequam aos seus requisitos para sua revisão. Você pode então rever as estratégias recém-geradas, executar testes de adição ou exportá-las como EAT MetaTrader4. É uma incrível peça de software que eu comprei StrategyQuant em dezembro de 2011 e tenho usado isso diariamente desde então, simplesmente colocar - é uma incrível peça de software. Até agora, criei vários EAs que funcionam muito bem no backtest, tanto que os adicionei às minhas contas ao vivo. No passado, fiquei desapontado com os resultados comerciais da EA e, neste momento, estou convencido de que, quando uma EA comercial lucrativa é lançada, os corretores encontram rapidamente uma maneira de neutralizá-lo no final através dos plugins do corretor MT4. Com o GB, posso desenvolver e testar automaticamente as estratégias de negociação que ninguém (especialmente meu corretor) do mundo conhece, ou está usando e lucrando com eles. O suporte para o produto também é excelente com um fórum de membros, instruções detalhadas e versões novas. Felicito Mark e o time do StrategyQuant por este software de mudança de jogo. Muito obrigado mais uma vez - Neil Rickaby Comece a desenvolver seus próprios sistemas de negociação automatizados Todos sabemos o quão difícil é encontrar uma estratégia de negociação lucrativa que possa ser negociada mecanicamente. Com StrategyQuant você poderá projetar seus próprios sistemas de negociação automatizados. Em vez de comprar EAs desenvolvidas por outra pessoa, você pode simplesmente gerar as suas próprias. Você pode até mesmo gerar um portfólio de diferentes EAs para negociar em diferentes pares. A abordagem utilizada no StrategyQuant é o futuro da negociação automática e StrategyQuant é a melhor e mais complexa ferramenta disponível para os comerciantes de divisas. StrategyQuant v. 3.8 Licença de vida com todas as futuras atualizações gratuitas Possibilidade de gerar 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 privada

No comments:

Post a Comment