A questão é que INIT_PARAMETERS_INCORRECT é freqüentemente usado para restringir a área de busca, excluindo valores ilógicos/desnecessários, o que acelera significativamente a otimização ao utilizar uma enumeração completa. Se o INIT_PARAMETERS_INCORRECT não existisse, a genética se depararia apenas com variantes desnecessárias e mexeria com elas, portanto, não excluir valores de variáveis não é uma opção. Então é isso que eu estou perguntando, como você sugere, como profissional, resolver este problema sem muito esforço. Enumerar manualmente todas as variáveis corretas, para enumeração sem lacunas e excluir conscientemente os valores INIT_PARAMETERS_INCORRECT não é uma opção - muito longa. O uso de contadores inteligentes não é para todos e também pode prejudicar a genética.
Então o que resta, passar todos os parâmetros em 1 dia e escrever seus valores corretos em código, e assim selecioná-los para a genética?
Leia minhas explicações acima.
Sua imagem do mundo é incompatível com o algoritmo genético. Matar um quarto da população pela negação - a genética ainda sobreviverá, mesmo com prejuízo. Matar 98% da população - esse é o fim da evolução. Independentemente de seus desejos ou modus operandi preferido.
Leia os materiais aos quais fiz a ligação acima.
Já terminei com o esclarecimento, desculpe. A continuação do tópico INIT_PARAMETERS_INCORRECT está encerrada, todos os comentários serão eliminados.
void collectNecessaryDataOnTick()
{
//--- считать последние цены на тикеSymbolInfoTick(Symbol(),last_tick);
ArrayFree(buf_CCI);
if(CopyBuffer(handle_CCI,0,0,bars_4_tr_cur,buf_CCI) < 0 ) // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
{ // если есть ошибкиComment("Не удалось скопировать данные из индикаторного буфера"); // то выводим сообщениеreturn; // и выходим из функции
}
bars_4_tr_cur = 10;
return;
}
Qual é o valor da variável bars_4_tr_cur antes de chamar CopyBuffer?
Quantas barras nas séries de tempo em que o indicador handle_CCI é contado?
variável = 33
М15
ResetLastError();
if(CopyBuffer(handle_CCI,0,0,33,buf_CCI) < 0 ) // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
{ // если есть ошибкиComment("Не удалось скопировать данные из индикаторного буфера"); // то выводим сообщение об ошибкеPrint(GetLastError());
return; // и выходим из функции
}
4003 -Parâmetro errado ao chamar uma função do sistema
Próxima pergunta. Entendo corretamente que você está tomando dados do indicador CCI?
Por favor, diga-me os parâmetros com os quais você criou este indicador.
//--- активируем хендл индикатора CCI
handle_CCI = iCCI(Symbol(),0,14,PRICE_TYPICAL);
if(handle_CCI==INVALID_HANDLE) // проверяем наличие хендла индикатора
{
Comment("Не удалось получить хендл индикатора"); // если хендл не получен, то выводим сообщение об ошибкеreturn(-1); // завершаем работу с ошибкой
}
ArraySetAsSeries(buf_CCI,true); // устанавливаем индексацию для массива buf_CCI как в таймсерии
A questão é que INIT_PARAMETERS_INCORRECT é freqüentemente usado para restringir a área de busca, excluindo valores ilógicos/desnecessários, o que acelera significativamente a otimização ao utilizar uma enumeração completa. Se o INIT_PARAMETERS_INCORRECT não existisse, a genética se depararia apenas com variantes desnecessárias e mexeria com elas, portanto, não excluir valores de variáveis não é uma opção. Então é isso que eu estou perguntando, como você sugere, como profissional, resolver este problema sem muito esforço. Enumerar manualmente todas as variáveis corretas, para enumeração sem lacunas e excluir conscientemente os valores INIT_PARAMETERS_INCORRECT não é uma opção - muito longa. O uso de contadores inteligentes não é para todos e também pode prejudicar a genética.
Então o que resta, passar todos os parâmetros em 1 dia e escrever seus valores corretos em código, e assim selecioná-los para a genética?
Leia minhas explicações acima.
Sua imagem do mundo é incompatível com o algoritmo genético. Matar um quarto da população pela negação - a genética ainda sobreviverá, mesmo com prejuízo. Matar 98% da população - esse é o fim da evolução. Independentemente de seus desejos ou modus operandi preferido.
Leia os materiais aos quais fiz a ligação acima.
Já terminei com o esclarecimento, desculpe. A continuação do tópico INIT_PARAMETERS_INCORRECT está encerrada, todos os comentários serão eliminados.
Antes da atualização de hoje, tudo estava funcionando. Agora há uma mensagem de erro.
Antes da atualização de hoje, tudo estava funcionando. Agora há uma mensagem de erro.
Que valor a GetLastError() retorna?
Qual é o valor das barras variáveis_4_tr_cur antes de chamar o CopyBuffer?
Quantas barras nas séries cronológicas, nas quais o indicador handle_CCI é contado?
Que valor a GetLastError() retorna?
Qual é o valor da variável bars_4_tr_cur antes de chamar CopyBuffer?
Quantas barras nas séries de tempo em que o indicador handle_CCI é contado?
variável = 33
М15
4003 -Parâmetro errado ao chamar uma função do sistema
variável = 33
М15
4003 -Parâmetro errado ao chamar uma função do sistema
Próxima pergunta. Entendo corretamente que você está tomando dados do indicador CCI?
Por favor, diga-me os parâmetros com os quais você criou este indicador.
Próxima pergunta. Entendo corretamente que você está tomando dados do indicador CCI?
Por favor, diga-me os parâmetros com os quais você criou este indicador.
variável = 33
М15
4003 -Parâmetro inválido ao chamar uma função do sistema
Exatamente 33? Esta é uma chamada direta usando um valor direto de 33 erros de retorno 4003?
Verifique novamente
Exatamente 33? É uma determinada chamada direta usando o valor direto de 33 que retorna o erro 4003?
Verifique novamente
Novamente. Antes da atualização, a EA trabalhou bem em contas de demonstração de 3 corretores.
Eu até tentei substituir o indicador de uma versão anterior. Ele ainda grita.
Eu já descobri.
O erro foi na leitura do arquivo de parâmetros salvo.
Foi:
Depois de mudá-lo, funcionou.
Deixe-me repetir. Antes da atualização, a EA trabalhou bem em contas de demonstração de 3 corretores.
Eu até tentei substituir o indicador de uma versão anterior. Jura e é isso.
Por favor, execute esta EA:
Eu o defino propositadamente para receber dados do indicador iCCI das barras 0 a 33 em um loop que não é todo tiquetaque.