Модуль TemplateDealDefine.mqh



Методические указания по разработке торговой системы на MQL4 с помощью шаблона Template – Standart.

2010 год


Структура подключаемых файлов в MQL

· BaseFunction

Базовые функции, которых нет в качестве стандартных.

 

· TradeFunction

Торговые функции для совершения торговых операций и анализа цены.

 

· Period

Функция нахождения значений заданного бара.

 

· Period_M1

Функция нахождения значений заданного бара, построенного из минутных котировок.

 

· <Система>Testing

Тестовые функции для вывода логов в файл и в торговый терминал.

 

· <Система>Forming

Формирование ценовых диапазонов для конкретного их анализа торговой системой.

 

· <Система>Working

Применение алгоритмов обработки ценовых диапазонов.

 

· <Система>DealDefine

Идентификаторы условий заключения и выхода из сделок.

 

· <Система>DealCondition

Объявление массивов для управления сделками, функции управления депозитом, инициализация условий, обработка и контроль сделок.

 

· <Система>Indicator

Инициализация, функционирование и деинициализация индикатора.

 

· <Система>Deal

Функции обновления периода, генерация условий на заключение и выход из сделок.

 

· <Система>Trade

Основная программа с функциями init, deinit, start.

 


Алгоритм выполнения торговой системы

 


Технология построения торговой системы

Построение торговой системы осуществляется путём дописания и изменения кода в следующих файлах-заготовках:

· TemplateTesting.mqh

· TemplateDealDefine.mqh

· TemplateDealCondition.mqh

· TemplateIndicator.mqh

· TemplateDeal.mqh

· TemplateTrade.mq4

Остальные поставляемые файлы остаются без изменений:

· BaseFunction

· TradeFunction

· Period

· Period_M1

 

Вся поставка распространяется в следующих вариантах:

  • Template – Standart

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

  • Template – Small

Упрощённая версия, где отсутствуют:

- Возможность установления отложенных ордеров.

- Модуль для тестирования и записи логов (TemplateTesting).

 

Также после создания полноценной версии торговой системы следует создать облегчённую версию (Template – TestLite) для тестирования торговой системы, где будут убраны следующие элементы:

  • Всякие сообщения об ошибках с использованием функции Print.
  • Использование файловых операций.
  • Использование отложенных ордеров.
  • Сравнения переменных с true и false.
  • Некоторые условия контроля и заключения сделок.

Облегчённая версия создаётся единым MQ4 файлом и набором тех функций, которые реально используются в ней.

 

 

Построение торговой системы по шагам

Шаг 1. Проектирование торговой стратегии.

Перед тем, как писать торговую систему, нужно ответить на следующий ряд основных вопросов, которые будут затем реализованы в соответствующих модулях:

· Как будет называться торговая система?

· Какой торговый инструмент будет использоваться (какая валютная пара)?

· Какие условия должны выполняться для заключения сделок на buy и на sell в отдельности?

· Какие условия должны существовать для выхода из этих сделок?

· Стоит ли использовать возможность отложенных ордеров?

· Какой индикатор (или какие индикаторы) будет применяться для заключения и выхода из сделок?

· Какие значения должны быть заданы входным параметрам у соответствующего индикатора?

· Какие значения (линии) индикатора будут реально использоваться в торговле?

· Какую роль будут выполнять индикаторы в торговой системе (для заключения сделок или для выхода, основную или вспомогательную роли на ряду с другими условиями)?

· Как будет формироваться период торгового инструмента? Будет ли он стандартным (M1, M5, M15, M30, H1, H4, D1, W1, MN) или комбинированным (сложным, нестандартным)?

· Сколько сделок будет заключаться за один регламентированный период (за один бар)?

· Что будет происходить со сделками при обновлении периода (при выходе следующего бара)?

Все остальные возникающие (по большей части технические) вопросы можно решить при написании торговой системы.

Шаг 2. Наименование модулей.

Перед тем как писать код, следует задать имена модулям. Для этого необходимо заменить префикс Template на подобранное название торговой системы. Далее в этих модулях прописывается соответствующая структура подключаемых файлов (изменяются названия модулей там, где стоит директива препроцессора #include).

 

 

Шаг 3. Написание кода.

Написание кода разделяется на написание кода в соответствующих модулях. Написание кода в модулях идёт в той последовательности, как они подключаются друг к другу.

 

Модуль TemplateTesting.mgh

В этом модуле описываются все функции, связанные с выводом в файл или на экран отладочной информации и сообщений.

На данном этапе следует определить:

  • Нужно ли вести логи?
  • В каком формате будут вестись логи?
  • Где они будут использоваться и как анализироваться?

 

Внешние переменные:

Обозначение параметра Название параметра Значение по умолчанию
1 LogFileName Имя файла логов Temp.txt

 

  1. LogFileName

Параметр имени для создания файла с логами. По умолчанию создаётся файл Temp.txt в папке \experts\files.

 

Статические переменные:

Обозначение параметра Название параметра
1 handle_tmp Идентификатор файла логов

 

Функции:

Название Описание Параметры
1 PrintFTStr Вывод в файл LogFileName строки. str – выводимая в файл строка.
2 PrintFT Вывод в файл LogFileName специально отформатированной строки: идентификатор строки, время, сама строка. id – идентификатор выводимой строки. dt – тип возвращаемой даты. Может быть одним из типов даты (определяется в базовых функциях). str – выводимая строка.

 

Модуль TemplateDealDefine.mqh

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

На данном этапе следует определить:

  • Какие условия должны выполняться для заключения сделок на buy и на sell в отдельности?
  • Какие условия должны существовать для выхода из этих сделок?
  • Стоит ли использовать возможность отложенных ордеров?
  • Какие условия необходимо определить для совершения отложенных ордеров на buy и на sell в отдельности?
  • Какие условия нужно определить для удаления несработавших отложенных ордеров?
  • Будут ли изменяться параметры отложенных ордеров? Если да, то следует определить момент, когда они (или часть из них) меняться не будут.
  • Какой индикатор (или какие индикаторы) будет применяться для заключения и выхода из сделок?
  • Какие значения (линии) индикатора при этом будут использоваться?
  • Можно ли заменить несколько индикаторов одним (интегрированным) для упрощения написания условий для заключения и выхода из сделок?
  • Сколько сделок будет заключаться за один регламентированный период?
  • Что будет происходить со сделками при обновлении периода?

 

Объявляемые константы:

Константа Описание Значение
1 ARRAY_CONCLUSION_SIZE Размер массива условий заключения сделок. 3
2 ARRAY_CONTROL_SIZE Размер массива условий выхода из сделок. 2
3 ARRAY_PENDING_SIZE Размер массива условий совершения отложенных сделок. 3
4 ARRAY_CONTROL_PENDING_SIZE Размер массива условий удаления отложенных ордеров. 2
5 ARRAY_INDICATOR_SIZE Размер массива значений индикатора. 3
6 ARRAY_DEAL_SIZE Размер массива сделок. 100
7 BLOCK_DEAL_SIZE Блок увеличения массива сделок. 50
8 CONCLUSION_SANCTION Идентификатор условия заключения сделок: Разрешение на заключение сделки. 0
9 CONCLUSION_ONE Идентификатор условия заключения сделок: Одна сделка на бар. 1
10 CONCLUSION_PRICE Идентификатор условия заключения сделок: Достижение заданной цены. 2
11 CONTROL_SANCTION Идентификатор условия выхода из сделок: Разрешение на выход из сделки. 0
12 CONTROL_PRICE Идентификатор условия выхода из сделок: Достижение заданной цены. 1
13 PENDING_SANCTION Идентификатор условия заключения отложенных сделок: Разрешение на заключение сделки. 0
14 PENDING_ONE Идентификатор условия заключения отложенных сделок: Одна сделка на бар. 1
15 PENDING_PRICE Идентификатор условия заключения отложенных сделок: Достижение заданной цены. 2
16 CONTROL_PENDING_SANCTION Идентификатор условия удаления отложенных сделок: Разрешение на выход из сделки. 0
17 CONTROL_PENDING_REFRESH Идентификатор условия удаления отложенных сделок: Обновление периода. 1
18 INDICATOR_BASE Идентификатор значения индикатора: Основная линия индикатора. 0
19 INDICATOR_PENDING_BUY Идентификатор значения индикатора: Линия покупки для отложенного ордера. 1
20 INDICATOR_PENDING_SELL Идентификатор значения индикатора: Линия продажи для отложенного ордера. 2

 


Дата добавления: 2018-06-01; просмотров: 245; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!