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

MetaQuotes  

В пятницу 9 декабря 2022 года будет выпущена обновленная версия платформы MetaTrader 5.

В этом обновлении мы добавили множество улучшений в веб-терминал. В нем появилась 2FA/TOTP-аутентификация с помощью Google Authenticator и других аналогичных приложений. В Обзоре рынка стало доступно больше ценовых данных: максимальные и минимальные значения Bid/Ask, а также цены открытия и закрытия сессии.

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

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


MetaTrader 5 Web Terminal build 3540

  1. Добавлена поддержка 2FA/TOTP-аутентификации с помощью Google Authenticator и других подобных приложений.

    Использование двухфакторной аутентификации позволяет дополнительно защитить ваш торговый аккаунт от неавторизованного доступа даже в случае утечки логина и постоянного пароля к нему. Существует множество мобильных приложений, которые позволяют проводить двухэтапную аутентификацию с помощью алгоритма Time-based One-time Password Algorithm (TOTP). Среди наиболее известных Google Authenticator, Microsoft Authenticator, LastPass Authenticator и Authy. Теперь в клиентском терминале MetaTrader 5 можно авторизоваться с помощью одноразовых паролей, получаемых из таких Authenticator-приложений.

    Чтобы включить двухэтапную аутентификацию, сначала авторизуйтесь в веб-терминале MetaTrader 5 обычным способом. Затем нажмите на свой счет в меню и выберите "Enable 2FA/TOTP " в открывшемся диалоге. Запустите Authenticator на мобильном телефоне, нажмите в нем кнопку "+" для добавления вашего торгового счета и отсканируйте QR-код из терминала. Введите полученный код в поле "One-time password" и нажмите кнопку "Enable 2FA" — секрет для вашего счета будет добавлен на торговом сервере брокера.


    Добавлена поддержка 2FA/TOTP-аутентификации с помощью Google Authenticator и других подобных приложений


    Теперь сохраненный секрет будет использоваться в приложении Authenticator для генерации OTP-пароля при каждом последующем подключении. Срок действия каждого пароля составляет 30 секунд, затем генерируется новый.


    Для подключения к торговому счету теперь необходимо ввести дополнительный OTP пароль из приложения Authenticator


    В диалоге с QR-кодом для привязки к генератору также отображается резервный код — сохраните его в безопасном месте. Если вы потеряете доступ к привязанному устройству, он позволит заново добавить счет в приложение Authenticator.

    Если вы решите удалить сохраненный секрет из приложения Authenticator, предварительно отключите использование 2FA/TOTP-аутентификации, используя соответствующую команду в меню счета. Если 2FA/TOTP-аутентификация недоступна на вашем счете, попросите брокера включить эту опцию.

  2. Расширено количество информации, отображаемой в Market Watch. Теперь помимо текущих цен Bid/Ask и процента изменения цены вы можете посмотреть:

    • Максимальную и минимальную цену Bid/Ask за текущую торговую сессию
    • Цены открытия текущей и закрытия предыдущей торговой сессии

    Для настройки отображаемой информации используйте контекстное меню:


    Дополнительная информация в Обзоре рынка


  3. Добавлен показ уведомления о рисках при включении соответствующей настройки на стороне брокера. Некоторые регуляторы требуют, чтобы трейдер прочел и принял уведомление перед тем, как приступить к торговле.
  4. Исправлено отображение верхней панели инструментов на моделях iPhone с "челкой" в верхней части экрана. В некоторых случаях она могла закрывать кнопки на панели.
  5. Исправлено отображение итоговых финансовых показателей счета (прибыль, эквити и т.д.) в браузере Google Chrome. В некоторых случаях значения могли не обновляться.

MetaTrader 5 Client Terminal build 3540

  1. Terminal: Оптимизировано и значительно ускорено открытие диалога для создания демо-счетов.
  2. Terminal: Обновлены переводы пользовательского интерфейса.
  3. MQL5: В класс COpenCL стандартной библиотеки добавлены новые методы:

    • BufferFromMatrix — заполнение буфера устройства данными из матрицы
    • BufferToMatrix — чтение данных из буфера устройства в матрицу
    • ContextCreate — создание контекста устройства (первая часть метода Initialize)
    • ProgramCreate — создание программы на основе исходного кода OpenCL (вторая часть метода Initialize)
    • ContextClean — освобождение всех данных, принадлежащих контексту устройства (аналог метода Shutdown, но без удаления контекста)
    • GetDeviceInfoInteger — получение целочисленного свойства устройства
    • GetKernelInfoInteger — получение целочисленного свойства кернела
    • GetDeviceInfo — получение любого одиночного целочисленного свойства устройства, не присутствующего в перечислении ENUM_OPENCL_PROPERTY_INTEGER

    Пример использования GetDeviceInfo:
    long preferred_workgroup_size_multiple=OpenCL.GetDeviceInfo(0x1067);
  4. MQL5: Добавлены значения TERMINAL_CPU_NAME и TERMINAL_OS_VERSION в перечисление ENUM_TERMINAL_INFO_STRING. Они позволяют получить наименование процессора и операционной системы пользователя.
    void OnStart()
      {
       string cpu,os;
    //---
       cpu=TerminalInfoString(TERMINAL_CPU_NAME);
       os=TerminalInfoString(TERMINAL_OS_VERSION);
       PrintFormat("CPU: %s, OS: %s",cpu,os);
      }
    
    Результат:
    CPU: Intel Xeon  E5-2630 v4 @ 2.20GHz, OS: Windows 10 build 19045
  5. MQL5: Исправлена работа параметра "table_or_sql" в функциях DatabasePrint и DatabaseExport. Теперь в нем можно передавать имя таблицы, а не только SQL-запрос.
  6. MetaEditor: Исправлена проверка на максимальное количество столбцов в базе данных, которые могут быть отображены. Теперь отобразить можно до 64 колонок.
  7. MetaEditor: Исправлена работа точек останова в коротких конструкциях вида IF[ if(cond) break; ].
  8. Исправления по крешлогам.


