Resposta

Pergunta para Mark - Detalhes sobre a evolução genética?

4 respostas

mikeyc

Cliente, bbp_participant, comunidade, 877 respostas.

Perfil da visita

8 anos atrás #114067

Hi,

 

Tenho algumas perguntas: o que acontece exatamente durante a mutação/acasalamento de estratégias no modo de evolução genética?

 

Ela envolve duas estratégias do pool inicial ou mais de duas?

Ele pega aleatoriamente a regra de entrada de um e a combina com a regra de saída de outro?

Esse processo altera os parâmetros de alguma forma (como a otimização faz)?

Existe alguma aleatoriedade e em relação a quê durante o processo de combinação?

 

Estou tentando entender o que é mais importante para dedicar tempo:

 

  1. Criar mais estratégias aleatórias
  2. Gaste mais tempo aprimorando e otimizando estratégias aleatórias
  3. Dedicar tempo ao desenvolvimento genético

Ter uma visão dos detalhes do que acontece com os blocos de construção e as regras durante o processo genético seria de grande ajuda.

 

Obrigado,

 

Mike

0

gentmat

Cliente, bbp_participante, comunidade, 234 respostas.

Perfil da visita

8 anos atrás #132028

Oi Mike, acho que Mark usa a função Matlab, pois ele é um desenvolvedor. Para entender o GA, você precisa ler ou fazer um curso para isso. 

Tentarei explicar o que me lembro de meus estudos na universidade.

 

O pool aleatório é escolhido primeiro, e o primeiro gen aleatório terá uma aptidão de, digamos, 1... em seguida, outros gens virão e receberão um número de aptidão, dependendo dos critérios escolhidos para essa aptidão. 

Quando todas as estratégias aleatórias são criadas... É provável que o algoritmo gire em torno da estratégia mais adequada, e é por isso que você vê muitas estratégias parecidas ao escolher entre genética e aleatória. A genética levará a estratégias mais semelhantes por causa da aptidão. 

Então, digamos que seja um círculo enorme dentro dele, com pequenos pontos... Você verá todos os pontos tentando se encaixar, mas relativamente a essa aptidão.

 

Agora, a mutação ocorre, mas é tão rara que o 10% é tão alto. Lembre-se de que o Algoritmo Genético é usado para encontrar muitos problemas, como a evolução humana. Portanto, você pode definir a mutação como 0,1 para ser mais realista, mesmo em negociações. 

 

Agora, o Crossover é a maneira de resolver as coisas mais rapidamente e isso foi feito por muitos pesquisadores que trabalharam com o GA e o aprimoraram. Lembre-se também de que o GA ainda é um método NAIVE, não excelente, mas realmente ajudou até mesmo nos problemas da NASA e eles descobriram que o crossover é o melhor. 

O crossover trocará A, Z e Y da cadeia e começará a trocá-los. Ele não mudará A ou B, apenas a combinação fará com que ele mude logicamente, mas, como parâmetros, duvido que mude alguma coisa. 

 

Existe uma maneira padrão, uma maneira melhor ou configurações? NÃO 

O fato é que, se você aumentar o número do pool de geração aleatória, obterá melhores resultados genéticos, mas lembre-se de que isso consome tempo e precisa de muita CPU para fazer isso (e um pool grande às vezes leva a estratégias mais semelhantes, pois, de 1.000, uma dessas negociações sempre será a mais adequada; nesse caso, você estará vivendo um círculo e terá de fazer com que seja mais parecido com um pool de 100).

O aleatório pode obter os mesmos resultados que o genético, mas levará mais tempo para isso... mas como o consumo de SQ da CPU é um pouco estranho, posso dizer que o aleatório é muito mais rápido que o genético.

Portanto, em teoria, a genética deve ser mais rápida, mas com a pesquisa genética SQ consome mais tempo para preparar o pool e o cruzamento, e assim por diante.

 

Espero que eu tenha tentado ajudar e que agora o MARK responda, mas acredito que ele não terá nenhuma configuração específica, pois mesmo os professores e as pessoas que criaram o GA ainda não sabem quais são as melhores configurações para o GA.

Mas a maioria dos matemáticos concorda com a mutação 0,1 e o cruzamento 65%  

0

mikeyc

Cliente, bbp_participant, comunidade, 877 respostas.

Perfil da visita

8 anos atrás #132031

Suponho que o ponto crucial do que estou tentando entender é: o GA apenas combina partes de duas estratégias e, em seguida, verifica se é melhor do que as estratégias principais, e em que nível ele combina as partes? É no nível de entrada, saída, stop loss ou em partes individuais da lógica do nível de entrada, saída e stop, e as constantes, como o período do indicador, são alteradas? A combinação é feita nos níveis do operador/bloco de construção?

 

A abordagem do GA oferece melhores resultados do que gastar tempo com o aprimoramento seguido de otimização ou é melhor ir em frente:

 

Aleatório -> Melhorar partes da estratégia -> Otimizar, e não usar o GA de forma alguma?

0

gentmat

Cliente, bbp_participante, comunidade, 234 respostas.

Perfil da visita

8 anos atrás #132033

Sou um desenvolvedor, mas não escrevi o sq, mas aqui estão os fatos do que acredito ser verdade.
1- Ga combina regras de entrada, digamos que a estratégia 1 tenha cci > rsi e a estratégia 2 tenha wp > bbands
ga vai pegar o mais adequado desses dois, vamos ficar com str 1, e ele faz o seguinte
adicionar, substituir ou trocar
portanto, um cenário seria cci>wp
ou cci>rsi && wp>bbands
e assim por diante
Ga faria o mesmo para sl e obteria lucro
O Ga não trocará o tipo de ordem, portanto, ele manterá o tipo de ordem do mais adequado, mas só fará alterações para entrada e saída.
2- O improvisador só é usado se você tiver algo em mente para tornar a busca mais rápida.
3- Não há como responder se o aleatório, o aprimoramento e a otimização são melhores ou não. Ninguém jamais responderá a isso, a menos que seja ignorante e pense que sabe, mas não sabe.
É tudo uma questão de sorte e velocidade. Tenho certeza de que, se você tiver 200 núcleos a 50 GHz, terá mais chances de encontrar boas estratégias do que um usuário normal.
aleatório tem prós e contras, portanto GA
-radom pros:
a-muito rápido, especialmente no sq3, em comparação com o ga
b - pode encontrar uma variedade de novas combinações diferentes umas das outras
c-não usa muitos rams e não espera a contagem, depois espera alguns segundos para verificar a adequação e começa a processar novas gerações (velocidade novamente)
contras:
a- Como é mais rápido encontrar estratégias, é mais lento encontrar boas estratégias uma vez que, às vezes, o randômico encontra ótimas entradas, mas não ótimas saídas, portanto, se for uma boa estratégia, ela levará a algo em vez de ser ignorada pelo randômico.
Profissionais da AG
1- melhor na busca de soluções para problemas complexos que levariam 400 anos para serem resolvidos, poderiam levar 1 ano com o AG. Pro Os cientistas usam o AG e não o aleatório para resolver problemas
Contras da AG:
-Lento devido ao modo multithread do sq (tem algo errado, espero que o sq4 seja melhor) . o random também usa vários núcleos, mas parece muito mais rápido
-Como eu disse antes, o problema do algoritmo genético é que ele pode circular em torno do mais adequado e produzir infinitamente as mesmas estratégias.
Isso se deve a um indicador que se ajusta melhor a qualquer estratégia aleatória, de modo que eu o usarei sempre.
Para resolver esse problema, você precisa diminuir o número de pool gerados aleatoriamente, mas lembre-se de que um número maior de aleatórios oferece mais chances de uma estratégia melhor.
o que é melhor o que é melhor eu não sei dizer, mesmo quem criou o ga não sabe dizer 🙂
experimente uma piscina grande, experimente uma piscina pequena, experimente apenas o aleatório.
Não acho que o mercado de câmbio seja muito complexo e que qualquer pessoa possa fazê-lo sozinha.
Você só precisa de velocidade e velocidade do computador. Não se preocupe em aprimorar e otimizar, apenas restrinja o banco à estabilidade > 0,85
Dessa forma, você obterá 10 estratégias em um dia e colocará em sua mente o número de negociações > o número máximo de negociações. Dessa forma, apenas as estratégias que estão na metade do processo serão armazenadas e não haverá muito trabalho a ser feito, a não ser tentar a estratégia em diferentes símbolos e períodos de tempo diferentes.

