Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - страница 3

 
leachimk #:

Intel(R) Core(TM) i9-14900K (3.20 GHz)

подробнее на скриншоте

Как я понял всего ядер 24, из них 8 с высокой производительностью и 16 с низкой. При этом те, что с высокой могут работать в два потока.

Если утверждаете, что осталось 16 агентов на выбор, то можно предположить, что это 8 ядер с высокой производительностью, работающих в два потока.

Таким образом, MQ сделали то, о чём ранее говорили. У меня нет подобных процессоров, поэтому не знаю на сколько эффективны более медленные ядра, урезаны ли у них какие либо инструкции, но как понял, MQ считают их не эффективными.

Поэтому, видимо, надо доказать им обратное.

 
leachimk #:
в моём компюторе 32 логических ядра. после обновления в тестере стратегий их осталось только 16. можно ли их увеличить до 32?

Для внутренних тестов внутри терминала у вас так и показываются все 32 ядра (физические + гипертрединг). Еще есть у некоторых процессоров Efficient Low Power, которые всегда игнорируются терминалом и агентами. LP ядра (не путайте с многотопочными) практически бесполезны и вообще даже операционкой не используются в обычном режиме. LP ядра просто вводят в заблуждение людей на таких гибридных процессорах как Intel Core Ultra 185H:

Total Cores                      16

# of Performance-cores            6
# of Efficient-cores              8
# of Low Power Efficient-cores    2

Total Threads                    22 

Вы видите и можете использовать в вашем случае все 32 ядра как локальных агентов на 14900K.

Но в MQL5 Cloud мы принимаем только физические ядра (16).


Чтобы совсем все было максимально понятно:

  1. Производители процессоров делают Hyperthreading ядра и гонятся за количеством
  2. По факту гипертрединг в пределе дает +20% производительности при увеличении количества ядер в 2 раза (+100%)
  3. Покупатели самообманываются, покупая такие ядра и ожидают увеличения производительности
  4. В своем терминале нет ограничений на использование таких гипертрединг ядер  (но зачастую это явно убыточно из-за недостатка памяти на +100% недоядер)
  5. MQL5 Cloud не самообманывается - ему незачем принимать заведомо тормозящие ядра, оплачивая их слабую работу
 

Не факт, что проблема началась именно с этого билда, но тем не менее.

Раньше, при выполнении оптимизации советника, когда начиналось форвард-тестирование, была возможность "подглядеть" что там натестировалось, не дожидаясь конца процесса, и не прерывая его принудительно.

Правой кнопкой кликаешь на таблице с результатами оптимизации (в любом месте) и в списке выбираешь "результаты форвард-тестирования" (вторая сверху строка). Кнопки отдельной нет, но открывался НОВЫЙ список, с теми самыми результатами..

Теперь же, если кликнуть на эту строчку (она по-прежнему активна и доступна, если начался форвард-тест) - ничего не происходит, просто пропадает фокус с вкладки "оптимизация", причем таблица результатов не изменяется.

Терминал переустанавливал (в т.ч. от разных брокеров), даже переустанавливал Windows (не из-за этого, просто так совпало), но возможность обратно не вернулась.

Можно ее обратно не ждать?..

 
MetaQuotes:
MQL5: Запрещено дублирование имен в одной области видимости. Например, ранее вы могли объявлять параметр input и функцию с одинаковым именем в одном файле. Теперь такое дублирование недопустимо.

Почему пришлось так сделать?

 
Georgiy Merts #:

В билде 5200 теперь для простых структур требуется конструктор копирования. А иначе - возникает предупреждение.

b5200, неоднозначность - штатным структурам не требуется конструктор копирования.

struct A : public MqlTick
{
  int Tmp;

  A() {}
  
  A( const MqlTick &Tick )
  {
    this = Tick; // Зачем?

    Print(__FUNCSIG__);
  }

  A( const A &Tick )
  {
    this = Tick; // Зачем?

    Print(__FUNCSIG__);
  }    
};


union B
{
  A Tick; // 'A' has constructor and cannot be used as union member
  uchar Array[sizeof(A)];
};

