Сергей Ковалев - Инструменты для трейдинга. Лекция 1
Автотрейдинг - направление в торговле, позволяющее успешно решать задачи, которых до его появления не возникало. (Компьютерный фольклор)
AutoGraf 4 - взгляд в будущее. Перспективы развития прикладных программ для клиентского терминала MetaTrader.
Анализ текущей ситуации
С момента выхода в свет первой версии приложения AutoGraf (январь 2006) прошло более трех лет. За этот период идея автоматического трейдинга не только прошла проверку временем, но и по праву завоевала всеобщее признание. В подтверждение тому -результаты чемпионатов по автотрейдингу 2006 - 2008 гг. Количество участников чемпионатов год от года растет. Принципы построения стратегий и методов программирования прикладных программ для клиентского терминала MetaTrader широко обсуждаются на тематических форумах.
Популярность автоматического
способа торговли вполне понятна - на прикладную программу можно переложить всю рутинную работу по подготовке и исполнению торговых решений. Это позволяет трейдеру сосредоточиться на узловых моментах торговли. Вместе с тем, само по себе признание автотрейдинга, как основного современного способа торговли, не решает проблему методологии создания прикладных программ, а наоборот, ставит новые задачи и открывает новые горизонты творчества для ищущих,
целеустремленных аналитиков и программистов.
К настоящему времени написано множество книг, повествующих о различных стратегиях торговли. Для реализации большинства из них в виде программного кода могут использоваться одни и те же алгоритмы, например: расчет стоимости ордеров,
открытие/закрытие ордеров в
зависимости от различных событий (достижение цены или времени, по показателям индикаторов и пр.), модификация StopLoss или TakeProfit вслед за рыночной ценой или линией поддержки, управление объектами для графического отображения стратегий и тактик и т.д. За время существования языка программирования MQL 4 накоплено достаточно готовых к использованию функций. Эти функции с разной степенью успешности применяются в экспертах, скриптах и индикаторах.
Однако подавляющее большинство современных прикладных программ предназначены для торговли по какой-либо одной стратегии и содержат небольшой набор алгоритмов. Основной характеристикой подобных программ является их функциональная
ограниченность. Такие программы, как правило, не предусматривают
возможность оперативного вмешательства трейдера в процесс торговли. В ряде
случаев в окне финансового инструмента отображаются лишь ордера, стандартные объекты и индикаторные линии. В этом скромном наборе обычно отсутствуют какие бы то ни было указания на характер стратегии и принятой тактики торговли. Каждая такая программа являет собой законченный продукт, пригодный для употребления, но лишенный возможности усовершенствования.
Опытный трейдер может иметь в своем арсенале несколько прикладных программ, каждая из которых основана на уникальной стратегии. Наличие этих программ в пользовании трейдера решает задачу автоматизации торговли лишь частично. Обычно подобные программы не согласованы между собой (а в некоторых случаях это невозможно по техническим причинам - в распоряжении трейдера может быть лишь приобретенный исполняемый файл ех4). Таким образом, теряется основное преимущество автотрейдинга - несмотря на наличие нескольких программ, трейдер вынужден постоянно присутствовать перед монитором и с каждым тиком принимать новое решение об использовании той или иной программы.
Состав обычной программы
Рассмотрим структурную схему обычной современной программы.

Рис. 1. Структурная схема обычной программы.
Некоторое время назад представленная схема рассматривалась как классическая. После запуска программы на исполнение управление передается в блок учета ордеров, а затем в блок расчета торговых критериев. По данной схеме сначала выполняется учет ордеров (в общем случае последовательность исполнения указанных блоков принципиального значения не имеет). Результаты
вычислений передаются в анализатор -блок принятия решений. В зависимости от состава ордеров и значений торговых критериев управление может быть передано в блок закрытия, открытия или модификации ордеров. В каждом из указанных блоков вычисляется стоимость и состав ордеров, назначенных под управление. Управляющее воздействие формируется в торговом блоке, после чего соответствующий торговый приказ
отправляется на сервер. После обработки ошибок, возвращенных сервером, вычислительный процесс повторяется.
Достоинство такой схемы прикладной программы состоит в ее очевидности и простоте. В самом деле, в этой схеме есть все, что необходимо для построения простого эксперта, торгующего по определенной стратегии. Блоки открытия и закрытия ордеров в подобных программах, как правило, устроены
бесхитростно - приказ создается на предопределенное количество лотов. Блок модификации ордеров обычно содержит алгоритм подтяжки StopLoss ордера вслед за ценой (или отложенных ордеров в случае реализации механистических методов поиска экстремумов или
случайных выбросов).
Эксперт, построенный по указанной схеме, может решать строго
определенный круг задач. Но в этом же и состоит его недостаток. Такой эксперт оказывается несостоятельным, если необходимо «немного» изменить стратегию или тактику. Например, если по замыслу автора эксперта требуется вместо StopLoss использовать противоположной отложенный stop-ордер, то решение задачи, как правило, приводит к написанию нового эксперта. Новый эксперт также создается по этой же классической схеме и программно не связывается со своим предшественником. В результате у трейдера накапливается множество малоэффективных,
разрозненных программ, количество которых не повышает качество (результативность) торговли, а лишь свидетельствует о необходимости использовать более эффективную программу.
Тенденции в развитии техники
Жизнь не стоит на месте. Сегодняшний уровень развития прикладных программ уже не может удовлетворить взыскательного трейдера. Тот факт, что автотрейдинг будет развиваться в будущем, не вызывает никаких сомнений. Но возникает естественный вопрос: какой будет прикладная программа для клиентского терминала MetaTrader завтра? Чтобы не ошибиться в оценках, обратимся к истории. Проследим развитие техники и технологий в смежных отраслях, например, в радио, электронике, связи.
Электронная техника за последние десятилетия прошла путь развития от телеграфа до спутниковой связи, от механических арифмометров до компьютеров, от «Алле, барышня?» до современных средств мобильной связи. Появились и новые электронные устройства - mpB-плееры, диктофоны, коммуникаторы и новые носители информации - DVD-диски и флешки.
Современные электронные средства отличаются от своих предшественников прежде всего наличием новых возможностей. Вся совокупность свойств изделий новых поколений определяет не только новое качество продуктов, но и отношение пользователей. В частности, с одной стороны, существенно усложняются средства производства продукции, что позволяет придать готовому продукту заданное качество - уменьшить вес, понизить стоимость, расширить возможности и т.д. С другой стороны, этот процесс неминуемо приводит к перераспределению труда.
Возьмем для примера транзисторный приемник образца 70-80 годов и сравним его с современным карманным FM-приемником. Качество звучания существенно повысилось, стоимость и габариты уменьшились. Стрый приемник состоял из отдельных примитивных деталей (транзисторы, диоды,
конденсаторы, сопротивления). Новый приемник содержит всего несколько
деталей - корпус, микросхему и батарейки. Принципиально изменилось отношение пользователей к такому показателю изделия, как
ремонтопригодность.
Раньше любой радиолюбитель, вооружившись паяльником, мог заменить испорченную радиодеталь, а сами радиодетали были доступны в магазинах. Новые приемники не ремонтируют. Несмотря на доступность и дешевизну (стоимость сопоставима со стоимостью паяльника), новый приемник построен на основе современных технологий, являющихся результатом труда множества квалифицированных специалистов. Здесь важно подчеркнуть, что ремонтировать (изменять, дополнять, совершенствовать) приемник нового поколения не под силу домашнему радиолюбителю ввиду его сложности. И дело не только в том, что это затруднительно с технической точки зрения (чинить микросхему под микроскопом). Принципиальный момент состоит в том, что для понимания принципов работы такого изделия необходимо быть специалистом в нескольких областях знаний - физике, химии, математике, электронике и пр. Вместе с тем, потребитель легко осваивает свойства нового приемника и с успехом пользуется им.
Аналогичные явления
просматриваются и во многих других отраслях, в том числе, в программировании. В период появления первых персональных компьютеров необходимость создания простых программ для различных целей ложилась на плечи обычных пользователей ПК. В настоящее время существует четкое разделение объектов труда -разработчики создают качественные компьютеры и программные продукты, потребители могут сосредоточиться на предметной области - использовании компьютеров для создания документов, решения задач управления, в качестве средств коммуникации и т.д.
Легко заметить, что развитие техники в смежных областях деятельности характеризуется, во-первых,
усложнением, повышением качества и новыми свойствами готовых продуктов, и, во-вторых, более выраженному разделению на производителей и пользователей (потребителей).
Создание собственного эксперта по представленной выше схеме сегодня напоминает первые шаги радиолюбителя середины прошлого века - создание детекторного радиоприемника. В этой аналогии простые операторы и функции подобны элементарным радиодеталям, а клавиатура подобна паяльнику. Нетрудно предвидеть, что следующим шагом в развитии автотрейдинга будет укрупнение и усложнение прикладных программ, и расширение их свойств. Скорее всего,
следует ожидать, что на рынке прикладных программ для автотрейдинга будут появляться качественно новые продукты, созданием которых будут заняты коллективы высоко
квалифицированных разработчиков, и использовать которые будет подавляющее количество трейдеров.
Какими же будут свойства новых продуктов? Попробуем проследить
перспективу развития прикладных
программ для MetaTrader на примере идей, заложенных в AutoGraf 4 -
программу для ручного,
полуавтоматического и автоматического управления ордерами в клиентском терминале MetaTrader 4.
AutoGraf 4 - прикладная программа нового поколения
Основная концепция приложения объектов труда между трейдером и AutoGraf 4 состоит в распределении программистом.
чтобы выдержать заданную дистанцию до рыночной цены. Инструменты
Подтяжка_Вверх и Подтяжка_Вниз
предусматривают однонаправленное
изменение цены ордерной линии (соотв. только вверх и вниз), инструмент Следование_За_Ценой может
модифицировать ордерную линию в любом направлении.
4 и 5 - Стоп_0_Виу и Cmon_0_Sell -инструмент устанавливается на линию ордера (соотв. Buy и Sell), отображается на цене исполнения. Если рыночная цена касается или переступает через цену исполнения инструмента, инструмент
формирует торговый приказ,
модифицирующий StopLoss ордера в область безубытка (на заданное
количество пунктов выше цены открытия ордера).
6 и 7 - Подтяжка_Не_Выше и Подтяжка_Не_Ниже - инструмент, ограничивающий модификацию ордера. При достижении цены исполнения
инструмент удаляется, если он ограничивает исполнение инструментов 1, 2, 9 и 10, а также удаляются указанные управляющие инструменты. Если же инструмент установлен для
сопровождения инструментов 3 и 11, то при достижении цены исполнения
инструмента управляющее воздействие подтяжек 3 и 11 не формируется, инструменты не удаляются.
8 - Звуковой_уровень - полевой
инструмент, устанавливается на любую цену. При достижении рыночной ценой цены исполнения инструмента
периодически исполняется мелодия и значок моргает. На шкале можно выбрать одну из семи мелодий, каждая мелодия ставится в соответствие значку определённого цвета. Всего может быть установлено не более 30 звуковых уровней.
9, 10 и 11
Подтяжка_За_Объектом_Вверх, Подтяжка_За_Объектом_Вниз и
Седование_За_Объектом - инструмент
устанавливается на ордерную линию и привязывается к установленной
пользователем линии в два этапа. На первом этапе значок инструмента устанавливается на ордерную линию. На втором этапе значок необходимо подвести к желаемой линии (линия начинает моргать). Всего AutoGraf 4 воспринимает 7 типов линий графических объектов: трендовая линия, канал линейной регрессии, канал стандартных
отклонений, фибо-веер, фибо-канал,
вилы Эндрюса и обычный канал. В общей сложности количество объектов указанного типа не должно превышать 100.
12 - Тянуть_Объект - инструмент
устанавливается на один из двух типов объектов - канал линейной регрессии и канал стандартных отклонений. Исполнение инструмента приводит к
изменению координат объекта - канал продвигается вперед на каждом новом баре.
13 - Закрепить_На_Цене -устанавливается на один из стоп-приказов отложенного ордера. Общий порядок модификации отложенных ордеров состоит в том, что ордер модифицируется «целиком», т.е. при модификации ордера дистанция от ордера до каждого из стоп-приказов сохраняется неизменной. Инструмент позволяет «прикнопить» любой из стоп-приказов на текущем значении цены.
14 - Закрыть_Все - инструмент устанавливается на заданное время в будущем; при наступлении времени исполнения инструмент выключает исполнение функции AT или AG (если одна из них активизирована) и закрывает все ордера, имеющиеся по данному инструменту (сначала рыночные, причем сначала встречные, потом отложенные, из них сначала те, что ближе к рыночной цене и т.д.). По окончании исполнения инструмент удаляется и включает функцию, которая была активна до этого (если была).
15 - Закрыть_По_Времени -инструмент закрывает ордер в заданное время; для рыночных ордеров допускается частичное закрытие.
16 - Закрыть_По_Цене - инструмент закрывает ордер в случае, если рыночная цена достигает цены исполнения инструмента; для рыночных ордеров допускается частичное закрытие; для рыночных ордеров допускается установка инструмента ниже и выше рыночной цены.
17 - Торговый_Разворот -инструмент устанавливается на рыночный ордер, при достижении рыночной ценой цены исполнения инструмента (при движении цены в сторону прибыли) ордер закрывается полностью и открывается противоположный рыночный ордер в соответствии с настройками пользователя.
18 и 19 - Торговый_Разворот_Виу и Торговый_Разворот_БеІІ - инструмент устанавливается на TakeProfit рыночных ордеров; при естественном закрытии ордера по цене TakeProfit инструмент открывает противоположный рыночный ордер в соответствии с настройками пользователя.
20 - Стоп_Переворот - инструмент устанавливается на рыночный ордер, при достижении рыночной ценой цены исполнения инструмента (при движении цены в сторону убытков) ордер закрывается полностью и открывается противоположный рыночный ордер в соответствии с настройками пользователя.
21 и 22 - Стоп_Переворот_Виу и Стоп_Переворот_БеІІ - инструмент устанавливается на StopLoss рыночных ордеров; при естественном закрытии ордера по цене StopLoss инструмент открывает противоположный рыночный ордер в соответствии с настройками пользователя.
23 - Планируемый_ордер -
инструмент устанавливается на заданное время в будущем; при наступлении времени исполнения инструмент открывает ордер установленного типа в соответствии с настройками пользователя; тип ордера выбирается на шкале типов ордеров (сместить значок инструмента в пределах панели инструментов).
Рыночные ордера открываются по текущим рыночным ценам, независимо от цены исполнения инструмента. Отложенные ордера устанавливаются в соответствии с ценой исполнения инструмента. Если на момент установки отложенного ордера цена "ушла" за
пределы цены исполнения инструмента, то ордер устанавливается на ближайшую возможную цену с учетом ограничений текущих условий торговли.
24 - Удалить_все_инструменты -
инструмент не устанавливается;
исполнение инструмента приводит к удалению всех установленных
инструментов.
Отдельно нужно заметить, что каждый инструмент может быть настроен персонально как в момент установки, так и в процессе дальнейшей работы. При этом для ряда инструментов предусмотрен удобный способ настройки -значок инструмента просто перемещается мышкой на экране (для настройки цены и времени исполнения). Другие настройки могут быть заданы численно (количество лотов, проскальзывание и пр.).
Управляющие функции
Приложение AutoGraf 4 может использоваться для торговли в ручном, полуавтоматическом и автоматическом режимах. Любые управляющие воздействия трейдера и управляющих функций анализируются в программе. При
формировании торговых приказов
учитываются все необходимые
ограничения - минимальная дистанция, установленная брокером на текущий момент, дистанция заморозки,
допустимые значения стоимости ордеров и т.д.
При ручном режиме трейдер
управляет торговлей с помощью мыши. В распоряжении пользователя имеется
панель инструментов, на которой
располагаются управляющие значки. Для открытия ордера достаточно перетащить мышью один из значков из панели инструментов в окно графика. Рыночный ордер откроется по рыночной цене, отложенный ордер будет открыт по той цене, на которой пользователь оставит управляющий значок.
Для модификации ордеров также используется мышь. Изменение заявленной цены любой ордерной линии осуществляется путем установки ее на желаемое место. При этом если модифицируется отложенный ордер, то
модификация затрагивает также его StopLoss и TakeProfit - заявленные цены стоп-приказов изменяются одновременно с изменением цены ордера.
Удаление ордеров может
осуществляться либо мышью, либо с клавиатуры. Для удаления или закрытия одного или нескольких ордеров, определенных пользователем,
необходимо выделить мышью
соответствующие ордерные линии и нажать клавишу Delete. В программе вычисляется оптимальная
последовательность закрытия ордеров, в частности, в случае возможности, с целью экономии выполняется встречное закрытие ордеров.
Ручной режим имеет наиболее высокий приоритет. Это означает, что любое ручное управляющее воздействие пользователя будет всегда воспринято программой независимо от
установленного режима (автоматический, полуавтоматический или ручной). Использование ручного режима работы оказывается наиболее эффективным при внутридневной торговле, т.е. в условиях, когда от трейдера требуется быстро исполнять принятые решения - открывать, закрывать или модифицировать ордера.
Полуавтоматический режим
управления ордерами предусматривает использование управляющих
инструментов. Для удобства
использования каждому инструменту поставлен в соответствие управляющий значок. Управляющие значки
инструментов доступны пользователю на Панели инструментов. Для активизации любого инструмента необходимо взять мышкой управляющий значок, соответствующий инструменту, подвести его к выбранной ордерной линии и отпустить клавишу мыши. В результате этого управляющего действия
пользователя значок инструмента «прилипнет» к ордерной линии. Это означает, что применительно к выбранному ордеру будет исполняться алгоритм, соответствующий выбранному инструменту.
Полуавтоматический режим
управления торговлей заключается в том, что пользователь устанавливает и настраивает инструменты по своему усмотрению вручную, а исполнение инструментов происходит автоматически без участия пользователя. Для удобства управления инструментами в
полуавтоматическом режиме имеется управляющий значок AG. Чтобы разрешить программе исполнение инструментов, необходимо перевести значок в верхнее положение. Если значок находится в нижнем положении, то инструменты не будут исполняться. Устанавливать и настраивать инструменты пользователь может при любом положении управляющего значка AG.
Применение полуавтоматического режима дает возможность пользователям в режиме реального времени эффективно реализовать по своему усмотрению любую выбранную тактику управления ордерами.
Автоматический режим управления торговлей предполагает исполнение алгоритма функции автоматической
торговли АТ. Это - присоединяемая функция, код для которой пользователь может написать самостоятельно. Функция АТ может содержать код механической торговой системы (МТС), составленный по алгоритму пользователя. Функция АТ приложения AutoGraf 4 выгодно отличается от обычных МТС тем, что спроектирована специально для программирования под AutoGraf 4. Это значит, что функция АТ может содержать алгоритм управления инструментами -устанавливать, удалять и настраивать инструменты приложения AutoGraf 4.
Для активизации функции автоматической торговли необходимо перевести в верхнее положение управляющий значок АТ. Если управляющий значок АТ находится в нижнем положении, то функция АТ не исполняется. Инструменты,
устанавливаемые из функции АТ, так же отображаются в окне финансового инструмента, как и инструменты, установленные пользователем вручную. Все инструменты, наблюдаемые пользователем в окне финансового инструмента, независимо от способа их установки (вручную или из функции АТ) могут быть удалены или модифицированы пользователем в любое время вручную.
Автоматический режим торговли незаменим в случаях, когда в
Структурная схема п
На структурной схеме показана конфигурация приложения AutoGraf 4 при различных режимах управления торговлей. Технически решения об управлении ордерами принимаются в
аналитическом блоке после обработки всех поступающих управляющих
воздействий. Управляющие воздействия могут формироваться пользователем
(ручное управление), инструментами
функции AG (полуавтоматическое управление) и на основе алгоритма пользовательской функции АТ
(автоматическое управление).
распоряжении трейдера имеется надежная стратегия. Применение функции АТ позволяет получить продукт 2 в 1 -реализовать свою торговую стратегию и одновременно использовать все возможности приложения AutoGraf 4.
К управляющим функциям относится также функция закрытия всех ордеров. При исполнении этой функции формируется последовательность
торговых приказов (в отличие от инструментов, формирующих всего один торговый приказ). Нужно заметить, что исполнением инструмента Закрыть_Все есть активизация одноименной функции. Сам инструмент не формирует никаких торговых приказов, он лишь вызывает для исполнения функцию.
Алгоритм управления ордерами, реализованный в функции автоматической торговли АТ, может быть протестирован в тестере клиентского терминала MetaTrader 4. Приложение AutoGraf 4 позволяет проводить как скоростное тестирование, так и тестирование в режиме визуализации. При тестировании в режиме визуализации приложение полностью сохраняет свою
функциональность, т.е. трейдеру доступны все режимы исполнения приложения - ручной,
полуавтоматический и автоматический.
иложения AutoGraf 4
Ручное управление торговлей поддерживается всегда, независимо от того, какой режим управления включен (AG, АТ или оба выключены). Включение полуавтоматического режима управления ордерами (включение функции AG) означает, что пользователь разрешил исполнение всех установленных инструментов.
Включение функции автоматической торговли (AT) позволяет осуществлять следующие действия:
- исполнение всех установленных инструментов;

Рис. 2. Структурная схема приложения AutoGraf 4.
- получение от приложения AutoGraf 4 информации об ордерах, настроечных параметрах и установленных инструментах;
На структурной схеме видно какие связи включаются в случае активизации автоматического режима торговли. С точки зрения исполнения инструментов полуавтоматический (AG) и
автоматический (АТ) режимы являются равнозначными - включение любого из этих режимов позволяет исполнение установленных инструментов, независимо от способа их установки (вручную или из функции АТ).
С технической точки зрения включение режима автоматической торговли (управляющий значок АТ вверх) означает, что функция автоматической
- формирование и передача управляющих воздействий в приложение AutoGraf 4;
- формирование и отправка на сервер торговых приказов.
торговли, написанная пользователем, подключается к работе приложения AutoGraf 4. Приложение регулярно вызывает пользовательскую функцию АТ для исполнения. AutoGraf 4 передает функции АТ полезные сведения о ходе торгов - информацию об ордерах, установленных инструментах и их настройках, общих настроечных параметрах приложения, используемых графических объектах и пр. (входные параметры). После того, как алгоритм пользовательской функции будет выполнен, управление возвращается в приложение.
Исполнение функции АТ связано с двумя основными возможностями
Первая из них заключается в том, что функция АТ может самостоятельно вести торговлю - формировать торговые приказы и отправлять их на сервер. При этом функция может не обрабатывать никакие данные полученные из приложения (или обрабатывать часть этих данных), а выполнять собственные вычисления, используя для этого все возможности языка MQL 4, в т.ч. обращение к терминалу для обработки ордеров, получение текущих котировок, вычисление торговых критериев, управление графическими объектами и т.д.
Вторая возможность непосредственно связана с приложением AutoGraf 4. Функция АТ может отдавать указания
Как это работает?
Проследим общий порядок использования инструментов на примере инструмента Стоп_0_Buy. Этот инструмент назван так потому, что предназначен для перевода StopLoss ордера в безубыток, т.е. выше цены открытия рыночного ордера Buy. Для настройки инструмента используются два параметра: Ds и St.
Ds - дистанция в пунктах между исходной ценой открытия ордера и ценой исполнения инструмента (в пунктах). В момент установки инструмента параметр принимает значение настройки Ds, указанное в подокне. Значение Ds не может быть меньше шага изменения цены финансового инструмента (валютной пары). Для большинства основных валют минимальное значение Ds = 1п. Значение по умолчанию = 20п.
St - превышение цены StopLoss над исходной ценой открытия ордера при исполнении инструмента (в пунктах). В момент установки инструмента параметр принимает значение настройки St,
приложению AutoGraf 4 на установку любых необходимых инструментов с заданными настройками на определённые ордера или на ценовой график, изменение
общих настроечных параметров приложения, удаление инструментов, может выводить сообщения пользователю и пр. (выходные параметры).
указанное в подокне. Значение по умолчанию = 3п.
Установка. Для установки инструмента необходимо взять мышью значок инструмента на Панели инструментов, подвести к ордерной линии, на которую инструмент устанавливается, и отпустить кнопку мыши. Если ордерная линия выбрана правильно (линия ордера Buy), то значок инструмента отобразится на ценовом графике в координатах: цены - в соответствии с ценой исполнения инструмента, времени - на том баре, на котором пользователь отпустил кнопку мыши. Установка инструмента
сопровождается выводом сообщения об успешной установке и подтверждающим звуком (здесь и далее сообщения не показаны, т.к. для этого требуется видео значительно большего размера; все представленные управляющие
воздействия пользователя легко воспроизвести на собственном
компьютере).

Видео. 3. Установка инструмента Стоп_0_Buy на ордер Buy. Будьте внимательны, здесь и далее, нажав на изображение, содержащие знак проигрывания, вы будете автоматически перемещены на сайт, где сможете просмотреть видео.
Исполнение. Чтобы разрешить исполнение инструментов в приложении AutoGraf 4, необходимо включить полуавтоматический или автоматический режим управления ордерами (перевести в верхнее положение управляющий значок AG или AT).
Условие исполнения инструмента наступает, если цена Bid достигает цены исполнения инструмента Pr. Исполнением инструмента Стоп 0 Buy есть модификация
StopLoss ордера Buy на цену, превышающую исходную цену ордера на величину St (StopLoss = Prисх + St). Для исполнения инструмента не ставится условие наличия StopLoss. StopLoss может иметь нулевое значение цены. Инструмент будет исполняться независимо от факта наличия StopLoss. Инструмент Стоп_0_Buy исполняется один раз, после чего автоматически удаляется.

Видео. 4. Исполнение инструмента Стоп 0 Buy при включенном полуавтоматическом режиме (значок AG вверху). Когда цена Bid превысила цену исполнения инструмента (в общем случае достаточно равенства), приложением был отправлен на сервер торговый приказ (красный пунктир вокруг панели инструментов). Исполнение торгового приказа означает исполнение инструмента Стоп 0 Buy, поэтому он автоматически удален.
При формировании торгового приказа во исполнение указания инструмента приложением AutoGraf 4 учитываются требования и ограничения для торговых операций, а также указания других инструментов, установленных на ордер. При наличии указаний других инструментов приложением формируется один торговый приказ, учитывающий все указания (установка инструментов, которые могли бы сформировать противоречивые указания, приложением AutoGraf 4 не допускается).
Настройка. Приложением AutoGraf 4 поддерживаются также инструменты, настраиваемые не только по дистанции и
шагу модификации, но и по другим параметрам - количеству лотов, по цене и времени, StopLoss, TakeProfit, дистанции и т.д. Все настроечные параметры могут быть настроены в процессе работы. Для изменения настроек инструментов в
приложении AutoGraf 4 поддерживается два способа - изменение координат управляющих значков инструментов и
прямое указание значения на шкале соответствующего параметра.
Изменение настроек инструментов методом изменения координат их
управляющих значков - наиболее простой и удобный способ изменения цены и времени исполнения инструментов. Для
изменения этих параметров некоторых инструментов достаточно просто переставить мышкой значок
установленного инструмента на новую цену или время исполнения. Для каждого конкретного инструмента такое воздействие приведёт к изменению конкретных параметров.

Видео 5. Изменение цены исполнения инструмента Закрыть_по_цене методом
изменения его координат.
Для указания численного значения того или иного параметра необходимо воспользоваться шкалой значений параметра. Для вывода шкалы значений достаточно сдвинуть значок-цифру параметра (возле значка установленного инструмента) и выбрать на шкале нужное значение. После выбора новое значение будет отображено возле значка инструмента и учтено как новое значение настроечного параметра.
Видео 6. Для вывода шкалы значении настроечного параметра дистанции Ds инструмента Подтяжка_за_объектом_вниз пользователь немного сдвинул цифру-значок слева от инструмента. Значение, выбранное на появившейся шкале, принято в качестве
нового значения дистанции Ds.
Удаление. Все инструменты в приложении AutoGraf 4 исполняются до тех пор, пока они установлены. Для прекращения исполнения установленного инструмента его необходимо удалить. Инструмент может быть удалён пользователем вручную или программно. Для удаления любого инструмента вручную необходимо выделить значок инструмента и нажать клавишу Delete. Такое управляющее действие исполняется приложением AutoGraf 4 всегда, без отказов (в отличие от торговых приказов, исполняемых на стороне сервера).
В результате исполнения одного или нескольких инструментов, а также по причине воздействия пользователя приложением AutoGraf 4 может быть выработано несколько торговых приказов. Вся совокупность торговых приказов обрабатывается в едином аналитическом блоке. Такой подход позволил реализовать единую систему приоритетов обработки торговых приказов.
Пользовательская функция автоматической торговли АТ
В рамках одной небольшой статьи не представляется возможным подробно рассмотреть методы управления инструментами приложения AutoGraf 4 из пользовательской функции
автоматической торговли. Поэтому остановимся лишь на основных узловых моментах.
Основу приложения AutoGraf 4 составляет зацикленный эксперт. Принципиальное отличие зацикленного эксперта от обычного состоит в том, что зацикленный эксперт никогда не останавливает свою работу - не переходит в режим ожидания нового тика. После того, как полностью выполнен весь код зацикленного эксперта, он запускается на исполнение снова. Эксперт приложения AutoGraf 4 исполняется приблизительно от 20 до 500 раз в секунду (один полный цикл называется итерацией). Использование зацикленного эксперта позволило отслеживать управляющие воздействия пользователя и моментально на них реагировать.
Применительно к исполнению функции автоматической торговли это означает следующее. На каждой новой итерации приложение AutoGraf 4 один раз вызывает на исполнение функцию автоматической торговли AG_AT(), т.е. передает ей управление; после исполнения этой функции управление возвращается в приложение AutoGraf 4. Это значит, что код функции AG_AT() может исполняться до 500 раз в секунду. В течение всего времени, когда исполняется функция AG_AT() в приложении AutoGraf 4 ничего не происходит. Чтобы приложение AutoGraf 4 продолжило работу, необходимо чтобы функция AG_AT() завершила своё исполнение и вернула управление в приложение AutoGraf 4. Поэтому желательно, чтобы функция AG_AT() всякий раз завершалась как можно быстрее.
При включенной автоматической
торговле (управляющий значок АТ вверху) эксперт приложения и вызываемая
экспертом функция AG_AT() работают поочередно. Если пользователь отключил режим автоматической торговли, то функция AG_AT() из эксперта не
вызывается на исполнение. Эксперт приложения работает постоянно, поэтому ручной режим работы доступен
пользователю всегда. Это значит, что в автоматическом режиме пользователь может всегда вмешаться вручную в ход
торгов и при необходимости отключить режим автоматической торговли.
Если у трейдера уже имеется исходный код (файл *.mq4) эксперта, в котором реализована некая торговая стратегия, то перенести этот код в функцию автоматической торговли очень просто. В подавляющем большинстве случаев достаточно скопировать код специальной функции start() этого
эксперта и вставить его в функцию AG_AT(). После этого функцию необходимо скомпилировать. Если
Пользователь самостоятельно написал код этого эксперта, то выполнить такую операцию для него не составит никакого труда. В других случаях, если в имеющемся эксперте используются
специальные функции irn't() и deinitQ, в которых выполняются обязательные действия, может понадобиться внести в исходный код эксперта некоторые изменения.
Это - наиболее быстрый и простой вариант переноса имеющегося кода эксперта в функцию AG_AT(). Однако, в ряде случаев этот вариант нельзя назвать наиболее эффективным, т.к. при этом значительная часть возможностей AutoGraf 4 не будет востребована. Технология приложения AutoGraf 4 позволяет не только использовать уже имеющийся код эксперта, но предоставляет пользователю возможность управления общими настройками и инструментами приложения AutoGraf 4.
Это значит, что пользователь имеет возможность не только
запрограммировать свою стратегию средствами MQL 4, но и использовать для ее реализации готовые алгоритмические примитивы, оформленные в приложении AutoGraf 4 в виде инструментов. Из функции автоматической торговли можно, например, установить инструмент Подтяжка_вверх на StopLoss ордера Buy. Установленный инструмент будет отображен на ценовом графике в соответствии с настройками,
переданными в AutoGraf 4 из функции автоматической торговли и доступен для ручного управления (удаления или изменения настроек). Использование определенного набора инструментов позволяет трейдеру реализовать любую тактику торговли, которая, как на ладони, отображается в окне финансового инструмента.
Примеры кодов управления инструментами из функции
автоматической торговли AG_AT() будут описаны в следующих уроках.
Краткий перечень свойств приложения AutoGraf 4
Благодаря принципиально новой концепции построения приложение AutoGraf 4 характеризуется качественно новыми свойствами, главное из которых -поддержание диалога с пользователем. Приложение позволяет трейдеру управлять торговлей на финансовых рынках в режиме реального времени независимо от частоты тиков в потоке котировок, сохраняет работоспособность при переключении таймфреймов, имеет дружественный, интуитивно понятный интерфейс. Благодаря графическому представлению инструментов трейдер легко воспринимает настроенную тактику торговли, - как карту предстоящих событий.
Приложение AutoGraf 4
предоставляет трейдеру следующие возможности:
1. Открывать ордера любого типа с помощью мыши без использования панели открытия ордеров МТ4. Например, для открытия отложенного ордера достаточно перетянуть мышкой управляющий значок отложенного ордера на желаемую цену и ордер будет открыт по указанной цене. Стоп-приказы ордеров устанавливаются в соответствии с заранее заданными
настройками (в пунктах от цены открытия ордера).
2. Закрывать один или несколько
ордеров любого типа, используя клавишу Delete. Программа анализирует указание пользователя, выбирает и исполняет наиболее эффективный алгоритм закрытия ордеров (в частности, при наличии разнонаправленных рыночных ордеров выполняется встречное
закрытие).
3. Модифицировать ордера любого
типа, перемещая мышью на экране горизонтальные линии, поставленные в соответствие ордерным характеристикам. Программа анализирует действие пользователя и осуществляет торговую операцию в точности и полностью, если действие удовлетворяет имеющимся
ограничениям, или частично, в допустимых пределах ограничений.
4. Использовать инструменты для
управления ордерами в ручном,
автоматическом и полуавтоматическом режиме. В частности, пользователю
доступны: подтяжка ордеров и их StopLoss и TakeProfit вслед за рыночной ценой; подтяжка ордеров вдоль линии (трендовой линии, канала, фибо-веера и пр.), произвольно установленной пользователем; ограничение действия подтяжек ценовым значением;
автоматическое закрытие ордера по цене и по времени; торговый разворот и стоп-переворот рыночных ордеров и др., всего 24 инструмента. Каждый используемый инструмент может быть настроен персонально, в том числе, и в процессе работы.
5. Программа генерирует сообщения пользователю, сообщения выводятся текстом в подокно. Все действия пользователя, а также все торговые приказы и изменения рыночных условий комментируются. В частности, сообщения выводятся в случаях, если пользователь пытается осуществить недопустимую торговую операцию (изменить цену открытия рыночного ордера, установить стоп-приказ ближе, чем допустимо, к рыночному курсу и пр.), при открытии и закрытии ордеров, при изменении минимальной дистанции (обычно перед новостями) и т.д., всего около 500 различных сообщений.
6. Большинство управляющих
воздействий пользователя и все изменения, касающиеся ордеров, сопровождаются звуками. Звуковые сигналы подаются на каждом тике, при выводе сообщений, изменении
настраиваемых параметров,
приближающихся событиях, уведомлениях об изменении условий торговли.
7. По указанию пользователя на
экране могут быть отображены коридор заморозки ордеров, коридор
минимальной дистанции и основные условия торговли (текст), установленные на данный момент брокером. При изменении указанных условий и ограничений изменяются графические изображения и выводимые тексты.
8. По указанию пользователя на экран могут быть выведены новостные линии -сплошные или пунктирные вертикальные линии, поставленные в соответствие планируемым событиям (новостям).
9. В программе может использоваться
функция автоматической торговли (АТ) по алгоритму, самостоятельно составленному пользователем на языке MQL 4. Согласно указанному коду функция может открывать, закрывать и модифицировать ордера. Кроме того, в этой функции может быть указан код для управления инструментами, входящими в состав
приложения - установка, удаление и настройка любого из 24 инструментов в соответствии с пользовательским
алгоритмом.
10. Приложение исполняется при
всех режимах тестирования в тестере терминала MetаTrader 4. При обычном тестировании пользователь может
подобрать оптимальные настройки для собственной торговой системы,
реализованной в пользовательской
Очевидно, что трейдер стремится, с одной стороны, получить в свое распоряжение множество готовых, проверенных, эффективных алгоритмов, часто используемых в управляющих прикладных программах, и с другой стороны, иметь возможность свободного выбора этих алгоритмов при проектировании собственной стратегии. Удовлетворение этих требований позволяет трейдеру сосредоточиться на выполнении своей миссии - поиске стратегии и последующей торговле.
Задача же программиста сводится к тому, чтобы собрать как можно больше полезных алгоритмов самого различного назначения и построить на этой основе цельную программу с множественным, качественным сервисом и интуитивно понятными средствами управления. Технология приложения AutoGraf 4 предполагает три уровня иерархии подчинения - алгоритмические примитивы, управляющие функции и ручное управление.
Алгоритмические примитивы
составляют основу программы. Это -небольшие программные алгоритмы с жестко ограниченными свойствами и самым разнообразным назначением. Они так названы не потому, что плохо выполнены, а потому, что являются элементарными составляющими, из которых складывается вся программа (подобно тому, как треугольник и круг являются графическими примитивами).
Значительная часть алгоритмов скрыта от пользователя. Это -всевозможные обслуживающие функции, поддерживающие работоспособность программы. К ним относятся, например, функции сортировки массивов, учета ордеров, вывода сообщений, расчета координат объектов, реакции на управляющее воздействия пользователя и т.д.
К другой группе относятся алгоритмы, имеющие внешние средства
Полный перечень и краткая
Некоторые определения:
Ордерная линия - StopLoss, TakeProfit ордера любого типа или отложенный ордер.
Ордерный инструмент - инструмент, устанавливаемый на ордерную линию.
ие примитивы
управления. Пользователь имеет
возможность взаимодействовать с
программой, управляя положением
графических объектов, поставленных в соответствие тем или иным алгоритмам. Управление может осуществляться вручную или из пользовательской функции автоматической торговли. Большую часть алгоритмических примитивов составляют инструменты -предопределенные алгоритмы
выполнения предопределенных действий.
Основа технологии инструментов приложения AutoGraf 4 состоит в том, что они имеют свойство исполняться.
Каждому инструменту соответствует индивидуальный набор условий, при которых происходит его исполнение. Собственно исполнением каждого инструмента является индивидуальный набор действий. Всего в приложении AutoGraf 4 насчитывается 24 инструмента.
характеристика инструментов
Полевой инструмент - инструмент, устанавливаемый на ценовой график.
1, 2 и 3 - Подтяжка_Вверх,
Подтяжка_Вниз и Следование_За_Ценой -инструмент закрепляется на ордерной линии и формирует торговые приказы на модификацию ордера. Инструмент стремится модифицировать ордер так,
функции автоматической торговли. Тестирование в режиме визуализации позволяет зрительно оценить исполнение собственной торговой системы, видеть как исполняются различные инструменты, получить опыт ручной и полуавтоматической торговли.
Приложение AutoGraf 4 содержит (приблизительно) около 20 000 строк программного кода, в том числе, около 250 функций в 115 присоединяемых файлах.
Перспективы развития AutoGraf 4
Приложение AutoGraf 4 построено исключительно средствами языка MQL 4. Это значит, что свойства программы технически ограничены возможностями MQL 4. Например, модификация ордерных линий относительно графических объектов успешно реализована в программе. В то же время, реализовать модификацию ордеров относительно индикаторных линий не представляется возможным, т.к. исполняемый эксперт не может получить данные технических индикаторов, загруженных в то же окно финансового инструмента.
Возможности программы также связаны и с другими ограничениями MQL 4. Например, невозможность получить данные из удаленного сервера приводит к необходимости присоединения новостного файла вручную. Запрет на чтение файлов за пределами предписанных каталогов не позволяет получить сведения о наличии присоединяемой функции автоматической торговли.
По свидетельству разработчиков торговой платформы MetaTrader 5 возможности MQL 5 будут существенно расширены. С появлением новой платформы приложение AutoGraf 5 будет полностью переписано с сохранением всех полезных наработок. Количество инструментов и сервисных функций будет существенно увеличено.
Опробование приложения AutoGraf 4 на демо-счете не ограничено ни по сроку, ни функционально. Каждый желающий может скачать приложение, установить на своем компьютере и составить свое представление о функциональности и удобстве программы.
С уважением, Сергей Ковалев
Содержание раздела