В данной статье я хочу рассказать о свое опыте создания управления роботом. В конце заметки вы найдете полностью рабочий алгоритм (робот) для QUIK, который работал у меня на реальном счете в 2012 году.В рамках создания робота передо мной стояла задача разработки торгового алгоритма и его программирования. В свою очередь данная задача делится на следующие подзадачи:1) разработка идеи торгового алгоритма2) формализация торгового алгоритма с помощью языка программирования (в том числе и выбор платформы и языка программирования)3) тестирование алгоритма на исторических данных4) оптимизация параметров торгового алгоритма5) принятие решения о возможности применения алгоритма6) программная реализация робота и применение на реальном счете7) организация инфраструктуры для роботаРассмотрим все эти этапы подробно.Разработка идеи торгового алгоритмаЯ тестировал на истории многие стратегии связанные с использованием индикаторов, паттернов, уровней. В результате исследования, в рамках выработки идеи торгового алгоритма, я остановился на уровнях. Мною были исследованы различные торговые системы, основанные на уровнях – уровни Камариллы, уровни Вуди, уровни де Марка. Основываясь на комплексном анализе подходов к этим уровням, я взял за основу формулы для определения этих уровнейПоскольку все эти уровни являются классом уровней пивот, то есть определяющие точки разворота на основе исторических данных,Pivot = (High + Low + 2×Close) / 4Сопротивление:Resist = (2 × Pivot) — LowПоддержкаSupport = (2 × Pivot) — Highгде High, Low, Close – соответственно цены максимума, минимума и закрытия вчерашнего дня.Параметры входа в сделку мной выбраны следующие.— При пробитии уровня Resist – осуществляется вход в лонг— При пробитии уровня Support – осуществляется вход в шортФормализация торгового алгоритмаПоскольку по образованию я программист, мне не составляет труда применить один из известных языков программирования для формализации идеи. За основу я выбрал платформу Welath-Lab и язык программирования C#.В качестве торгуемого инструмента был выбран самый ликвидный актив — фьючерс на индекс РТС.Тестирование алгоритма на исторических данныхТаймфрейм для тестирования был выбран мной равным 15 минутам.Чтобы не возникало вопросов по тестированию за полный период, приведу сразу эти результаты (Рис. 1 – Рис. 6): Рис. 1. Тестирование на исторических данных за 2008-2013 год (1 контракт фьючерса на Индекс РТС). Рис. 2. Историческая кривая доходности Сразу приведу результаты ручной торговли на реальном счете (Рис. 10). Напомню, что это был этап тестирования (хоть и на реальном счете), поэтому начальная сумма была 30 т.р. Рис. 11. Результаты ручной торговли на реальном счете с 01.10.2011 до 12.09.2012 В результате максимальная прибыль системы составила на тот период (почти год тестирования) 48%.Организация инфраструктуры для роботаКак оказалось этот этап стал не менее сложным при интеграции робота и реальных торгов.Был установлен компьютер с операционной системой Windows XP SP3. Для синхронизации времени компьютера я использовал программу SymmTime, настроенную на московское время.Проблемы были и в реальной торговле, через пару недель боевого режима робота, были разрывы связи, а однажды пропал свет.В свою очередь, при этом пришлось использовать программу XStarter, которая позволяет отслеживать появление окон (прерывание связи, окно логина). Также с помощью этой программы автоматически запускался торговый терминал QUIK по расписанию.Проблему с выключением электричества я решил путём покупки источника бесперебойного питания, в результате чего компьютер мог работать еще 10 минут от аккумулятора.Монитор, мышь и клавиатура мне не потребовались (только на этапе настройки компьютера). Подключался к компьютеру я всегда удаленно с помощью программ TeamViewer и RMS Viewer(которой пользуюсь до сих пор).Для организации и тестирования инфраструктуры ушло еще почти 2 месяца.Для форс-мажорных ситуаций, были сделаны также образы системы (с помощью программы Acronis), чтобы в случае поломки компьютера, я мог в кратчайшие сроки развернуть систему на новом компьютере.Итоги работыПоскольку очень много времени ушло на внедрение и организации инфраструктуры, рынок под который был заточен робот изменился. В итоге за 6 месяцев работы, робот заработал около 12 процентов. В 2013 году я отключил данного робота, т.к. робот в начал работать в ноль, т.е. не приносить прибыли.Для себя я решил, что работать частному инвестору с роботами с точки зрения самостоятельной разработки, организации инфраструктуры и внедрения очень трудозатратно. Поэтому в настоящий момент я бы рекомендовал либо работать в командах или использовать автоматические системы, которые сейчас есть на ранке – Tradematic, TSLab и др.В качестве завершения данной статьи я предлагаю читателям полный исходный код робота, который работал у меня.Полная версия статьи и код робота для терминала QUIK