Wednesday 26 July 2017

Forex Forecasting Genetic Algorithm


Algoritmo genético de SnowCron em sistemas de troca de FOREX que usam o algoritmo genético para criar a estratégia negociando rentável de FOREX. 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 o nosso artigo anterior, você sabe, que temos traído para lidar com esse problema. Nós ensinamos a Rede Neural para fazer previsão de taxa de câmbio (ou taxa de câmbio baseado) 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 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. Ele retorna uma posição de inserção e, em seguida, usamos essa posição para adicionar identificador de rede neural, aprendendo e testando lucros para matrizes não ordenadas. 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 para 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 no nosso sistema de negociação automatizado 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. Para lidar com esse problema, uma solução tradicional é usada: nós continuamos procurando a Rede Neural. Que executa melhor no conjunto de testes e salvá-lo, sobrescrevendo o anterior melhor, cada vez que o novo pico é atingido. Esta é a mesma abordagem, nós usamos no treinamento FFBP, exceto, desta vez temos que fazê-lo nós mesmos (adicionando código, que procura uma melhor rede neural em um conjunto de testes, e chamando SAVENN, ou exportando pesos de rede neural para um Arquivo). Desta forma, quando você parar o seu treinamento, você terá o melhor desempenho ON TESTING SET salvo e esperando por você. Note também, que não é o max. Lucro que você está procurando, mas o desempenho ideal, então considere usar correções, ao procurar um melhor desempenho em um conjunto de testes. Algoritmo Genético para FOREX Análise Técnica: Onde agora Depois que você tem o vencedor Rede Neural. Você pode seguir os passos, descritos no artigo anterior, para exportar pesos dessa Rede Neural. E depois usá-los em sua plataforma de negociação em tempo real, como Meta Trader, Trade Station e assim por diante. Alternativamente, você pode se concentrar em outras formas de otimização da Rede Neural. Ao contrário do algoritmo FFBP, aqui você pode obter avay de usar conjuntos de aprendizagem e teste, e mover a aprendizagem sequencial. Download Cortex Order Cortex Ver lista de preços A visibilidade é muito importante para este site. Burton sugeriu em seu livro, A Random Walk Down Wall Street, (1973) que, Um macaco de olhos vendados jogando dardos em uma páginas financeiras jornais poderia selecionar um portfólio que faria Bem como 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 demonstraram 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 é o rácio da dívida utilizado para medir a alavancagem financeira de uma empresa ou um rácio de endividamento utilizado para medir um indivíduo. Existe um grande corpo de literatura sobre o sucesso da aplicação de algoritmos evolutivos em geral, e o algoritmo genético em particular, mercados financeiros. No entanto, eu me sinto desconfortável sempre lendo esta literatura. Os algoritmos genéticos podem sobre-ajustar os dados existentes. Com tantas combinações, é fácil chegar a algumas regras que funcionam. Pode não ser robusto e não tem uma explicação consistente de por que essa regra funciona e essas regras não vão além do simples argumento (circular) de que ele funciona porque o teste mostra que ele funciona. Qual é o consenso atual sobre a aplicação do algoritmo genético em finanças pediu Feb 18 11 às 9:00 Eu trabalhei em um fundo de hedge que permitiu GA-estratégias derivadas. Para a segurança, exigiu que todos os modelos fossem submetidos muito antes da produção para se certificar de que ainda trabalhassem nos backtests. Assim, poderia haver um atraso de até vários meses antes de um modelo seria permitido correr. Também é útil para separar o universo de exemplo usar uma metade aleatória dos estoques possíveis para a análise de GA ea outra metade para backtests de confirmação. É que um processo diferente do que você usaria antes de confiar em qualquer outra estratégia de negociação (Se assim for, não está claro para mim o que você ganha de fazer um modelo GA usando dados para o tempo t, em seguida, testando até tN antes de confiar, Ao tempo tN, testando de tN para t, e usá-lo imediatamente.) Darren Cook Nov 23 11 at 2:08 DarrenCook uma questão que eu vejo é que se você testar de tN para t e achar que não funciona bem, então você está indo Para criar outro modelo que é testado naquele mesmo período de tempo tN para t (ad infinitum). Isso introduz a probabilidade de quotmetaquot-overfitting durante o processo de criação do modelo. Ndash Chan-Ho Suh Jul 22 15 at 5:24 No que diz respeito a dados-snooping, se um GA é implementado corretamente, que shouldn39t ser uma preocupação. As funções de mutação são especificamente incluídas para procurar aleatoriamente pelo espaço do problema e evitar a busca de dados. Dito isto, encontrar os níveis de mutação corretos pode ser algo de uma arte e se os níveis de mutação são muito baixos, então ele é como se a função não fosse implementada em primeiro lugar. Ndash BioinformaticsGal Apr 6 11 at 16:28 BoinformaticsGal Eu don39t entender como a inclusão de funções de mutação nos permite evitar snooping dados. Após a busca, há uma função da aptidão que faça cada geração 39fit39 os dados cada vez mais. Ou não estou entendendo você corretamente Ndash Vishal Belsare Há muitas pessoas aqui falando sobre como GAs são empíricas, não têm fundamentos teóricos, são caixas negras, e assim por diante. Eu imploro para diferenciar Theres um ramo inteiro da economia dedicada a olhar mercados em termos de metáforas evolutivas: Economia evolucionária Eu recomendo altamente o livro de Dopfer, as fundações evolucionárias da economia, como uma introdução. Se a sua visão filosófica é que o mercado é basicamente um cassino gigante, ou jogo, então um GA é simplesmente uma caixa-preta e não tem qualquer fundamento teórico. No entanto, se a sua filosofia é que o mercado é uma ecologia de sobrevivência do mais apto, GAs têm abundância de fundamentos teóricos, e é perfeitamente razoável para discutir coisas como especiação corporativa, ecologias de mercado, genomas carteira, climas comerciais eo gostar. Respondeu Abr 5 11 at 15:42 Em escalas de tempo curto é mais um casino. Como a natureza, de fato. Ndash quantdev Apr 5 11 at 20:46 quantdev, o problema com isso é que GA - como quaisquer outros métodos quantitativos - só funciona com escala de tempo curto, se eu não me engano. Portanto, se o mercado de ações é mais como um mercado de ações, então GA seria completamente inútil. Ndash Graviton Apr 6 11 em 8:56 Graviton. Não há nenhuma razão inerente para que não se possa programar um GA para fazer análise em intervalos de tempo mais longos. O domínio do tempo de uma GA é medido em gerações, não em anos ou dias. Assim, basta definir uma população com indivíduos cujas gerações são anos ou décadas (isto é, corporações). Tem havido definitivamente algum trabalho que se aproxima definindo 39genomes corporativos39 por seus processos de produção. Em tal modelo, um optimize para um modelo eficiente do negócio incorporado, dado um clima particular do mercado. No entanto, não é um modelo de carteira de preço de ações. Ndash BioinformaticsGal Apr 6 11 at 15:12 Assumindo que você evita bias de dados-snooping e todas as armadilhas potenciais de usar o passado para prever o futuro, confiando algoritmos genéticos para encontrar a solução certa praticamente se resume à mesma aposta que você faz quando você Gerir activamente uma carteira, quer quantitativa quer discricionária. Se você acredita na eficiência do mercado, em seguida, aumentar seus custos de transação de gestão ativa é ilógico. Se, no entanto, você acredita que existem padrões estruturais amp psicológica ou falhas a serem exploradas e os benefícios vale a pena o tempo eo dinheiro para pesquisar e implementar uma estratégia a escolha lógica é a gestão activa. Executar uma estratégia derivada GA é uma aposta implícita contra a eficiência do mercado. Você está basicamente dizendo que eu acho que há mis-avaliações que ocorrem por alguma razão (massas de pessoas irracionais, fundos mútuos pastoreio por causa dos incentivos mis-alinhados, etc) e executando este GA pode classificar esta massa de dados de maneira mais rápida do que eu posso . Respondida Feb 18 11 at 15:49 manualmente gerenciar um portfólio ativo envolve o uso de todas as informações que temos e derivar uma conclusão lógica sobre o mercado e, em seguida, executar estratégias sobre ele esta é uma atividade racional. OTOH, usando o GA está usando uma ferramenta de caixa-preta, não podemos explicar o resultado dele derivado de quaisquer princípios aceitos. Não tenho certeza se esses dois são realmente os mesmos. Sim, mas considere as semelhanças entre GA39s e como os humanos aprendem sobre os mercados, desenvolvem estratégias, aprendem com os erros e se adaptam às mudanças nas condições do mercado. Quando você pesquisa o que ganhando e perdendo ações têm em comum, ou o que volume e padrões de preços criar bons negócios, ou qual é o modelo mais exato para a valorização de derivados o que você está fazendo é mineração de dados do passado de certa forma. Quando as condições de mercado mudam, você negocia novas estratégias ou, eventualmente, sai do negócio. Se há margens exploráveis ​​no mercado, então a única diferença entre você e um GA é ndash Joshua Chance Feb 18 11 at 16:46 Graviton (em um sentido muito amplo) é que você tem uma narrativa, uma história para ir com a sua estratégia . Nós, humanos, corremos o risco de encontrar um padrão aparentemente recorrente e depois racionalizá-lo e criar uma narrativa. GA39s arriscam a mesma coisa, somente seu modelo potencial falso não usa palavras, eles usam matemática e lógica. Ndash Joshua Chance Feb 18 11 às 16:54 O falecido Thomas Cover. (Provavelmente o principal teórico da informação de sua geração), considerou abordagens universais a coisas como compactação de dados e alocações de portfólios como verdadeiros algoritmos genéticos. A evolução não tem parâmetros para caber ou treinar. Por que os verdadeiros algoritmos genéticos As abordagens universais não fazem suposições sobre a distribuição subjacente dos dados. Eles não fazem qualquer tentativa de prever o futuro a partir de padrões ou qualquer outra coisa. A eficácia teórica das abordagens universais (elas apresentam desafios significativos de implementação, veja a minha pergunta recente: Geometria para Portfólios Universais) segue deles fazendo o que a evolução exige. Os mais rápidos, inteligentes ou fortes não sobrevivem necessariamente na próxima geração. A evolução favorece esse gene, organismo, meme, carteira, ou algoritmo de compressão de dados posicionado para adaptar-se mais facilmente ao que quer que aconteça em seguida. Além disso, como essas abordagens não fazem suposições e operam de forma não paramétrica, pode-se considerar todos os testes, mesmo em todos os dados históricos, como fora da amostra. Certamente eles têm limitações, Certamente eles não podem trabalhar para todos os tipos de um problema que enfrentamos em nosso domínio, mas gee, o que é uma maneira interessante de pensar sobre as coisas. Bem, o objetivo de um algo genético é encontrar a melhor solução sem passar por todos os cenários possíveis, porque seria muito longo. Então, é claro, é curva de montagem, essa é a meta. Respondeu Mar 6 11 at 20:40 Mas há uma diferença significativa entre superpondo a amostra (ruim) e ajustando a população (bom). É por isso que muitos sugerem que você cross-validar o seu algoritmo com fora do teste da amostra. Ndash Joshua Jul 17 13 at 2:34 Sua resposta 2017 Stack Exchange, IncA força tendenciosa previsão modelo de previsão taxas de câmbio usando máquinas de vetores de apoio e algoritmos genéticos Citar este artigo como: zorhan, M. O. Toroslu ,. H. Ehitolu, O. T. Soft Comput (2016). Doi: 10.1007s00500-016-2216-9 Este artigo aborda o problema da previsão de direção e magnitude do movimento de pares de moedas no mercado de câmbio. O estudo usa a máquina do vetor do apoio com uma aproximação nova para dados de entrada e estratégia negociando. Os dados de entrada contêm indicadores técnicos gerados a partir de dados de preços de moeda (ou seja, preços abertos, altos, baixos e próximos) ea representação desses indicadores técnicos como sinais deterministas de tendência. Os dados de entrada também são dinamicamente adaptados a cada dia de negociação com algoritmo genético. O estudo incorpora uma estratégia de negociação tendência de força de moeda que seleciona o melhor par para o comércio a partir do conjunto disponível de moedas e é uma melhoria em relação ao trabalho anterior. A precisão dos modelos de previsão é testada entre vários conjuntos de indicadores técnicos e conjuntos de pares de moedas, abrangendo 5 anos de dados históricos de 2010 a 2015. Os resultados experimentais sugerem que a utilização de sinais de indicadores técnicos deterministas de tendência misturados com dados brutos melhora o desempenho global e Adaptar dinamicamente os dados de entrada a cada período de negociação resulta em lucros aumentados. Results also show that using a strength-biased trading strategy among a set of currency pair increases the overall prediction accuracy and profits of the models. Forex Forecasting Support Vector Machines Genetic Algorithms Trend Deterministic Communicated by V. Loia. References Anasataskis L, Mort N (2009) Exchange rate forecasting using a combined parametric and nonparametric self-organising modelling approach. Expert Syst Appl 1:1200112011 CrossRef Google Scholar Bahrepour M, Akbarzadeh M, Yaghoobi M, Naghibi S (2011) An adaptive ordered fuzzy time series with application to FOREX. Expert Syst Appl 1:475485 CrossRef Google Scholar Box GEP, Jenkins GM (1976) Time series analysis: forecasting and control. Holden-Day, San Francisco MATH Google Scholar Brown DP, Robert HJ (1989) On technical analysis. Rev Financ Stud 2:527551 CrossRef Google Scholar Chen MY, Chen K, Chiang H, Huang H, Huang M (2007) Comparing extended classifier system and genetic programming for financial forecasting: an empirical study. Soft Comput 1:11731183 CrossRef MATH Google Scholar Cheung Y, Chinn MD, Pascual AG (2005) Empirical exchange rate models of the nineties: are they fit to survive J Int Money Finance 24:11501175 CrossRef Google Scholar Cortes C, Vapnik V (1995) Support-vector networks. Mach Learn 1:20 MATH Google Scholar Davis L (1991) Handbook of genetic algorithms. Van Nostrand Reinhold, New York Google Scholar Gupta AR, Ingle VR, Gaikwad MA (2012) LS-SVM parameter optimization using genetic algorithm to improve fault classification of power transformer. Int J Eng Res Appl 1:18061809 Google Scholar Ijegwa D, Rebecca O, Olusegun F, Isaac O (2014) A predictive stock market technical analysis using fuzzy logic. Comput Inf Sci 7(3):117 Jung HG, Yoon JP, Kim J (2007) Genetic algorithm based optimization of SVM based pedestrian classifier. ITC-CSCC 1:833834 Google Scholar Kampouridis M, Otero FEB (2015) Heuristic procedures for improving the predictability of a genetic programming financial forecasting algorithm. Soft Comput 1:116 Google Scholar Kamruzzaman J, Sarker R (2003) Forecasting of currency exchange rates using ANN: a case study. IEEE Int Conf Neural Netw Signal Process 1:793797 Google Scholar Khemchandani R, Jayadeva Chandra S (2009) Regularized least squares fuzzy support vector regression for financial time series forecasting. Expert Syst Appl 1:132138 CrossRef Google Scholar Korol T (2014) A fuzzy logic model for forecasting exchange rates. Knowl Based Syst 1:4960 CrossRef Google Scholar Leitch G, Tanner JE (1991) Economic forecast evaluation: profits versus the conventional error measures. Am Econ Rev 1:580590 Google Scholar Lu C, Lee T, Chiu C (2009) Financial time series forecasting using independent component analysis and support vector regression. Decis Support Syst 1:115125 CrossRef Google Scholar Meffert K (2014) JGAPJava Genetic Algorithms and Genetic Programming Package. jgap. sf Moosa I, Burns K (2014) The unbeatable random walk in exchange rate forecasting reality or myth J Macroecon 1:6981 CrossRef Google Scholar Nesreen A, Atiya A, Gayar N, Shishiny H (2010) An empirical comparison of machine learning models for time series forecasting. Econ Rev 1:594621 MathSciNet Google Scholar Pang S, Song L, Kasabov N (2011) Correlation-aided support vector regression for forex time series prediction. Neural Comput Appl 1:11931203 CrossRef Google Scholar Patel J, Shah S, Thakkar P, Kotecha K (2015) Predicting stock and stock price index movement using trend deterministic data preparation and machine learning techniques. Expert Syst Appl 1:259268 CrossRef Google Scholar Shahjalal M, Sultana A, Mitra KN, Khan K (2012) Implementation of fuzzy rule based technical indicator in share market. Int J Appl Econ Finance 6:5363 CrossRef Google Scholar Shen F, Chao J, Zhao J (2015) Forecasting exchange rate using deep belief networks and conjugate gradient method. Neurocomputing 1:243253 CrossRef Google Scholar Tick-by-Tick Real-Time and Historical Market Rates (2016) truefx. Accessed on 14 Jan 2016 Villa S, Stella F (2012) A continuous time bayesian network classifier for intraday FX Prediction. Quantitative Finance, pp 1-20 Wang S, Yu L, Lai K, Huang W (2007) Developing and assessing an intelligent forex rolling forecasting and trading decision support system for online e-service. Int J Intell Syst 1:475499 Google Scholar Yao J, Tan C (2000) A case study on using neural networks to perform technical forecasting of forex. Neurocomputing 1:7998 Zhang P (2003) Time series forecasting using a hybrid ARIMA and neural network model. Neurocomputing 1:159175 CrossRef MATH Google Scholar Zhiqiang G, Huaiqing W, Quan L (2013) Financial time series forecasting using LPP and SVM optimized by PSO. Soft Comput 1:805818 CrossRef Google Scholar Copyright information Springer-Verlag Berlin Heidelberg 2016 Authors and Affiliations Mustafa Onur zorhan 1 Email author smail Hakk Toroslu 1 Onur Tolga ehitolu 1 1. Computer Engineering Department Middle East Technical University Ankara Turkey About this article

No comments:

Post a Comment