Wednesday 16 August 2017

Algoritmo Genético Forex


Usando Algoritmos Genéticos Para Prever os Mercados Financeiros Burton sugeriu em seu livro A Random Walk Down Wall Street (1973) que: Um macaco vendado nos dardos em páginas financeiras de jornais poderia selecionar um portfólio que faria exatamente o mesmo que um cuidadosamente selecionado por Especialistas. Enquanto a evolução pode ter feito o homem não mais inteligente na colheita de estoques, Charles Darwins teoria tem muito eficaz quando aplicado mais diretamente. Algoritmos genéticos (GAs) são métodos de resolução de problemas (ou heurísticas) que imitam o processo de evolução natural. Ao contrário das redes neurais artificiais (RNAs), projetadas para funcionarem como neurônios no cérebro, esses algoritmos utilizam os conceitos de seleção natural para determinar a melhor solução para um problema. Como resultado, os GAs são comumente usados ​​como otimizadores que ajustam parâmetros para minimizar ou maximizar alguma medida de realimentação, que pode então ser usada independentemente ou na construção de uma ANN. Nos mercados financeiros. Algoritmos genéticos são mais comumente usados ​​para encontrar os melhores valores de combinação de parâmetros em uma regra de negociação, e eles podem ser construídos em modelos ANN concebido para escolher ações e identificar negócios. Vários estudos têm demonstrado que esses métodos podem ser eficazes, incluindo Genetics Algorithms: Genesis of Stock Evaluation (2004) por Rama, e The Applications of Genetic Algorithms in Market Data Mining Optimization (2004) por Lin, Cao, Wang, Zhang. Como os Algoritmos Genéticos Funcionam Os algoritmos genéticos são criados matematicamente usando vetores, que são quantidades que têm direção e magnitude. Os parâmetros para cada regra comercial são representados com um vetor unidimensional que pode ser considerado como um cromossomo em termos genéticos. Entretanto, os valores utilizados em cada parâmetro podem ser pensados ​​como genes, que são então modificados usando a seleção natural. Por exemplo, uma regra de negociação pode envolver o uso de parâmetros como Moving Average Convergence-Divergence (MACD). Exponential Moving Average (EMA) e Estocástica. Um algoritmo genético poderia então introduzir valores nestes parâmetros com o objetivo de maximizar o lucro líquido. Ao longo do tempo, pequenas mudanças são introduzidas e aqueles que fazem um desejável impacto são mantidos para a próxima geração. Existem três tipos de operações genéticas que podem então ser realizadas: Crossovers representam a reprodução e crossover biológico visto na biologia, pelo qual uma criança assume certas características de seus pais. As mutações representam a mutação biológica e são utilizadas para manter a diversidade genética de uma geração de uma população para outra, introduzindo pequenas alterações aleatórias. As selecções são a fase em que os genomas individuais são escolhidos de uma população para reprodução posterior (recombinação ou crossover). Estes três operadores são então utilizados em um processo de cinco passos: Inicializar uma população aleatória, onde cada cromossomo é n-comprimento, sendo n o número de parâmetros. Isto é, um número aleatório de parâmetros é estabelecido com n elementos cada. Selecione os cromossomos, ou parâmetros, que aumentam os resultados desejáveis ​​(presumivelmente lucro líquido). Aplique operadores de mutação ou crossover aos pais selecionados e gere uma prole. Recombinar a prole ea população atual para formar uma nova população com o operador de seleção. Repita os passos dois a quatro. Ao longo do tempo, este processo resultará em cromossomas cada vez mais favoráveis ​​(ou, parâmetros) para uso em uma regra comercial. O processo é então terminado quando um critério de paragem é atingido, o que pode incluir tempo de execução, aptidão, número de gerações ou outros critérios. (Para mais informações sobre o MACD, leia Trading The MACD Divergence.) Usando Algoritmos Genéticos em Trading Enquanto algoritmos genéticos são usados ​​principalmente por comerciantes quantitativos institucionais. Os comerciantes individuais podem aproveitar o poder de algoritmos genéticos - sem um grau em matemática avançada - usando vários pacotes de software no mercado. Estas soluções vão desde pacotes de software independentes voltados para os mercados financeiros até complementos do Microsoft Excel que podem facilitar análises mais práticas. Ao usar essas aplicações, os comerciantes podem definir um conjunto de parâmetros que são então otimizados usando um algoritmo genético e um conjunto de dados históricos. Alguns aplicativos podem otimizar quais parâmetros são usados ​​e os valores para eles, enquanto outros são focados principalmente em simplesmente otimizar os valores para um determinado conjunto de parâmetros. (Para saber mais sobre estas estratégias derivadas de programas, consulte O Poder das Operações do Programa.) Dicas e Truques Importantes de Otimização O encaixe da curvatura (excesso de ajuste), projetando um sistema comercial em torno de dados históricos ao invés de identificar o comportamento repetível, algorítmos genéticos. Qualquer sistema de negociação que utilize GAs deve ser testado em frente no papel antes do uso ao vivo. Escolher parâmetros é uma parte importante do processo, e os comerciantes devem procurar parâmetros que se correlacionam com as mudanças no preço de um determinado valor. Por exemplo, experimente diferentes indicadores e veja se alguns parecem se correlacionar com grandes turnos do mercado. Algoritmos genéticos são formas únicas de resolver problemas complexos aproveitando o poder da natureza. Ao aplicar esses métodos para prever os preços dos títulos, os comerciantes podem otimizar as regras de negociação, identificando os melhores valores a serem usados ​​para cada parâmetro para um determinado valor. No entanto, estes algoritmos não são o Santo Graal, e os comerciantes devem ter o cuidado de escolher os parâmetros certos e não ajuste de curva (sobre ajuste). O beta é uma medida da volatilidade, ou risco sistemático, de um título ou de uma carteira em comparação com o mercado como um todo. Um tipo de imposto incidente sobre ganhos de capital incorridos por pessoas físicas e jurídicas. Os ganhos de capital são os lucros que um investidor. Uma ordem para comprar um título igual ou inferior a um preço especificado. Uma ordem de limite de compra permite que traders e investidores especifiquem. Uma regra do Internal Revenue Service (IRS) que permite retiradas sem penalidade de uma conta IRA. A regra exige que. A primeira venda de ações por uma empresa privada para o público. IPOs são muitas vezes emitidos por empresas menores, mais jovens à procura da. DebtEquity Ratio é rácio de endividamento utilizado para medir a alavancagem financeira de uma empresa ou um rácio de endividamento utilizado para medir um indivíduo. MetaTrader 4 - Tester Algoritmos Genéticos vs Pesquisa Simples no MetaTrader 4 Optimizer 1. Quais são Algoritmos Genéticos A plataforma MetaTrader 4 agora oferece recursos genéticos Algoritmos de otimização das entradas Expert Advisors. Eles reduzem significativamente o tempo de otimização sem qualquer invalidação significativa dos testes. Seu princípio de operação é descrito no artigo denominado Algoritmos Genéticos: Matemática em detalhes. Este artigo é dedicado à otimização de insumos de EAs usando algoritmos genéticos em comparação com os resultados obtidos usando busca direta e completa de valores de parâmetros. 2. O Expert Advisor Para os meus experimentos, eu levei um pouco a EA chamada CrossMACD que você pode ter conhecido do artigo chamado Orders Management - Its Simple: Adicionado StopLoss e TakeProfit para as posições colocadas. Adicionado Trailing Stop. Parâmetro usado OpenLuft para filtrar sinais: Agora o sinal virá se a linha zero for cruzada em uma certa quantidade de pontos (com a precisão com uma casa decimal). Adicionado parâmetro CloseLuft para a filtragem semelhante de sinais próximos. Coloque em variáveis ​​expernal os períodos das médias lentas e rápidas utilizadas para os cálculos do MACD. Agora é um consultor experiente praticamente concluído. Será conveniente para otimizá-lo e usá-lo na negociação. Você pode baixar EA CrossMACDDeLuxe. mq4 para o seu PC e testá-lo de forma independente. 3. Otimização Agora podemos começar a otimizar a EA. Três testes serão realizados com diferentes quantidades de pesquisas de otimização. Isso ajudará a comparar os lucros obtidos usando algoritmos genéticos em várias situações. Depois de cada teste, vou remover manualmente o cache do testador para os testes subseqüentes para não usar combinações já encontradas. Isso é necessário apenas para que a experiência seja mais precisa - normalmente, o processamento automatizado de resultados apenas melhora a otimização repetida. Para comparar os resultados. Otimização usando algoritmos genéticos será feita duas vezes: primeira vez - a fim de encontrar o lucro máximo (lucro), pela segunda vez para encontrar o maior fator de lucro (Fator Lucro). Depois disso, os melhores três resultados para ambos os métodos de otimização serão fornecidos na tabela de relatório de resumo ordenada pelas colunas fornecidas. A otimização é puramente experimental. Este artigo não é destinado a encontrar insumos que realmente fazer maiores lucros. Gráfico símbolo EURUSD gráfico período de tempo 1 período de teste 2 anos de modelagem Apenas os insumos de preços abertos pesquisados ​​em: Deve-se notar que, ao usar algoritmos genéticos, o tempo esperado de otimização é aproximadamente o mesmo que o de otimização usando pesquisa de entradas diretas. A diferença é que um algoritmo genético exibe continuamente combinações certamente infrutíferas e, desta forma, reduz a quantidade de testes necessários várias vezes (talvez dezenas, centenas, milhares de vezes). É por isso que você não deve estar orientado para o tempo de otimização esperado ao usar algoritmos genéticos. O tempo de otimização real será sempre mais curto: Como você vê, a otimização usando algoritmos genéticos levou menos de quatro minutos em vez das esperadas cinco horas e meia. Gráfico de otimização com algoritmos genéticos também difere do que com pesquisa direta. Como as combinações ruins já foram eliminadas, os testes subseqüentes são conduzidos com combinações de entradas que são mais lucrativas por padrão. É por isso que o gráfico de equilíbrio sobe: Vamos considerar os resultados de ambos os métodos de otimização em todos os detalhes. A situação mudou. Os períodos de otimização coincidem (um erro insignificante é admissível), e os resultados são idênticos. Isso pode ser explicado através dessa otimização consistiu em apenas 1331 pesquisas e essa quantidade de passes não é suficiente para usar algoritmos genéticos. Eles não têm tempo para pegar velocidade - a otimização é mais rápida devido a seleção fora certamente perder combinações de insumos, mas tendo tal quantidade de combinações como acima, algoritmos genéticos não pode definir o que os pais (combinações de insumos) geram ruim off-spring. Portanto, não faz sentido usá-los. 4. Conclusões Algoritmos genéticos são uma boa adição ao otimizador de 4 estratégias. A otimização é dramaticamente aprimorada se a quantidade de pesquisas for grande, os resultados coincidem com aqueles obtidos pela otimização regular. Agora não faz sentido usar a pesquisa completa em entradas. Algoritmos genéticos encontrarão o melhor resultado mais rápido e não menos eficaz. 5. Afterword Depois de ter escrito o artigo, eu satisfez a minha curiosidade e lançou a otimização de CrossMACDDeLuxe em todas as entradas. A quantidade de combinações feitas mais de cem milhões (103 306 896). A otimização utilizando algoritmos genéticos levou apenas 17 horas, enquanto a otimização usando a pesquisa em todos os insumos levaria aproximadamente 35 anos (301 223 horas). Conclusões são até você. Um sistema negociando de Forex baseado em um algoritmo genético Cite este artigo como: Mendes, L. Godinho, P. Dias, J. J Heuristics (2012) 18: 627. doi: 10.1007s10732-012-9201- Neste artigo, será descrito um algoritmo genético que visa otimizar um conjunto de regras que constituem um sistema de negociação para o mercado Forex. Cada indivíduo na população representa um conjunto de dez regras técnicas de negociação (cinco para entrar em uma posição e outros cinco para sair). Essas regras têm 31 parâmetros no total, que correspondem aos genes individuais. A população evoluirá em um determinado ambiente, definido por uma série temporal de um par de moedas específico. A aptidão de um determinado indivíduo representa o quão bem ele foi capaz de se adaptar ao ambiente, e é calculado aplicando as regras correspondentes para a série de tempo e, em seguida, calcular a relação entre o lucro eo máximo drawdown (a proporção de Stirling) . Foram utilizados dois pares de moedas: EURUSD e GBPUSD. Diferentes dados foram utilizados para a evolução da população e para o teste dos melhores indivíduos. Os resultados obtidos pelo sistema são discutidos. Os melhores indivíduos são capazes de obter resultados muito bons na série de treinamento. Na série de testes, as estratégias desenvolvidas mostram alguma dificuldade em obter resultados positivos, se você levar em consideração os custos de transação. Se você ignorar os custos de transação, os resultados são na maior parte positivos, mostrando que os melhores indivíduos têm alguma capacidade de previsão. Algoritmos genéticos Finanças Regras técnicas de negociação Taxas de câmbio Referências Alvarez-Diaz, M. Alvarez, A. Previsão de taxas de câmbio utilizando algoritmos genéticos. Appl. Econ. Lett. 10 (6), 319322 (2003) CrossRef Google Acadêmico Brabazon, A. ONeill, M. Evolucionando as regras técnicas de negociação para mercados de câmbio à vista utilizando a evolução gramatical. Comput. Manag. Sei. 1 (3), 311327 (2004) MATH CrossRef Google Acadêmico Davis, L. Handbook of Genetic Algorithms. Van Nostrand-Reinhold, Nova Iorque (1991) Google Scholar Dempster, M. A.H. Jones, C. M. Um sistema de comércio adaptativo em tempo real usando programação genética. Quant. Finance 1 (4), 397413 (2001) CrossRef Google Académico Dunis, C. Harris, A. et al. Otimização de modelos de negociação intraday com algoritmos genéticos. Rede Neural. A escolha da medida de desempenho influencia a avaliação dos fundos de hedge J. Bank. Finanças 31 (9), 26322647 (2007) CrossRef Google Scholar Fama, E. F. Eficiente dos mercados de capitais: uma revisão da teoria e trabalho empírico. J. Finanças 25 (2), 383417 (1970) CrossRef Google Scholar Goldberg, D. Algoritmos Genéticos em Pesquisa, Otimização e Aprendizagem Automática. Addison-Wesley, Reading (1989) MATH Google Acadêmico Grefenstette, J. J. Algoritmos genéticos para mudar ambientes. In: Parallel Problem Solving from Nature 2, Bruxelas (1992) Google Scholar Harding, D. Nakou, G. et al. Os prós e os contras do levantamento como medida estatística de risco para investimentos. AIMA Journal, April 1617 (2003) Google Acadêmico Hirabayashi, A. Aranha, C. et al. Otimização da regra de negociação em moeda estrangeira usando algoritmo genético. Em: Processos da 11 ª Conferência Anual sobre Computação Genética e Evolutiva GECCO09 (2009) Google Scholar Hryshko, A. Downs, T. Sistema de troca de divisas usando algoritmos genéticos e reforço de aprendizagem. Int. J. Sist. Sei. 35 (13), 763774 (2004) MATH CrossRef Google Scholar Kaboudan, M. A. Previsão de programação genética dos preços das ações. Comput. Econ. 16 (3), 207236 (2000) MATH CrossRef Google Scholar LeBaron, B. Rentabilidade de regra de negociação técnica e intervenção cambial. J. Int. Econ. 49 (1), 125143 (1999) CrossRef Google Scholar LeBaron, B. Rentabilidade técnica de negociação nos mercados de câmbio nos anos 90 (2002) Levich, R. M. Thomas, L. R. A importância dos lucros técnicos das regras de negociação no mercado cambial: uma abordagem de bootstrap. J. Int. Dinheiro Financ. 12 (5), 451474 (1993) CrossRef Google Scholar Menkhoff, L. Taylor, M. P. A paixão obstinada dos profissionais de câmbio: análise técnica. J. Econ. Aceso. 45 (4), 936972 (2007) CrossRef Google Acadêmico Meyers, T. A. O Curso de Análise Técnica. McGraw-Hill, Nova Iorque (1989) Google Scholar Mitchell, M. Uma Introdução aos Algoritmos Genéticos. MIT Press, Cambridge (1996) Google Acadêmico Neely, C. Weller, P. Intraday negociação técnica no mercado de câmbio. J. Int. Dinheiro Financ. 22 (2), 223237 (2003) CrossRef Google Acadêmico Neely, C. Weller, P. et al. A análise técnica no mercado cambial é rentável Uma abordagem de programação genética. J. Financ. Quant. Anal. 32 (4), 405426 (1997) CrossRef Google Scholar Neely, C. J. Weller, P. A. Et ai. A hipótese dos mercados adaptativos: evidência do mercado cambial. J. Financ. Quant. Anal. 44 (02), 467488 (2009) CrossRef Google Scholar Olson, D. Os lucros das regras de negociação nos mercados cambiais declinaram ao longo do tempo. Finance 28 (1), 85105 (2004) CrossRef Google Scholar Osman, I. H. Kelly, J. P. Meta-heurística: Aplicações de teoria amp. Kluwer Acadêmico, Dordrecht (1996) MATH Google Scholar Park, C.-H. Irwin, S. H. O que sabemos sobre a rentabilidade da análise técnica J. Econ. Surv. 21 (4), 786826 (2007) CrossRef Google Scholar Pictet, O. V. Dacorogna, M. M. Et ai. Usando algoritmos genéticos para otimização robusta em aplicações financeiras. Rede Neural. World 5 (4), 573587 (1995) Google Scholar Reeves, C. R. Usando algoritmos genéticos com pequenas populações. In: Actas da Quinta Conferência Internacional sobre Algoritmos Genéticos. Morgan Kaufmann, San Mateo (1993) Google Scholar Rothlauf, F. Goldberg, D. Representações redundantes na computação evolutiva. Illinois Laboratório de Algoritmos Genéticos (IlliGAL) Relatório (2002) Schulmeister, S. Componentes da rentabilidade da negociação de moeda técnica. Appl. Financ. Econ. 18 (11), 917930 (2008) CrossRef Google Scholar Sweeney, R. J. Superando o mercado de câmbio. J. Finance 41 (1), 163182 (1986) Google Acadêmico Wilson, G. Banzhaf, W. Interday troca de divisas usando programação genética linear. Em: Actas da 12 ª Conferência Anual sobre Computação Genética e Evolutiva GECCO10 (2010) Google Scholar Informações sobre direitos autorais Springer ScienceBusiness Media, LLC 2012 Autores e Afiliações Lus Mendes 1 Pedro Godinho 2 Joana Dias 3 Faculdade de Economia Universidade de Coimbra Coimbra Portugal 2. Faculdade de Economia e GEMF Universidade de Coimbra Coimbra Portugal 3. Faculdade de Economia e Inesc-Coimbra Universidade de Coimbra Coimbra Portugal Sobre este artigoSnowCron Algoritmo Genético em FOREX Trading Systems Utilizando Algoritmo Genético para criar rentável FOREX Trading Strategy. Algoritmo Genético em Cortex Redes Neurais Software Feedforward Backpropagation Neural Network Aplicação para computações genéticas baseado Forex trading. Este exemplo usa conceitos e idéias do artigo anterior, por isso leia Neural Network Genetic Algorithm em FOREX Trading Systems em primeiro lugar, embora não seja obrigatório. Sobre este texto Em primeiro lugar, leia o aviso de isenção de responsabilidade. Este é um exemplo de usar a funcionalidade de algoritmo genético de Software de Redes Neurais de Cortex, não um exemplo de como fazer negociação rentável. Eu não sou seu guru, nem eu deveria ser responsável por suas perdas. Cortex Neural Networks Software tem redes neurais nele, e FFBP discutimos antes é apenas uma maneira de escolher uma estratégia de negociação forex. É uma boa técnica, poderosa e quando aplicado corretamente, muito promicing. No entanto, ele tem um problema - para ensinar a Rede Neural. Precisamos saber a saída desejada. É bastante fácil de fazer quando fazemos aproximação de função, apenas tomamos o valor real de uma função, porque sabemos o que deve ser. Quando fazemos previsão de redes neurais. Nós usamos a técnica (descrita em artigos anteriores) de ensinar a Rede Neural sobre a história, novamente, se nós prevemos, digamos, uma taxa de câmbio, sabemos (durante o treinamento) qual é a previsão correta. No entanto, quando estamos construindo um sistema de negociação, não temos idéia do que a decisão de negociação correta é, mesmo se nós conhecemos a taxa de câmbio Como a matéria de fato, temos muitas estratégias de negociação forex que podemos usar em qualquer ponto do tempo, e Precisamos encontrar um bom - como O que devemos alimentar como a saída desejada de nossa rede Neural Se você seguiu nosso artigo anterior, você sabe, que temos traído para lidar com este problema. Nós ensinamos a Rede Neural para fazer previsão de taxa de câmbio (ou taxa de câmbio baseada) e, em seguida, usou essa previsão para fazer negociação. Então, fora da parte de Rede Neural do programa, nós tomamos uma decisão sobre qual Rede Neural é a melhor. Algoritmos genéticos podem lidar com este problema diretamente, eles podem resolver o problema declarado como encontrar os melhores sinais comerciais. Neste artigo vamos usar o Cortex Neural Networks Software para criar tal programa. Usando Algoritmo Genético Algoritmos Genéticos são muito bem desenvolvidos, e muito diversificada. Se você quiser aprender tudo sobre eles, sugiro que você use a Wikipedia, como este artigo é apenas sobre o que Cortex Neural Networks Software pode fazer. Tendo Cortex Neural Networks Software. Nós podemos criar uma rede neural que toma alguma entrada, digamos, os valores de um indicador, e produz alguma saída, digamos, sinais de negociação (comprar, vender, segurar.) E parar a perda ter níveis de lucro para as posições a serem abertas. Claro, se nós semente desta Rede Neural s pesos ao acaso, os resultados comerciais serão terríveis. No entanto, vamos dizer que criamos uma dúzia de tais NNs. Então podemos testar o desempenho de cada um deles, e escolher o melhor, o vencedor. Esta foi a primeira geração de NNs. Para continuar na segunda geração, precisamos permitir que nosso vencedor procreate, mas para evitar a obtenção de cópias idênticas, vamos adicionar algum ruído aleatório para seus pesos descententes. Na segunda geração, temos nosso vencedor de primeira geração e suas cópias imperfeitas (mutadas). Vamos fazer o teste novamente. Teremos outro vencedor, que é melhor do que qualquer outra rede neural na geração. E assim por diante. Simplesmente permitimos que os vencedores se reproduzam e eliminem os perdedores, assim como na evolução da vida real, e obteremos nossa Rede Neural de melhor negociação. Sem qualquer conhecimento prévio sobre o que o sistema de negociação (algoritmo genético) deve ser semelhante. Rede Neural Algoritmo Genético: Exemplo 0 Este é o primeiro exemplo de algoritmo genético. E um muito simples. Vamos caminhar por ela passo a passo, para aprender todos os truques que os exemplos a seguir usarão. O código tem comentários inline, por isso permite apenas concentrar-se em momentos-chave. Primeiro, criamos uma rede neural. Ele está usando pesos aleatórios, e ainda não foi ensinado. Então, no ciclo, fazemos 14 cópias dele, usando MUTATIONNN fumtion. Esta função faz uma cópia de uma Rede Neural de origem. Adicionando valores aleatórios de 0 a (em nosso caso) 0,1 para todos os pesos. Nós mantemos alças para resultar em 15 NNs em uma matriz, podemos fazê-lo, como identificador é apenas um número inteiro. A razão pela qual usamos 15 NNs não tem nada a ver com negociação: Cortex Neural Networks Software pode plotar até 15 linhas em um gráfico simultaneamente. Podemos usar diferentes abordagens para o teste. Primeiro, podemos usar o conjunto de aprendizado, tudo de uma só vez. Em segundo lugar, podemos testar, digamos, 12000 restrições (de 100000), e percorrer o conjunto de aprendizado, do começo ao fim. Isso tornará os aprendizes diferentes, pois iremos procurar redes neurais que sejam lucrativas em qualquer dado dado, não apenas no conjunto. A segunda abordagem pode nos dar problemas, se os dados mudam, do começo ao fim. Em seguida, a rede vai evoluir, obtendo a capacidade de comércio no final do conjunto de dados, e perder a capacidade de comércio no seu início. Para resolver esse problema, vamos pegar aleatórios 12000 registros fragmentos de dados, e alimentá-lo para a Rede Neural. É simplesmente um ciclo infinito, já que 100000 ciclos nunca serão alcançados à nossa velocidade. Abaixo adicionamos uma criança para cada rede, com pesos ligeiramente diferentes. Note que 0,1 para mutação tange não é a única escolha, como a matéria de fato, mesmo este parâmetro pode ser otimizado usando algoritmo genético. Os NNs recém-criados são adicionados após 15 existentes. Desta forma, temos 30 NNs em uma matriz, 15 velhos e 15 novos. Então vamos fazer o próximo ciclo de testes, e matar perdedores, de ambas as gerações. Para fazer o teste, aplicamos a Rede Neural aos nossos dados, para produzir saídas e, em seguida, chamamos a função Teste, que usa essas saídas para simular a negociação. Resultados de negociação são usados ​​para deside, que NNs são melhores. Usamos um intervalo de registros nLearn, de nStart para nStart nLearn, onde nStart é um ponto aleatório dentro do conjunto de aprendizado. O código abaixo é um truque. A razão pela qual o usamos é para ilustrar o fato de que o algoritmo genético pode criar algoritmos genéticos. Mas não necessariamente será o melhor, e também, sugerir, que podemos melhorar o resultado, se implicarmos algumas limitações para o processo de aprendizagem. É possível, que o nosso sistema de comércio funciona muito bem em longos comércios, e muito pobre em curto, ou vice-versa. Se, digamos, longos comércios são MUITO bons, este algoritmo genético pode ganhar, mesmo com grandes perdas em negócios curtos. Para evitá-lo, atribuímos mais peso aos negócios longos em negócios curtos e curtos em ciclos pares. Este é apenas um exemplo, não há garantia, que ele vai melhorar algo. Mais sobre isso abaixo, em discussão sobre correções. Tecnicamente, você não tem que fazê-lo, ou pode torná-lo de forma diferente. Adicione lucro a uma matriz ordenada. Retorna uma posição de inserção, então usamos essa posição para adicionar identificador de rede neural, aprendendo e testando lucros para matrizes não-classificadas. Agora temos dados para a Rede Neural atual no mesmo índice de array que seu lucro. A idéia é chegar a matriz de NNs, classificados por rentabilidade. Como matriz é classifica por lucro, para remover 12 de redes, que são menos rentáveis, só precisamos remover NNs 0 a 14 As decisões de negociação são baseadas no valor de sinal de rede neural, a partir deste ponto de vista o programa é idêntico a exemplos de Artigo anterior. Estratégia de negociação FOREX: Discutir o exemplo 0 Primeiro de tudo, vamos dar uma olhada em gráficos. O primeiro gráfico de lucro durante a primeira iteração não é bom em tudo, como seria de esperar, a Rede Neural perde dinheiro (imagem evolution00gen0.png copiada após a primeira iteração da pasta de imagens): A imagem para lucro no ciclo 15 é melhor, às vezes , Algoritmo genético pode aprender muito rápido: No entanto, observe a saturação em uma curva de lucro. É interessante também observar a forma como os lucros individuais mudam, tendo em mente que o número da curva, digamos, 3 nem sempre é para a mesma Rede Neural. Como eles estão a nascer e terminou o tempo todo: Note também que o pequeno sistema de comércio automatizado forex é pobre em negócios curtos e muito melhor em longas, o que pode ou não estar relacionado com o fato de que o dólar estava caindo em comparação com Euros durante esse período. Também pode ter algo a ver com parâmetros do nosso indicador (talvez, precisamos período diferente para shorts) ou a escolha de indicadores. Aqui está a história após 92 e 248 ciclos: Para nossa surpresa, o algoritmo genético falhou completamente. Vamos tentar descobrir por que, e como ajudar a situação. Primeiro de tudo, não é cada geração suposto ser melhor do que o previuos A resposta é não, pelo menos não dentro do modelo que usamos. Se tomarmos ENTIRE aprendizagem conjunto de uma vez, e usado repetidamente para ensinar NNs, então sim, eles vão melhorar em cada geração. Mas em vez disso, pegamos fragmentos aleatórios (12000 registros no tempo), e os usamos. Duas perguntas: por que o sistema falhou em fragmentos aleatórios do conjunto de aprendizagem, e por que havent usamos todo o conjunto de aprendizagem Bem. Para responder à segunda pergunta, eu fiz. NNs realizado muito - no conjunto de aprendizagem. E falharam no teste ajustado, pela mesma razão falha quando nós usamos o aprendizado de FFPB. Dito de outra forma, nossos NNs ficaram sobre-especializados, aprenderam a sobreviver no ambiente que estão acostumados, mas não fora dela. Isso acontece muito na natureza. A abordagem que nós tomamos em vez disso destinava-se a compensar isso, forçando NNs a executar bom em qualquer fragmento aleatório do conjunto de dados, de modo que, esperamos, eles também poderiam executar em um conjunto de testes desconhecidos. Em vez disso, eles falharam nos testes e no conjunto de aprendizado. Imagine animais, vivendo em um deserto. Muito sol, sem neve. Este é um metafor para rizing mercado, como para NNs nossos dados desempenham o papel do ambiente. Os animais aprenderam a viver num deserto. Imagine animais, que vivem em um clima frio. Neve e sem sol. Bem, eles se ajustaram. No entanto, em nosso experimento, colocamos aleatoriamente nossas NNs em um deserto, na neve, na água, nas árvores. Apresentando-os com diferentes fragmentos de dados (aleatoriamente aumentando, caindo, flat.). Animais morreram. Ou, para colocá-lo de forma diferente, nós selecionamos a melhor Rede Neural para o conjunto de dados aleatórios 1, que, digamos, foi para o mercado em alta. Em seguida, apresentamos, para os vencedores e seus filhos, uma queda nos dados dos mercados. NNs executado mal, que levou melhor de artistas pobres, talvez, uma das crianças mutantes, que perdeu a capacidade de comércio no mercado em ascensão, mas tem alguma capacidade de lidar com a queda de um. Então nós giramos a tabela outra vez, e outra vez, nós começamos o mais melhor performer - mas melhor entre executores pobres. Nós simplesmente não damos NNs nossas chances de se tornar universal. Existem técnicas que permitem que o algoritmo genético aprenda novas informações sem perder o desempenho em informações antigas (afinal, os animais podem viver no verão e no inverno, assim a evolução é capaz de lidar com mudanças repetidas). Podemos discutir essas técnicas mais tarde, embora este artigo é mais sobre o uso de Cortex Neural Networks Software. Do que sobre a construção de um sistema de comércio automatizado forex bem sucedido. Algoritmo Genético de Rede Neural: Exemplo 1 Agora é hora de falar sobre correções. Um algoritmo genético simples que criamos durante a etapa anterior tem duas falhas importantes. Primeiro, ele não negociou com lucro. É ok, podemos tentar usar o sistema parcialmente treinado (foi rentável no início). A segunda falha é mais séria: não temos controle sobre as coisas, que esse sistema faz. Por exemplo, ele pode aprender a ser rentável, mas com grandes abaixamentos. É um fato bem conhecido, que na vida real, a evolução pode otimizar mais de um parâmetro simultaneamente. Por exemplo, podemos obter um animal, que pode correr rápido E ser resistente ao frio. Por que não tentar fazer o mesmo em nosso sistema automatizado de negociação forex. Isso é quando usamos as correções, que não são nada, mas o conjunto de punições adicionais. Dizer, nosso sistema negocia com drawdown 0.5, enquanto nós queremos confirmá-lo para 0 - 0.3 intervalo. Para dizer ao sistema que cometeu um erro, diminuímos seu lucro (um usado para determinar qual algoritmo genético venceu) ao grau, que é proporcional ao tamanho de DD. Então, o algoritmo de evolução cuida do resto. Há poucos fatores mais, que queremos levar em consideração: podemos querer ter mais ou menos igual número de operações de compra e venda, queremos ter mais de operações lucrativas, depois de falhas, podemos querer que o gráfico de lucro Ser linear e assim por diante. Em evolution01.tsc implementamos um conjunto simples de correções. Em primeiro lugar, usamos um grande número para um valor de correção inicial. Multiplicamo-lo a um pequeno (geralmente, entre 0 e 1) valores, dependendo da punição que queremos aplicar. Então nós multiplicamos nosso lucro a esta correção. Como resultado, o lucro é corrigido, para refletir o quanto o algoritmo genético corresponde aos nossos outros critérios. Então usamos o resultado para encontrar uma Rede Neural vencedora. Estratégia de negociação FOREX: Discutir o exemplo 1 O exemplo 1 funciona muito melhor do que o exemplo 0. Durante os primeiros 100 ciclos, aprendeu muito e os gráficos de lucro parecem tranquilizadores. No entanto, como no exemplo 0, os negócios longos são muito mais rentáveis, o que provavelmente significa que há um problema em nossa abordagem. No entanto, o sistema encontrou um equilíbrio entre algumas condições iniciais contraditórias: Há alguma dinâmica positiva tanto no conjunto de aprendizagem e, mais importante, no conjunto de testes. Quanto ao aprendizado, no ciclo 278 podemos ver que o nosso sistema se sobreenturou. Isso significa que ainda temos progresso no conjunto de aprendizado: Mas o conjunto de testes mostra fraqueza: este é um problema comum com NNs: quando ensinamos no aprendizado, ele aprende a lidar com ele, e às vezes, ele aprende muito bem - para o Grau, quando ele perde desempenho no conjunto de testes. To deal with that problem, a traditional solution is used: we keep looking for the Neural Network . that performs best on testing set, and save it, overwriting previous best one, every time new peak is reached. This is the same approach, we used in FFBP training, except, this time we have to do it ourselves (adding code, that looks for a best Neural Network on a testing set, and calling SAVENN, or exporting weights of Neural Network to a file). This way, when you stop your training, youll have the best performer ON TESTING SET saved and waiting for you. Note also, that it is not the max. profit you are after, but optimal performance, so consider using corrections, when looking for a best performer on a testing set. Genetic Algorithm for FOREX Technical Analysis: Where now After you got your winner Neural Network . you can follow the steps, described in previous article, to export weights of that Neural Network . and then to use them in your real time trading platform, like Meta Trader, Trade Station and so on. Alternatively, you can focus on other ways of optimizing the Neural Network . unlike with FFBP algorithm, here you can get avay from using learning and testing sets, and move sequential learning. Download Cortex Order Cortex View Price List Visibility is very important for this site. If you like it please link to this URL

No comments:

Post a Comment