0

seaton

Cliente, bbp_participante, comunidade, 161 respostas.

Perfil da visita

8 anos atrás #132038

Em geral, os AGs são uma forma de pesquisar rapidamente grandes espaços de entrada para obter resultados que, embora não sejam ótimos, costumam ser muito bons, ao contrário de uma abordagem de força bruta, que levará muito tempo para pesquisar o mesmo espaço de entrada e encontrar os mesmos resultados; no entanto, se você usar a abordagem de força bruta e tiver tempo suficiente, encontrará o MELHOR A abordagem Obviamente, a abordagem aleatória é apenas isso, ela pesquisará aleatoriamente o espaço de entrada e, com sorte, chegará a algo que valha a pena.

 

A teoria por trás do GA é que as entradas para um grande espaço de pesquisa são mapeadas/codificadas em um genoma (ou seja, pode ser uma matriz ou cadeia de caracteres que representa as entradas a serem pesquisadas). Nesse caso, com o SQ, as funções são mapeadas para formar uma estratégia e o espaço de pesquisa é o mercado. Uma função de aptidão baseada em regras é aplicada ao genoma para determinar qual é um bom resultado e quem sobrevive para a próxima população.

 

Uma população inicial é criada usando genomas gerados aleatoriamente (ou, às vezes, semeada com genomas pré-populados, ou seja, você pode ter algumas soluções não ideais que deseja pesquisar). você pode ter algumas soluções não ótimas que deseja pesquisar mais a fundo) e, assim como na teoria da evolução, os genomas que têm a aptidão sobrevivem (resultado da aplicação da função de aptidão a cada genoma da população), de modo que somente a aptidão sobrevive e, juntamente com os novos genomas gerados aleatoriamente para compor a população, ocorrerão o cruzamento e a mutação, O cruzamento simula a reprodução e um par de genomas pais trocará parte de seu genoma para formar os filhos que irão compor a nova geração. Cada genoma na nova população tem uma pequena chance aleatória de mutação. Essa mutação ajuda a população a não ficar presa em situações do tipo máximo local, a função de adequação é aplicada e tudo começa novamente.

 

Com o tempo, o valor geral da aptidão da população geralmente aumenta até um ponto em que não aumentará muito mais, ou seja, a estagnação da aptidão. Quando isso ocorre, geralmente é o resultado de ter encontrado um máximo local no espaço de busca e é um sinal de que não é possível evoluir mais. Portanto, é melhor começar novamente com uma nova população para tentar encontrar outro máximo local.

 

Portanto, para responder à sua pergunta, no SQ, os resultados usando o GA e o Random, na minha opinião, é que o GA encontrará estratégias lucrativas mais rapidamente do que o random, mas a população resultante será semelhante e pode não ser mais otimizada do que as estratégias geradas aleatoriamente, portanto, ambas precisarão de alguma forma de otimização. Então, na verdade, ambos são apenas uma forma de busca, só que o GA encontrará soluções mais rapidamente, mas a solução encontrada, embora seja boa, pode não ser ótima, ou seja, não está no máximo global. O que eu faço é começar com o randômico e as melhores soluções são usadas para alimentar o GA

 

Há muitas luas atrás (no final dos anos 90), para meu projeto final de graduação, escrevi um sistema operacional multitarefa para sistemas incorporados na MPU 68HC11 da Motorola que usava o GA como agendador de tarefas.

 

Stephen...

1

Visualizando 4 respostas - 1 até 4 (de um total de 4)