Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O hash pode ser aplicado à busca de duplicatas na colônia, e a função de encontrar um hash pode ser simples e rápida, porque mesmo uma ou duas duplicatas não farão o clima e não prejudicarão o resultado.
O tempo de execução do algoritmo GA é incomensuravelmente pequeno em comparação com a execução do FF. Portanto, não faz sentido tentar acelerar ainda mais o algoritmo, assim como não faz sentido mover o GA para um dll, por exemplo.
Devemos tentar reduzir o número de execuções de FF com a precisão necessária do resultado. O algoritmo tem configurações flexíveis para essa finalidade. Além disso, o tempo de pesquisa pode ser reduzido ainda mais com o aprimoramento das qualidades de pesquisa dos AGs em geral e dos operadores em particular. Recomendo direcionar o potencial de pesquisa para essas direções.
O tempo de execução do algoritmo GA é incomensuravelmente pequeno em comparação com a execução do FF. Portanto, não faz sentido tentar acelerar ainda mais o algoritmo, assim como não faz sentido mover o GA para um dll, por exemplo.
Devemos tentar reduzir o número de execuções de FF com a precisão necessária do resultado. O algoritmo tem configurações flexíveis para essa finalidade. Além disso, o tempo de pesquisa pode ser reduzido ainda mais com o aprimoramento das qualidades de pesquisa dos AGs em geral e dos operadores em particular. Recomendo direcionar o potencial de pesquisa para essas direções.
Parece que a dll agora não será mais rápida do que a mql 5.
Ok, assim que eu escrever uma biblioteca, vou testá-la e depois escreverei o que saiu))).
Observação importante sobre o artigo.
Não use os parâmetros do algoritmo
FFNormaliseDigits e GeneNormaliseDigits
Não é necessário normalizar o valor da função de aptidão e os genes. A normalização reduz a capacidade de pesquisa do algoritmo e aumenta o número de execuções de FF. Além disso, quanto mais casas decimais forem descartadas, maior será o impacto negativo sobre o algoritmo.
Em outras palavras, a introdução da operação de normalização no algoritmo foi um erro.
Não confundir com a operação de amostragem controlada pelo parâmetro Precision!
Não use os parâmetros do algoritmo
FFNormalizeDigits e GeneNormalizeDigits
Não é necessário normalizar o valor da função de aptidão e dos genes. A normalização leva à diminuição da capacidade de busca do algoritmo e ao aumento da quantidade de FFs iniciais. E, quanto mais sinais após uma vírgula forem rejeitados, mais forte será a influência negativa no algoritmo.
Em outras palavras, a introdução da operação de normalização no algoritmo foi um erro.
Não confundir com a operação de digitalização operada no parâmetro Precision!
Observação importante sobre o artigo.
Não use os parâmetros do algoritmo
FFNormaliseDigits e GeneNormaliseDigits
Não é necessário normalizar o valor da função de aptidão e os genes. A normalização reduz a capacidade de pesquisa do algoritmo e aumenta o número de execuções de FF. Além disso, quanto mais casas decimais forem descartadas, maior será o impacto negativo sobre o algoritmo.
Em outras palavras, a introdução da operação de normalização no algoritmo foi um erro.
Não confundir com a operação de amostragem controlada pelo parâmetro Precision!
É melhor remover a normalização na própria biblioteca UGAlib ou apenas na FF.
O FFNormalizeDigits é usado no FF para normalizar o valor de aptidão e o GeneNormalizeDigits é usado no próprio algoritmo para normalizar os genes. Não há necessidade de normalizar ambos.
Entendo. É claro que eu mesmo corrigirei o problema, mas se não for difícil, publique a versão corrigida do UGAlib.
Tenho medo de cometer erros.
Muito obrigado ao autor pela biblioteca!
Adicione a linha "cnt++;" no loop da função de pesquisa principal, caso contrário, ela poderá entrar em um loop eterno!
//Отбор двух родителей.
void SelectTwoParents
(
int &address_mama,
int &address_papa
)
{
//-----------------------Переменные-------------------------------------
int cnt=1;
address_mama=0;//адрес материнской особи в популяции
address_papa=0;//адрес отцовской особи в популяции
//----------------------------------------------------------------------
//----------------------------Отбор родителей--------------------------
//Десять попыток выбрать разных родителей.
while (cnt<=10)
{
//Для материнской особи
address_mama=NaturalSelection();
//Для отцовской особи
address_papa=NaturalSelection();
if (address_mama!=address_papa)
break;
cnt++;
}
//---------------------------------------------------------------------
}