union C
{
  MqlTick Tick; // OK - нет конструктора.
  uchar Array[sizeof(MqlTick)];  
};

void OnStart()
{
  MqlTick Tick1;
  const MqlTick Tick2 = Tick1; // OK - почему не ругаемся на отсутствие конструктора?

  A Tick3 = Tick1; // Теперь необходим A( const MqlTick &Tick )
  Tick3.Tmp = 5;
  
  A Tick4 = Tick3;  // Теперь необходим A( const A &Tick )
  Print(Tick4.Tmp); // Без A( const A &Tick ) будет 0, а не 5.
}

Помимо этого теперь для структуры A в примере требуется прописывать сразу несколько одинаковых конструкторов копирования! Теряется возможность использовать union. Все коды поломаны - зачем?

Строка для поискаOshibka 140.

 
AltAndGen #:

Не факт, что проблема началась именно с этого билда, но тем не менее.

Раньше, при выполнении оптимизации советника, когда начиналось форвард-тестирование, была возможность "подглядеть" что там натестировалось, не дожидаясь конца процесса, и не прерывая его принудительно.

Правой кнопкой кликаешь на таблице с результатами оптимизации (в любом месте) и в списке выбираешь "результаты форвард-тестирования" (вторая сверху строка). Кнопки отдельной нет, но открывался НОВЫЙ список, с теми самыми результатами..

Теперь же, если кликнуть на эту строчку (она по-прежнему активна и доступна, если начался форвард-тест) - ничего не происходит, просто пропадает фокус с вкладки "оптимизация", причем таблица результатов не изменяется.

Терминал переустанавливал (в т.ч. от разных брокеров), даже переустанавливал Windows (не из-за этого, просто так совпало), но возможность обратно не вернулась.

Можно ее обратно не ждать?..

Да, мне это тоже весьма не нравится - такая ситуация уже давно. 

Мне также было удобно, когда при форвард-тестировании можно было поглядеть на текущие результаты. Неприятно, что эту возможность убрали. Хорошо было бы её вернуть. 

 

Почему после обновления перестал компилироваться код с одинаковыми именами переменных и функций? Теперь для одной и той же сущности надо изобретать 2 разных имени, что усложняет как написание, так и чтение кода.

Билд 5200.

 

Как на ноутбуке, не открывавшемся полгода, получить файлы из хранилища?

Необходимо синхронизировать версии с компьютера с ноутбуком.

Есть вот такое:


просто думаю, если нажму "Новая", не получится ли нечто неудобоваримое и не быстро поправимое?

 
Artyom Trishkin #:

Как на ноутбуке, не открывавшемся полгода, получить файлы из хранилища?

Необходимо синхронизировать версии с компьютера с ноутбуком.

Есть вот такое:


просто думаю, если нажму "Новая", не получится ли нечто неудобоваримое и не быстро поправимое?

Как я это делал (на новом нетбуке):

  • открыл МТ5, он обновился до нового официального билда, потом открыл MetaEditor,
  • залогинился во вкладке Сообщество (в MetaEditor'е),
  • потом в MetaEditor'е: Git - Подключить ... (но у меня уже он подключился - наверное потому что я его вебсайт открыл и залогинился там),
  • и правой кнопкой мыши: Получить обновления из Git ...

Может что-то не так описал, но это я просто вспомнил ... у меня там как-то "все само" получилось ... я там даже не думал куда нажать (интуитивно было понятно).

 
Sergey Golubev #:

Как я это делал (на новом нетбуке):

  • открыл МТ5, он обновился до нового официального билда, потом открыл MetaEditor,
  • залогинился во вкладке Сообщество (в MetaEditor'е),
  • потом в MetaEditor'е: Git - Подключить ... (но у меня уже он подключился - наверное потому что я его вебсайт открыл и залогинился там),
  • и правой кнопкой мыши: Получить обновления из Git ...

Может что-то не так описал, но это я просто вспомнил ... у меня там как-то "все само" получилось ... я там даже не думал куда нажать (интуитивно было понятно).

В Community залогинен. В редакторе Git -- подключить нету. Там только что-то про новую ветку, впрочем, всё равно не нажимающуюся