Não para desenvolvedores de MT! O que substituir INIT_PARAMETERS_INCORRECT por ? - página 8

 
Aleksey Vyazmikin:

Você tem 4 parâmetros, então você precisa organizar estes 4 parâmetros para trabalhar somente com os valores corretos, então a genética pode ser útil.

Como assim?

Se cada parâmetro pode tomar 3 valores corretos, então seusar_parâmetro = verdadeiro você recebe 81 passes, e se = falso, então 80 passes são inúteis.

Então, como "de alguma forma" organizar isto?

 
Сергей Таболин:

Como funciona?

Se cada param_ pode tomar 3 valores corretos, então seusar_parâmetro = verdadeiro você recebe 81 passes, e se = falso, então 80 passes são inúteis.

Então, como "de alguma forma" organizar isto?

Não posso dar uma resposta a esta pergunta porque, no mínimo, não entendo as condições de otimização - ou você declara mal ou eu sou burro.

Você tem 4 parâmetros interdependentes ou dois pares?

Se você tiver 4 variantes mutuamente dependentes e, como você escreveu antes, todas as variantes em um arquivo como uma configuração, então a genética preencherá o campo aleatoriamente (e talvez por outro método - pergunta para MQ) e otimizará a parte selecionada. Se você tiver outros parâmetros para otimizar, fora destes 4, então o geneticista será capaz de buscar a configuração ideal em relação aos parâmetros selecionados e outros parâmetros.

 
Сергей Таболин:

No seu caso, somente cadeias válidas podem ser geradas.

Você tem combinações válidas de 1953. tire a configuração int de 0 a 1952 e gere a combinação correta pelo número de seqüência.

 
Alexey Navoykov:

Esse é o seu erro. Não há passagens "supérfluas" na genética. Ele ordena tudo por si só, peneirando coisas desnecessárias, o que economiza tempo e recursos. E você só está interferindo com ele.

Na verdade, você se contradiz. Primeiro você diz que quer que tudo funcione por si só, apertando um botão mágico, sem nenhum esforço adicional de sua parte. Mas ao mesmo tempo você cria xamãs no código, supostamente ajudando o algoritmo de otimização.

De qualquer forma, tudo está claro agora:

Você não precisa eliminar nada por INIT_PARAMETERS_INCORRECT. Basta calcular 121 de acordo com a lógica de seu programa, e a genética fará seu trabalho e o resultado será obtido em menos de 1953 passes.

Se você otimizar usando a busca completa lenta, é claro que não são necessários passes extras. Você pode introduzir um parâmetro adicional em seu EA definindo o tipo de otimização. Se for uma busca completa, os passes extras são rejeitados, enquanto que se for genético, eles não são. É uma pena que a MQL não lhe forneça tal opção. Os desenvolvedores devem pedir para adicionar esta função.

O problema é que, quando enfrentei o problema de dezenas de resultados serem idênticos em resultados de otimização, criei um tópico perguntando como se livrar dele. Infelizmente após a proibição, todos os meus tópicos e todos os meus comentários desapareceram de minhas publicações, por isso não posso lhe dar o link.

Então foi aí que me disseram para usar INIT_PARAMETERS_INCORRECT

E sim, não entendo porque você precisa se engajar em corridas inúteis:

  • 100000
  • 010000
  • 001000
  • 000100
  • 000010
  • 000001
  • 110000
  • 011000
  • 001100
  • 000110
  • 000011
  • etc.

se é essencialmente a mesma coisa?

E pelo que sei sobre genética, acontece que essas cadeias repetitivas girarão, e as melhores podem não estar à vista deste algoritmo... Não é verdade?

 
TheXpert:

Já foi dito muitas vezes em palavras diferentes. transformando o espaço de entrada. no seu caso, você só pode gerar correntes válidas.

você tem 1953 combinações válidas. tire a configuração int de 0 a 1952 e gere a combinação correta pelo número de seqüência. esta é uma opção.

Foi o que eu acabei fazendo...

 
Сергей Таболин:

E sim, eu não entendo por que alguém se envolveria em uma corrida inútil e consciente:

  • 100000
  • 010000
  • 001000
  • 000100
  • 000010
  • 000001
  • 110000
  • 011000
  • 001100
  • 000110
  • 000011
  • etc.

se é essencialmente a mesma coisa?

E pelo que sei sobre genética, acontece que estas cadeias repetitivas vão girar, e as melhores podem não estar à vista deste algoritmo ... Não é verdade?

Então, quais são os melhores fios? É também uma série de cópias repetidas. E esta repetição aumenta as chances de que uma dessas cópias seja capturada pela busca.

Portanto, em essência as chances (probabilidades) são as mesmas com ou sem repetições. Assim, o tempo de busca genética será o mesmo em ambos os casos.

Em geral, eu ainda recomendo que você entenda como funciona o algoritmo genético. Caso contrário, é inútil explicar qualquer coisa a você.

 
Alexey Navoykov:

Então, quais são as melhores correntes? ...

Se eu soubesse, também não precisaria otimizar.

Talvez o melhor seja 326000, 514300 ou 346215?

 
Сергей Таболин:

Se eu soubesse, também não haveria necessidade de otimizar.

Talvez o melhor seja 326000, 514300 ou 346215?

Essa foi apenas uma pergunta introdutória à qual eu estava dando uma explicação.

Portanto, não é "melhor", mas "melhor", dado todo tipo de cópias desta corrente.

Você não entende uma coisa simples, que ao peneirar a corrente de acordo comINIT_PARAMETERS_INCORRECT você pode perder uma dessas correntes de sucesso ou perto dela. Portanto, a busca não fica mais curta.

 
Alexey Navoykov:

Essa foi apenas uma pergunta introdutória à qual eu dei uma explicação.

Portanto, não é "melhor", mas "melhor", dadas todas as diferentes cópias dessa cadeia.

Você não entende uma coisa simples, que ao selecionar a cadeia de acordo comINIT_PARAMETERS_INCORRECT, você pode perder exatamente uma dessas cadeias de sucesso, ou uma cadeia próxima a ela. Portanto, a busca não fica mais curta.

Eu penetro EXCLUSIVAMENTE as repetitivas! No exemplo, eles estão marcados com um fundo vermelho.

Como uma corrente de 120000 pode ser melhor que uma corrente 010020? É a mesma corrente! E 100002, e 000012! Então, por que todas essas repetições da mesma coisa?

 
Сергей Таболин:

Eu penetro EXCLUSIVAMENTE as repetitivas! No exemplo, eles estão marcados com um fundo vermelho.

Como a corrente 120000 pode ser melhor que a corrente 010020? É a mesma corrente! E 100002, e 000012! Então, por que todas essas repetições da mesma coisa?

OK, você não entende, mas isso é de se esperar. Para ouvir as pessoas, eu já disse tudo o que tinha a dizer. Não vejo sentido em continuar

Razão: