Мы добавили большое количество новых функций, главные среди которых:
- MetaEditor: Добавлена возможность удобной работы с SQLite базами данных.
В предыдущем обновлении платформы мы добавили поддержку работы с базами данных SQLite прямо из MQL5. Теперь основные функции стали доступны и через пользовательский интерфейс MetaEditor:
- Создание и подключение к базам данных
- Просмотр таблиц и быстрый запрос данных
- Составление и выполнение SQL-запросов, откат изменений
Как это работает
Для быстрого создания баз данных воспользуйтесь «Мастером MQL5». Здесь вы можете сразу создать первую таблицу и определить список ее полей.
Создав базу, вы перейдете в новый раздел «Навигатора». Из него происходит вся работа с данными.
В левой части отображаются таблицы базы данных. Для быстрого запроса первой 1 000 записей дважды нажмите на имя таблицы. Здесь же вы можете создавать и открывать другие базы, а также работать с таблицами.
В основной части редактора происходит работа с базой: заполняйте таблицу данными, делайте поиск и выборки, вводите SQL-запросы и т.д.
Более подробно о работе с базами данных в MetaTrader 5 читайте в статье "SQLite: нативная работа с базами данных на SQL в MQL5".
- MetaEditor: Продолжается работа по добавлению поддержки мультиязычных проектов. В этой версии мы расширили функции для работы со скриптами на Python:
- Теперь их можно удобно создавать через «Мастер MQL5», сразу включая в код зависимости от необходимых библиотек.
- В навигаторе для них добавлены специальные иконки, в редакторе — подсветка синтаксиса.
- При запуске скрипта через MetaEditor сообщения из консоли Python (stdout, stderr) выводятся в раздел «Ошибки».
Для запуска скрипта в редакторе нажмите «Компилировать»:
Для работы с Python не забудьте указать путь к нему в разделе «Настройки / Компиляторы» в MetaEditor. А для работы с библиотекой MetaTrader 5 установите ее командой: pip install MetaTrader5
Подробнее об интеграции с Python читайте в документации.
- MQL5: Полностью переработана интеграция с Python. Добавлено множество новых функций и изменено именование команд.
Список поддерживаемых команд значительно расширен. Добавлены функции торговли и работы с торговой историей, получения информации о финансовых инструментах и текущем счете.
- account_info() — получение информации о текущем счете. Аналог AccountInfoInteger, AcountInfoDouble и AccountInfoString.
- positions_total() — получение количества открытых позиций. Аналог PositionsTotal.
- positions_get(symbol, ticket) — получение открытых позиций по символу или тикету.
- orders_total() — получение количества ордеров. Аналог OrdersTotal.
- orders_get(symbol, ticket) — получение открытых ордеров по символу или тикету.
- history_orders_total(from, to) — получение количества ордеров в истории в заданном промежутке времени.
- history_orders_get(from, to, position, ticket) — получение ордеров из истории в заданном промежутке по тикету или с фильтрацией по позиции.
- history_deals_total() — получение количества сделок в истории. Аналог HistoryDealsTotal.
- history_deals_get(from, to, position, ticket) — получение сделок из истории в заданном промежутке по тикету или с фильтрацией по позиции.
- symbol_info(symbol) — получение информации о финансовом инструменте. Аналог SymbolInfoInteger, SymbolInfoDouble, SymbolInfoString.
- symbol_info_tick(symbol) — получение последнего тика по символу. Аналог SymbolInfoTick.
- symbol_select(symbol, enable) — включение/выключение символа в «Обзоре рынка». Аналог SymbolSelect.
- order_check(request) — проверка маржи для ордера. Аналог OrderCheck.
- order_send(request) — отправка ордера на сервер. Аналог OrderSend.
- order_calc_margin(action, symbol, volume, price) — расчет маржи для ордера. Аналог OrderCalcMargin.
- order_calc_profit(action, symbol, volume, price_open, price_close) — расчет прибыли. Аналог OrderCalcProfit.
Теперь скрипты на Python можно запускать прямо на графиках в платформе, аналогично обычным MQL5-программам. В «Навигаторе» они будут отображаться специальными иконками.
Сообщения скрипта будут выводиться в раздел «Инструменты / Эксперты». Если в скрипте используется библиотека MetaTrader 5, то он сможет получать информацию об инструменте, счете и торговать.
Python-скрипты можно запускать на одном и том же графике параллельно с другими MQL5-скриптами и советниками. Для остановки скрипта, если его исполнение зациклено, просто удалите его с графика.
Чтобы дополнительно защитить ваши счета при использовании сторонних библиотек Python, в настройки терминала добавлена опция «Отключить автоматическую торговлю через внешний Python API».
Скриптам на Python будут разрешены торговые операции только при явном отключении этой опции.
- MQL5: Значительно ускорен повторный запуск MQL5-программ и повторное создание пользовательских индикаторов из MQL5-программ. В некоторых случаях скорость повысилась в сотни раз.
- MQL5: Добавлены функции для работы с базами данных:
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
Экспортирует таблицу или результат выполнения 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
Печатает таблицу или результат выполнения SQL-запроса в журнал экспертов.
long DatabasePrint(
int database, // хендл базы данных, полученный в DatabaseOpen
const string table_or_sql, // таблица или SQL-запрос
uint flags // комбинация флагов
);
- MQL5: Добавлена функция FileSelectDialog, которая вызывает системный диалог создания/открытия файла или папки.
int FileSelectDialog(
string caption, // заголовок окна
string initial_dir, // начальная папка
string filter, // фильтр расширений
uint flags, // комбинация флагов
string& filenames[], // массив с именами файлов
string default_filename // имя файла по умолчанию
);
Новая функция позволит реализовать удобное взаимодействие пользователя с MQL5-программой.
- MQL5: В перечисление ENUM_DEAL_PROPERTY_DOUBLE добавлено значение DEAL_FEE — оплата за проведение сделки. Фактически, это отдельный вид комиссии, которая может взиматься брокером.
- Tester: Добавлена возможность задавать собственные настройки торгового счета при тестировании стратегий — торговые ограничения, настройки маржи и комиссии. Таким образом, вы получаете еще больше возможностей для моделирования различных торговых условий у брокеров.
Общие настройки
В этом разделе вы можете задать максимальное количество открытых ордеров и позиций, которое можно одновременно иметь на счете. Также здесь можно настроить сессии, когда тестируемой программе будет запрещено торговать.
Маржа
Здесь вы можете полностью контролировать, как будет резервироваться маржа и какая система учета позиций будет использована при тестировании:
- Управление рисками — модель управления рисками: внебиржевые и биржевые, с неттингом и хеджингом. Подробная информация о них доступна в справке.
- Уровень «Margin call» — уровень средств на счете, при достижении которого он переходит в состояние Margin call.
- Уровень «Stop out» — уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя «Средства» на счету. При выборе опции «В процентах» уровни определяются как значение показателя «Уровень маржи» на счету (Средства/Маржа*100).
- Нереализованная — в данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:
- Не использовать нереализованную прибыль/убыток — не учитывать открытые позиции при расчете.
- Использовать нереализованную прибыль/убыток — использовать при расчете убыток и прибыль по открытым позициям.
- Использовать нереализованную прибыль — использовать только прибыль.
- Использовать нереализованный убыток — использовать только убыток.
- Дневная фиксированная — в данном поле указывается, каким образом будет учитываться прибыль/убыток, зафиксированный трейдером в течение торгового дня, в свободной марже:
- Использовать дневную фиксированную прибыль/убыток — учитывать прибыль и убыток, зафиксированные в течение торгового дня, в свободной марже.
- Использовать дневной фиксированный убыток — учитывать только убыток, зафиксированный в течение торгового дня, в свободной марже. В течение дня накопленная прибыль фиксируется в отдельном поле счета («Заблокировано»). По окончании торгового дня накопленная прибыль освобождается (обнуляется) и отражается на балансе счета (учитывается в свободной марже).
- Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции «Использовать дневной фиксированный убыток». Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.
Комиссия
В этом разделе вы полностью контролируете, как взимается комиссия со всех торговых операций.
- Комиссии могут быть одноуровневыми и многоуровневыми, т.е. взиматься в одинаковом размере независимо от объема сделки/оборота или разниться в зависимости от их величины. Соответствующая информация выводится в спецификации.
- Комиссии могут взиматься сразу при совершении сделки или в конце торгового дня/месяца.
- Комиссии могут взиматься в зависимости от направления сделки: за вход, за выход или за оба типа операций.
- Комиссии могут взиматься за каждый лот или за каждую сделку.
- Комиссии могут взиматься в разных величинах: в деньгах, процентах или пунктах.
- Tester: Оптимизирована и значительно ускорена работа в режиме «Сканирование рынка», когда производится несколько проходов тестирования по всем символам из «Обзора рынка».
- Tester: При расчете прибыли в пипсах теперь учитывается размер сделки или позиции. Ранее расчет велся без учета объема — как для одного лота.
- Tester: Улучшено управление графиком результатов оптимизации. При увеличении масштаба обычного графика оптимизации появилась возможность его прокручивать. Двойной клик на точке графика теперь выделяет соответствующий результат в таблице проходов.
- MetaEditor: Добавлен показ файлов баз данных SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) в «Навигаторе».
- MetaEditor: Исправлены ошибки при сохранении свойств проекта.
- Обновлена документация.
Обновление доступно через систему LiveUpdate или с
https://www.metatrader5.com/ru/download
Кроме того, ежедневно выходят новые бета-версии, доступные из меню Справка -> Проверить обновления.
Если кто не в знает, то терминалы абсолютно бесплатны. Качайте и автоматизируйте свою торговлю!
А нельзя все это, было на русском языке? Вы ведь в РОССИИ находитесь.
Или Уже забыли родной язык?
Думаю, многие меня поддержат.
С уважением.
Это позволяет:
— удобно работать со структурированными данными
— принимать данные извне и передавать наружу исходные и просчитанные данные
— обмениваться с другими системами
Вместо мучений с файловыми данными, можно и нужно удобнее все хранить в экономичных базах.
Базы данных полностью доступны в тестере стратегий, включая работу в MQL5 Cloud Network.
Еще более революционна поддержка питоновских программ. Кто привык работать с Питоном, теперь получил в руки полноценную и быструю библиотеку MetaTrader 5 для Питона.
Все котировки, как и чистый трейдинг доступен прямо из Питона.
Стесняюсь спросить, какие такие данные могут быть в Мт 5 что их нужно хранить в базе данных?