Aprendizagem de máquinas Se alguém estiver interessado em desenvolver estratégias baseadas em aprendizagem de máquinas, verifique deep-thought. co. Suporte Máquinas de vetores. Gradient Boosted Trees. Florestas aleatórias. Árvores extremamente aleatorizadas. Multi-layer Perceptron, também conhecido como Neural Network. Conjuntos: Combine as previsões de qualquer número de preditores. Treinamento contínuo, sempre adaptando-se ao mercado. Por favor, note que esta é uma ferramenta para desenvolver suas próprias estratégias e sistemas, e não uma estratégia comercial pré-enlatada. Também estão incluídos dois EAs MT4, com fonte, para trocar os sinais ou combinar com qualquer outro sistema que você possa ter. A Aprendizagem de Máquinas Aplicada à Aprendizagem 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 é, claro, o que alguns comerciantes têm feito durante um longo período de 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 padrões de 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 durante 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 otimizado da estratégia. Portanto, nossa estratégia não necessita necessariamente de parar as perdas e tirar lucros, 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 aconteceu. A rede é classificada pela porcentagem de previsões corretas pesadas pela precisão de Itrsquos. Alternativamente, nossas redes neurais podem prever qual parte 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 é inútil 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 testes é usado para os resultados relatados. No nosso caso, chegamos a 60 apostas corretas no conjunto de testes que abrange o ú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 obter facilmente um lucro global incrível, estabelecendo o lucro com muito perto e a perda de stop 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 muito distantes uns dos outros. A colocação de lucros e perda de parada é nunca 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 62,5 apostas corretas na EURUSD. Mas podemos obter uma melhor avaliação da estratégia com uma boa simulação e uma aplicação da estratégia da vida real. Por esta razão, 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. Também refinamos nossa estratégia, ajustando um pouco o valor 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 eo 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 encontramos muito reveladoras 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 a qualquer momento 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 repentinas 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 Aprender com algoTraderJo Ingressou em dezembro de 2017 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) Eu 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áquinas e, em seguida, entraremos em coisas mais complexas com o passar do tempo. Espero que você aproveite o passeio Juntado dezembro 2017 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 mecânica, 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 quotimplequot em que fazemos o seguinte: Selecione o que queremos prever (este será o (s) nosso (s) alvo (as)) Selecione algumas variáveis de entrada que pensamos que pode 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 Quero dizer desde o início que é muito importante evitar fazer o que muitos trabalhos acadêmicos sobre aprendizagem de máquinas fazem, Que é tentar construir um modelo com grandes matrizes de exemplos e depois 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 tendências estatísticas 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 polarizações estatísticas, 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 2017 Status: Membro 383 Posts Deixe-nos entrar no mercado agora. Um exemplo prático real 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 insumos) - gt A direção dos dois dias anteriores Como Para relacionar o alvo e as entradas (que modelo) - gt Um classificador de mapa linear Este modelo tentará prever a direcionalidade da próxima barra diária. Para construir nosso modelo, tomamos os últimos 200 exemplos (um dia de direção 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. Utilizamos 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 2017 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 dois últimos resultados direcionais do dia. 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 entrada. O 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 iriam entrar. 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 de limite 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áquina 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