Обновление будет доступно через систему Live Update.

Nikolai Semko  

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

Год назад уже на это обращал внимание

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

Ошибки, баги, вопросы

Nikolai Semko, 2021.12.26 09:44

Ах, неужели эта тема в дебаге больше не работает?
Печалька :(( Очень пригождалась в работе



Vitaliy Kuznetsov  

Андроид версия build 3518:

Сообщения по новым публикациям на маркете - всё время висит 10 непрочитанных.

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

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


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

Vladimir Pastushak  

Может я чего то не понимаю, но раньше работало по другому

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#define Print(a) __Print((string)__FILE__, (string)__FUNCTION__, (int)__LINE__, a) // #a - Показать имя переменной
void __Print(string aFile, string aFunc, int aLine, string aText)
  {
   ::PrintFormat(" [%15s][%15s][%3i][t%8i] 💬>%s", aFile, aFunc, aLine, 0, aText);
  }
// ---
int OnInit(void)
  {
     Print(" A ");
// ---
   ::Print(" B "); // --- Ожидалось обращение к стандартной функции 
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick(void)
  {

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

Результат 

2022.12.10 14:15:40.731 Test (EURUSD,H1)         [       Test.mq5][         OnInit][ 18][t       0] 💬> A 
2022.12.10 14:15:40.731 Test (EURUSD,H1)         [       Test.mq5][         OnInit][ 20][t       0] 💬> B 

Ожидалось

2022.12.10 14:15:40.731 Test (EURUSD,H1)         [       Test.mq5][         OnInit][ 18][t       0] 💬> A 
2022.12.10 14:15:40.731 Test (EURUSD,H1) B 
Nikolai Semko  
MetaQuotes:

В этом обновлении мы добавили множество улучшений в веб-терминал. 

Не сочтите за занудство, но резануло глаз, как у вас очень не оптимизированы 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>
Файлы:
SVG.ZIP  3 kb
Renat Fatkhullin  
Vladimir Pastushak #:

Может я чего то не понимаю, но раньше работало по другому

Результат 

Ожидалось

У вас не функция, а макрос - он работает на уровне препроцессора, безусловно заменяя текст до отправки на компиляцию.

Поэтому все верно.

Vitaliy Kuznetsov  
Vitaliy Kuznetsov #:

Андроид версия build 3518:

Сообщения по новым публикациям на маркете - всё время висит 10 непрочитанных.

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

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

build 3532 исправлено. Спасибо!

fxsaber  
Старый (b2958) терминал не подключается к серверу.
2022.12.12 11:12:25.440  Network  'XXX': authorization on XXX failed (Old version)

Новый (b3540) - без проблем. Такие ограничения вводит брокер или сами торговые сервера определенного билда?


Если второе, просьба разрешить использовать b2958, т.к. это последний билд, где логика работы с торговой историей не была сломана.

fxsaber  
fxsaber #:
Старый (b2958) терминал не подключается к серверу.

Новый (b3540) - без проблем. Такие ограничения вводит брокер или сами торговые сервера определенного билда?


Если второе, просьба разрешить использовать b2958, т.к. это последний билд, где логика работы с торговой историей не была сломана.

Брокеры не при чем. В самом торговом сервере прописано ограничение на работу с предыдущими билдами терминала. Это было сделано без какого-либо анонса.

Прошу дать время на адаптацию: разрешить торговлю для билда b2958. Сейчас просто тихо отключили, несмотря на все усилия в ЛС объяснить, что работа с историей торговли в терминале сломана.


Поясню проблему работы с историей на очень простом примере.

  1. Отложенный ордер только что исполнился и появилась соответствующая позиция.
  2. Исполненный отложенный ордер попал в историю торговли советника - HistorySelect(0, INT_MAX). Несмотря на то, что он только что исполнился, он попадает не в конец (а-ля Тестер) этой запрошенной истории, а в середину.

И таких ситуаций несколько, когда идет не дозапись в конец HistorySelect(0, INT_MAX), а вклинивание между предыдущими записями торговой истории. Это порождает серьезные сложности в нивелировании асинхронных особенностей Терминала, тем самым создавая высокую вероятность получения удвоенных позиций и других неприятностей при активной торговле.


Еще раз прошу, пока еще брокеры только начали обновлять свои сервера на b3540, разрешить работу Терминала b2958. И по возможности все же продумать работу с торговой историей. В ЛС предлагал рабочие варианты, чтобы ничего кардинально не нужно было изменять.

Alexandr Gavrilin  

Будет ли поддержка для вывода через TextOut данных кодов Emoji?

https://unicode-table.com/ru/emoji/

Список Emoji по категориям, все Эмоджи смайлики
Список Emoji по категориям, все Эмоджи смайлики
  • unicode-table.com
Полный список смайликов Emoji с разбивкой на группы. Выбирайте любой понравившийся, копируйте и вставляйте. Здесь вы найдете все популярные и тематические символы эмоджи совершенно бесплатно.
Причина обращения: