Новая версия платформы MetaTrader 5 build 3640: веб-терминал на 11 языках - страница 2

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

Дал реально хороший совет. Но проигнорили. Иногда руки опускаются от отсутсвия обратной связи.

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

Новая версия платформы MetaTrader 5 build 3540: 2FA/TOTP аутентификация и улучшенный Обзор рынка в веб-терминале

Nikolai Semko, 2022.12.10 13:25

Не сочтите за занудство, но резануло глаз, как у вас очень не оптимизированы SVG элементы на вэб-терминале.
Код SVG очень избыточен. Можно уменьшить общий загружаемый HTML код на несколько десятков kB и значительно ускорить рендеринг.


вот для примера возьмем этот SVG - элемент:

Ваш код этого элемента:

<svg viewBox="0 0 24 24" fill="554c49" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M21 15H2.99998C2.73476 15 2.48041 14.8946 2.29287 14.7071C2.10534 14.5196 1.99998 14.2652 1.99998 14C1.99998 13.7348 2.10534
 13.4804 2.29287 13.2929C2.48041 13.1054 2.73476 13 2.99998 13H21C21.2652 13 21.5196 13.1054 21.7071 13.2929C21.8946 13.4804 22 13.7348 22 14C22 14.2652 21.8946 14.5196 21.7071
 14.7071C21.5196 14.8946 21.2652 15 21 15ZM19 12C18.3814 11.9989 17.7783 11.8059 17.274 11.4477C16.7696 11.0895 16.3888 10.5837 16.184 10H2.99998C2.73476 10 2.48041 9.89464
 2.29287 9.70711C2.10534 9.51957 1.99998 9.26522 1.99998 9C1.99998 8.73478 2.10534 8.48043 2.29287 8.29289C2.48041 8.10536 2.73476 8 2.99998 8H16.184C16.3682 7.48283 16.691
 7.02624 17.1172 6.68013C17.5434 6.33403 18.0565 6.11172 18.6004 6.0375C19.1444 5.96328 19.6983 6.04001 20.2016 6.2593C20.7049 6.47859 21.1383 6.832 21.4543 7.28092C21.7704
 7.72983 21.9569 8.25698 21.9936 8.80476C22.0303 9.35254 21.9158 9.89987 21.6624 10.3869C21.4091 10.874 21.0268 11.2821 20.5573 11.5666C20.0877 11.851 19.549 12.001 19 12ZM19
 8C18.8022 8 18.6089 8.05865 18.4444 8.16853C18.28 8.27841 18.1518 8.43459 18.0761 8.61732C18.0004 8.80004 17.9806 9.00111 18.0192 9.19509C18.0578 9.38907 18.153 9.56725
 18.2929 9.70711C18.4327 9.84696 18.6109 9.9422 18.8049 9.98079C18.9989 10.0194 19.1999 9.99957 19.3827 9.92388C19.5654 9.84819 19.7216 9.72002 19.8315 9.55557C19.9413 9.39112
 20 9.19778 20 9C20 8.73478 19.8946 8.48043 19.7071 8.29289C19.5196 8.10536 19.2652 8 19 8ZM21 5H2.99998C2.73476 5 2.48041 4.89464 2.29287 4.70711C2.10534 4.51957 1.99998 4.26522
 1.99998 4C1.99998 3.73478 2.10534 3.48043 2.29287 3.29289C2.48041 3.10536 2.73476 3 2.99998 3H21C21.2652 3 21.5196 3.10536 21.7071 3.29289C21.8946 3.48043 22 3.73478 22 4C22
 4.26522 21.8946 4.51957 21.7071 4.70711C21.5196 4.89464 21.2652 5 21 5ZM4.99998 16C5.61859 16.0011 6.22163 16.1941 6.72598 16.5523C7.23033 16.9105 7.61116 17.4163 7.81598
 18H21C21.2652 18 21.5196 18.1054 21.7071 18.2929C21.8946 18.4804 22 18.7348 22 19C22 19.2652 21.8946 19.5196 21.7071 19.7071C21.5196 19.8946 21.2652 20 21 20H7.81598C7.63176
 20.5172 7.30892 20.9738 6.88275 21.3199C6.45659 21.666 5.94349 21.8883 5.39952 21.9625C4.85555 22.0367 4.30165 21.96 3.79834 21.7407C3.29504 21.5214 2.86168 21.168 2.54565
 20.7191C2.22961 20.2702 2.04304 19.743 2.00634 19.1952C1.96963 18.6475 2.0842 18.1001 2.33752 17.6131C2.59083 17.126 2.97316 16.7179 3.44271 16.4334C3.91226 16.149 4.45097
 15.999 4.99998 16ZM4.99998 20C5.19776 20 5.3911 19.9414 5.55555 19.8315C5.72 19.7216 5.84817 19.5654 5.92386 19.3827C5.99955 19.2 6.01935 18.9989 5.98077 18.8049C5.94218
 18.6109 5.84694 18.4327 5.70709 18.2929C5.56723 18.153 5.38905 18.0578 5.19507 18.0192C5.00109 17.9806 4.80002 18.0004 4.6173 18.0761C4.43457 18.1518 4.27839 18.28 4.16851
 18.4444C4.05863 18.6089 3.99998 18.8022 3.99998 19C3.99998 19.2652 4.10534 19.5196 4.29287 19.7071C4.48041 19.8946 4.73476 20 4.99998 20Z"></path>
</svg>

Но это можно упростить до такого варианта:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45.5 43">
<g fill="#414042">
<path id="path01" d="M2.25,4.5H43.25c2.9,0,2.9-4.5,0-4.5H2.25C-.65,0-.65,4.5,2.25,4.5h0Z"/>
<path id="path02" d="M2.25,15.87h31c2.94,0,2.95-4.57,0-4.57H2.25c-2.94,0-2.95,4.57,0,4.57h0Z"/>
<circle id="cir01" cx="38.70" cy="13.58" r="4.5" fill="none" stroke="#414042" stroke-miterlimit="10" stroke-width="4.5"/>
<use href="#path01" y="22.67"/>
<use href="#path02" x = "10" y="22.67"/>
<use href="#cir01" x = "-31.9" y="22.67"/>
</g>
</svg>

Абсолютно тоже самое достигается кодом в 5.5 раз меньше.

Вот визуальное сравнение по количеству узлов, которые сильно нагружают рендеринг:

слева ваш вариант. Справа мой.

Для интереса заглянул в TradingView
Их вариант:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28">
<g fill="currentColor" fill-rule="nonzero">
<path d="M3 5h22v-1h-22z">
</path><path d="M3 17h22v-1h-22z">
</path><path d="M3 11h19.5v-1h-19.5z">
</path><path d="M5.5 23h19.5v-1h-19.5z">
</path><path d="M3.5 24c.828 0 1.5-.672 1.5-1.5s-.672-1.5-1.5-1.5-1.5.672-1.5 1.5.672 1.5 1.5 1.5zm0 1c-1.381 0-2.5-1.119-2.5-2.5s1.119-2.5 2.5-2.5 2.5 1.119 2.5 2.5-1.119 2.5-2.5 2.5zM24.5 12c.828
 0 1.5-.672 1.5-1.5s-.672-1.5-1.5-1.5-1.5.672-1.5 1.5.672 1.5 1.5 1.5zm0 1c-1.381 0-2.5-1.119-2.5-2.5s1.119-2.5 2.5-2.5 2.5 1.119 2.5 2.5-1.119 2.5-2.5 2.5z">
</path>
</g>
</svg>

 
Nikolai Semko #:

Дал реально хороший совет. Но проигнорили. Иногда руки опускаются от отсутсвия обратной связи.


Обратная связь вообще оставляет желать много лучшего...

 

Это разве законно?

class Class_Demo
  {
public:
   static int        field_demo;//Статическая переменная
   void              My_Print()
     {
      Print(field_demo);
     }
  };
int Class_Demo::field_demo;

void OnStart()
  {
   Class_Demo cd;

   Class_Demo::field_demo=MathRand()<<16;
   cd.field_demo|=MathRand();//Получаем доступ к статической переменной через экземпляр класса

   cd.My_Print();
  }

Компиляция проходит успешно

Билд 3644
 
Aliaksandr Hryshyn #:

Это разве законно?

Да.

 

В ME нужна ли подсказка, когда выражение полностью набрано (совпадает с единственное подсказкой)?


 
input int inInteger = 5000;
input double inDouble = 5000;

Нужно поменять входной параметр с 5000 до 9000. Для Double можно удалить цифру 5 (см. скрин) и поставить вместо нее цифру 9.

Для Integer такого не сделать. Это правильно?

 
fxsaber #:

Нужно поменять входной параметр с 5000 до 9000. Для Double можно удалить цифру 5 (см. скрин) и поставить вместо нее цифру 9.

Для Integer такого не сделать. Это правильно?

Это не правильно, но этот баг тянется уже лет 10, я о нем сообщал в MQ по самым разным каналам. Нулевая реакция. Бесит.

 

Настоятельно рекомендую MQL приобрести API GPT4 для использования в программировании.

Уже проверено, что и GPT3 способен реанимировать старый индикатор с ошибками в рабочий код.

Перевод из MQL4 в MQL5 скоро можно будет делать одним кликом. Нужно лишь немного дообучить сеть.


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

 
Vitaliy Kuznetsov #:

Настоятельно рекомендую MQL приобрести API GPT4 для использования в программировании.

Уже проверено, что и GPT3 способен реанимировать старый индикатор с ошибками в рабочий код.

Перевод из MQL4 в MQL5 скоро можно будет делать одним кликом. Нужно лишь немного дообучить сеть.


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

Зачем приобретать, когда выпущен публично LLaMA?

Причина обращения: