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

 
В очередной раз на ровном месте...
void OnStart(){
   uchar uc[16];
   ArrayInitialize (uc, -1);
   ArrayPrint(uc);  // 255 255 255 255 255 ...
}
 
Sergey Dzyublik :
В очередной раз на ровном месте...
И в чем проблема?
 
Sergey Dzyublik:
В очередной раз на ровном месте...

что-то я совсем запутался ) 

про константы от 128 и 0хFF предупреждает, а про переменные int с теми же значениями - нет.

более того, про константу -1 int, тоже не предупреждает. В этом есть какая-то  логика? 

з.ы. ну с -1 понятно наверное, она к любому беззнаковому приводится по макс значению по правилам. а переменные чем хуже констант.
 
Andrei Trukhanovich:

без приведения по-хорошему так

UPD нет, тоже предупреждение, такой литерал имеет тип ushort
'\xFF'

?? офигеть... в 4-ке (по случаю она открыта) катит. 

void OnStart()
  {
ushort foo='\xFF';

  }

PS/ когда вдруг по случаю, у кого рядом веб-деятели сайта, дайте им по рукам. 

 
В билд 2460 и 2470 при удалении всез сделок и отключении автообновления с открытием нового ордера они вновь все появляются ранее такого не было и перестало работать часть советников и индикаторов пишет err 400 и err 401 хотя компилируются без ошибок но работать не хотят.....
 

Почему результат работы скрипта равен 1-2 секундам в отчете, а по факту больше минуты ?

#include <(MyLib)\CGraphicObjects\CMyButton.mqh>CMyButton but;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("Начали");
// ===================================================================
   int total = 10000;
   for(int i = 0; i < total; i++)
      but.Create("Push" + (string)i, 32, 32, 30, 30);
// ===================================================================
   ulong mass[100];
   ArrayInitialize(mass, 0);
// ===================================================================
   for(int k = 0; k < 100; k++)
     {

      ulong  start = GetMicrosecondCount();

      for(int i = 0; i < total; i++)
         color col = but.ColorBG();

      mass[k] = GetMicrosecondCount() - start;
     }
// ===================================================================
   Print("Массив");
   ulong rez = 0;
   for(int i = 0; i < 100; i++)
      rez += mass[i];

   Print("Старый способ Итог: " + IntegerToString(rez / 100)+" Sec "+ IntegerToString(rez / 100/1000000));

  }
//+------------------------------------------------------------------+

То скрипт отработал и с момента старта до момента выгрузки проходит примерно минута или чуть больше.

Но скрипт упрямо пишет что работал 1 - 2 секунды, что может так затормаживать ПК ?

2020.06.01 11:34:26.680 Teste speed (EURUSD,M15) Начали

2020.06.01 11:37:34.067 Teste speed (EURUSD,M15) Массив

2020.06.01 11:37:34.067 Teste speed (EURUSD,M15) Старый способ Итог: 1870971ms  Sec 1

2020.06.01 11:39:32.283 Teste speed (EURUSD,M15) Начали

2020.06.01 11:42:24.664 Teste speed (EURUSD,M15) Массив

2020.06.01 11:42:24.664 Teste speed (EURUSD,M15) Старый способ Итог: 1652839ms  Sec 1


 
Vladimir Pastushak:

Почему результат работы скрипта равен 1-2 секундам в отчете, а по факту больше минуты ?

То скрипт отработал и с момента старта до момента выгрузки проходит примерно минута или чуть больше.

Но скрипт упрямо пишет что работал 1 - 2 секунды, что может так затормаживать ПК ?

2020.06.01 11:34:26.680 Teste speed (EURUSD,M15) Начали

2020.06.01 11:37:34.067 Teste speed (EURUSD,M15) Массив

2020.06.01 11:37:34.067 Teste speed (EURUSD,M15) Старый способ Итог: 1870971ms  Sec 1

2020.06.01 11:39:32.283 Teste speed (EURUSD,M15) Начали

2020.06.01 11:42:24.664 Teste speed (EURUSD,M15) Массив

2020.06.01 11:42:24.664 Teste speed (EURUSD,M15) Старый способ Итог: 1652839ms  Sec 1


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

 
Разработчики, сделайте уже что-нибудь со сделками на графике. Когда их много, график просто не видно, удалять приходится каждый раз с новой сделкой.
 
Alexey Viktorov:

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

В скрипте обрабатывается 10 000 объектов в цикле 100 раз, всего 1 000 000

через mass[k] я запоминаю время каждого прохода цикла

затем вычисляю средний проход 

   ulong rez = 0;

   for(int i = 0; i < 100; i++)

      rez += mass[i];

rez /100

Вы наверно не внимательно посмотрели скрипт

 
У кого-нибудь есть ссылка на архив билда 2470? У меня МТ не хочет обновляться - пишет, что есть новый билд, создает пустую папку liveupdate/temp в "роуминге", но потом в логе ошибка "download 'MT5CLW64' failed". Обычно гугл-драйв от  Andrey Khatimlianskii приходит на помощь ;-), но там пока только 2460.