---
title: "MetaTrader 5 build 1525: представление истории в виде позиций и улучшение тестера - Последние обновления"
description: "Добавлено представление торговой истории в виде позиций. Терминал собирает данные по сделкам, относящимся к позиции (открытие... - Последние обновления"
image: "https://www.metatrader5.com/c/17/0/terminal_2__10.png"
url: "https://www.metatrader5.com/ru/releasenotes/terminal/1403"
---

# MetaTrader 5 build 1525: представление истории в виде позиций и улучшение тестера

## Добавлено представление торговой истории в виде позиций. Терминал собирает данные по сделкам, относящимся к позиции (открытие, наращивание, частичное

27 января 2017

### Terminal

1.  Добавлено представление торговой истории в виде позиций. Терминал собирает данные по сделкам, относящимся к позиции (открытие, наращивание, частичное и полное закрытие), и группирует эти данные в единую запись, где можно сразу посмотреть:

     - Время открытия и закрытия позиции, определяемое по первой и последней сделке соответственно
     - Объем позиции; если позиция закрыта частично, показывается закрытый объем и исходный объем
     - Средневзвешенную цену открытия и цену закрытия позиции
     - Суммарный финансовый результат по сделкам, относящимся к позиции

   ![](https://www.metatrader5.com/c/17/0/terminal_1__11.png)

   Для хеджинговых счетов данный вид представления позиций фактически аналогичен истории счета в MetaTrader 4.

   ![](https://www.metatrader5.com/c/17/0/terminal_1_2.png)
2.  Добавлена команда для визуализации истории сделок на графике по конкретному символу.

     - Чтобы показать все сделки только по символу выбранной позиции/сделки, нажмите "Добавить сделки по [Имя символа]". Сделки будут добавлены на все открытые в данный момент графики по этому символу. Если таких графиков нет, будет открыт новый.
     - Чтобы показать сделки по всем символам из истории счета, нажмите "Добавить все сделки". На все открытые графики будут добавлены все сделки по соответствующим символам.

   ![](https://www.metatrader5.com/c/17/0/terminal_2__10.png)
3.  Добавлен показ международного имени торгового инструмента в спецификации контракта, а также возможность поиска по нему в диалоге управления инструментами.

   ![](https://www.metatrader5.com/c/17/0/terminal_3.png)
4.  Добавлена возможность быстро установить разрешение для окна терминала. Функция будет удобна для тех, кто снимает видеоролики. В меню доступны наиболее популярные разрешения для публикации роликов в видеосервисах, таких как [YouTube](https://www.youtube.com/channel/UCIr5Y_-R5naPpYQA6hFUSEA).

   ![](https://www.metatrader5.com/c/17/0/terminal_4.png)
5. Шаблоны и профили графиков перенесены из [каталога данных терминала\Profiles] в [каталог данных терминала\MQL5\Profiles]. Теперь можно легко добавлять шаблоны в хранилище [MQL5 Storage](https://www.metatrader5.com/ru/metaeditor/help/mql5storage) и использовать их с любого вашего компьютера.

### MQL5

1.  Добавлена поддержка ресурсных переменных. Использование таких переменных может существенно облегчить написание некоторых программ. Например, вы можете написать OpenCL код в отдельном CL-файле, а затем включить этот файл в виде строки в ресурсы вашей MQL5-программы. Раньше вместо этого код пришлось бы описывать в виде одной большой строковой переменной.**Объявление ресурсной переменной**

   ```
   #resource путь_к_файлу_ресурса as тип_ресурсной_переменной имя_ресурсной_переменной
   ```

   **Особенности**

     - Для строковых файлов производится автоматическое определение кодировки по BOM (заголовку). Если BOM отсутствует, кодировка определяется по содержимому. Поддерживаются кодировки ANSI, UTF-8 и UTF-16. Все строки переводятся в Unicode.
     - К данным такого ресурса можно обращаться только через переменную. Автоматическая адресация через "::<resource name>" не работает.
     - Специальный тип ресурсной переменной bitmap указывает компилятору, что ресурс является графическим изображением. Ресурсная переменная в данном случае получает тип uint.
     - При использовании 24-битного изображения для всех его пикселей компонента альфа-канала устанавливается в значение 255.
     - При использовании 32-битного изображения без альфа-канала для всех его пикселей компонента альфа-канала также устанавливается в значение 255.
     - При загрузке 32-битного изображения с альфа-каналом никаких манипуляций с пикселями не происходит.
     - Ресурсная переменная-массив типа bitmap может иметь две размерности. В этом случае размер массива будет установлен как [высота_картинки][ширина_картинки].
     - В случае одномерного массива количество элементов будет установлено как высота_картинки*ширина_картинки.
     - Если размер файла ресурса не кратен размеру элемента массива, то остаток данных отсекается. Например, при размере файла в 14 байт, для массива int количество элементов будет составлять 3, а оставшиеся 2 байта (14 - sizeof(int)*3) будут отброшены.

   **Примеры использования**

   ```
   #resource "data.bin" as int ExtData[]             // объявление массива числового типа, содержащего данные из файла data.bin #resource "data.bin" as MqlRates ExtData[]        // объявление массива простых структур, содержащего данные из файла data.bin #resource "data.txt" as string ExtCode            // объявление строки, содержащей данные файла data.txt #resource "data.txt" as string ExtCode[]          // объявление строкового массива, содержащего строки файла data.txt #resource "image.bmp" as bitmap ExtBitmap[]       // объявление одномерного массива, содержащего в себе растр из файла BMP, размер массива = height * width #resource "image.bmp" as bitmap ExtBitmap2[][]    // объявление двумерного массива, содержащего в себе растр из файла BMP, размер массива [height][width]
   ```
2.  Добавлено свойство CHART_SHOW для отключения отображения графика. Для получения и установки свойства используются функции [ChartGetInteger](https://www.mql5.com/ru/docs/chart_operations/chartgetinteger) и [ChartSetInteger](https://www.mql5.com/ru/docs/chart_operations/chartsetinteger). Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д.Отключение отрисовки является идеальным решением для создания собственного интерфейса программы с использованием графических [ресурсов](https://www.mql5.com/ru/docs/runtime/resources).[Графические объекты](https://www.mql5.com/ru/docs/objects) отрисовываются всегда независимо от установленного значения свойства CHART_SHOW.
3.  Добавлено свойство CHART_KEYBOARD_CONTROL для включения/отключения управления графиком при помощи клавиатуры ("Home", "End", "PageUp", "+", "-", "Стрелка вверх" и т.д.). Установка CHART_KEYBOARD_CONTROL=false позволяет отключить скроллинг и масштабирование графика, но при этом сохраняется возможность получать события нажатия данных клавиш в [OnChartEvent](https://www.mql5.com/ru/docs/basis/function/events#onchartevent).Для получения и установки свойства используются функции [ChartGetInteger](https://www.mql5.com/ru/docs/chart_operations/chartgetinteger) и [ChartSetInteger](https://www.mql5.com/ru/docs/chart_operations/chartsetinteger).
4.  Добавлены новые функции и свойства для работы с OpenCL.**Новые свойства для работы с памятью**С помощью [CLGetInfoIntegrer](https://www.mql5.com/ru/docs/opencl/clgetinfointeger) теперь можно получить четыре новых свойства:

     - CL_DEVICE_MAX_WORK_GROUP_SIZE — общее количество локальных рабочих групп, доступных для OpenCL устройства.
     - CL_KERNEL_WORK_GROUP_SIZE — общее количество локальных рабочих групп, доступных для OpenCL программы.
     - CL_KERNEL_LOCAL_MEM_SIZE — размер локальной памяти в байтах, которую использует OpenCL программа для всех параллельных задач в группе. Используйте CL_DEVICE_LOCAL_MEM_SIZE для получения доступного максимума.
     - CL_KERNEL_PRIVATE_MEM_SIZE — минимальный размер приватной памяти в байтах, используемой каждой задачей в кернеле OpenCL программы.

   **bool CLExecutionStatus(int kernel)**Возвращает состояние выполнения OpenCL программы. В качестве параметра передается хэндл на кернел программы OpenCL.**bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)**Задает локальный буфер в качестве аргумента kernel-функции. В качестве параметров передаются хэндл на кернел программы OpenCL, номер аргумента OpenCL функции и размер буфера.
5.  Добавлен код ответа TRADE_RETCODE_LIMIT_POSITIONS. Количество открытых позиций, которое можно одновременно иметь на счете, может быть ограничено настройками сервера. При достижении лимита в ответ на выставление ордера сервер вернет ошибку TRADE_RETCODE_LIMIT_POSITIONS. Ограничение работает по-разному в зависимости от типа учета позиций на счете:

     - Неттинговая система — учитывается количество открытых позиций. При достижении лимита платформа не позволит выставлять новые ордера, в результате исполнения которых может увеличиться количество открытых позиций. Фактически платформа позволит выставлять ордера только по тем символам, по которым уже есть открытые позиции. В неттинговой системе при проверке лимита не учитываются текущие отложенные ордера, поскольку их исполнение может привести к изменению текущих позиций, а не увеличению их количества.
     - Хеджинговая система — помимо открытых позиций, учитываются выставленные отложенные ордера, поскольку их срабатывание всегда приводит к открытию новой позиции. При достижении лимита платформа не позволит выставлять рыночные ордера на открытие позиций, а также отложенные ордера.
6.  Исправлена ошибка, в некоторых случаях приводившая к пропуску тиков в тиковой истории.
7.  Исправлены ошибки косвенной типизации шаблонов.
8.  Обновлена библиотека работы с математической статистикой.
9. Добавлена функция [TranslateKey](https://www.mql5.com/ru/docs/common/translatekey), которая возвращает Unicode-символ по виртуальному коду клавиши, учитывая текущий язык ввода и состояние управляющих клавиш. Функция использует [ToUnicodeEx](https://msdn.microsoft.com/en-us/library/ms646322(v=vs.85).aspx) для преобразования нажатых пользователем клавиш в Unicode-символы.

   voidOnChartEvent(constint id,constlong& lparam,constdouble& dparam,conststring& sparam) { if(id==CHARTEVENT_KEYDOWN) {short sym=TranslateKey((int)lparam);//--- если введённый символ успешно преобразован в Юникодif(sym>0)Print(sym,"'",ShortToString(sym),"'");elsePrint("Error in TranslateKey for key=",lparam); } }

### Market

1. Исправлено открытие страницы продукта при скачивании демо-версии.

### Tester

1. После завершения оптимизации результаты теперь автоматически сортируются по колонке "Результат".
2.  В контекстное меню вкладки результатов оптимизации и журнала добавлена опция автоматического переключения на результаты после завершения оптимизации.
3. Тестер стратегий теперь остается в режиме оптимизации после запуска одиночного тестирования. Ранее, если из вкладки результатов оптимизации запускалось одиночное тестирование, тестер стратегий полностью переходил в режим одиночного тестирования. Для проведения повторной оптимизации было необходимо включать ее вновь в настройках.
4. Теперь наборы входных параметров можно сохранять не только в виде set-файлов, но и в виде настроек локального тестера стратегий с удобным доступом к ним через контекстное меню.

   ![](https://www.metatrader5.com/c/17/0/terminal_18.png)
5. Добавлен перевод интерфейса на монгольский, венгерский, румынский языки и язык урду.

### MetaEditor

1.  Добавлена возможность менять порядок наблюдаемых выражений в окне отладки. Просто перетащите выражение в нужную позицию мышью.

   ![](https://www.metatrader5.com/c/17/0/terminal_20.png)
2.  Исправлена ошибка определения кодировки исходных файлов.
3.  Исправлен поиск по файлам в кодировке UTF-8.
4.  Исправлена ошибка выделения текста мышью при наличии в нем знаков табуляции.
5.  Добавлен перевод интерфейса на венгерский и румынский языки.

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

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

- [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)
- [Веб-платформа MetaTrader 5: двухфакторная авторизация и смена пароля](https://www.metatrader5.com/ru/releasenotes/terminal/1396)
- [MetaTrader 5 build 1485: дополнительные режимы тестирования и графика в стандартной библиотеке](https://www.metatrader5.com/ru/releasenotes/terminal/1392)
- [MetaTrader 5 iOS build 1425](https://www.metatrader5.com/ru/releasenotes/iphone/1391)
