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

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

Você parece ser o único que perdeu completamente o ponto. Então, seu "conselho" superconfiante vai para o inferno!

Não vai pelo cano abaixo))

Sua pergunta amadora é respondida, assim como o meu conselho muito confiante.

Você não é um moderador ou administrador, portanto, não cabe a você decidir quem se lixa.

 
TheXpert:

Uma pessoa nem precisa entender as bases dos algoritmos genéticos para poder pressionar o botão de otimização. basta pressionar o botão.

Não, isso é até onde vai a secagem dos gatos no microondas.

Não há necessidade de encorajar esta atitude consumista de "Eu apertei o botão, por que não está funcionando?!?".

ps: meu posto não tem nada a ver com o uso da genética.

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

Você está fundamentalmente errado.

Mais uma vez, como usuário, eu vejo: Otimização lenta/rápida.

É isso aí, não estou interessado. Nem como conhecimento profundo, nem à luz de coisas fundamentais.

É este o seu modo de vida? Temo que uma abordagem tão amadora das coisas o colocará em muitos problemas. Especialmente em questões financeiras. Se você não quiser entender, você será forragem para aqueles que o fizerem.

Se diz "rápido" e "lento", o primeiro pensamento que deve ocorrer a uma pessoa razoável é: Por que existe um "lento", se os mesmos resultados podem ser obtidos rapidamente?

Mas a cada um, o seu próprio.

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

É isso mesmo.

Só estou inclinado a pensar que as limitações devem ser abordadas, na medida do possível, pelos desenvolvedores. O mesmo vale para os pontos fracos.

Eu tento não utilizar a otimização genética de forma alguma. Mas quando for preciso, não quero entrar no meio desses algoritmos. Bem, não é para um usuário.

Por exemplo, eu sento no meu computador, eu apenas clico nas teclas e não me importo em nada com o que acontece desde o momento em que pressiono a tecla até que o personagem apareça na tela. Não estou nada interessado em como o processador, placa gráfica, parafusos, resfriadores, como eles interagem. Também não é para o usuário médio.

Bem, é exatamente por isso - você tem que entender que pressionar um botão de símbolo é projetado para produzir um único símbolo. E há limites para, digamos, velocidade de clique. E você está tentando apertar o botão 50 vezes por segundo, e se ressente de que ele não exibiu 50 caracteres.

Pergunta - a capacidade de perceber 50 caracteres por segundo - esta restrição deveria ser eliminada? A maioria dos usuários não a acharia pior, com um guizo dos contatos sendo percebido como caracteres?

 
TheXpert:

Não é preciso nem mesmo entender as bases dos algoritmos genéticos para poder pressionar o botão de otimização. basta pressionar o botão.

Por que ele deveria?

Se ele não deve entender - ele não deve perguntar "por que eu recebi este lixo". Se funcionou, então "simplesmente funcionou". Foi projetado dessa forma.

Qualquer ferramenta requer um certo nível de compreensão. Isto não impede o uso de caixas pretas, mas mesmo quando se usa caixas pretas, é preciso entender claramente os padrões básicos pelos quais a caixa preta funciona.

 

Cavalheiros camaradas!

Estamos entrando em uma discussão sobre quem entende o quê e se eles devem ou não entender. E a questão substantiva foi relegada para segundo plano.

Eu não conheço os mecanismos da genética, portanto, faça algum esforço para entender o que quero dizer.

Existem 117649 variantes (passagens). Destes, apenas 1953 são admissíveis. Basicamente, os realmente inaceitáveis são 1 (000000)!!! E 115695 são repetições. Diferentes variações daquelas "permitidas" de 1953. Para economizar tempo e recursos, eu os excluo pelo INIT_PARAMETERS_INCORRECT.

A seguir. A genética recolhe a primeira população de 512 indivíduos. Certo?

E esta população inclui imediatamente 502 indivíduos "inaceitáveis". 10 indivíduos que trabalham não é suficiente. Eu concordo.

Mas 512 é apenas 1/4 de 1953 (aproximadamente).

Sem aprofundar o estudo da genética, não está claro para mim por que a primeira população não pode ser reunida apenas a partir dos parâmetros "admissíveis"?

