Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 51

 

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

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2025.07.29 19:38

#define AMOUNT 2000

void OnStart()
{
  long Array[AMOUNT];
  ArrayInitialize(Array, 1);
  
  long Sum = 0;

  const ulong StartTime1 = GetMicrosecondCount();
    for (int i = 0; i < 1e10 / AMOUNT; i++)    
      for (uint j = 0; j < AMOUNT; j++)
//        Sum += Array[j];    // 1880657
        Sum += Array[j] << 1; // 1154557: на 40% быстрее в AVX-режиме!
  Print(GetMicrosecondCount() - StartTime1);
      
  Print(Sum);
  Print("Compiler Version: " + (string)__MQLBUILD__ + " " + __CPU_ARCHITECTURE__); // Compiler Version: 5179 AVX
}

Если при сложении делать дополнительную битовую операцию, то скорость выполнения возрастает на 40%.

 

Есть идея ввести на демо сервере MetaQuotes Demo хотя бы несколько крипто инструментов. Для разработки почти всегда используется текущий последний билд МТ5, в котором обычно демо-счета открываются на сервера MetaQuotes Demo. Где нет котировок в выходные.

Но часто нужно что-то сделать в выходные и проводить тесты в лайв режиме, а не только в тестере стратегий.

В итоге приходится переключаться на брокерские МТ5 терминалы и копировать каталоги. Это также создает и путаницу, можно забыть где и что правил последний раз.

 

Подскажите, как заставить MT5 запускаться с работой в собственном каталоге без ключа /portable, разумеется, при наличии всех админских прав? Все годы (на разных компах, под разными операционками) создавал папку для MT5 в "Program Files/*" (или "Program Files/MQ/*" для нескольких экземпляров), у этих папок назначал хозяином себя, входящего в группу админов, и давал полный доступ. UAC отключен.

Было очень удобно запускать экзешники без ключей и работать с вложенной папкой MQL5. А тут пришлось переустановить винду (из заметных отличий: была 23H2 стала 24H2, комп переименован, и ещё я не могу сейчас со 100%-й уверенностью сказать, кто был владельцем папки "Program Files" в предыдущей установке винды, но сейчас это - TrustedInstaller - вроде так и должно быть - как минимум я его не менял раньше), и теперь запуск экзешника без ключей приводит почему-то к обращению к Roaming/blablabla/. Метание между каталогом установки и "каталогом данных" - дико неудобно, не говоря уже о человеконечитабельном названии папки instance_id. Запуск с /portable работает нормально, но принципиально важно разобраться в чем разница - чего там с точки зрения MT5 в правах не хватает?

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

ЗЫ. Может быть файл portable.txt играет какую-то роль, но я не нашел инфы про него.

Вот был пост от Рената с пояснениями (к сожалению, сайт не позволяет найти русский оригинал, а гугл выдает ветку с автопереводом на английский; почему-то только у модераторов есть инструмент, чтобы по автопереводу посмотреть первоисточник):

Forum on trading, automated trading systems and testing trading strategies

Errors, bugs, questions

Renat Fatkhullin, 2020.07.25 12:38

Disabled UAC + own directory with full rights is just a rare case of "full rights availability".

So in this state terminal operates locally, checking write access rights to local directory explicitly.

The temporary files common to all terminals are stored in AppData anyway.

ЗЫЫ. Включение/отключение наследования прав ситуацию не меняет.
 
Stanislav Korotky #:

Подскажите, как заставить MT5 запускаться с работой в собственном каталоге без ключа /portable

Возможно, я неправильно понял вопрос. Но основная идея portable (в любых программах) - держать данные в одном месте с кодом. А не (условно) в Program Files + Roaming.

 
Edgar Akhmadeev #:

Возможно, я неправильно понял вопрос. Но основная идея portable (в любых программах) - держать данные в одном месте с кодом. А не (условно) в Program Files + Roaming.

Именно так. С единственным дополнением, что этот режим в МТ5 сам включается при наличии необходимых прав. См. цитату от Рената (добавил выше).

 
Stanislav Korotky #:

Именно так. С единственным дополнением, что этот режим в МТ5 сам включается при наличии необходимых прав. См. цитату от Рената (добавил выше).

После какого-то обновления перестал, уже довольно давно.

 
JRandomTrader #:

После какого-то обновления перестал, уже довольно давно.

Нашел причину. Отключение UAC из интерфейса не отключает UAC полностью, а только делает вид, что тот отключен. Нужно отключать редактированием реестра (видимо, я делал так раньше, но сейчас пошел на поводу у оф.документации).

PS. Яко-бы отключенный из интерфейса UAC на самом деле просто подразумевает, что админам разрешено всё делать без интерактивных подтверждений, но UAC остается включенным.

 
Stanislav Korotky #:

Нашел причину. Отключение UAC из интерфейса не отключает UAC полностью, а только делает вид, что тот отключен. Нужно отключать редактированием реестра (видимо, я делал так раньше, но сейчас пошел на поводу у оф.документации).

PS. Яко-бы отключенный из интерфейса UAC на самом деле просто подразумевает, что админам разрешено всё делать без интерактивных подтверждений, но UAC остается включенным.

У меня под Wine'ом после какого-то обновления отключился дефолтный portable.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопрос к администрации сайта mql5.com".
 

Один из xul.dll начал активно греть процессор:


2025.07.06 20:26:26.482 Terminal        MetaTrader 5 x64 build 5120 started for MetaQuotes Ltd.
2025.07.06 20:26:26.483 Terminal        Windows 11 build 22000 on Wine 10.0 Linux 6.1.0-37-amd64, 12 x Intel Core i7-14700K, AVX2, 14 / 15 Gb memory, 9 / 39 Gb disk, GMT+3

В какую сторону копать? С чем это может быть связано?

Можно ли что-то сделать без перезагрузки терминала?

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