Справка по MetaEditorРабота с SQL-базами данных

Работа с SQL-базами данных

MetaEditor позволяет удобно работать с базами данных, благодаря интеграции с популярным движком SQLite. Удобством этого движка является то, что вся база данных находится в единственном файле на жестком диске на компьютере пользователя.

Редактор предоставляет доступ к основным функциям для работы с базами данных:

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

Разработка торговых стратегий связана с обработкой больших объемов информации, поэтому базы данных имеют широкое применение в алготрейдинге. Используя их, вы значительно расширите свои возможности. Они помогут:

  • Анализировать торговую истории и котировки
  • Сохранять и анализировать результаты оптимизации и тестирования
  • Готовить и обмениваться данными с другими пакетами анализа
  • Хранить настройки и состояние MQL5-программ

Язык MQL5 поддерживает функции для работы с базами данных напрямую из ваших программ. Подробная информация доступна в статье "SQLite: нативная работа с базами данных на SQL в MQL5".

Создание базы данных #

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

Создание базы данных через визард

Для полей доступны следующие типы:

  • integer — целочисленные значения
  • real — вещественные значения
  • text — строковые значения
  • blob — массивы двоичных данных

Поля также могут быть помечены флагами:

  • primary — первичный ключ, который однозначно идентифицирует каждую запись таблицы. Только одно поле таблицы может быть использовано в качестве первичного ключа. Значения в этом поле должны быть уникальны.
  • unique — поле со значениями, которые не могут повторяться. При попытке записи уже имеющегося значения будет выдаваться ошибка. Вы можете помечать этим флагом поля, для которых заранее известно, что их значения должны быть уникальными. Например, если поле используется для тикетов торговых операций.

Вы также можете создать базы данных, воспользовавшись контекстным меню "Навигатора":

  • Создать базу данных — создает пустой файл базы данных выбранного формата. По умолчанию используется расширение *.DB.
  • Создать из файла — создать базу данных на основе имеющейся базы формата *.SQL.

Создав базу, вы перейдете в соответствующий раздел "Навигатора". Из него происходит вся работа с данными.

Импорт таблиц #

Вы можете создавать таблицы в базе данных на основе готовых CSV-файлов. Нажмите "Импорт таблицы" в меню базы, выберите файл и задайте следующие параметры:

  • Имя для таблицы в базе данных.
  • Автоматическое или ручное определение кодировки файла.
  • Тип разделителя данных: запятая, точка с запятой, табуляция или пробел.
  • Пропуск определенного количества строк в начале файла.
  • Префикс комментариев.
  • Есть ли в файле названия колонок. Если включить эту опцию, то в качестве названий колонок будут импортированы значения из первой строки файла.
  • Как будут определяться переносы строк: только по символу переноса строки (LF, используется по умолчанию) или символам возврата каретки и переноса строки (CRLF).
  • Добавить данные в новую таблицу или уже имеющуюся.
  • Какие кавычки используются для строк в файле: одинарные или двойные. При импорте эти кавычки будут убраны.

Импорт готовой таблицы в базу данных

Работа с базой данных #

Для работы с базами данных в "Навигаторе" предусмотрена отдельная вкладка. Нажмите "Открыть" в ее контекстном меню или в меню "Файл" и выберите файл базы данных. После этого ее таблицы появятся в "Навигаторе".

Для быстрого запроса первой 1 000 записей дважды нажмите на имя таблицы.

Работа с базой данных

Чтобы исполнить запрос к базе данных, напишите его в правой части редактора и нажмите "Выполнить". В случае ошибки в запросе соответствующее сообщение будет выведено в журнал. Пример простого запроса, создающего таблицу:

CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);

В таблице COMPANY содержится 5 полей: ID записи, имя, возраст, адрес и зарплата. Причем поле ID является ключом. Ключ позволяет однозначно определять каждую запись и может использоваться в разных таблицах для того, чтобы связывать их между собой. Это аналогично тому, как ID позиции связывает между собой все сделки и ордера, которые относятся к конкретной позиции.

Если колонка таблицы содержит данные о времени, указанные в количестве минут (UNIX-время), секунд или микросекунд, прошедших с 1970.01.01, нажмите на нее левой кнопкой мыши и выберите нужный формат. После этого время будет отображено в привычном виде — ГГГГ.ММ.ДД чч:мм:сс.

Чтобы сохранить таблицу в виде файла, запросите все данные из нее запросом вида "SELECT * FROM [имя таблицы]", а затем нажмите "Экспортировать" в контекстном меню. При экспорте вам предлагается выбрать те же опции для таблицы, что и при импорте.