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

 
Nikolai Semko:

Игорь, ну тогда попробуй MathSrand(int(GetMicrosecondCount()%16384)); 

Интересно как картина измениться

int OnInit()
   {
   MathSrand(int(GetMicrosecondCount()%16384));   
   return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
void OnTick()
   {
   }
//+------------------------------------------------------------------+
double OnTester()
   {
      return(rand());
   }
//+------------------------------------------------------------------+


 

Такая проблема.

Класс CSymbolInfo.

При обращение к текущей цене Ask или Bid возвращает 0.

Все остальные параметры работают нормально, например AskHigh или Point

 
Ruslan Udintsev:

Такая проблема.

Класс CSymbolInfo.

При обращение к текущей цене Ask или Bid возвращает 0.

Все остальные параметры работают нормально, например AskHigh или Point

Сначала нужно обновить цены.

//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates()
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      if(InpPrintLog)
         Print(__FILE__," ",__FUNCTION__,", ERROR: ","RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
     {
      if(InpPrintLog)
         Print(__FILE__," ",__FUNCTION__,", ERROR: ","Ask == 0.0 OR Bid == 0.0");
      return(false);
     }
//---
   return(true);
  }
 
Igor Makanu:


Вау.  Ничего не понимаю.
 
Nikolai Semko:
Вау.  Ничего не понимаю.

а чего тут понимать? - в тестере GetMicrosecondCount() ,  GetTickCount() , GetTickCount64() привязаны к старту тестера https://www.mql5.com/ru/forum/35402/page5#comment_15165640

и конструкцию из справки MathSrand(GetTickCount());

разработчики должны были сделать как работу Print() - она в тестере в режиме ГА не выводит сообщения ,

так и MathSrand(GetTickCount()); должен инициализироваться временем ..... фиг его знает каким временем, но не временем запуска ГА это точно - сейчас не работает MathSrand() как ожидалось

 
Igor Makanu:

а чего тут понимать? - в тестере GetMicrosecondCount() ,  GetTickCount() , GetTickCount64() привязаны к старту тестера https://www.mql5.com/ru/forum/35402/page5#comment_15165640

и конструкцию из справки MathSrand(GetTickCount());

разработчики должны были сделать как работу Print() - она в тестере в режиме ГА не выводит сообщения ,

так и MathSrand(GetTickCount()); должен инициализироваться временем ..... фиг его знает каким временем, но не временем запуска ГА это точно - сейчас не работает MathSrand() как ожидалось

значит не время использовать для сранд, а какой-нибудь хендл, который меняется каждый раз.
 
Nikolai Semko:
значит не время использовать для сранд, а какой-нибудь хендл, который меняется каждый раз.

как решить эту проблему я знаю - в WinAPI время возьму, но это очередная особенность которую нужно постоянно проверять? ))))

ЗЫ: в алглиб был генератор повышенной точности.... но опять же вопрос в корректности работы примера из справки 

 
Igor Makanu:

как решить эту проблему я знаю - в WinAPI время возьму, но это очередная особенность которую нужно постоянно проверять? ))))

Если проходы не молниеносные и нужно без DLL, то можно так.

MathSrand((uint)GetTimeLocal()); // https://www.mql5.com/ru/forum/170952/page105#comment_9044250

Как такое сказывается на SSD - не знаю. Использую RAMDrive.

 
fxsaber:

Если проходы не молниеносные и нужно без DLL, то можно так.

Как такое сказывается на SSD - не знаю. Использую RAMDrive.

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

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

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

 

Простите, что вставляю сюда карман, но очень нужно понять, что делать.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибка с загрузкой индикаторов с старших ТФ (D1 например)

Vladislav Andruschenko, 2020.02.27 18:42

Итак суть:

В начале заметил ошибку и тормоза при обращении к старшим ТФ D1 и W1 из советника, который установлен например на М5 (НЕВАЖНО КАКОЙ ТФ). 

Сейчас я обнаружил такую же ошибку в тестере стратегий на другом эксперте (который никак не пересекается с предыдущем)

Мои действия:

  1. Советник проверяет комплекс сигналов с 3 индикаторов (2 индикатора + 3 ТФ)
  2. Если эти индикаторы и ТФ берут данные с любых ТФ до D1 (все что ниже)! тогда ошибок нет! И тест с Визуализацией и без визуализации проходит одинаково! 
  3. Но если выбрать любой индикатор с  ТФ D1 и выше, то результаты получаются разные (Визуализация и без визуализации).