---
title: "MetaTrader 5 build 1570: улучшение витрины Маркета и расширение шаблонных функций в MQL5 - Последние обновления"
description: "Обновлена витрина магазина приложений MetaTrader Market. Выбирать торговых роботов и технические индикаторы стало удобнее. - Последние обновления"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
---

# MetaTrader 5 build 1570: улучшение витрины Маркета и расширение шаблонных функций в MQL5

## Обновлена витрина магазина приложений MetaTrader Market. Выбирать торговых роботов и технические индикаторы стало удобнее

24 марта 2017

### Terminal

1. Обновлена витрина [магазина приложений MetaTrader Market](https://www.mql5.com/ru/market). Выбирать торговых роботов и технические индикаторы стало удобнее. Мы обновили дизайн и добавили подборки продуктов:

     - На главной странице теперь показываются популярные эксперты, индикаторы, новинки Маркета, а также топ бесплатных приложений.
     - В разделах экспертов, индикаторов и утилит появились подкатегории: сеточные и хеджирующие роботы, трендовые и мультивалютные индикаторы, многое другое.

   ![](https://www.metatrader5.com/c/17/0/terminal_1__25.png)
2.  Исправлено обновление клиентского терминала и работа встроенных покупок в Маркете, Сигналах и Виртуальном хостинге при использовании учетной записи Windows с ограниченными правами.
3.  Исправлена ошибка, в некоторых случаях приводившая к нарушению сортировки истории позиций.
4.  Оптимизировано и исправлено отображение вкладки "Активы".

### MQL5

1. Добавлена поддержка перегрузки [шаблонных функций](https://www.mql5.com/ru/docs/basis/oop/templates) по параметрам. Например, есть шаблонная функция, которая записывает в первый параметр значение второго параметра с помощью явного приведения типов. В языке MQL5 запрещено приведение типа string к типу bool, но мы можем сделать это сами. Создадим перегрузку шаблонной функции:

   ```
   //+------------------------------------------------------------------+ //| Шаблонная функция                                                | //+------------------------------------------------------------------+ template<typename T1,typename T2> string Assign(T1 &var1,T2 var2)   {    var1=(T1)var2;    return(__FUNCSIG__);   } //+------------------------------------------------------------------+ //| Специальная перегрузка для случая bool+string                    | //+------------------------------------------------------------------+ string Assign(bool &var1,string var2)   {    var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);    return(__FUNCSIG__);   } //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   {    int i;    bool b;    Print(Assign(i,"test"));    Print(Assign(b,"test"));   }
   ```

   В результате выполнения кода мы увидим, что для пары int+string была использована шаблонная функция Assign(), а при втором вызове для пары bool+string уже использовалась перегруженная версия.

   ```
   string Assign<int,string>(int&,string) string Assign(bool&,string)
   ```
2.  Добавлена возможность явной специализации шаблонных функций. Для этого перед списком параметров вызова необходимо указать параметры типизации:

   ```
   template<typename T> T Func() { return (T)0; }       void OnInit()   {    Func<double>();   // явная специализация шаблонной функции   }
   ```

   Таким образом, специализация происходит не через параметры вызова, а прямым указанием типов.
3.  Оптимизировано отображение пользовательских индикаторов с [типом рисования DRAW_ZIGZAG](https://www.mql5.com/ru/docs/customind/indicators_examples/draw_zigzag).
4.  В перечисление типов сделок [ENUM_DEAL_TYPE](https://www.mql5.com/ru/docs/constants/tradingconstants/dealproperties#enum_deal_type) добавлены новые значения:
5.  Исправлено отображение пользовательских индикаторов с типом рисования DRAW_FILLING. При совпадении координат верхней и нижней линии теперь рисуется тонкая линия.
6.  Исправлено вычисление координат объекта "Графическая метка" (Bitmap Label) при выставлении параметра CHART_SHOW в состояние false. Этот параметр устанавливается функцией [ChartSetInteger](https://www.mql5.com/ru/docs/chart_operations/chartsetinteger) и позволяет скрыть все элементы ценового графика для создания собственного интерфейса программы.
7.  Исправлена ошибка перекодировки 24-битных изображений при помещении их в ресурсы MQL5-приложения.
8.  Исправлена ошибка вывода на печать структур функцией ArrayPrint.
9.  Обновлены стандартные библиотеки MQL5.

### MetaEditor

1.  Добавлен перевод пользовательского интерфейса на малайский язык.

### Signals

1.  Исправлено открытие страницы сигнала в терминале при переходе с сайта MQL5.community в случае отсутствия подключения торговым счетом.

### Tester

1. Исправлены ошибки при работе функции [CopyTicks](https://www.mql5.com/ru/docs/series/copyticks) в тестере стратегий.
2. Исправлена сортировка сделок типа "Снятие" (Withdrawal) при формировании отчета тестирования.
3. Исправлена модификация отложенных ордеров.

### Hosting

1.  Исправлено отображение мастера виртуального хостинга на экранах сверхвысокого разрешения (4К).

Обновлена документация.

**Предыдущие новости:**

- [MetaTrader 5 build 1545: быстрое переключение между окнами и изменение цен мышью](https://www.metatrader5.com/ru/releasenotes/terminal/1409)
- [MetaTrader 5 iOS build 1509: авторизация на MQL5.com через Facebook](https://www.metatrader5.com/ru/releasenotes/iphone/1408)
- [MetaTrader 5 build 1525: представление истории в виде позиций и улучшение тестера](https://www.metatrader5.com/ru/releasenotes/terminal/1403)
- [MetaTrader 5 Android build 1506: фильтрация и сортировка сделок](https://www.metatrader5.com/ru/releasenotes/android/1402)
- [MetaTrader 5 build 1495: улучшения в MQL5 для работы с пользовательской графикой](https://www.metatrader5.com/ru/releasenotes/terminal/1398)
