---
title: "MetaTrader 5 build 1430: Обновленная вкладка Exposure - Последние обновления"
description: "Реализован новый алгоритм формирования вкладки \"Активы\" для фондового рынка. - Последние обновления"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
---

# MetaTrader 5 build 1430: Обновленная вкладка Exposure

## Реализован новый алгоритм формирования вкладки "Активы" для фондового рынка

16 сентября 2016

### Terminal

1.  Реализован новый алгоритм формирования вкладки "Активы" для фондового рынка. Теперь терминал адаптирует представление активов в зависимости от того, какая система управления рисками используется для торгового счета: Retail Forex, Futures или Биржевая модель.**Тем, кто торгует на Forex или фьючерсами на бирже**, раздел "Активы" поможет понять свое текущее положение в рынке. Одни и те же валюты встречаются во множестве различных инструментов: в качестве одной из валют в паре, в качестве базовой валюты и т.д. Например, у вас могут быть разнонаправленные позиции по GBPUSD, USDJPY и GBPJY. В этой ситуации понять, сколько в итоге у вас есть той или иной валюты, и сколько вы должны, весьма проблематично. Еще сложнее, когда таких позиций не три, а гораздо больше. В этой ситуации итоговое состояние счета можно легко посмотреть на вкладке "Активы".Рассмотрим пример на тех же трех позициях:Buy GBPJPY 1 lot at 134.027 — получили 100 000 GBP, отдали 134 027 000 JPY Sell USDJPY 1 lot at 102.320 — отдали 100 000 USD, получили 102 320 000 JPYSell GBPUSD 1 lot at 1.30923 — отдали 100 000 GBP, получили 103 920 USDМы одновременно купили и продали 100 000 GPB. Суммарно по GBP у нас 0, и вкладка "Активы" эту валюту не показывает. По USD в одном случае мы отдали валюту, в другом — получили. Вкладка "Активы" посчитает итог и просуммирует его с текущим балансом, поскольку валюта депозита у нас также USD. JPY участвовала в двух сделках, вкладка также покажет итоговое значение.

   ![](https://c.mql5.com/3/105/terminal_1_1.png)

   **Тем, кто торгует по биржевой модели**, раздел поможет понять, как используются деньги. В отличие от предыдущей модели, при совершении сделок деньги сразу списываются/начисляются на баланс. Например, при покупке EURRUB вы сразу получаете евро, а с баланса списывается соответствующая сумма в рублях. Во время торговли баланс счета даже может стать отрицательным: когда вы торгуете на заемные средства, а в роли обеспечения выступают приобретенные активы. В этой ситуации вкладка "Активы" позволит вам легко понять торговое состояние счета.Дополнительно здесь показывается стоимость ликвидации — сумма денежных средств на счету и стоимости (результата) закрытия текущих позиций по рыночной цене.

   ![](https://c.mql5.com/3/105/terminal_1_2.png)
2.  Исправлена ошибка отображения типа сделки в истории торговых операций.
3.  Исправлен повторный показ окна уведомления о рисках при переподключении к торговому счету.
4.  Оптимизирована и исправлена работа с диалогом выбора торговых инструментов при большом числе символов (несколько тысяч и более).
5.  Исправлено отображение уровней у встроенных индикаторов, рассчитываемых на основе Moving Average (Bollinger Bands, Adaptive Moving Average и т.д.). Проблема возникала при построении индикаторов в отдельном подокне.
6.  Исправлена ошибка, в некоторых случаях приводившая к невозможности выставить ордер по фьючерсном контракту. Проблема возникала, если цена в ордере совпадала с верхним или нижним лимитом цен по контракту.

### MQL5

1.  Оптимизирована и ускорена компиляция MQL5-программ.
2.  Добавлена поддержка модификаторов final и override для классов, структур и функций.**Модификатор final для классов и структур**Наличие модификатора final при объявлении структуры или класса запрещает дальнейшее наследование от него. Если класс (структура) таков, что нет необходимости вносить в него дальнейшие изменения, или изменения недопустимы по соображениям безопасности, объявите его с модификатором final. При этом все методы класса будут также неявно считаться final.

   ```
   class CFoo final   {   //--- тело класса   }; class CBar : public CFoo   {   //--- тело класса   };
   ```

   При попытке наследования от класса с модификатором final, как показано в примере выше, компилятор выдаст ошибку:

   cannot inherit from 'CFoo' as it has been declared as 'final'see declaration of 'CFoo'

   **Модификатор override для функций**Модификатор override означает, что объявляемая функция обязательно должна переопределить метод родительского класса. Использование этого модификатора позволяет избежать ошибок при переопределении, таких как случайное изменение сигнатуры метода. Например, в базовом классе определен метод func, принимающий в качестве аргумента переменную типа int:

   ```
   class CFoo   {    void virtual func(int x) const { }   };
   ```

   Далее метод переопределяется в наследуемом классе:

   ```
   class CBar : public CFoo   {    void func(short x) { }   };
   ```

   Но по ошибке тип аргумента изменяется с int на short. Фактически, в этом случае уже происходит не переопределение, а перегрузка метода. Действуя в соответствии с [алгоритмом определения перегруженной функции](https://www.mql5.com/ru/docs/basis/function/functionoverload), в определенных ситуациях компилятор может выбрать метод, определенный в базовом классе, вместо переопределенного метода.Чтобы избежать подобных ошибок, к переопределяемому методу следует явно добавлять модификатор override.

   ```
   class CBar : public CFoo   {    void func(short x) override { }   };
   ```

    Если при переопределении будет изменена сигнатура метода, компилятор не сможет найти в родительском классе метод с точной такой же сигнатурой и выдаст ошибку компиляции:

   'CBar::func' method is declared with 'override' specifier but does not override any base class method

   **Модификатор final для функций**Модификатор final действует наоборот — он запрещает переопределение метода в классах-наследниках. Если реализация метода самодостаточна и полностью завершена, объявите его с модификатором final, чтобы он гарантированно не был изменен в последующем.

   ```
   class CFoo   {    void virtual func(int x) final { }   }; class CBar : public CFoo   {    void func(int) { }   };
   ```

   При попытке переопределения метода с модификатором final, как показано в примере выше, компилятор выдаст ошибку:

   'CFoo::func' method declared as 'final' cannot be overridden by 'CBar::func'see declaration of 'CFoo::func'
3.  Исправлена ошибка компиляции шаблонных функций с параметрами по умолчанию.

### Market

1.  Исправлен ряд ошибок в сортировке продуктов Маркета.

### Tester

1.  Исправлены обновления текущих рыночных цен у открытых ордеров и позиций в режиме визуального тестирования.
2.  Убрано проскальзывание исполнения ордеров Buy Limit и Sell Limit при тестировании на биржевых инструментах.
3.  Исправлена ошибка, в некоторых случаях приводившая к генерации некорректных цен в режиме тестирования "По ценам открытия".
4.  Исправлено формирование событий OnTradeTransaction при тестировании.
5.  При тестировании на основе реальных тиков в журнал тестера выводится информация о несоответствии цен тиков (bid или last, в зависимости от того, по какой цене строится бар) значениям low или high имеющегося минутного бара.

### MetaEditor

1.  Исправлены ошибки отображения данных профилировки на файлах исходного кода.
2. Обновлена документация.

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

- [MetaTrader 5 build 1395: Ускорение торговых операций и улучшения в визуальном тестировании](https://www.metatrader5.com/ru/releasenotes/terminal/1369)
- [MetaTrader 5 iOS build 1371](https://www.metatrader5.com/ru/releasenotes/iphone/1367)
- [MetaTrader 5 Android build 1338](https://www.metatrader5.com/ru/releasenotes/android/1366)
- [MetaTrader 5 build 1375: Лента сделок и доступ к тикам при тестировании](https://www.metatrader5.com/ru/releasenotes/terminal/1357)
- [Веб-платформа MetaTrader 5: Состоялся официальный релиз](https://www.metatrader5.com/ru/releasenotes/terminal/1359)
