(MQL) 0. Торговый фреймворк. Структура проекта

По | 13 июня, 2022
торговый робот

Эта статья открывает целый цикл, посвящённый созданию полноценного торгового фреймворка. Данная библиотека станет основой для создания своих торговых роботов, работающих в торговом терминале MetaTrader 5.

Зачем нужны торговые роботы

Торговые роботы пользуются всё большей популярностью среди трейдеров. А всё из-за того, что они избавляют от значительного психологического давления, которое испытывает трейдер совершая сделки в реальном времени.

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

Торговый фреймворк. Общая структура проекта

Торговый фреймворк имеет следующую структуру.

структура-проекта
  1. Папка «Classes» — будет содержать в себе все необходимые классы
  2. Папка «Defines» — в ней будут находиться файлы, в которых пропишутся необходимые константы
  3. Папка «Enums» — будет содержать файлы, для указания требуемых перечислений
  4. Папка «Helpers» — будет содержать файлы функций — помощников
  5. Папка «Parameters» — в ней будет находиться класс настроек торгового робота
  6. Папка «Strategy» — предназначена для всех торговых стратегий

Папка «Classes» в свою очередь содержит иные папки. Это:

  • Папка «Account» — будет содержать файл одноимённого класса. Его основная задача будет состоять в предоставлении необходимой информации об аккаунте трейдера
  • Папка «Date» — будет содержать файл класса «Date». Его основная задача будет состоять в обработке даты и времени
  • Папка «File» — будет содержать файл класса «File. Понадобиться для записи данных в файл и извлечении их из него.
  • Папка «Language» — будет содержать файл класса «Language. Необходим для перевода торговых роботов на разные языки.
  • Папка «List» — будет содержать файл класса «List«. Он понадобится для создания списка открытых и отложенных ордеров.
  • Папка «Log» — будет содержать файл класса «Log«. Необходим для фиксации ошибок и предупреждений, возникающих в процессе работы торгового робота.
  • Папка «Node» — будет содержать файл класса «Node«. Основа для создания класса «List«.
  • Папка «Notification» — будет содержать одноимённый класс. Понадобится для отправки сообщений на email, push-сообщений, вывода сообщений в окно терминала.
  • Папка «Order» — будет содержать файл класса «Order«. В нём будут храниться все данные открытых и отложенных ордеров.
  • Папка «Filter» — будет содержать файл класса «Filter«. Будет использоваться для фильтрации торговых сигналов.
  • Папка «Signal» — будет содержать файл класса «Signal«. Основа для создания торговых стратегий.
  • Папка «Symbol» — будет содержать файл класса «Symbol«. Будет служить помощником в получении данных о рабочем инструменте.
  • Папка «Tick» — будет содержать файл класса «Tick«. В нём будут храниться данные нескольких последних тиков
  • Папка «Timer» — будет содержать файл одноимённого класса. Понадобится для проверки последних данных рабочих инструментов (не дожидаясь очередного запуска функции OnTick()).
  • Папка «Close» — будет содержать файл класса «Close«. Он будет отвечать за частичное или полное закрытие имеющихся позиций
  • Папка «Open» — будет содержать файл класса «Open«. Он будет отвечать за открытие и наращивание позиций
  • Папка «Modify» — будет содержать файл класса «Modify«. Он будет отвечать за модификацию стоп-лоссов, тейк-профитов и отложенных ордеров

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