E, de fato, o que impede que as populações subseqüentes sejam coletadas apenas a partir de parâmetros válidos???
 
Andrey Khatimlianskii:

Não, isso é até onde vai a secagem dos gatos no microondas.

Não há necessidade de encorajar esta atitude consumista de "Eu apertei o botão, por que não está funcionando?!

Estou apenas falando deste botão. Expliquei minha posição acima. Vou lhe dizer mais, conheço algoritmos genéticos, isso não me ajuda de forma alguma a otimizar
 

Entre outras coisas, eu pessoalmente só uso INIT_PARAMETERS_INCORRECT em modo de otimização para peneirar parâmetros que não são, literalmente, inválidos, mas simplesmente passagens desnecessárias.

A título de exemplo:

input   bool   использовать_параметр   = true;
input   int    парам_1                 = 5;
input   int    парам_2                 = 12;
input   int    парам_3                 = 100;
input   int    парам_4                 = 1;

........

Portanto, se durante o teste e durante o trabalho do Expert Advisor aousar_parâmetros = falsos seus parâmetros não têm absolutamente nenhuma importância, então durante a otimização a busca desses parâmetros é apenas desnecessária, entãoINIT_PARAMETERS_INCORRECT é emitidaexceto para uma única passagem com os valores iniciais. Isto economiza muito tempo. Afinal de contas, há um monte de passes inúteis para um passe válido. E a genética trata os passes inúteis como um erro grosseiro.

Os desenvolvedores, em vez de resolver de alguma forma este problema, enviam você para estudar esta mesma genética com a aplicação de proibições. Para que eles tivessem tempo de estudá-lo, suponho.

Repito mais uma vez: o usuário não precisa saber como funciona a genética! Cabe aos desenvolvedores encontrar uma solução para este problema.

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

Entre outras coisas, eu pessoalmente só uso INIT_PARAMETERS_INCORRECT em modo de otimização para peneirar parâmetros que não são, literalmente, inválidos, mas simplesmente passagens desnecessárias.

A título de exemplo:

Portanto, se durante o teste e durante o trabalho do Expert Advisor aousar_parâmetros = falsos seus parâmetros não têm absolutamente nenhuma importância, então durante a otimização a busca desses parâmetros é apenas desnecessária, entãoINIT_PARAMETERS_INCORRECT é emitidaexceto para uma única passagem com os valores iniciais. Isto economiza muito tempo. Afinal de contas, há um monte de passes inúteis para um passe válido. E a genética trata os passes inúteis como um erro grosseiro.

Os desenvolvedores, em vez de resolver de alguma forma este problema, enviam você para estudar esta mesma genética com a aplicação de proibições. Para que eles tivessem tempo de estudá-lo, suponho.

Repito mais uma vez: o usuário não precisa saber como funciona a genética! Mas encontrar uma solução para este problema é uma tarefa para os desenvolvedores.

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

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


Existem 117649 opções (passes). Destes, apenas 1953 são válidos. Em princípio, os realmente inaceitáveis são 1 (000000)!!! E 115695 são repetições. Diferentes variações daquelas "permitidas" de 1953. Para economizar tempo e recursos eu os excluo pelo INIT_PARAMETERS_INCORRECT.

Pessoalmente, eu uso principalmente INIT_PARAMETERS_INCORRECT apenas nomodo de otimização para peneirar parâmetros que não são inadmissíveis, literalmente, mas simplesmentedesnecessários.

Este é exatamente o seu erro: não há passagens "desnecessárias" em genética. Tudo isso está nas prateleiras, peneirando desnecessariamente, às custas do tempo e dos recursos economizados. E você só o distrai.

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.

Em resumo, tudo está claro agora:

Sergei Tabolin:

Que tal isso?

121

então o resultado será como 21. E uma corrente de 21 repetiria esse resultado. Duplicação, tempo extra para, em princípio, corridas inúteis.

Você não precisa eliminar nada pelo INIT_PARAMETERS_INCORRECT. Calcule 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 (espero).

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 Expert Advisor que define o tipo de otimização. Se for uma busca completa, os passes extras são rejeitados, enquanto que se for genético, não são. É uma pena que a MQL não ofereça a possibilidade de conhecer o tipo de otimização. Os desenvolvedores devem pedir para adicionar tal função.