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

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

Last updated on 10.04.2021

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

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