---
title: "MetaTrader 5 build 1200: тиковая история и оплата сервисов напрямую - Последние обновления"
description: "В обзор рынка добавлена работа с тиковой историей. Если раньше тиковый график показывал только ту историю, что накопилась в терминале за... - Последние обновления"
image: "https://www.metatrader5.com/c/17/2015/10/terminal3.png"
url: "https://www.metatrader5.com/ru/releasenotes/terminal/1200"
---

# MetaTrader 5 build 1200: тиковая история и оплата сервисов напрямую

## В обзор рынка добавлена работа с тиковой историей. Если раньше тиковый график показывал только ту историю, что накопилась в терминале за время его

23 октября 2015

### Торговый терминал

1. В обзор рынка добавлена работа с тиковой историей. Если раньше тиковый график показывал только ту историю, что накопилась в терминале за время его работы, то теперь появился доступ ко всей тиковой истории на торговом сервере. Отключите автоскрол и начните прокручивать тиковый график мышкой назад в прошлое, чтобы загрузить с торгового сервера недостающую историю, как это сделано для обычных ценовых графиков. Новый функционал будет полезен трейдерам, которые хотят получать максимально детальные графики изменения цены.

   ![](https://www.metatrader5.com/c/17/2015/10/terminal1.png)

   Для автоматического получения более глубокой тиковой истории используйте функцию [CopyTicks()](https://www.mql5.com/ru/docs/series/copyticks), ее работа изменена таким образом, что запрашивает и загружает отсутствующую историю при ее наличии на торговом сервере.
2. На графике рядом с панелью "Торговля одним кликом" добавлена иконка для быстрого включения/выключения стакана цен. Вы можете также пользоваться новым хоткеем **Alt+B**, который работает не только на самом графике, но и в окне Market Watch - в этом случае открывается стакан цен по тому символу, который выделен в Обзоре рынка.

   ![](https://www.metatrader5.com/c/17/2015/10/terminal2.png)
3. Добавлена запись в журнал о характеристиках компьютера и операционной системы на старте клиентского терминала. Пример:

   ```
   2015.10.14 14:48:18.486	Data Folder: C:\Program Files\MetaTrader 5 2015.10.14 14:48:18.486	Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7  920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:00 2015.10.14 14:48:18.486	MetaTrader 5 build 1190 started (MetaQuotes Software Corp.)
   ```
4. Улучшена работа с символами в "Обзоре рынка" (Market Watch):

     - Добавлен показ количества символов в Market Watch и общего доступного числа символов на торговом сервере
     - Добавлена строка добавления нового символа с интеллектуальным списком вариантов на выбор
     - В строке добавления поиск производится не только по имени символа, но также по его описанию и международному имени.

       ![](https://www.metatrader5.com/c/17/2015/10/terminal3.png)
5. Добавлена поддержка календаря экономических событий на нескольких языках.
6. Добавлены недостающие пиктограммы стран в экономическом календаре.
7. Добавлены горячие клавиши для вызова окна управления символами в Обзоре рынка - Ctrl+U.
8. Исправлено упорядочивание открытых окон графиков командами в меню "Window".
9. Исправлена ошибка, когда терминал в некоторых случаях не мог найти файл сертификата при использовании расширенной аутентификации.
10. Исправлена ошибка, приводившая в некоторых случаях к зацикливанию синхронизации ценовой истории.
11. Исправлена ошибка, приводившая к занулению уровней StopLoss/TakeProfit у ранее открытой позиции при увеличении ее объема, если инструмент торгуется в режиме Request Execution.
12. В стакане цен исправлена проверка возможности выставления ордеров на продажу при наличии длинной позиции по инструментам с режимом торговли "Long only".
13. Исправлена работа функции Trailing Stop. В некоторых редких случаях защитный Stop Loss мог неправильно подтягиваться для открытой позиции.
14. Продолжены работы по адаптации интерфейса к работе на экранах высокого разрешения (4К).
15. Исправлена ошибка, приводившая к выгрузке исторических данных как неиспользуемых, несмотря на регулярные обращения к данным из MQL5 программ.
16. Исправлено отображения ряда элементов пользовательского интерфейса при работе в Windows 10.
17. Обновлены переводы пользовательского интерфейса.

### Маркет

1. Переработана и оптимизирована работа с базой продуктов MQL5 Market.
2. Добавлен запрет на покупку без MQL5.community аккаунта при использовании терминала в среде виртуальной машины. Теперь для покупки необходимо указать аккаунт MQL5.community в настройках терминала: Сервис - Настройки - Сообщество.
3. Добавлена прямая покупка продуктов с помощью платежной системы [UnionPay](https://www.unionpay.com/).
4. Добавлено расширенное журналирование при покупке продуктов в MQL5 Market.

### Виртуальный хостинг и Сигналы

1. Теперь виртуальный хостинг и подписку на торговые сигналы можно оплатить напрямую через платежные системы. Для оплаты хостинга не обязательно заходить на MQL5.community и пополнять аккаунт. Теперь вы можете сразу оплатить услугу в одной из платежных систем прямо в платформе.

   ![](https://www.metatrader5.com/c/17/2015/10/virtual_hosting1.png)

    Выберите подходящую систему и проведите платеж:

   ![](https://www.metatrader5.com/c/17/2015/10/virtual_hosting2.png)

    Точно так же прямо из терминала вы можете напрямую оформить платную подписку на торговые сигналы, просто выберите удобную для вас систему оплаты.

   ![](https://www.metatrader5.com/c/17/2015/10/virtual_hosting3.png)

    Нужная сумма будет сначала зачислена на ваш MQL5.community аккаунт, а затем с него будет произведена оплата. Таким образом, вы всегда сможете иметь прозрачную и понятную историю арендованных хостингов и подписок на сигналы, а также видеть все свои платежи за сервисы MQL5.community.
2. Добавлено управление виртуальным хостингом (кроме миграции) при работе в 32-х битной версии клиентского терминала.
3. Исправлена миграция настроек FTP-экспорта на виртуальный хостинг, независимо от разрешения публикации по FTP.

### MQL5

1. Включен новый оптимизирующий компилятор. В 64-битных платформах исполнение программ ускорено до 5 раз. MQL5-программы необходимо перекомпилировать в последней версии MetaEditor.
2. Расширен формат структуры MqlTick. Теперь в ней передается время прихода тика в миллисекундах, а также флаги, позволяющие определить, какой именно параметр тика изменился.

   ```
   struct MqlTick   {    datetime     time;          // Время последнего обновления цен    double       bid;           // Текущая цена Bid    double       ask;           // Текущая цена Ask    double       last;          // Текущая цена последней сделки (Last)    ulong        volume;        // Объем для текущей цены Last    long         time_msc;      // Время последнего обновления цен в миллисекундах    uint         flags;         // Флаги тиков   };
   ```

   У каждого тика всегда заполняются все параметры, независимо от того, изменились ли данные по сравнению с предыдущим тиком. Это позволяет всегда иметь актуальное состояние цен на любой момент времени без поиска предыдущих значений по тиковой истории. Например, с тиком могла измениться только цена бид, но в структуре помимо новой цены будут указаны и остальные параметры: предыдущая цена аск, объем и т.д. Чтобы узнать, какие именно данные изменились с текущим тиком, анализируйте его флаги:

     - TICK_FLAG_BID - тик изменил цену бид
     - TICK_FLAG_ASK - тик изменил цену аск
     - TICK_FLAG_LAST - тик изменил цену последней сделки
     - TICK_FLAG_VOLUME - тик изменил объем
     - TICK_FLAG_BUY - тик возник в результате сделки на покупку
     - TICK_FLAG_SELL - тик возник в результате сделки на продажу

   Структура MqlTick используется в двух методах:

     - CopyTicks - метод не поддерживает старый формат структуры. Скомпилированные ранее файлы EX5, использующие старый формат тика, при вызове функции CopyTicks будут возвращать ошибку 4006 (ERR_MQL_INVALID_ARRAY).
     - SymbolInfoTick - метод поддерживает и старый, и новый формат структуры.
3. Добавлены шаблоны классов, что позволяет создавать параметризованные классы как в C++. Это позволяет добиться еще большего абстрагирования и использовать один и тот же код для работы с объектами разных классов единообразно. Пример использования:

   ```
   //+------------------------------------------------------------------+ //|                                                    TemplTest.mq5 | //|                        Copyright 2015, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link      "https://www.mql5.com" #property version   "1.00" //+------------------------------------------------------------------+ //| Объявляем шаблонный класс                                        | //+------------------------------------------------------------------+ template<typename T> class TArray   { protected:    T                 m_data[]; public:    bool              Append(T item)      {       int new_size=ArraySize(m_data)+1;       int reserve =(new_size/2+15)&~15;       //---       if(ArrayResize(m_data,new_size,reserve)!=new_size)          return(false);       //---       m_data[new_size-1]=item;       return(true);      }    T                 operator[](int index)      {       static T invalid_index;       //---       if(index<0 || index>=ArraySize(m_data))          return(invalid_index);       //---       return(m_data[index]);      }     }; //+------------------------------------------------------------------+ //| Шаблонный класс массива указателей, в деструкторе он удаляет     | //| объекты, указатели на которые хранились в нём.                   | //|                                                                  | //| Обратите внимание на наследование от шаблонного класса TArray    | //+------------------------------------------------------------------+ template<typename T> class TArrayPtr : public TArray<T *>   { public:    void             ~TArrayPtr()      {       for(int n=0,count=ArraySize(m_data);n<count;n++)          if(CheckPointer(m_data[n])==POINTER_DYNAMIC)             delete m_data[n];      }   }; //+------------------------------------------------------------------+ //| Объявим класс, указатели на его объекты будем хранить в массиве  | //+------------------------------------------------------------------+ class CFoo   {    int               m_x; public:                      CFoo(int x):m_x(x) { }    int               X(void) const { return(m_x); }   }; //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ TArray<int>     ExtIntArray;   // инстанцируем шаблон TArray (специализируем шаблон TArray типом int) TArray<double>  ExtDblArray;   // инстанцируем шаблон TArray (специализируем шаблон TArray типом double) TArrayPtr<CFoo> ExtPtrArray;   // инстанцируем шаблон TArrayPtr (специализируем шаблон TArrayPtr типом CFoo) //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   { //--- наполняем массивы данными    for(int i=0;i<10;i++)      {       int integer=i+10;       ExtIntArray.Append(integer);              double dbl=i+20.0;       ExtDblArray.Append(dbl);              CFoo *ptr=new CFoo(i+30);       ExtPtrArray.Append(ptr);      } //--- выведем содержимое массивов    string str="Int:";    for(int i=0;i<10;i++)       str+=" "+(string)ExtIntArray[i];          Print(str);      str="Dbl:";    for(int i=0;i<10;i++)       str+=" "+DoubleToString(ExtDblArray[i],1);    Print(str);      str="Ptr:";    for(int i=0;i<10;i++)       str+=" "+(string)ExtPtrArray[i].X();          Print(str); //--- созданные через new объекты CFoo удалять не нужно, они удалятся в деструкторе объекта TArrayPtr<CFoo>   }
   ```

   Результат выполнения:

   TemplTest (EURUSD,H1) Int: 10 11 12 13 14 15 16 17 18 19TemplTest (EURUSD,H1) Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0TemplTest (EURUSD,H1) Ptr: 30 31 32 33 34 35 36 37 38 39
4. Добавлены новые операции * и & - соответственно, появилось получение переменной по ссылке и получение ссылки на переменную.
5. Добавлена перегруженная форма функции ObjectsDeleteAll - удаление по префиксу имени в подокне графика всех объектов указанного типа.

   ```
   int  ObjectsDeleteAll(    long           chart_id,   // идентификатор графика    const string     prefix,   // префикс имени объекта    int       sub_window=-1,   // индекс окна    int      object_type=-1    // тип объекта для удаления    );
   ```
6. Исправлена работа функции ObjectGetValueByTime. Ранее в некоторых случаях (например, для горизонтальной трендовой линии) некорректно возвращалось значение цены по времени на чарте.
7. Исправлена работа Copy* функций при отсутствии исторических данных на сервере. Ранее при отсутствии данных на сервере вызов этих функций приводил к задержке на 30-50 секунд, прежде чем вернуть управление.
8. Внесен ряд исправлений в стандартную библиотеку MQL5.
9. Документация по [Стандартной библиотеке](https://www.mql5.com/ru/docs/standardlibrary) переведена на немецкий, французский, китайский, турецкий, испанский и португальский языки.
10. Добавлена документация [MQL5 на японском языке](https://www.mql5.com/ja/docs).

### Tester

1. Теперь выбирать программы для запуска в тестере стратегий стало гораздо удобнее. Список показывается в виде дерева в соответствии с каталогами, в которых находятся советники и индикаторы.

   ![](https://www.metatrader5.com/c/17/2015/10/tester.png)
2. Отображение некоторых индикаторов при визуальном тестировании приведено в соответствие с клиентским терминалом.
3. Исправлена ошибка выставления плеча и таймфрейма графика при отладке MQL5-программ через тестер стратегий.
4. Исправлена отладка индикаторов при тестировании на исторических данных.

Исправления по крешлогам.

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

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

- [MetaTrader 5 iPhone build 1167](https://www.metatrader5.com/ru/releasenotes/iphone/1167)
- [MetaTrader 5 iOS build 1165](https://www.metatrader5.com/ru/releasenotes/iphone/1165)
- [MetaTrader 5 Android build 1164](https://www.metatrader5.com/ru/releasenotes/android/1164)
- [MetaTrader 5 Android build 1130](https://www.metatrader5.com/ru/releasenotes/android/1130)
- [MetaTrader 5 build 622: Купить роботов в Маркете стало проще и быстрее!](https://www.metatrader5.com/ru/releasenotes/terminal/622)
