---
title: "MetaTrader 5 build 2340: Управление настройками счета в тестере и расширение интеграции с Python - Последние обновления"
description: "Добавлена возможность удобной работы с SQLite базами данных. В предыдущем обновлении платформы мы добавили поддержку работы с базами... - Последние обновления"
image: "https://www.metatrader5.com/c/17/0/6_disable_python_script_trade.png"
url: "https://www.metatrader5.com/ru/releasenotes/terminal/2125"
---

# MetaTrader 5 build 2340: Управление настройками счета в тестере и расширение интеграции с Python

## Добавлена возможность удобной работы с SQLite базами данных. В предыдущем обновлении платформы мы добавили поддержку работы с базами данных SQLite прямо из MQL5. Теперь основные функции стали доступны и через пользовательский интерфейс MetaEditor

21 февраля 2020

### MetaEditor

1. Добавлена возможность удобной работы с SQLite базами данных. В [предыдущем обновлении платформы](https://www.mql5.com/ru/forum/327443) мы добавили поддержку работы с базами данных SQLite прямо из MQL5. Теперь основные функции стали доступны и через пользовательский интерфейс MetaEditor:

     - Создание и подключение к базам данных
     - Просмотр таблиц и быстрый запрос данных
     - Составление и выполнение SQL-запросов, откат изменений

   **Как это работает** Для быстрого создания баз данных воспользуйтесь "Мастером MQL5". Здесь вы можете сразу создать первую таблицу и определить список ее полей.

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

    Создав базу, вы перейдете в новый раздел "Навигатора". Из него происходит вся работа с данными. В левой части отображаются таблицы базы данных. Для быстрого запроса первой 1 000 записей дважды нажмите на имя таблицы. Здесь же вы можете создавать и открывать другие базы, а также работать с таблицами. В основной части редактора происходит работа с базой: заполняйте таблицу данными, делайте поиск и выборки, вводите SQL-запросы и т.д.

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

   Более подробно о работе с базами данных в MetaTrader 5 читайте в статье "[SQLite: нативная работа с базами данных на SQL в MQL5](https://www.mql5.com/ru/articles/7463)".
2. Продолжается работа по добавлению поддержки мультиязычных проектов. В этой версии мы расширили функции для работы со скриптами на Python:

     - Теперь их можно удобно создавать через "Мастер MQL5", сразу включая в код зависимости от необходимых библиотек.
     - В навигаторе для них добавлены специальные иконки, в редакторе — подсветка синтаксиса.
     - При запуске скрипта через MetaEditor сообщения из консоли Python (stdout, stderr) выводятся в раздел "Ошибки".

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

    Для запуска скрипта в редакторе нажмите "Компилировать":

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

    Для работы с Python не забудьте указать путь к нему в разделе "Настройки / Компиляторы" в MetaEditor. А для работы с библиотекой MetaTrader 5 установите ее командой:

    pip install MetaTrader5

    Подробнее об интеграции с Python читайте в [документации](https://www.mql5.com/ru/docs/python_metatrader5).
3. MetaEditor: Добавлен показ файлов баз данных SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) в "Навигаторе".
4. MetaEditor: Исправлены ошибки при сохранении свойств проекта.

### MQL5

1. : Полностью переработана интеграция с Python. Добавлено множество новых функций и изменено именование команд.**Новое именование команд**[Имеющиеся команды](https://www.mql5.com/ru/docs/python_metatrader5) были переименованы:

    MT5Initialize -> initialize MT5Shutdown -> shutdown MT5TerminalInfo -> terminal_info MT5Version -> version MT5CopyRatesFrom -> copy_rates_from MT5CopyRatesFromPos -> copy_rates_from_pos MT5CopyRatesRange -> copy_rates_range MT5CopyTicksFrom -> copy_ticks_from MT5CopyTicksRange -> copy_tick_range

   **Новые команды** Список поддерживаемых команд значительно расширен. Добавлены функции торговли и работы с торговой историей, получения информации о финансовых инструментах и текущем счете.

     - account_info() — получение информации о текущем счете. Аналог [AccountInfoInteger](https://www.mql5.com/ru/docs/account/accountinfointeger) , [AcountInfoDouble](https://www.mql5.com/ru/docs/account/accountinfodouble) и [AccountInfoString](https://www.mql5.com/ru/docs/account/accountinfostring).
     - positions_total() — получение количества открытых позиций. Аналог [PositionsTotal](https://www.mql5.com/ru/docs/trading/positionstotal).
     - positions_get(symbol, ticket) — получение открытых позиций по символу или тикету.
     - orders_total() — получение количества ордеров. Аналог [OrdersTotal](https://www.mql5.com/ru/docs/trading/orderstotal).
     - orders_get(symbol, ticket) — получение открытых ордеров по символу или тикету.
     - history_orders_total(from, to) — получение количества ордеров в истории в заданном промежутке времени.
     - history_orders_get(from, to, position, ticket) — получение ордеров из истории в заданном промежутке по тикету или с фильтрацией по позиции.
     - history_deals_total() — получение количества сделок в истории. Аналог [HistoryDealsTotal](https://www.mql5.com/ru/docs/trading/historydealstotal).
     - history_deals_get(from, to, position, ticket) — получение сделок из истории в заданном промежутке по тикету или с фильтрацией по позиции.
     - symbol_info(symbol) — получение информации о финансовом инструменте. Аналог [SymbolInfoInteger](https://www.mql5.com/ru/docs/marketinformation/symbolinfointeger), [SymbolInfoDouble](https://www.mql5.com/ru/docs/marketinformation/symbolinfodouble), [SymbolInfoString](https://www.mql5.com/ru/docs/marketinformation/symbolinfostring).
     - symbol_info_tick(symbol) — получение последнего тика по символу. Аналог [SymbolInfoTick](https://www.mql5.com/ru/docs/marketinformation/symbolinfotick).
     - symbol_select(symbol, enable) — включение/выключение символа в "Обзоре рынка". Аналог [SymbolSelect](https://www.mql5.com/ru/docs/marketinformation/symbolselect).
     - order_check(request) — проверка маржи для ордера. Аналог [OrderCheck](https://www.mql5.com/ru/docs/trading/ordercheck).
     - order_send(request) — отправка ордера на сервер. Аналог [OrderSend](https://www.mql5.com/ru/docs/trading/ordersend).
     - order_calc_margin(action, symbol, volume, price) — расчет маржи для ордера. Аналог [OrderCalcMargin](https://www.mql5.com/ru/docs/trading/ordercalcmargin).
     - order_calc_profit(action, symbol, volume, price_open, price_close) — расчет прибыли. Аналог [OrderCalcProfit](https://www.mql5.com/ru/docs/trading/ordercalcprofit).

   **Запуск скриптов Python на графиках**Теперь скрипты на Python можно запускать прямо на графиках в платформе, аналогично обычным MQL5-программам. В "Навигаторе" они будут отображаться специальными иконками.

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

   Сообщения скрипта будут выводиться в раздел "Инструменты / Эксперты". Если в скрипте используется [библиотека MetaTrader 5](https://www.mql5.com/ru/docs/python_metatrader5), то он сможет получать информацию об инструменте, счете и торговать.Python-скрипты можно запускать на одном и том же графике параллельно с другими MQL5-скриптами и советниками. Для остановки скрипта, если его исполнение зациклено, просто удалите его с графика. **Дополнительная защита** Чтобы дополнительно защитить ваши счета при использовании сторонних библиотек Python, в настройки терминала добавлена опция "Отключить автоматическую торговлю через внешний Python API".

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

    Скриптам на Python будут разрешены торговые операции только при явном отключении этой опции.
2. Значительно ускорен повторный запуск MQL5-программ и повторное создание пользовательских индикаторов из MQL5-программ. В некоторых случаях скорость повысилась в сотни раз.
3. Добавлены функции для работы с базами данных:[DatabaseImport](https://www.mql5.com/ru/docs/database/databaseimport) Импортирует в таблицу данные из файла.

   ```
   long  DatabaseImport(    int           database,          // хендл базы данных, полученный в DatabaseOpen    const string  table,             // имя таблицы для вставки данных    const string  filename,          // имя файла для импорта данных    uint          flags,             // комбинация флагов    const string  separator,         // разделитель данных     ulong         skip_rows,         // сколько первых строк пропустить     const string  skip_comments      // строка символов, которые определяют комментарии    );
   ```

   [DatabaseExport](https://www.mql5.com/ru/docs/database/databaseexport) Экспортирует таблицу или результат выполнения SQL-запроса в CSV-файл. Файл создается в кодировке UTF-8.

   ```
   long  DatabaseExport(    int           database,           // хендл базы данных, полученный в DatabaseOpen     const string  table_or_sql,       // имя таблицы или SQL-запрос     const string  filename,           // имя CSV-файла для экспорта данных     uint          flags,              // комбинация флагов     const string  separator           // разделитель данных в CSV-файле  );
   ```

   [DatabasePrint](https://www.mql5.com/ru/docs/database/databaseprint) Печатает таблицу или результат выполнения SQL-запроса в журнал экспертов.

   ```
   long  DatabasePrint(    int           database,          // хендл базы данных, полученный в DatabaseOpen    const string  table_or_sql,      // таблица или SQL-запрос    uint          flags              // комбинация флагов    );
   ```
4. Добавлена функция FileSelectDialog, которая вызывает системный диалог создания/открытия файла или папки.

   ```
   int  FileSelectDialog(    string   caption,              // заголовок окна    string   initial_dir,          // начальная папка    string   filter,               // фильтр расширений    uint     flags,                // комбинация флагов    string&  filenames[],          // массив с именами файлов    string   default_filename      // имя файла по умолчанию    );
   ```

    Новая функция позволит реализовать удобное взаимодействие пользователя с MQL5-программой.
5. В перечисление ENUM_DEAL_PROPERTY_DOUBLE добавлено значение DEAL_FEE — оплата за проведение сделки. Фактически, это отдельный вид комиссии, которая может взиматься брокером.

### Tester

1. Добавлена возможность задавать собственные настройки торгового счета при тестировании стратегий — торговые ограничения, настройки маржи и комиссии. Таким образом, вы получаете еще больше возможностей для моделирования различных торговых условий у брокеров.

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

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

     - Управление рисками — модель управления рисками: внебиржевые и биржевые, с неттингом и хеджингом. Подробная информация о них доступна в [справке](https://www.metatrader5.com/ru/terminal/help/trading/trading_advanced).
     - Уровень "Margin call" — уровень средств на счете, при достижении которого он переходит в состояние Margin call.
     - Уровень "Stop out" — уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя "Средства" на счету. При выборе опции "В процентах" уровни определяются как значение показателя "Уровень маржи" на счету (Средства/Маржа*100).
     - Нереализованная — в данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:

           - Не использовать нереализованную прибыль/убыток — не учитывать открытые позиции при расчете.
           - Использовать нереализованную прибыль/убыток — использовать при расчете убыток и прибыль по открытым позициям.
           - Использовать нереализованную прибыль — использовать только прибыль.
           - Использовать нереализованный убыток — использовать только убыток.
     - Дневная фиксированная — в данном поле указывается, каким образом будет учитываться прибыль/убыток, зафиксированный трейдером в течение торгового дня, в свободной марже:

           - Использовать дневную фиксированную прибыль/убыток — учитывать прибыль и убыток, зафиксированные в течение торгового дня, в свободной марже.
           - Использовать дневной фиксированный убыток — учитывать только убыток, зафиксированный в течение торгового дня, в свободной марже. В течение дня накопленная прибыль фиксируется в отдельном поле счета ("Заблокировано"). По окончании торгового дня накопленная прибыль освобождается (обнуляется) и отражается на балансе счета (учитывается в свободной марже).
     - Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции "Использовать дневной фиксированный убыток". Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.

   **Комиссия** В этом разделе вы полностью контролируете, как взимается комиссия со всех торговых операций.

     - Комиссии могут быть одноуровневыми и многоуровневыми, т.е. взиматься в одинаковом размере независимо от объема сделки/оборота или разниться в зависимости от их величины. Соответствующая информация выводится в спецификации.
     - Комиссии могут взиматься сразу при совершении сделки или в конце торгового дня/месяца.
     - Комиссии могут взиматься в зависимости от направления сделки: за вход, за выход или за оба типа операций.
     - Комиссии могут взиматься за каждый лот или за каждую сделку.
     - Комиссии могут взиматься в разных величинах: в деньгах, процентах или пунктах.

   ![](https://www.metatrader5.com/c/17/0/8_tester_commissions_set.png)
2. Оптимизирована и значительно ускорена работа в режиме "Сканирование рынка", когда производится несколько проходов тестирования по всем символам из "Обзора рынка".
3. Tester: При расчете прибыли в пипсах теперь учитывается размер сделки или позиции. Ранее расчет велся без учета объема — как для одного лота.
4. Улучшено управление графиком результатов оптимизации. При увеличении масштаба обычного графика оптимизации появилась возможность его прокручивать. Двойной клик на точке графика теперь выделяет соответствующий результат в таблице проходов.

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

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

- [MetaTrader 5 build 2280](https://www.metatrader5.com/ru/releasenotes/terminal/2120)
- [MetaTrader 5 build 2265: Функции DirectX для 3D-визуализации в MQL5 и настройка инструментов в тестере стратегий](https://www.metatrader5.com/ru/releasenotes/terminal/2117)
- [MetaTrader 5 build 2190](https://www.metatrader5.com/ru/releasenotes/terminal/2106)
- [MetaTrader 5 build 2170: Области видимости в MQL5, глобальное обновление тестера стратегий и встроенного хостинга](https://www.metatrader5.com/ru/releasenotes/terminal/2099)
- [MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий](https://www.metatrader5.com/ru/releasenotes/terminal/2085)
