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

 
Renat:

Нет.

Если вы создали переменную int i; , то почему ее не проинициализировали? Фактически Вы сами сказали "мне не важно что в этой переменной" и в результате получили в ней мусор.

Правильно надо делать так: int i=0;

Да, все верно - можно внутри блока создавать такие переменные.
По привычке. Раньше (в MQL4) int i; и int i=0; работали одинаково. Эх....
 
Renat:
Выложите, пожалуйста, в сервисдеске кусок кода, на котором проявляется такая ситуация.

Я и выложил его полностью (код),  (когда эту строку с этим символом "&" объявляешь полностью возникает ошибка, а если убрать этот символ из строки полностью, то всё работает... или хотя бы половину строки за комментировать то будет работать с этим символов НО!! Длина строки 159 символов. В чём дело тогда????)  и попробуйте объявить её на Windows 7 64 bit (это важно) так как ошибка возникает именно на ней, хотя до этого Билда 306 у меня 15 билдов всё работало нормально, на 305 - Я неделю работал с таким кодом на этой версии Windows всё было нормально.



И в Сервис Деск Я уже пишу два дня но так и немогу ничего добиться...

P/S. Уже отписали что разбираются... (через СервисДеск).


 

Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
 

Котировки в четверг 00:00 - 24:00. В пятницу 00:00 - ~22:45 .

Как получать данную информацию? 

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

void OnTick()
  {
//---
//Print(TimeCurrent());      
datetime a,b;
SymbolInfoSessionTrade(Symbol(),FRIDAY,0,a,b);
Print(a,"-",b);
  }

Возвращает "2010.08.17 15:44:31 time (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00" 

Что такое  session_index, // номер сессии, как узнать этот номер?

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );
 
gumgum:

Котировки в четверг 00:00 - 24:00. В пятницу 00:00 - ~22:45 .

Как получать данную информацию? 

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

Возвращает "2010.08.17 15:44:31 time (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00" 

Что такое  session_index, // номер сессии, как узнать этот номер?

 

Смотрите статью Ограничения и проверки в экспертах
 


2010.08.17 17:35:37 time (EURUSD,H1) Monday: session index=0 start=00:00 finish=23:59:59

2010.08.17 17:34:58 time (EURUSD,H1) Friday: session index=0 start=00:00 finish=23:59:59

session_index всегда ноль 

Я так и не понял зачем session index!?

for(int i=0;i<=1000;i++)
{
datetime a,b;
if(!SymbolInfoSessionTrade(Symbol(),FRIDAY,i,a,b)){}else{Print(a," - ",b);}
}

Кроме 0 всегда false 

 

Разработчикам посвящяется ...

Ребята вы бы хоть предупреждали если даёте возможности которые раньше в принципе были не возможны.

Сутки угробил чтоб выловиль вот такой баг

double            nd(double v)
{if(DIGITS=EMPTY_VALUE)DigitMinLots();// ставлю  if(DIGITS==EMPTY_VALUE) даёт расчёт с ошибкой
return(NormalizeDouble(v,DIGITS));
};

только не нужно меня учить что так и нужно ну конечно же, я всё это знаю но реально убил сутки только потому что привык что при таком

if(DIGITS=EMPTY_VALUE)

вызове компилятор должен дать ошибку.

 
Urain:

Разработчикам посвящяется ...

Ребята вы бы хоть предупреждали если даёте возможности которые раньше в принципе были не возможны.

Сутки угробил чтоб выловиль вот такой баг

только не нужно меня учить что так и нужно ну конечно же, я всё это знаю но реально убил сутки только потому что привык что при таком

вызове компилятор должен дать ошибку.

Ошибки нет. В следующем обновлении будет выдаваться предупреждение о том что выражение не логическое.
 
mql5:
Ошибки нет. В следующем обновлении будет выдаваться предупреждение о том что выражение не логическое.
Вот это разговор, то что ошибки нет сам у же понял.
 

Есть ли принудительное прекращение функции OnTester()

или почему история сделок до пользовательской функции существует а после выдаёт ноль :

double OnTester()
  {
   int HTD=-1;
   Custom_func();
   if(HistorySelect(0,TimeCurrent()))HTD=HistoryDealsTotal();   
   return(HTD);
  }

какие функции не работают в тестере ??

как из тестрера(при оптимизации) подать сигнал наружу что чтото не так (принты алерты ничего же не работает) ??

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Хоть убейте не пойму.

Почему так: Ведь в пятницу не в 24:00 заканчивается.

 

Или как? 

И зачем session_index++; если при session_index=1 уже false:

//+------------------------------------------------------------------+
//|  Вывести информацию о котировочных сессиях                       |
//+------------------------------------------------------------------+
void PrintInfoForQuoteSessions(string symbol,ENUM_DAY_OF_WEEK day)
  {
//--- начало и конец сессии
   datetime start,finish;
   uint session_index=0;
   bool session_exist=true;

//--- пройдемся по всем сессиям за этот день
   while(session_exist)
     {
      //--- проверим наличие котировочной сессии с номером session_index
      session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);

      //--- если такая сессия есть
      if(session_exist)
        {
         //--- выведем день недели, номер сессии и время начала и окончания
         Print(DayToString(day),": session index=",session_index,"  start=",
               TimeToString(start,TIME_MINUTES),"    finish=",TimeToString(finish-1,TIME_MINUTES|TIME_SECONDS));
        }
      //--- увеличим счетчик сессий
      session_index++;
     }
  }
Причина обращения: