Ошибки, баги, вопросы - страница 2659

 
Igor Makanu:

проверил выводом в OnTester()

картинка как и выше 

тут в общем вопрос в уверенности, что если оптить НС через ГА тестера - то не факт, что все локальные ядра процессора не будут работать с одной и той же начальной конфигурацией весов НС - это портит результаты обучения, имхо

можно какую-то функцию от номера прохода попробовать использовать как базу генерации.

Если есть какие-то входные параметры, которые меняются при оптимизации, то их комбинацию (сумму, произведение, степень...) можно использовать для установки базы генерации псевдослучайных чисел. Вероятно (но это не точно :D ), побочным эффектом будет возможность воспроизвести на одиночном проходе код со "случайными" числами внутри.

 
Igor Zakharov:

можно какую-то функцию от номера прохода попробовать использовать как базу генерации.

Если есть какие-то входные параметры, которые меняются при оптимизации, то их комбинацию (сумму, произведение, степень...) можно использовать для установки базы генерации псевдослучайных чисел. Вероятно (но это не точно :D ), побочным эффектом будет возможность воспроизвести на одиночном проходе код со "случайными" числами внутри.

Можно сгенерить/найти массив символов, относительно рандомный, на несколько килобайт (текст Пушкина:) ). Все сводится что надо свою хитровыделанную реализацию рандома под требования задач, если предложенная не проверена, помнится такие запары во многих библиотеках.

Коллеги, а подскажите, если открываю чарт ChartOpen(), то как потом не закрывая его вернуть фокус (активность, видимость) на свой чарт, из которого работает советник.

и ещё кто знает почему Бид, Аск не совпадает с ценой графика 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:

 Все сводится что надо свою хитровыделанную реализацию рандома под требования задач

мне кажется, что проблема не в этом... сам псевдо-рандом вполне рабочий, проблема в базе генерации ряда - при постоянных входных (при оптимизации) база одинаковая, поэтому и результаты всегда рядом. я предложил как сделать максимальный разброс базы генерации

 
Igor Zakharov:

мне кажется, что проблема не в этом... сам псевдо-рандом вполне рабочий, проблема в базе генерации ряда - при постоянных входных (при оптимизации) база одинаковая, поэтому и результаты всегда рядом. я предложил как сделать максимальный разброс базы генерации

Согласен. Я лишь имел ввиду тот факт, если не изменяет память, что часто встречаются(лись) библиотеки что грешат нерабочестью инициализации, т.е. без причин одинаковой базой, если не проверить и применять, многие и не знают об этом.

 
Igor Makanu:

картинка как и выше

костыльное решение в лоб - задавайте число для srand в свойствах советника. или берите из хеша параметров, тогда хотя бы рандомы будут отличаться начальной инициализацией.
 
TheXpert:
костыльное решение в лоб - задавайте число для srand в свойствах советника. или берите из хеша параметров, тогда хотя бы рандомы будут отличаться начальной инициализацией.

я вчера пришел к этому решению, так работает корректно

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

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

вопросы мои в целом о корректности применения rand() в тетере, сейчас прошел поиском по алглиб, там используется MathRand() один раз в randomreal() , которая потом будет часто использоваться внутри библиотеки алглиб

 
Igor Makanu:

вопросы мои в целом о корректности применения rand() в тетере

с рандомом все (относительно) хорошо. вопросы именно к инициализации. видимо в тестере для получения хорошего рандома нельзя инициализироваться временем.
 
TheXpert:
с рандомом все (относительно) хорошо. вопросы именно к инициализации. видимо в тестере для получения хорошего рандома нельзя инициализироваться временем.

именно так и есть

писал вчера, что это противоречит документации https://www.mql5.com/ru/forum/1111/page2657#comment_15165819 и пример MathSrand() из справки будет давать не тот результат, что ожидалось в тестере


UPD: проблема моя чуть глубже - хочу использовать тестер для deep learning и сохранять наилучшие конфигурации НС через обмен между агентами - все в целом спланировал, а вот коллизии хотел разрулить через паузу запуска агента (или остановки) с помощью случайного значения.... но увы не все случайные значения случайны в агентах  тестера  )))

 
В большинстве случаев в тестере нужно обеспечивать воспроизводимость результатов. Требование, чтобы результаты рандомизировались без изменения входных параметров и состояния среды (все функции, связанные с виртуальным временем), противоречит задаче и реализации тестера.
 
Stanislav Korotky:
В большинстве случаев в тестере нужно обеспечивать воспроизводимость результатов. Требование, чтобы результаты рандомизировались без изменения входных параметров и состояния среды (все функции, связанные с виртуальным временем), противоречит задаче и реализации тестера.

это все правильно, что Вы пишете,но мне нужно разделить очередность доступа агентов во время сохранения в БД 

по сути, нужен ID - локального агента в тестере, не понятно почему нет такого функционала

Причина обращения: