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

(MQL) 2.3 Расширение структуры проекта.

Last updated on 24.07.2021

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

Не смотря на то, что наш проект пока содержит всего два файла, потребовалось его немного расширить.

Расширение структуры проекта

На данный момент создаваемый нами проект имеет следующий вид:

расширение структуры проекта

Чем он отличается от первоначальной структуры? Во-первых в папке «Classes» появились новые директории:

  • Allowed
  • Bar

Во-вторых в корень проекта были добавлены директории «Defines» и «Structure».

В папке «Allowed» будут расположены два класса, отвечающих за проверку торговых условий. Это:

  1. Определение торговых дней
  2. Проверка торгового времени
  3. Определение торговых инструментов
  4. Проверка таймфрейма
  5. Определение некоторых дополнительных торговых условий

Папка «Bar» будет содержать файлы классов, которые будут работать с барами. То есть получать данные определённого количества баров и преобразовывать их. Эти классы заменят некоторые стандартные индикаторы.

В папке «Defines» располагается одноимённый файл, в котором прописываются базовые константы. На данный момент их три:

//--- Имя программы
 define NAME ::MQLInfoString(MQL_PROGRAM_NAME)

 //--- Тип программы: 
   PROGRAM_SCRIPT - Скрипт
   PROGRAM_EXPERT - Эксперт
   PROGRAM_INDICATOR - Индикатор

 define TYPE EnumToString(MQLInfoInteger(MQL_PROGRAM_TYPE))

 //--- Имя файла настроек. Все .txt и .csv будут храниться в папке   
      "Корневой каталог терминала\MQL5\Files\".  Этот путь используется терминалом в качестве основного. Поэтому достаточно указать лишь имя файла. 

 define SETTINGS "TradeSettings.txt"  

Папка «Structure» содержится одноимённый файл, в котором будут указаны все используемые структуры.

Все файлы, что вы можете увидеть на скриншоте, являются рабочими. Далее каждый из них будет подробно описан в последующих статьях. А пока несколько слов о порядке подключения имеющихся файлов.

Порядок подключения файлов

На данный момент файлы подключаются в следующем порядке:

Defines.mqh -> Structure.mqh -> Enums.mqh -> Сonversion.mqh ->  Prepare.mqh -> ETime.mqh -> ENode.mqh -> ENodeList.mqh -> EAllowedRow.mqh -> EAllowedList.mqh -> Allowed.mqh -> GetData.mqh

При компиляции программного кода в MetaEditor файлы всегда подключаются один раз. Вы можете отдать команду на подключение одного и того же файла, в одном проекте, несколько раз. Ошибки не будет. Просто файл будет подключён один раз, а повторные команды будут проигнорированы. Но такой подход работает в MetaTrader 5. А вот в MetaTrader 4 повторные подключения одного и того же файла приведёт к ошибке при компиляции. Лично я предпочитаю избегать повторных подключений, если это возможно.

В следующей статье рассмотрим несколько хелперов, которые нам понадобятся при работе со строковыми переменными. Это будет небольшая остановка перед полным погружением в тонкости создания торгового фреймворка.

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