Você poderia ser mais explícito sobre possíveis conjuntos de parâmetros de entrada, conjuntos indesejáveis e por que existem muitos conjuntos indesejáveis?
Concordo plenamente com os desenvolvedores que não deve haver muitos conjuntos indesejáveis. O ideal é não mais do que 10%.
Como assim? Posso lhe dar um pequeno exemplo?
O fxsaber está certo.
Se um conjunto incorreto de parâmetros for inserido - você retorna todas as funções OnTick() de uma só vez. E onTester - você devolve o resultado mínimo.
Como assim? Posso lhe dar um pequeno exemplo?
input int i = 0; bool Incorrect; int OnInit() { Incorrect = !i; // нулевое значение считается некорректным (пример) // return(Incorrect ? INIT_PARAMETERS_INCORRECT : INIT_SUCCEEDED); // Было return(INIT_SUCCEEDED); } void OnTick() { if (Incorrect) return; // ... }
Estes não são conjuntos de parâmetros de entrada! É um conjunto de funções que não devem ser repetidas! Na otimização lenta INIT_PARAMETERS_INCORRECT realmente ajuda a construir cadeias válidas para chamar estas funções, mas eu tenho 6 delas. Eu tenho 117649 variantes de correntes. Mas estas correntes são inúteis sem alguns parâmetros de entrada. Com eles, já temos mais de 38.000.000 ! Não há como contorná-lo com força bruta lenta.
A genética morrerá porque a superfície de otimização do critério de otimização deve ser mais ou menos contínua (suave). No seu caso, no entanto, você recebe um número enorme de picos (falhas).
Você pode fazer a seguinte experiência. Pegue o Expert Advisor padrão e acrescente alguns parâmetros adicionais para otimização lá - falsos. Fazendo 90% de seus conjuntos INCORRETOS. GA vai morrer. Embora se saia muito bem sem parâmetros falsos.
Entendi. É apenas uma questão de selecionar as funções corretas e sua ordem no otimizador. E escreva manualmente todas as cadeias impróprias.... E como o otimizador irá encontrá-los então?
A genética morrerá porque a superfície de otimização do critério de otimização deve ser mais ou menos contínua (suave). No seu caso, no entanto, você recebe um grande número de picos (dips).
Eu entendo isso. Eu não entendo apenas como contornar isso?
Eu entendo isso. O que eu não entendo é como contornar isso?
Uma receita é que os desenvolvedores tratem o resultado dos passes INCORRETO como o passe CORRETO mais próximo calculado anteriormente. Isto irá nivelar os buracos na superfície de otimização.

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Encontrei este problema: de acordo com a lógica do programa, há uma necessidade de peneirar as chamadas de funções inválidas. Uso INIT_PARAMETERS_INCORRECT para isto. Mas a otimização genética pára praticamente de uma só vez. Os desenvolvedores se irritam com perguntas a respeito desta situação. Eles aconselham o estudo da análise genética, etc. e assim por diante.
Mas para que eu preciso dele? Eu, como usuário, quero obter resultados e não me importo como isso funciona.
Portanto, aqui está um exemplo sobre três funções 1, 2 e 3. 0 não é para ser usado.
Em uma cadeia, as funções não devem se repetir e não deve haver um 0 entre as funções (caso contrário, pode haver repetições).
Um exemplo de correntes permitidas:
Exemplo de correntes inaceitáveis: