Sunday 3 September 2017

Machine learning forex 2012


Aprendizagem de máquina aplicada ao aprendizado de Forex Machine pode nos ajudar a otimizar as estratégias de negociação automática. Ao estudar a enorme quantidade de informações passadas, podemos identificar padrões que nos ajudem a prever a evolução do mercado em uma extensão suficiente. Isto é, naturalmente, o que alguns comerciantes têm feito há muito tempo, mas a automatização do processo nos permite encontrar estratégias muito melhores e muito mais rápido do que seria um ser humano. Aqui propomos uma estratégia especulativa que foi testada com sucesso e demonstra as possibilidades trazidas pela máquina de aprendizagem em forex. Encontrar automaticamente uma estratégia especulativa vencedora no eurusd EURUSD é um par muito lucrativo para uma estratégia especulativa construída a partir de algoritmos de aprendizado de máquinas, embora nosso método seja capaz de encontrar estratégias vencedoras em outros instrumentos e alguns que funcionem em vários instrumentos, as estratégias desenvolvidas para o EURUSD Dê os melhores retornos. É assim que as estratégias são criadas. Não podemos alimentar o preço real do algoritmo porque queremos que ele reconheça padrões independentemente de sua altura em um gráfico. Nós, portanto, alimentamos os movimentos de preços, de alto para alto e baixo para baixo (melhor do que abrir para fechar). Este é um tipo simples de indicador com um poder discriminativo surpreendente entre os padrões forex. Mas que intervalos devemos escolher para nossos indicadores e usar o alto e o baixo em que período Nosso algoritmo responde esta questão para nós, otimizando um conjunto de indicadores e marcando por uma boa estratégia que podemos construir sobre ele. O método utilizado para otimização é um algoritmo genético. Construímos alguns conjuntos de indicadores, os mais fortes (maior pontuação) têm uma melhor chance de ldquoreproducingrdquo e ldquomutatingrdquo enquanto os mais fracos são substituídos. Este método tende a otimizar os conjuntos de indicadores e é milhares de vezes mais rápido do que simplesmente experimentar todas as possibilidades. Nós marcamos um conjunto de indicadores com a boa estratégia que podemos construir com ele. As estratégias são construídas automaticamente usando um segundo passo de otimização e uma estrutura de dados, a rede neural artificial. A rede neural toma como entrada os valores dos indicadores por um determinado período e produz algumas informações sobre o futuro do instrumento. O que a rede neural artificial prevê As redes neurais tentam prever um fator de lucro normalizado (lucro bruto dividido pela perda bruta) em um único comércio durante um certo período no futuro. O período em questão pode variar entre 3 e 10 dias, é um parâmetro otimizável da estratégia. Portanto, nossa estratégia não necessariamente usa stop loss and take profit, em vez disso, abrimos uma posição por um período de tempo predeterminado e fechamos a posição no final desse período, seja lá o que acontecesse. A rede é classificada pela porcentagem de previsões corretas pesadas pela precisão de Itrsquos. Alternativamente, nossas redes neurais podem prever o que a parcela do saldo da conta deve ser investida, as redes são então classificadas pelo saldo final da conta ou pelo fator de lucro global. Armadilhas comuns em estratégias de troca automática Existem algumas armadilhas comuns a serem conscientes de tais estratégias onde a estratégia parece oferecer lucros incríveis, mas não vale a pena na vida real. A precaução mais importante é que o período em que a estratégia for testada não deve ser o mesmo período em que foi construído. Caso contrário, podemos simplesmente gerar milhares de estratégias aleatórias complexas e escolher aquele que funcione melhor em um determinado período, mas somente para nós, quando temos um resultado positivo em um conjunto de dados independente, podemos começar a confiar em nossa estratégia. Na realidade, usamos três conjuntos de dados independentes, o conjunto de treinamento é usado para construir o sistema, o conjunto de validação é usado para evitar o aprendizado excessivo e o conjunto de teste é usado para os resultados relatados. No nosso caso, chegamos a 60 apostas corretas no conjunto de testes que abrange no último ano. Também é uma má prática otimizar um lucro com vantagem e parar a perda desde o início. Ao otimizar uma estratégia em um período que é muito curto, pode-se facilmente obter um lucro global incrível, estabelecendo o lucro obtido muito perto e a perda de parada muito longe. Quando a perda de parada é eventualmente alcançada em um período mais longo, as consequências são devastadoras. Uma vez que uma estratégia rentável é encontrada, no entanto, o lucro de lucro e a perda de parada podem ser otimizados, mas nunca devem estar tão distantes uns dos outros. A colocação de um lucro obtido e a perda de parada nunca são uma estratégia em si, mas sim uma maneira de controlar o risco. Uma estratégia ótima testada com um simulador reconhecido. Nossa estratégia obtém uma aposta teórica 62.5 na EURUSD. Mas podemos obter uma avaliação melhor da estratégia com uma boa simulação e uma aplicação da estratégia da vida real. Por esse motivo, implementamos a estratégia usando a API JForex e testávamos na plataforma jForex. Mais uma vez, tínhamos cuidado de não misturar o período que usávamos para otimizar nossa estratégia e o período que costumávamos testá-la. Nós também refinamos nossa estratégia mais um ajuste do montante investido em cada posição para refletir as previsões do strategyrsquos. Isso melhorou muito o fator de lucro (lucro bruto dividido pela perda bruta) de nossa estratégia. Usamos uma alavancagem para aumentar ou diminuir o risco e o retorno esperado. Mais de 161 negócios, o fator de lucro de nossa estratégia no período de teste é de 2,87, o que significa que obtemos 2,87 vezes mais lucro do que a redução nos negócios. Embora tenhamos apenas 60,24 negócios lucrativos, eles são muito mais rentáveis ​​do que os negócios perdidos não são lucrativos. As estatísticas finais que consideramos muito contundentes são a redução máxima consecutiva, 5 e o lucro máximo consecutivo, 18 do patrimônio líquido. Nós temos uma conta ao vivo executando a estratégia, mas tem feito isso por um período muito pequeno para avaliar isso dessa maneira. Nós também otimizamos um lucro com vantagem e uma perda de parada. Uma vez que nos recusamos ver esses fatores como parâmetros de estratégia, mas preferimos vê-los como parâmetros de controle de risco, sempre os manteremos iguais uns aos outros. O contrário cria um desequilíbrio que torna difícil avaliar a estratégia. Mais uma vez, esses parâmetros foram otimizados em um período diferente do período de teste. Os resultados mostram que um stop-loss e take-profit devem de fato ser usados ​​e que ele deve ser colocado muito perto, em cerca de 18 pips. Colocar aqueles mais perto do preço de abertura melhora o fator de lucro geral, mas nesses níveis, as comissões e as taxas se tornam problemáticas. O stop-loss e o take-profit melhoram o fator de lucro e a estabilidade geral da estratégia enquanto impedem o lucro total, mas a alavancagem pode remediar a situação. Desvantagens de uma estratégia de negociação automática Uma crítica comum sobre estratégias de caixa preta, como a nossa, é que o mercado pode sempre mudar de repente e as estratégias que funcionaram antes de ganhar trabalho indefinidamente. Temos de admitir que isso é totalmente fundado, e é nossa convicção que nada pode ser feito para evitar isso sem uma bola de cristal para prever o futuro. No entanto, também é nosso sentimento que esta é a verdade com qualquer estratégia especulativa, feita pelo homem ou de outra forma. É claro que o forex sofreu grandes mudanças no passado. O volume é um ótimo indicador para essa questão que realmente nos dá uma visão sobre o momento em que a forma como um instrumento é negociado muda. No gráfico abaixo, você pode observar a evolução do volume de EURUSD nos últimos 16 anos. Uma estratégia construída usando dados que é muito distante não funciona mais. No entanto, a nossa estratégia funcionou igualmente bem no EURUSD nos últimos anos e nada sugere que irá mudar em breve. Há duas coisas que podemos fazer para evitar uma mudança súbita na forma como os instrumentos de divisas são negociados. Primeiro, podemos monitorar o mercado e aguardar esse momento em que nossa estratégia não funciona mais usando as estatísticas que a estratégia deve seguir, como a redução máxima consecutiva e monitorando o volume. Em segundo lugar, podemos fazer o whatrsquos chamado on-line learning onde nossa estratégia está continuamente sendo otimizada em novos dados. Esta segunda opção é uma boa prática, mas não se protege contra as mudanças súbitas que são típicas no forex a cada poucos anos. A melhor solução é implementar esses dois métodos, otimizando regularmente nossas estratégias, ao mesmo tempo em que é necessária uma mudança de estratégia mais profunda. A outra crítica é que nunca entendemos realmente o que faz um modelo de caixa preta. Esse não é o caso para nós, pois nosso modelo é bastante simples, no entanto, devemos tomar o segredo para o nosso túmulo ou, pelo menos, até que a estratégia não seja mais lucrativa. Obrigado por ler, Traduzir para russo A aprendizagem da máquina é um campo de inteligência artificial onde os programas de computador aprendem em vez de seguir cegamente um script. Com dados de treinamento suficientes, você pode ensinar esses algoritmos para dirigir um carro, pilotar um helicóptero ou criar o melhor mecanismo de busca do mundo. Aqui estão os resultados que obtive com a minha abordagem inicial na aplicação de aprendizagem de máquinas para negociação forex. Uma variedade de algoritmos são implementados para tentar prever a evolução de um instrumento com dados de apenas 8 barras diárias para o passado. Para cada dia, quatro valores são gravados, as três primeiras informações de registro no movimento do dia anterior próximo ao dayrsquos alto, baixo e próximo, em percen t enquanto o quarto registra o volume do dia. Isso faz 32 variáveis ​​independentes no total. Os dados são obtidos a partir de três instrumentos na base de dados dukascopy, EURUSD, AUDJPY e GBPCHF diariamente Pergunte as barras de 1 de janeiro de 2008 a 31 de dezembro de 2011, com os fins de semana misturados na segunda-feira seguinte. Para cada um dos algoritmos testados, os dois primeiros anos foram utilizados para treinar os modelos enquanto o ano de 2012 foi usado para testá-los. A biblioteca java aberta para algoritmos de aprendizado de máquina usados ​​vem da WEKA: Data Mining Software em Java i. Você pode baixar a biblioteca ou o programa amigável ao usuário em cs. waikato. ac. nzmlweka. Previsão da direção do mercado. Esses testes avaliam em que medida, se houver, é possível prever o movimento global de amanhã (de perto para fechar) com base em dados de oito dias anteriores usando uma variedade de algoritmos de aprendizado de máquina. Uma correlação alta significa que o modelo prevê o bom movimento global do dia seguinte. Nesse caso, as correlações são muito próximas de zero, de modo que os modelos não podem prever o movimento global do mercado. Previsão da faixa do mercado Para o forex, o intervalo é definido aqui como a diferença entre o dayrsquos alto e o dayrsquos baixo como porcentagem do fechamento anterior (para que diferentes instrumentos sejam comparáveis). Um dos métodos mais simples e melhores, os vizinhos mais próximos, é o melhor para esta tarefa. Este método, para cada caso, simplesmente analisa os n casos no conjunto de treinamento que se parecem mais e prevê uma média ponderada de seu alcance. Previsão do movimento absoluto de um instrumento O movimento absoluto de um instrumento é o movimento geral por um dia, mas sempre positivo. Isso é um pouco semelhante ao intervalo. É impossível prever a direção do mercado para o dia seguinte com base apenas em oito barras e volumes anteriores, pelo menos usando esses algoritmos. No entanto, a primeira falha desta abordagem é talvez que ela tente prever todos os dias. Talvez algum processo de eliminação possa remover uma grande quantidade de dados que é principalmente imprevisível. Por outro lado, existem outros algoritmos como redes neuronais recorrentes que são mais apropriados para a tarefa em questão. É possível prever, até certo ponto, o intervalo do dia seguinte e, de forma bastante lógica, o movimento absoluto (do próximo ao próximo). Este tipo de informação pode não ser relevante para os comerciantes que seguem as tendências, mas pode ser relevante para os escaladores que precisam prever o alcance de um par de moedas. Eu acredito que esses algoritmos superam os indicadores de alcance como o ATR no sentido de serem preditivos e não indicativos. 1 Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, Ian H. Witten (2009) O software WEKA Data Mining: uma atualização SIGKDD Explorations, Volume 11, Issue 1.Machine Learning with algoTraderJo ingressou em dezembro de 2014 Status: Membro 383 Posts Olá colegas comerciantes, estou começando esse tópico esperando compartilhar com você alguns dos meus desenvolvimentos no campo da aprendizagem por máquinas. Embora eu possa não compartilhar com você sistemas exatos ou implementações de codificação (não espere obter nada para quotplug-and-playquot e ficar rico com esse tópico), compartilharei com você idéias, resultados da minha experiência e possivelmente outros aspectos do meu trabalho. Estou começando esse tópico na esperança de que possamos compartilhar idéias e ajudar uns aos outros a melhorar nossas implementações. Vou começar com algumas estratégias simples de aprendizagem de máquina e, em seguida, entraremos em coisas mais complexas com o passar do tempo. Espero que você aproveite o passeio Juntado dezembro 2014 Status: Membro 383 Posts Eu quero começar por dizer algumas coisas básicas. Desculpe-me se a estrutura das minhas publicações deixa muito a desejar, não tenho nenhuma experiência de publicação no fórum, mas espero conseguir alguma coisa com o tempo. Na aprendizagem de máquinas, o que queremos fazer é simplesmente gerar uma previsão que seja útil para nossa negociação. Para fazer essa predição, geramos um modelo estatístico usando um conjunto de exemplos (saídas conhecidas e algumas entradas que as coisas têm poder preditivo para prever essas saídas), então fazemos uma previsão de uma saída desconhecida (nossos dados recentes) usando o modelo que criamos com Os exemplos. Para resumir, é um processo quotsimplequot em que fazemos o seguinte: Selecione o que queremos prever (este será o (s) nosso (s) alvo (s)) Selecione algumas variáveis ​​de entrada que pensamos poder prever nossos objetivos Crie um conjunto de exemplos usando dados passados Com nossas entradas e nossos objetivos Crie um modelo usando esses exemplos. Um modelo é simplesmente um mecanismo matemático que relaciona os inputstargets Faça uma previsão do alvo usando as últimas entradas conhecidas Comércio usando esta informação Eu quero dizer desde o início que é muito importante evitar o que muitos documentos acadêmicos sobre aprendizado de máquinas fazem, Que é tentar construir um modelo com matrizes de exemplos muito grandes e, em seguida, tentar fazer uma previsão de longo prazo em um conjunto de quotout de amostra. Construir um modelo com 10 anos de dados e, em seguida, testá-lo nos dois últimos é sem sentido, sujeito a muitos tipos de viés estatísticos que discutiremos mais adiante. Em geral, você verá que os modelos de aprendizagem de máquinas que eu construo são treinados em todas as barras (ou cada vez que preciso tomar uma decisão) usando uma janela de dados para a construção de exemplos (somente exemplos recentes são considerados relevantes). Claro, essa abordagem não é estranha a alguns tipos de preconceitos estatísticos, mas nós removemos o quotefácio no quarto quando usamos a ampla abordagem da amostra de amostra da maioria dos documentos acadêmicos (o que, sem surpresa, muitas vezes leva a abordagens que não são Realmente útil para o comércio). Há principalmente três coisas para se preocupar com a construção de um modelo de aprendizado de máquina: o que prever (que alvo) O que prever com (quais insumos) Como relacionar o alvo e as insumos (que modelo) A maior parte do que vou mencionar Nesta discussão, o foco será responder a essas perguntas, com exemplos reais. Se você deseja escrever qualquer dúvida que possa ter e tentarei dar-lhe uma resposta ou simplesmente informá-lo se vou responder depois. Iniciado em dezembro de 2014 Status: Membro 383 Posts Deixe-nos entrar nos negócios agora. Um verdadeiro exemplo prático usando a aprendizagem por máquina. Vamos supor que queremos construir um modelo muito simples usando um conjunto muito simples de entradas de dados. Para esta experiência, estas são as respostas às perguntas: O que prever (que alvo) - gt A direção do dia seguinte (otimista ou descendente) O que prever com (quais entradas) - gt A direção dos dois dias anteriores Como Para relacionar o alvo e as insumos (que modelo) - gt Um classificador de mapa linear Este modelo tentará prever a direcionalidade da próxima barra diária. Para construir nosso modelo, levamos os últimos 200 exemplos (uma direção de dias como alvo e as duas direções do dia anterior como entradas) e treinamos um classificador linear. Fazemos isso no início de cada barra diária. Se tivermos um exemplo em que dois dias de alta provocam um dia de baixa, os insumos seriam 1,1 eo alvo seria 0 (0bearish, 1bullish), usamos 200 desses exemplos para treinar o modelo em cada barra. Esperamos poder construir um relacionamento onde a direção de dois dias cede alguma probabilidade acima do acaso para prever corretamente a direção dos dias. Nós usamos um stoploss igual a 50 do período de 20 dias, True True Average, em cada comércio. Imagem anexa (clique para ampliar) Uma simulação desta técnica de 1988 a 2014 no EURUSD (dados antes de 1999 é DEMUSD) acima mostra que o modelo não possui geração de lucros estável. Na verdade, esse modelo segue uma caminhada aleatória negativamente tendenciosa, o que faz com que ele perca dinheiro como uma função da propagação (3 pips no meu sim). Olhe para o desempenho aparentemente fácil de termos em 1993-1995 e em 2003-2005, onde, aparentemente, poderíamos prever com sucesso os próximos dias a direcionalidade usando um modelo linear simples e os resultados direcionais dos últimos dois dias. Este exemplo mostra várias coisas importantes. Por exemplo, em intervalos de tempo curtos (que podem ser alguns anos) você pode ser facilmente enganado pela aleatoriedade --- você pode pensar que você tem algo que funciona o que realmente não faz. Lembre-se de que o modelo é reconstruído em cada barra, usando os últimos 200 exemplos de inputtarget. Que outras coisas você acha que pode aprender com este exemplo. Poste seus pensamentos bem. Então você previu que os compradores ou os vendedores participariam. Hmm, mas o que exatamente isso tem a ver com o preço subindo ou baixando 100 pips. O preço pode reagir de várias maneiras - pode ser apenas um tanque por algum tempo (enquanto todas as ordens limitadas estão preenchidas) E então continue avançando. Também pode retraitar 5, 10, 50 ou mesmo 99 pips. Em todos esses casos, você era um pouco certo sobre compradores ou vendedores entrar, mas você deve entender que esta análise não tem muito a ver com o seu comércio de 90pip para 100pip. Sim, você está certo Esta é uma grande parte da razão pela qual estamos obtendo resultados ruins ao usar o algoritmo de mapeamento linear. Porque a nossa rentabilidade está mal relacionada com a nossa previsão. Prever que os dias são bullishbearish é de uso limitado se você não sabe quanto o preço se moverá. Talvez suas previsões estejam corretas apenas nos dias que lhe dão 10 pips e você obtém todos os dias que têm 100 pip direcional totalmente errado. O que você consideraria um alvo melhor para um método de aprendizado de máquina Sim, você está certo Esta é uma grande parte da razão pela qual estamos obtendo resultados ruins ao usar o algoritmo de mapeamento linear. Porque a nossa rentabilidade está mal relacionada com a nossa previsão. Prever que os dias são bullishbearish é de uso limitado se você não sabe quanto o preço se moverá. Talvez suas previsões estejam corretas apenas nos dias que lhe dão 10 pips e você obtém todos os dias que têm 100 pip direcional totalmente errado. O que você consideraria um alvo melhor para um método de aprendizagem de máquinas Digamos se você tem 100 pip TP e SL, eu gostaria de prever o que vem primeiro: TP ou SL Exemplo: TP veio primeiro 1 SL veio primeiro 0 (ou -1, No entanto, você o mapeia)

No comments:

Post a Comment