Erros, bugs, perguntas - página 2659

 
Igor Makanu:

verificado através da saída para OnTester()

a imagem é a mesma que a anterior

aqui está a questão da confiança de que, se opcionalmente passar NS pelo testador GA - não é certo que todos os núcleos locais do processador não funcionem com a mesma configuração inicial de pesos NS - estraga os resultados do treino, imho

pode tentar usar alguma função de número de passe como uma base de geração.

Se houver alguns parâmetros de entrada que mudam durante a optimização, a sua combinação (soma, produto, potência...) pode ser utilizada para criar uma base para a geração de números pseudorandômicos. Provavelmente (mas não com certeza :D ), um efeito secundário seria poder reproduzir numa única passagem o código com números "aleatórios" no interior.

 
Igor Zakharov:

pode tentar usar alguma função do número de passe como uma base de geração.

Se houver alguns parâmetros de entrada que mudam durante a optimização, então a sua combinação (soma, produto, grau...) pode ser usada para definir a base de geração de números pseudo-aleatórios. Provavelmente (mas não com certeza :D ), um efeito secundário seria poder reproduzir numa única passagem o código com números "aleatórios" no interior.

Pode-se gerar/encontrar um conjunto de caracteres, relativamente aleatórios, por alguns kilobytes (texto de Pushkin:) ). Tudo se resume à implementação astuta da aleatoriedade para satisfazer os requisitos da tarefa, se a proposta não for verificada, lembro-me de tais problemas em muitas bibliotecas.

Colegas, poderiam sugerir, se eu abrir o gráfico ChartOpen(), como posso trazer de volta o foco (actividade, visibilidade) sobre o gráfico a partir do qual o Expert Advisor trabalha sem o fechar?

E quem sabe porque Bid, Ask não coincide com o preço do gráfico Close[0]https://www.mql5.com/ru/forum/160683/page1082#comment_15152111

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2020.02.25
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Aleksey Mavrin:

Tudo se resume a ter a sua própria implementação inteligente de aleatorização para satisfazer os requisitos das tarefas

Não creio que seja esse o problema... o pseudo-aleatória em si funciona bastante bem, o problema está na base de geração - com entradas constantes (durante a optimização) a base é a mesma, por isso os resultados são sempre próximos. sugeri como maximizar a dispersão da base de geração

 
Igor Zakharov:

parece-me que este não é o problema... o pseudo-aleatória em si funciona bem, o problema está na base de geração da série - com entradas constantes (durante a optimização) a base é a mesma, portanto os resultados são sempre próximos. sugeri como maximizar a dispersão da base de geração

Concordo. Referia-me apenas ao facto, se a memória serve, de que muitas vezes se encontram (são) bibliotecas que não funcionam na inicialização, ou seja, sem razão nenhuma a mesma base, se não for verificada e utilizada, muitos não a conhecem.

 
Igor Makanu:

imagem como acima

solução crostosa directamente - número definido para srand em propriedades EA. ou tirar do hash de parâmetros, então pelo menos os randoms serão inicializações diferentes.
 
TheXpert:
solução crostosa directamente - número definido para srand em propriedades EA. ou tirar do hash de parâmetros, então pelo menos os randoms serão inicializações diferentes.

Encontrei esta solução ontem, ela funciona correctamente

input int param1 =  2147483647;
//+------------------------------------------------------------------+
int OnInit()
   {
   srand(param1);
   return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
void OnTick()
   {

   }
//+------------------------------------------------------------------+
double OnTester()
   {
   return(rand());
   }

as minhas perguntas são em geral sobre a correcção do rand() em teter, agora pesquisei algibeira, usaMathRand() uma vez em randomreal() , que depois será frequentemente usado dentro da biblioteca de algibeiras

 
Igor Makanu:

as minhas perguntas são geralmente sobre a exactidão do rand() no medidor

As perguntas são exactamente sobre inicialização. Aparentemente, no testador não se pode inicializar a tempo de obter um bom rand().
 
TheXpert:
Aparentemente, para obter uma boa aleatoriedade no provador, não se pode rubricar com o tempo.

é exactamente o que é

escreveu ontem que isto contradiz a documentaçãohttps://www.mql5.com/ru/forum/1111/page2657#comment_15165819 e o exemplo MathSrand() da ajuda irá dar um resultado diferente do esperado no testador


UPD: o meu problema é um pouco mais profundo - quero usar o testador para aprendizagem profunda e guardar as melhores configurações de NS possíveis através da troca de agente para agente - planeei tudo em geral, mas queria lidar com colisões através do agente iniciar (ou parar) pausa com valor aleatório.... mas, infelizmente, nem todos os valores aleatórios são aleatórios nos agentes de teste ))))

 
Na maioria dos casos, o testador precisa de assegurar a reprodutibilidade dos resultados. A exigência de que os resultados sejam aleatórios sem alterar os parâmetros de entrada e o estado do ambiente (todas as funções relacionadas com o tempo virtual) é contrária à tarefa e à implementação do testador.
 
Stanislav Korotky:
Na maioria dos casos, no testador, é necessário assegurar a reprodutibilidade dos resultados. A exigência de que os resultados sejam randomizados sem alterar os parâmetros de entrada e o estado do ambiente (todas as funções relacionadas com o tempo virtual) contradiz a tarefa e a implementação do testador.

não faz mal o que se escreve, mas preciso de separar a ordem de acesso dos agentes durante a gravação na base de dados

na essência precisa de um agente local de identificação no testador, não é claro porque não existe tal funcionalidade