Python Genetic Algorithm For Trading System
Esta não é tipicamente a maneira que os algoritmos genéticos são representados, e eu pessoalmente não sinto que um algoritmo genético é a abordagem certa para isso, mas no entanto isso é certamente possível. Supondo que você só queira interagir com este conjunto específico de variáveis, você tem um pequeno conjunto de valores em potencial: isso significa que você pode facilmente representá-los como uma lista plana: crossover é então apenas misturar dois cromossomos em um ponto de divisão específica: mutação é então Também relativamente trivial, apenas mudando um número aleatoriamente, comutando o operador booleano, etc Licença que um como um exercício para o leitor embora. Respondeu Apr 7 14 at 17:09 Isso pressupõe um fluxo linear de instruções ao invés de uma árvore. Ndash Hugh Bothwell Abr 7 14 em 17:11 HughBothwell Não faz. Isso é simplesmente converter uma estrutura de árvore definida em uma lista com uma ordem definida de aplicação para essa árvore para crossover. O layout do cromossomo aqui é independente da árvore em si, e OP não significa que eles realmente queriam editar a estrutura da árvore. Se o fizerem, mudarei esta resposta. Ndash Slater Tyranus Apr 7 14 em 17: 14Using programação genética para evoluir estratégias de negociação Um amigo e eu recentemente trabalhou juntos em uma atribuição de pesquisa onde usamos com sucesso a programação genética (GP) para evoluir soluções para um problema de classificação financeira do mundo real. Este problema, chamado de análise de segurança, envolve a determinação de quais títulos devem ser comprados, a fim de obter um bom retorno sobre o investimento no futuro. Para encontrar uma solução para este problema, utilizamos a Programação Genética para desenvolver uma população de árvores de decisão que poderia realizar análises de segurança em sessenta e duas das ações de tecnologia listadas no SampP 500. Ou seja, nós evoluímos árvores de decisão capazes de classificar essas ações de acordo com Se eles devem ser comprados ou vendidos curto. Análise de Segurança Árvores de Decisão Durante o estudo desenvolvemos dois tipos de árvores de decisão de análise de segurança. O primeiro utilizou apenas indicadores de análise fundamental e o segundo utilizou apenas indicadores de análise técnica. Análise fundamental é um método de avaliação de uma garantia para medir o seu valor intrínseco, examinando relacionados econômico, financeiro e outros fatores qualitativos e quantitativos. A análise técnica é um método de avaliação de títulos através da análise de estatísticas geradas pela atividade de mercado. Uma estratégia de análise de segurança, independentemente da sua utilização de indicadores técnicos ou fundamentais, consistirá numa série de regras para a tomada de decisões de investimento. Essa estratégia pode ser representada como uma árvore de decisão onde os nós terminais representam decisões de investimento e os nós funcionais representam regras baseadas em indicadores técnicos ou fundamentais. Devido a este fato, muitas estratégias de investimento existentes são representadas na forma de árvores de decisão. No total, quarenta e dois indicadores diferentes foram selecionados e utilizados tanto na Análise Técnica quanto na Análise Fundamental. As estratégias evoluídas foram para um período fixo de espera, seja três meses, seis meses, nove meses ou doze meses. As árvores de decisão foram então testadas novamente usando dados de mercado de 2011 a 2013. Programação Genética Programação Genética é uma especialização de um Algoritmo Genético. Os Algoritmos Genéticos são baseados na população, o que significa que eles operam dentro de uma população composta por muitos indivíduos diferentes. Cada indivíduo é representado por um genótipo único (normalmente codificado como um vetor). Os Algoritmos Genéticos modelam o processo de evolução genética através de um número de operadores incluindo o operador de seleção que modela a sobrevivência do mais apto, o operador crossover que modela a reprodução sexual eo operador de mutação que modela as mutações genéticas que ocorrem aleatoriamente em indivíduos numa população. Esses operadores, quando combinados, produzem o que os cientistas de computação chamam de Algoritmo Genético. Os três operadores de um Algoritmo Genético sendo aplicado a uma população de vetores (blocos) A diferença entre um Algoritmo Genético e o Algoritmo de Programação Genética é a maneira pela qual os genótipos individuais são representados. Em Genetic Algorithms os genótipos são representados como Strings ou como Vectors enquanto que na Genetic Programming estes genótipos são representados usando estruturas de dados em árvore. A operação de crossover em estruturas de árvore pode acontecer de algumas maneiras, ou uma sub-árvore é trocada, um nó de folha é removido ou alterado, ou os valores de algum nó são ajustados. Após este estudo, concluímos que a Programação Genética tem grande potencial para desenvolver novas estratégias de análise de segurança e gestão de investimentos, desde que melhores funções Para calcular a aptidão pode ser derivado. Ao longo de nosso estudo de pesquisa vimos que as árvores de decisão evoluíram usando a Programação Genética foram capazes de produzir classificações de ações que batem o retorno médio do mercado consistentemente ao longo de todos os quatro trimestres. Isso vale para árvores de decisão que utilizaram indicadores técnicos, bem como árvores de decisão que utilizaram indicadores fundamentais. Diversas conclusões foram derivadas de nossa pesquisa, incluindo os tamanhos e o nível ótimo de heterogeneidade para as árvores de decisão eo valor agregado pelos diferentes indicadores eo desempenho das estratégias em relação um ao outro. Alguns resultados estão incluídos abaixo. Conclusão Dois relatórios de pesquisa independentes foram produzidos por mim e meu amigo. Ambos os relatórios vão em muito mais detalhes sobre o nosso estudo de investigação, a abordagem adoptada, o nosso design e implementação, as estratégias de testes que usamos, as nossas conclusões e recomendações para a investigação. Você também pode baixar uma cópia do código-fonte criado durante a implementação. Para meus colegas mais técnico conta do projeto por favor clique aqui. Tags Comentário copiado do LinkedIn Computational Finance Group Muito bom trabalho. O escrever é lindo, bem. Eu só tive uma chance de olhar para o relatório. Algumas estatísticas que seria bom olhar para: como é que o seu portfólio de GA comparar com carteiras dos mesmos ativos. Olhe para dois portfólios de comparação: um portfólio ponderado igual e um portfólio de estilo SampP que é ponderado por capitalização de mercado. Como se vê, pode ser surpreendentemente difícil de vencer uma carteira igualmente ponderada. Reequilibrar as carteiras trimestralmente, uma vez que algumas ações irão subir e algumas irão para baixo (por exemplo, você deseja manter os pesos da carteira igual, como os preços mudam). Se seu algoritmo genético bate esses portfólios, então você tem alfa (excesso de retorno sobre o benchmark). Claro que o alpha não é tudo. Você deve olhar para a expectativa de perda de cauda (ETL) (também conhecido como CVaR, déficit esperado) tanto para a carteira de GA e do benchmark. Se você tiver menos risco para o mesmo retorno, então você pode considerar que você bater o benchmark. A medida de ETL é uma medida melhor do que a relação de Sharpe quando vem ao risco, desde que a relação de Sharpe mede a variância, que é de dois lados. ETL só mede perda. Uma observação: um problema com GA e redes neurais (NN) é que eles são caixas negras. É difícil determinar por que eles fazem as escolhas que fazem. Então imagine que você é um gerente de carteira. Seu GA ou NN começa a funcionar mal. Que medidas você pode tomar para resolver isso? O problema é que tudo o que você realmente pode fazer é treinar e você não sabe se a reciclagem fará melhor. Claro que com uma árvore de decisão não é tão ruim, já que pelo menos você sabe quais decisões ele tomou. O problema é que, se você está constantemente tweeking para tomar as decisões certas, então você tem um problema também. Essas questões são razões que você não vê esses algoritmos usados tanto (embora eles são usados). Resposta copiada do LinkedIn Computational Finance Group Obrigado pelas palavras de cortesia Ian, agradecemos que você se interesse por nossa pesquisa e nos forneça alguns comentários perspicazes. Em nossa abordagem, comparamos apenas o desempenho das seleções de ações feitas por nossas árvores de decisão com uma carteira igualmente ponderada. Estender nossa pesquisa para incorporar diferentes carteiras é uma idéia interessante que iremos acompanhar durante a próxima fase de desenvolvimento. Também estamos considerando implementar algumas das abordagens bem conhecidas para análise de segurança a serem usadas como benchmarks de desempenho adicionais. Se você ou qualquer outra pessoa tiver sugestões sobre quais abordagens podem ser boas referências, entre em contato. Seus comentários sobre o uso de outras medidas de desempenho estão disponíveis. Gostaríamos definitivamente de voltar a olhar para o quadro de back-testing e investigar maneiras de torná-lo mais rigoroso e menos propenso a excesso de montagem. Também gostaríamos de implementar funções de aptidão adicionais que levem em consideração medidas de risco de carteira, bem como medidas de excesso de retorno (alfa). Vou analisar as medidas que você mencionou e ver como melhor podemos incorporá-los em nosso quadro existente. Também estaremos considerando como é possível usar uma estrutura de back-testing de código aberto, como a ZipLine, a estrutura de back-testing usada pelo quantopian. Suas observações sobre a natureza eo uso de GAs e redes neurais em finanças é muito interessante. O desafio de tornar esses algoritmos mais transparentes e, francamente, um pouco menos assustador, é um não ser tomada de ânimo leve. Meu colega está atualmente trabalhando em um trabalho de pesquisa onde ele está tentando levantar o véu em alguns dos funcionamentos internos de redes neurais. Se ele for bem-sucedido, então, em vez de necessitar constantemente de reciclar redes neurais quando algo der errado, ele pode ser capaz de isolar a causa do problema na rede neural e adaptar sua arquitetura em conformidade. Ele está considerando usar uma aplicação financeira do mundo real de redes neurais em sua pesquisa. Então, se você tem alguma idéia sobre isso, por favor, deixe-me saber Pessoalmente falando, estou atualmente trabalhando em uma atribuição de pesquisa, onde eu estou tentando construir um quadro algorítmico para carry trade carteira seleção e otimização. Faz uso de alguns algoritmos de Inteligência Computacional e em frente vou manter em mente as questões que você mencionou. Vou tentar identificar maneiras de mitigar ou eliminar essas preocupações no quadro. Obrigado novamente por todos os seus comentários, nós apreciamos o feedback. Se você tem mais idéias boas, entre em contato conosco. Comentário copiado do LinkedIn Computational Finance Group Eu acho que a abordagem mais razoável para backtesting é comparar seus resultados com o que acontece com o comércio aleatório que ainda obedece a quaisquer restrições que você está impondo sobre o portfólio. Criando um Sistema de Negociação no Sistema de Negociação Lab Trading System Lab gerará automaticamente Sistemas de Negociação em qualquer mercado em poucos minutos usando um programa de computador muito avançado Conhecida como AIMGP (Indução Automática de Código de Máquina com Programação Genética). Criação de um sistema de negociação dentro Trading System Lab é realizado em 3 passos simples. Em primeiro lugar, é executado um pré-processador simples que automaticamente extrai e pré-processa os dados necessários do mercado que você deseja trabalhar. TSL aceita CSI, MetaStock, AIQ, TradeStation, dados de Internet grátis, ASCII, TXT, CSV, CompuTrac, DowJones, FutureSource, TeleChart2000v3, TechTools, XML, dados binários e Internet Streaming. Em segundo lugar, o gerador de sistema de negociação (GP) é executado por vários minutos, ou mais, para evoluir um novo sistema de negociação. Você pode usar seus próprios dados, padrões, indicadores, relações de intermarket ou dados fundamentais dentro de TSL. Em terceiro lugar, o Sistema de Negociação evoluído é formatado para produzir novos sinais do Sistema de Negociação a partir do TradeStation ou de muitas outras plataformas de negociação. TSL irá escrever automaticamente Easy Language, Java, Assembler, código C, código C e WealthLab Script Language. O Sistema de Negociação pode então ser negociado manualmente, negociado através de um corretor ou negociado automaticamente. Você pode criar o sistema de comércio você mesmo ou nós podemos fazê-lo para você. Em seguida, você ou seu corretor podem negociar o sistema manualmente ou automaticamente. Trading System Labs Genetic Program contém vários recursos que reduzem a possibilidade de ajuste de curva, ou produzindo um sistema de negociação que não continua a realizar no futuro. Em primeiro lugar, os Sistemas de Negociação evoluídos têm seu tamanho podado até o menor tamanho possível através do que é chamado Pressão de Parcimônia, extraindo do conceito de comprimento de descrição mínimo. Assim, o Sistema de Negociação resultante é tão simples quanto possível e geralmente se acredita que quanto mais simples for o Sistema de Negociação, melhor será o desempenho no futuro. Em segundo lugar, a aleatoriedade é introduzida no processo evolutivo, o que reduz a possibilidade de encontrar soluções que sejam localmente, mas não globalmente óptimas. A aleatoriedade é introduzida não apenas nas combinações do material genético usado nos sistemas de negociação evoluídos, mas também na Parsimony Pressure, Mutation, Crossover e outros parâmetros GP de nível mais alto. O teste Fora da Amostra é realizado enquanto o treinamento está em andamento com informações estatísticas apresentadas nos testes de Amostra e Fora de Amostra de Sistema de Negociação. Os logs de execução são apresentados ao usuário para dados de treinamento, validação e fora da amostra. Bem comportado Out of Sample desempenho pode ser indicativo de que o sistema de negociação está evoluindo com características robustas. A deterioração substancial do teste automático de ausência de amostra em comparação com o teste de amostra pode implicar que a criação de um robusto sistema de negociação está em dúvida ou que o terminal ou conjunto de entradas pode precisar ser alterado. Finalmente, o conjunto de terminais é cuidadosamente escolhido de modo a não exagerar a seleção do material genético inicial para qualquer tendência ou sentimento de mercado particular. A TSL não inicia sua execução com um sistema de negociação predefinido. De facto, apenas o Conjunto de Entradas e uma selecção de modos ou modos de entrada de mercado, para a procura e atribuição automática de entradas, é inicialmente feita. Um padrão ou comportamento indicador que pode ser pensado como uma situação de alta pode ser usado, descartado ou invertido dentro do GP. Nenhum padrão ou indicador é pré-atribuído a qualquer tendência de movimento de mercado em particular. Este é um desvio radical do desenvolvimento do sistema de negociação gerado manualmente. Um sistema negociando é um jogo lógico das instruções que dizem o comerciante quando comprar ou vender um mercado particular. Estas instruções raramente exigem a intervenção de um comerciante. Os Sistemas de Negociação podem ser negociados manualmente, observando instruções de negociação em uma tela de computador ou podem ser negociados permitindo que o computador inicie negócios no mercado automaticamente. Ambos os métodos estão em uso generalizado hoje. Existem mais gerentes de dinheiro profissional que se consideram comerciantes sistemáticos ou mecânicos do que aqueles que se consideram discricionária, eo desempenho dos gestores de dinheiro sistemático é geralmente superior ao dos gerentes de dinheiro discrecional. Estudos têm demonstrado que as contas comerciais geralmente perdem dinheiro com mais freqüência se o cliente não está usando um sistema de negociação. O aumento significativo nos Sistemas de Negociação nos últimos 10 anos é evidente, especialmente nas corretoras de commodities, no entanto as corretoras de mercado de ações e de ações estão cada vez mais conscientes dos benefícios através do uso de Sistemas de Negociação e alguns começaram a oferecer Sistemas de Negociação aos seus Clientes de varejo. A maioria dos gestores de fundos mútuos já estão usando sofisticados algoritmos de computador para orientar suas decisões sobre qual estoque quente para escolher ou o setor de rotação está a favor. Computadores e algoritmos tornaram-se mainstream no investimento e esperamos que esta tendência continue enquanto os investidores mais jovens e informáticos continuam a permitir que partes do seu dinheiro sejam geridas pela Trading Systems para reduzir o risco e aumentar os retornos. As enormes perdas sofridas pelos investidores que participam na compra e manutenção de ações e fundos mútuos como o mercado de ações derretido nos últimos anos está promovendo este movimento para uma abordagem mais disciplinada e lógica para investir no mercado de ações. O investidor médio percebe que ele ou ela atualmente permite que muitos aspectos de suas vidas e as vidas de seus entes queridos para ser mantido ou controlado por computadores como os automóveis e aeronaves que usamos para o transporte, os equipamentos de diagnóstico médico que usamos para a manutenção da saúde, Os controladores de aquecimento e refrigeração que usamos para o controle de temperatura, as redes que usamos para informações baseadas na Internet, até mesmo os jogos que jogamos para entretenimento. Por que, então, alguns investidores de varejo acreditam que podem atirar do quadril em suas decisões sobre o que estoque ou fundo mútuo para comprar ou vender e esperar para ganhar dinheiro Finalmente, o investidor médio tornou-se cauteloso do conselho e informações encaminhadas por corretores sem escrúpulos , Contadores, diretores corporativos e consultores financeiros. Durante os últimos 20 anos, matemáticos e desenvolvedores de software pesquisaram indicadores e padrões nos mercados de ações e commodities procurando informações que pudessem apontar para a direção do mercado. Essas informações podem ser usadas para melhorar o desempenho dos Sistemas de Negociação. Geralmente, este processo de descoberta é realizado através de uma combinação de tentativa e erro e mais sofisticado de Data Mining. Normalmente, o desenvolvedor levará semanas ou meses de número crunching, a fim de produzir um potencial sistema de negociação. Muitas vezes este sistema negociando não executará bem quando usado realmente no futuro devido ao que é chamado ajuste da curva. Ao longo dos anos tem havido muitos sistemas de negociação (e empresas de desenvolvimento do sistema de negociação) que vieram e foram como seus sistemas falharam na negociação ao vivo. Desenvolvimento de sistemas de negociação que continuam a desempenhar no futuro é difícil, mas não impossível de realizar, embora nenhum desenvolvedor ético ou gerente de dinheiro vai dar uma garantia incondicional de que qualquer sistema de negociação, ou para qualquer assunto, ações ou fundos mútuos, continuará Para produzir lucros no futuro para sempre. O que demorou semanas ou meses para que o desenvolvedor do sistema de negociação produza no passado pode agora ser produzido em minutos através do uso do Trading System Lab. Trading System Lab é uma plataforma para a geração automática de Sistemas de Negociação e Indicadores de Negociação. TSL faz uso de uma alta velocidade Genetic Programming Engine e produzirá Trading Systems a uma taxa de mais de 16 milhões de sistema-barras por segundo com base em 56 entradas. Note que apenas algumas entradas serão realmente usadas ou necessárias resultando em estruturas de estratégia geralmente simples evoluídas. Com aproximadamente 40.000 a 200.000 sistemas necessários para uma convergência, o tempo de convergência para qualquer conjunto de dados pode ser aproximado. Observe que não estamos simplesmente executando uma otimização de força bruta de indicadores existentes procurando parâmetros ótimos a partir dos quais usar em um sistema de negociação já estruturado. O Gerador do Sistema de Negociação começa em uma origem de ponto zero sem fazer suposições sobre o movimento do mercado no futuro e então desenvolve Sistemas de Negociação a uma taxa muito alta combinando informações presentes no mercado e formulando novos filtros, funções, condições e relacionamentos como ele Progride para um sistema de negociação geneticamente modificado. O resultado é que um excelente sistema de negociação pode ser gerado em poucos minutos em 20-30 anos de dados diários de mercado em praticamente qualquer mercado. Ao longo dos últimos anos, tem havido várias abordagens para Trading System otimização que empregam a menos poderosa Algoritmo Genético. Os Programas Genéticos (GPs) são superiores aos Algoritmos Genéticos (AGs) por várias razões. Primeiro, os GPs convergem em uma solução em uma taxa exponencial (muito rápido e ficando mais rápido), enquanto que os Algoritmos Genéticos convergem em uma taxa linear (muito mais lenta e não ficando mais rápida). Em segundo lugar, GPs realmente gerar código de máquina do sistema de negociação que combinou o material genético (indicadores, padrões, dados inter-mercado) de maneiras únicas. Essas combinações únicas podem não ser intuitivamente óbvias e não exigem definições iniciais do desenvolvedor do sistema. As relações matemáticas únicas criadas podem se tornar novos indicadores, ou variantes na Análise Técnica, ainda não desenvolvidos ou descobertos. Os AGs, por outro lado, simplesmente procuram soluções ótimas à medida que progridem na faixa de parâmetros que não descobrem novas relações matemáticas e não escrevem seu próprio código de Sistema de Negociação. GPs criar código de sistema de negociação de vários comprimentos, usando genomas de comprimento variável, irá modificar o comprimento do sistema de negociação através do que é chamado de crossover não-homóloga e descartar completamente um indicador ou padrão que não contribui para a eficiência do sistema de negociação. GAs usam apenas blocos de instruções de tamanho fixo, fazendo uso de apenas crossover homóloga e não produzem código de sistema de negociação de comprimento variável, nem descartarão um indicador ou padrão ineficiente tão facilmente quanto um GP. Finalmente, os Programas Genéticos são um avanço recente no domínio da aprendizagem mecânica, enquanto os Algoritmos Genéticos foram descobertos há 30 anos. Os programas genéticos incluem todas as principais funcionalidades de crossover, reprodução, mutação e fitness, mas os GPs incluem características muito mais rápidas e robustas, tornando os GPs a melhor escolha para produzir Trading Systems. O GP empregado no TSLs Trading System Generator é o GP mais rápido atualmente disponível e não está disponível em qualquer outro software de mercado financeiro do mundo. O Algoritmo de Programação Genética, o Simulador de Negociação e os Motores de Fitness usados dentro da TSL levaram mais de 8 anos para produzir. Trading System Lab é o resultado de anos de trabalho duro por uma equipe de engenheiros, cientistas, programadores e comerciantes, e acreditamos que representa a tecnologia mais avançada disponível hoje para a negociação do markets. intuition 0,4,3 gt Kit de negociação quantitativa, para hackers gt A mente intuitiva é um dom sagrado e a mente racional é um servo fiel. Criamos uma sociedade que honra o servo e esqueceu o dom. Lti alignrightgtAlbert Einsteinlt / igt Visão geral A intuição é um motor, alguns tijolos de construção e um conjunto de ferramentas destinadas a permitir que você eficiente e intuitivamente faça seu próprio sistema de negociação quantitativo automatizado. Ele é projetado para permitir desenvolvedores, comerciantes e cientistas explorar, melhorar e implantar hacks técnicos de mercado. Embora o projeto ainda esteja em estágio inicial, você já pode escrever, usar, combinar algoritmos de detecção de sinais, estratégias de alocação de portfólio, fontes de dados e configuradores de contextos. Basta conectar suas estratégias e analisar backtests ou monitorar sessões de negociação ao vivo. Além disso, eu trabalho em instalações para construir um sistema distribuído e aplicação do século XXI (grandes dados, cálculos de gordura, d3.js e outras coisas html5), ferramentas para misturar idiomas como Python, node. js e R e uma biblioteca financeira. Você vai encontrar alguns guloseimas como a previsão de aprendizagem de máquina, otimização de portfólio de markowitz, otimização genética, análise de sentimento do twitter, Características altamente configurável ambiente de negociação, powered by zipline9 De kickstart instantâneo para controle total Feito para deixá-lo ajustar algoritmos, gerente de portfólio, Contextos e plugins Plugin friendly8. Experimente a integração de R em seus algoritmos Analisador de resultados Biblioteca financeira, com funções de negociação usadas comumente, fetchers de dados, relatórios de correio, notificações móveis, redes de mensagens, já inclui many2 Experimental negociação ao vivo em diferentes mercados (Nyse, Nasdaq, CAC40 e Forex por enquanto) Usado por exemplo para resolver Coursera econometrics assignments Projeto modular. Reutilização de blocos de intuição para construir seu próprio aplicativo financeiro Gerenciamento de dados fácil de usar, com rethinkdb6 Docker4 suporte para desenvolvimento de fluxo de trabalho e implementação Tipo de um showcase de CI como eu estou testando travis (travis-ci. org), wercker (wercker), shippable Shippable), drone. io (drone. io), macacões (coveralls. io) e paisagem (landscape. io) Introdução Saiba mais e localize a documentação (em andamento) em doc. intuition. io. Você pode acompanhar o desenvolvimento deste board1 trello e conversar sobre o projeto em Gitter3. Um webapp construído em cima de Intuition também está em desenvolvimento, obter o seu bilhete cedo em intuition. io colaboradores contribuintes são felizmente bem-vindos, aqui é um lugar para start10.Natural selecção: Algoritmo genético para a optimização do sistema Programação genética Evo 2 é o nosso algoritmo genético avançado Biblioteca que incorpora o mais recente em design de algoritmo genético, tais como processos biologicamente idênticos, interruptores epigenéticos, recozimento simulado, Westermarck prevenção de endogamia, recombinação idade-limitada, e mais. O algoritmo Evo 2 não é baseado no padrão único cromossomo GA design. O Evo 2 resolve rapidamente problemas de otimização multivariada e se adapta bem à complexidade. O algoritmo Evo 2 foi projetado para programação genética (criação autônoma de sistemas de negociação), otimização de sistemas de negociação e otimização de portfólios. Evo 2 permite aos desenvolvedores construir otimizações de sistemas de negociação multivariada com facilidade. Bio-Identidade Genoma e Algoritmo Evo 2 não é apenas bio-inspirado, mas é bio-idêntico em muitos aspectos. Evo 2 simula cada processo natural de seleção de mate para embalagem de DNA e meiose completa. A maioria dos algoritmos genéticos padrão negligenciar a realização dos múltiplos passos da meiose que são de vital importância para a variação genética, uma variável crucial importante para evitar optima local. Prophase Durante a prófase, cromossomos sinapse e uma pequena quantidade de DNA é trocada entre cromossomos homólogos através de um processo conhecido como cruzamento. A parte crítica da profase é o alinhamento de tetrads em pares homólogos. O algoritmo de Evo 2 garante que os homólogos sejam criados apenas a partir de cromossomos sexuais não relacionados e opostos. Metáfase e anafase A metafase e a anáfase são as fases em que muita variação é incorporada ao genoma no entanto, a maioria dos algoritmos genéticos deixa completamente esses passos. Evo 2 simula ambas as fases completamente e com precisão. Nenhuma endogamia permitida A maioria dos algoritmos genéticos padrão são sopa endogâmica, tecnicamente falando. A endogamia reduz a variação genética, o que basta dizer, impede que os sistemas evoluam e se adaptem ao seu ambiente. Em GAs padrão, isso significa que um sistema pode ser mais provável que fique preso em optima local. Enquanto a natureza tem pelo menos três mecanismos para evitar a endogamia, a maioria dos algoritmos genéticos não conseguem resolver este problema. O primeiro método: Impedir reprodução da prole. A consanguinidade resulta em homozigose aumentada, o que pode aumentar as chances de a prole ser afetada por traços recessivos ou deletérios. O segundo mecanismo: afastar os jovens do sexo masculino para evitar o acasalamento de incesto entre irmãos. O terceiro mecanismo: O efeito Westermarck. Este é um efeito psicológico através do qual os indivíduos que são criados em estreita proximidade durante a infância tornam-se dessensibilizados para a atração sexual posterior. A consequência final da endogamia é a extinção de espécies devido à falta de diversidade genética. A chita, uma das espécies mais endogâmicas na terra, é um excelente exemplo. E, também acontece de estar enfrentando a extinção. Vinte mil anos atrás, as chitas percorriam toda a África, Ásia, Europa e América do Norte. Cerca de 10 mil anos atrás, devido à mudança climática, todas as espécies, menos uma, se extinguiram. Com a redução drástica em seus números, os parentes próximos foram forçados a se reproduzir, eo chita tornou-se geneticamente endogâmico, o que significa que todos os chitas estão muito intimamente relacionados. Embora a natureza proíba a endogamia, quase todos os algoritmos genéticos simulados por computador ignoram esse problema. Evo 2 previne a endogamia através do efeito Westermarck e outros efeitos simulados. Switches epigenéticos A teoria epigenética descreve como as mudanças na expressão gênica podem ser causadas por mecanismos diferentes das mudanças na seqüência de dna subjacente, temporariamente ou por várias gerações, influenciando uma rede de interruptores químicos dentro de células conhecidas coletivamente como o epigenoma. O Evo 2 pode simular switches epigenéticos para permitir que o sistema seja temporariamente penalizado por ações como ser muito ganancioso ou avessos ao risco. Recozimento simulado O recozimento simulado é um metaheurístico probabilístico para o problema de otimização global de localizar uma boa aproximação ao ótimo global de uma determinada função em um espaço de busca grande. É freqüentemente usado quando o espaço de pesquisa é discreto. Para certos problemas, o recozimento simulado pode ser mais eficiente do que a enumeração exaustiva. Family Tree Evo 2 pode salvar informações genealógicas para cada genoma para que os usuários podem rever a progressão do algoritmo genético para ver como certos genes evoluíram ao longo do tempo. Karyogram Viewer Evo 2 apresenta um karyogram embutido, que permite a visualização de genomas enquanto algoritmos genéticos estão evoluindo. O cariograma pode ser personalizado para exibir informações de genealogia para genomas específicos através de um menu de contexto. Aplicações do Evo 2 O Evo 2 pode ser usado no lado do cliente ou do servidor para programação genética (criação autônoma de sistemas de negociação), otimização de sistemas de negociação, otimização de portfólio, alocação de ativos e aplicações não relacionadas a finanças, incluindo, Design, bioinformática, cinética química, quebra de código, engenharia de controle, modelos Feynman-Kac, filtragem e processamento de sinal, aplicações de agendamento, engenharia mecânica, otimização estocástica e problemas de horário. Exemplos de programação genética Exemplos de programação TradeScript mostram aos desenvolvedores como criar modelos de programação genética capazes de testar e otimizar estratégias. A documentação de programação pode ser baixada aqui.
Comments
Post a Comment