Перейти к содержанию

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

Last updated on 29.05.2021

торговый робот

Эта статья открывает целый цикл, посвящённый созданию полноценного торгового фреймворка. Данная библиотека станет основой для создания своих торговых роботов, работающих в торговом терминале 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«. Он будет отвечать за модификацию стоп-лоссов, тейк-профитов и отложенных ордеров

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

Опубликовано в рубрикеОснову для торговых роботов (MQL)