Germany | Finland | Saint Petersburg | Drive

Комбайн на тему 3х экранов Элдера

Опубликовано в Торговые системы

Идея Александра Элдера состоит в построении одного  (или разных)  индикатора на одном инструменте, но на разных таймфреймах. Самый младший из этих таймфреймов является рабочим. На нем вычисляются сигналы на открытие и закрытие позиций. Оставшиеся два индикатора служат для фильтрации сигналов, рассчитанных на младшем таймфрейме. К примеру, сигнал на открытие длинной позиции, полученный на младшем таймфрейме является истинным лишь в том случае, когда средний и старший таймфрейм его подтверждают – на них обоих также должна наличествовать бычья картина. В противном случае, если хотя бы на одном из таймфреймов индикатор не проявляет бычьих настроений, вход в позицию не осуществляется, сигнал считается ложным.

 

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

Заказчик стандартному способу построения робота на языке qpile предпочел реализацию робота в программе технического анализа, установив требования:

  • Визуализация всех графиков (либо их части – по выбору Пользователя)
  • Возможность изменения параметров всех индикаторов без перезапуска робота
  • Возможность изменения таймфреймов графиков индикаторов (также на лету)
  • Возможность тестирования алгоритма на исторических данных
  • Поддержка всех возможностей встроенного в программу технического анализа оптимизатора
  • Дополнительно к стандартным возможностям оптимизатора требуется возможность автоматического подбора наилучшей пары таймфреймов индикатора (оптимизация таймфреймов, что не предусмотрено штатными оптимизаторами)
  • Выбор комбинации оптимизируемых параметров интерактивно без изменения исходных текстов
  • Возможность вести торговлю на графике таймфрейма, необязательно совпадающим с тайфреймами индикаторов
  • Возможность добавления дополнительных средств технического анализа Пользователем при условии минимальных изменений в исходных текстах робота
  • Индикация на графике всей необходимой информации о произведённых роботом действиях (сделки, уровни входа в позиции, стоп-уровни и т.п.
  • Настраиваемое звуковое сопровождение событий робота, в том числе синтезируемым голосом
  • Возможность торговли разными объемами в Long и Short, включая запрет торговли по любому из направлений
  • Возможность одновременной работы с произвольным количеством терминалов QUIK одновременно
  • Возможность параллельной работы по нескольким бумагам одновременно и независимо
  • Возможность параллельного запуска нескольких задач по одной бумаге с разными настройками
  • Ограничение времени торговли – введение периодов, в течение которых открытие позиций запрещено
  • Работа как на спот-, так и на фьючерсных рынках
  • Ведение лог-файла с указанием в нем времени торговой системы (не локального и не времени сервера)
  • Ведение реестра сделок в формате excel (формат csv с использованием разделителей, установленных в региональных настройках)
  • Информирование пользователя о нештатных ситуациях
  • Информирование по email
  • Запрет торговли при получении неактуальных данных
  • Настройка внешнего вида робота и цветовой гаммы
  • При необходимости автоматический запуск терминала quik, соединение с брокером, авторизация и включение трансляции таблиц
  • Корректная работа в любом часовом поясе, отличном от часового пояса торговой системы
  • И еще разные мелочи

Таким образом, Заказчик пожелал получить как сам торгующий робот, так и готовую лабораторию для досконального исследования своей идеи и получение максимума свободы для экспериментов по увеличению возможной прибыли. Очевидно, что Заказчик подразумевал использование способа QUIK-AmiSharp-Amibroker. Другими способами задача в полном объёме не реализуется либо реализуется чересчур сложно и поэтому затратно.

Полученный робот функционирует в нескольких режимах.

Режим индикатора

Этот режим является базовым. В экран робота выводятся:

  1. Цена инструмента;
  2. Цветовые зоны, отражающие состояние фильтрующего индикатора, рассчитанного на старшем таймфрейме;
  3. Расчетные точки открытия и закрытия позиций;
  4. Самодиагностика робота и индикация имеющихся проблем.

Зеленая зона графика - период, в котором индикатор, рассчитанный на старшем таймфрейме, позволяет открывать длинные позиции. Соответственно красная - где возможно открытие лишь коротких позиций. Метки расчетных сделок указаны треугольниками. Зеленый треугольник - сигнал для открытия длинной позиции, зеленая пустая - её закрытие. Красные треугольники - это сигналы открытия и закрытия сделок в направлении шорт.

Сами индикаторы роботом не рисуются, только рассчитываются. Они имеются в стандартной поставке амиброкера и при необходимости Пользователь имеет возвожность вывести их на экран самомстоятельно.

В левом верхнем углу выводится информация и диагностика: дата, время, старший и младший таймфреймы индикаторов, параметры выбранной свечи, текущие себестоимости реальных позиций и ее тип (в момент создания скриншота реальная позиция отсутствовала). Далее красным цветом выведена диагностика - отсутствует соединение с брокером.

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

Какие это настройки?

 

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

Таким образом, в режиме индикатора мы можем дать качественную оценку удачности подбора параметров. 

Чтобы получить количественный результат, необходимо использовать

Режим бектеста

В режиме бектеста мы получаем финансовый результат, который был бы получен, если бы мы торговали нашим роботом с указанными настройками. Финансовый результат представляет собой таблицу из строк, каждая из которых описывает одну сделку, ее открытие и закрытие, тип, время, цену, прибыль/убыток и еще массу информации по каждой сделке. На скриншоте не видны еще пара десятков столбцов, находящихся в правой части таблицы Внизу таблицы указывается обобщенный суммарный результат. Как видим, при указанных в правой части скриншота настройках финансовый результат был бы негативным - мы бы потеряли 17086 пунктов или 1.71% при начальной сумме в 1 000 000. Также показываются такие важные параметры, как максимальная просадка счета, количество прибыльных и убыточных сделок и другое.

Теперь, изменяя параметры, мы можем мгновенно получить финансовый результат, который был бы, торгуй мы на истории.

Если полученную таблицу сделок требуется обработать каким-то особым способом, можно выгрузить ее в Excel провести дополнительное исследование полученных результатов уже в нём.

У нашего робота 8 изменяемых параметров. 2 таймфрейма, и 6 периодов скользящих средних. В режиме бектеста протестировать все возможные варианты значений параметров невозможно. Для решения такой задачи имеется

Режим оптимизатора

Что делает оптимизатор? Он составляет всевозможные комбинации изменяемых параметров и для каждого из них вычисляет финансовый результат. Каждый набор параметров оформляется в виде одной строки таблицы. В левых колонках этой таблицы фигурируют рассчитанные значения (профит и подобные), а в самых правых столбцах указаны соответствующие настройки параметров, при которых такая прибыль была бы достигнута в прошлом. Доступны функции сортировки, выгрузки в Excel, построения графиков и так далее. Получаемая в результате работы таблица оптимизатора содержит большое количество столбцов, которые одновременно не умещаются на одном экране. Поэтому я сделал скриншоты самых левых и самых правых столбцов таблицы:

 

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

 

И самый важный режим

Режим торговли

Внешне этот режим практически полностью повторяет режим индикатора, однако добавлется информация, специфичная для реальных торгов. В частности, появляется кнопка Start/Stop, позволяющая включить или остановить режим реальной торговли, а также информация о реально произведенных роботом сделках. Для примера я запустил робот на демо-торгах и поставил ему первые пришедшие в голову параметры и поставил объём в 1 контракт, не заботясь о возможной прибыльности алгоритма. Торгуем фьючерсом на индекс РТС.

 

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

Видно, что робот совершил 2 сделки. Рассмотрим более позднюю детально. На скриншоте, в частности, видно, что в в 18-00 был сформирован сигнал на открытие короткой позиции на старте свечи (красный треугольник). Этот сигнал дала скользящая средняя малого периода. Сигнал был отработан и короткая позиция открылась, о чем свидетельствует красная стрелка на этой же свече, направленная вниз. Положение треугольника и стрелки не совпадают, так как позиция была открыта с несколько худшей ценой относительно расчетной из-за проскальзывания, которое на демо-торгах довольно значительно. Уровень реальной (а не расчетной) открытой позиции на графике AmiBroker'а показывается пунктирной линией все время ее существования. Также можно включить визуализацию уровней стопов и тейк-профитов для каждой сделки во время её существования.

Через несколько минут позиция была закрыта. Сигнал опять сформировался на открытии свечи и был отработан. Вот так выглядит таблица сделок терминала QUIK:

 Робот дополнительно ведет лог своих сделок в формате Excel:

 

В этом логе фигурируют результаты реальных сделок. Например, в колонке "Цена" указаны реальные цены, по которым прошли сделки. В колонке "Сумма" указаны суммы сделок, какими они зафиксированы торговой системой.

При необходимости Excel предоставляет практически неограниченные возможности для анализа реальных результатов торговли и сравнения их с теми предположениями, которые предварительно давал оптимизатор. На основании этого сопоставления можно делать весьма интересные выводы Удивляюсь.

P.S.

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

См. также видео Торговая стратегия "Три экрана Элдера"

 

Недостаточно прав для комментирования