Discussão do artigo "Algoritmos genéticos - é fácil!" - página 14

 
Bom dia!
Li o artigo sobre o uso de algoritmos genéticos. Fiquei muito impressionado!!!

Tenho várias perguntas sobre o uso do indicador ZigZag, mas a mais importante é: como você fornece sinais do indicador para treinamento?

O indicador tem uma etapa variável.
Agradeço antecipadamente.
 
Debugger:
1) Li o artigo sobre o uso de algoritmos genéticos. Muito impressionado!!!

2) Como você alimenta os sinais do indicador para treinamento?

3) O indicador tem uma etapa variável.

Peço desculpas por minha pequena correção de sua mensagem. Espero que você entenda. Agradeço antecipadamente. :)

Então:

1) Obrigado.

2) Não estou promovendo isso de forma alguma. O artigo procura os extremos da Alternativa ZZ e compara o lucro total em pips com o lucro do indicador ZZ (que é predefinido por um script especial para o lucro máximo, levando em conta o spread).

3) E isso não é importante para a demonstração dos recursos do UGA. :)


ZЫ. Se eu não tiver respondido às suas perguntas o suficiente, pergunte mais - tentarei ajudá-lo da melhor maneira possível (ou aqueles que já entenderam o trabalho do algoritmo UGA responderão).

 

Ótimo artigo, estava procurando algo semelhante.

Um esclarecimento:

3.10 GenoMerging. Заимствование генов

Esse operador GA não tem equivalente natural

Isso não é totalmente verdade.

Esse processo na natureza é chamado de transferência horizontal de genes.

Em geral - respeito e respeito ao autor, mas é necessário envolver essa biblioteca em uma classe para garantir a mobilidade do uso.

Das observações sobre a conversão de bool para double - isso aumenta a quantidade de cálculos?

Pelo que entendi, para todos os genes são definidos o mesmo intervalo de variação e a mesma precisão. O intervalo não desempenha um papel especial, qualquer intervalo desejado pode ser "espremido" no intervalo necessário. Mas a precisão é mais difícil, ela precisa ser levada ao máximo. E se você precisar pesquisar 1.000 valores diferentes para alguma variável, o mesmo intervalo de pesquisa será automaticamente atribuído a todas as outras variáveis, até mesmo às variáveis bool. Não acontecerá que o algoritmo gastará uma grande parte dos recursos computacionais para calcular os valores dessa variável? Digamos que, se tivermos uma variável bool, com um intervalo de -10 a 10 e uma precisão de 0,1, o algoritmo dessa variável terá cem valores "verdadeiros" DIFERENTES e 100 valores "falsos" DIFERENTES, dando os mesmos dois valores da função de aptidão. Além disso, a própria população pode conter muitos indivíduos diferentes que diferem nessa variável de acordo com o próprio algoritmo, mas são iguais porque o valor real de double é um bool.

Não deveríamos introduzir mais uma matriz, pelo menos definindo a precisão de cada gene?

 
Laryx:

1- Ótimo artigo, estava procurando por algo assim.

2. Pelo que entendi, para todos os genes são definidas a mesma faixa de variação e a mesma precisão. A faixa não é importante, qualquer faixa desejada pode ser "espremida" na faixa necessária. Mas a precisão é mais difícil, ela precisa ser levada ao máximo. E se você precisar pesquisar 1.000 valores diferentes para alguma variável, o mesmo intervalo de pesquisa será automaticamente atribuído a todas as outras variáveis, até mesmo às variáveis bool. Não acontecerá que o algoritmo gastará uma grande parte dos recursos computacionais para calcular os valores dessa variável? Digamos que, se tivermos uma variável bool, com um intervalo de -10 a 10 e uma precisão de 0,1, o algoritmo dessa variável terá cem valores "verdadeiros" DIFERENTES e 100 valores "falsos" DIFERENTES, dando os mesmos dois valores da função de aptidão. Além disso, a própria população pode conter muitos indivíduos diferentes que diferem nessa variável de acordo com o próprio algoritmo, mas são iguais porque o valor real de double é um bool.

3) Não deveríamos introduzir outra matriz que especifique pelo menos a precisão de cada gene?

1. Obrigado.

2. O artigo mantém o algoritmo o mais simples possível ( projeto de código aberto) para facilitar a compreensão do leitor. É um ponto de partida para aprimoramentos e embelezamentos, conforme desejado.

3. É claro que eu mesmo uso uma etapa personalizável (precisão) para cada gene (projeto fechado).

 

Esse desenvolvimento do GA certamente merece uma atenção honrosa).

Ainda mais porque, ao contrário do MT4, no MT5 a otimização só é possível até o penúltimo dia. Levando em conta essa nuance, esse tópico será cada vez mais relevante para usuários e desenvolvedores de neuroconsultores. E, é claro, não há dúvida de que os algoritmos genéticos são tão inseparáveis dos modelos matemáticos das redes neurais quanto o sapato esquerdo do direito).

Portanto, gostaria de fazer uma pergunta. Andrei, diga-me, com base nesses testes e experimentos (e não tenho dúvidas de que você já os fez em grande quantidade), o que, em sua opinião e em relação ao seu EA (e talvez não apenas ao seu), oferece os melhores resultados em otimização? Seu GA ou o GA interno do terminal?

Agradeço antecipadamente por sua resposta.

 
wiantin:

...o que, em sua opinião e em relação ao seu EA (e talvez não apenas ao seu), proporciona melhores resultados na otimização? Seu GA ou o GA interno do terminal?

Meu GA tem melhores resultados. Ele é mais personalizável.

E as versões mais recentes implementam a pesquisa multicritério com elementos de seleção de elite.

Mas o otimizador interno também é muito bom. Se ele tivesse mais configurações e pesquisa multicritério, não valeria nada.

 
joo:

E as versões mais recentes implementam a pesquisa multicritério com elementos de seleção de elite.

Existe alguma possibilidade de se familiarizar com eles?
 

matriz fora do intervalo em 'UGAlib.mqh' (264,24)

Não entendo como aumentar o número permitido de genes, dica de quem conhece melhor as bibliotecas.

upd o erro começou a aparecer não apenas ao aumentar o número de genes...

upd 2 descobri, o problema não está na biblioteca, o mql5 não aceita matrizes dos tamanhos que defini.

 
wiantin:
Existe alguma maneira de se familiarizar com eles?
Não. Somente se eu pensar em escrever um artigo de acompanhamento.
 
ozer-man:

matriz fora do intervalo em 'UGAlib.mqh' (264,24)

Não entendo como aumentar o número permitido de genes, dica de quem conhece melhor as bibliotecas.

upd o erro começou a aparecer não apenas ao aumentar o número de genes...

upd 2 descobri, o problema não está na biblioteca, o mql5 não aceita matrizes dos tamanhos que defini.

O erro se deve ao fato de que o tamanho da segunda dimensão é um array fixo[][const].

Para evitar essa limitação, você precisa usar estruturas (ou classes), algo assim:

struct Сhromosome //cromossomo
  {
    float Gene[]; //genes.
  };
Сhromosome Population[]; // População


ps. e como é que eu perdi dois posts inteiros. :)