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

 
voix_kas:

Совершенствования чистоты программирования ради хочу поинтересоваться у общественности вот чем.

Предположим, имеется некий флаг (bool Flag), объявленный на глобальном уровне. При наступлении некоторых событий/условий, необходимо установить определённое его значение.

Первый вариант:

Второй вариант:

Какой из вариантов:

1. Быстрее с точки зрения производительности?

2. Если так можно сказать, "более профессионален"?

 

Предполагается, что в эту секцию кода управление будет попадать достаточно часто, например, каждый тик.

А по вашему каждый тик это часто?

за один тик таких сравнений можно лямов 3-5 насравнивать, проц ваши условия проглотит даже не заметит.

Вот если вы несколько тысяч  за тик будете сравнивать, тогда стоит оптимизнуть.

Вообще для целей оптимизации на скорость есть профилировщик.

 

Вопросы 1 и 2 по условию как ниже:

if (A==1 || B==2 || C==3)
{  // некие действия
}

1) Если условие А==1 будет правда, то будет ли дальше идти проверка В и С? Или же не проверяя В и С производятся "некие действия".

2) Проверка идёт слева на право (А, В, С) или наоборот (С, В, А)?

3) Как можно попрофилировать код в выходные, когда нету тиков?

 
paladin800:

Вопросы 1 и 2 по условию как ниже:

1) Если условие А==1 будет правда, то будет ли дальше идти проверка В и С? Или же не проверяя В и С производятся "некие действия".

2) Проверка идёт слева на право (А, В, С) или наоборот (С, В, А)?

3) Как можно попрофилировать код в выходные, когда нету тиков?

1. если первое условие верно, то следующие проверяться не будут. это же условие "или"

2. слева направо

3. стимулировать через установку таймера, например

 

Толи лыжи не едут, то ли я виноватый...

void OnStart()
  {
   int intDATA[];ArrayResize(intDATA,10);ArrayInitialize(intDATA,0);
   Print(string(sizeof(intDATA)));

   int doubleDATA[];ArrayResize(doubleDATA,10);ArrayInitialize(doubleDATA,0.0);
   Print(string(sizeof(doubleDATA)));

   int intD=0;
   Print(string(sizeof(intD)));

   double doubleD=0.0;
   Print(string(sizeof(doubleD)));
  }

2013.04.29 15:28:17    Size (EURUSD,D1)    8   //верно
2013.04.29 15:28:17    Size (EURUSD,D1)    4   //верно
2013.04.29 15:28:17    Size (EURUSD,D1)    52 //должно быть 8*10=80?
2013.04.29 15:28:17    Size (EURUSD,D1)    52 //должно быть 4*10=40?

 
joo:

Толи лыжи не едут, то ли я виноватый...

sizeof от массива выдает размер описательного блока массива, а не размер массива. Для получения размера массива надо сделать sizeof(элемента)*ArraySize()
Документация по MQL5: Операции с массивами / ArraySize
Документация по MQL5: Операции с массивами / ArraySize
  • www.mql5.com
Операции с массивами / ArraySize - Документация по MQL5
 
Renat:
sizeof от массива выдает размер описательного блока массива, а не размер массива. Для получения размера массива надо сделать sizeof(элемента)*ArraySize()
Спасибо.
 
Выручайте! Перестал отображаться график и статистика https://www.mql5.com/ru/signals/5894
 
necroslav:
Выручайте! Перестал отображаться график и статистика https://www.mql5.com/ru/signals/5894
Почему то брокер почистил торговую историю. Вам нужно задать вопросы ему.
 
Rosh:
Почему то брокер почистил торговую историю. Вам нужно задать вопросы ему.

в самом терминале у меня история осталась. Проблема точно в брокере?

p.s. опять все появилось... странно 

 
Здравствуйте, пропала вкладка сигналы в МТ4, утром была, вечером пришел и ее нет. И теперь пописка не исполняется, что делать подскажите
Причина обращения: