Взаимодействие Заказчика и Исполнителя в процессе создания торгового робота
![Sergey Lugovtsov Sergey Lugovtsov](https://c.mql5.com/avatar/2014/10/542CF469-46FB.jpg)
Данная статья посвящена одной из возможных схем взаимодействия Заказчика и Исполнителя в процессе создания торгового робота. Все о чем пойдет речь ниже, основано на личном опыте автора и ни в коем случае не претендует на некий стандарт в этой области.
Далее, под Заказчиком будет подразумеваться физическое или юридическое лицо, обладающее торговой идеей или стратегией, но не имеющее возможности воплотить ее в жизнь, в виде реально работающего алгоритма. Под Исполнителем — программиста, квалификация которого позволяет реализовать пожелания Заказчика.
Техническое задание, со стороны Заказчика, обычно выражается в паре предложений, подкрепленных небольшим количеством графических изображений с пояснением точек входа. Проблема заключается даже не в том, что, как правило, идея не проверена на исторических данных, и, чаще всего, не работоспособна. Стандартная ситуация, когда все наблюдения за рынком сделаны в пределах периода ликвидности торгующегося фьючерсного контракта. Отсюда возникает следующее затруднение: после реализации алгоритма Исполнителем, у Заказчика возникает понимание того, что его торговая идея не будет приносить ему ожидаемого дохода. Дальнейшее развитие событий приводит к тому, что обе стороны остаются неудовлетворенными итогами сотрудничества.
Таким образом, возникает необходимость «малой кровью» создать прототип торгового алгоритма на основе идеи Заказчика, проанализировать итоги его работы на истории, и, далее, принять совместное решение о продолжении работы.
Рассмотрим реализацию такой схемы взаимодействия Заказчика и Исполнителя на следующем примере:
По наблюдениям заказчика на фьючерсе на индекс РТС, за период с 15/09/14 по 30/09/14, на 5 минутном масштабе были отмечены три двойные вершины с максимумом свечи открытия, каждая из которых в итоге дала не менее 1000 пунктов прибыли. Данные наблюдения Заказчик подкрепил следующими скриншотами:
Соответственно, и техническое задание очень простое: сигнал на открытие короткой позиции поступает в случае обнаружения двойной вершины со свечой открытия дня, на 5- минутном масштабе. Позиция должна закрываться по фиксированному тэйк-профиту, величиной 1000 пунктов. Стоп устанавливается за максимум дня плюс 100 пунктов.
Для создания прототипа робота, воспользуемся, например, платформой TSLab. Много времени это не займет. В визуальном редакторе это выглядит следующим образом:
Проверим как отрабатываются сигналы на вход в позицию:
Итак прототип создан, все сигналы на вход обнаружены и выполнены, Заказчик должен быть доволен. Теперь протестируем данную торговую идею на исторических данных, что возможно в той же платформе. По итогам теста на периоде 01/01/2014 — 01/10/2014, получаем следующие результаты:
И вот здесь, во взаимоотношениях Заказчика и Исполнителя, наступает ключевой момент. Торговая идея явно не из тех, в которую стоит вкладывать деньги. Как минимум, она нуждается в доработке. С другой стороны, если бы уже был реализован полноценный торговый робот для МТ5, за него нужно рассчитываться с Исполнителем. Стоимость прототипа в разы ниже, чем готового робота, для работы на реальном счете. Если Заказчик принимает решение не продолжать дальнейшую разработку, он экономит существенную сумму денег, кроме того, не остается неприятного «осадка» во взаимоотношениях, дальнейшее сотрудничество может быть продолжено. Исполнитель получает компенсацию за разработку прототипа, а, главное, не тратит время на разработку или бесконечную доработку «мертвой» идеи.
Если же, Заказчик принимает решение о продолжении разработки, наличие прототипа позволяет обьективно оценить качество итоговой работы. В качестве эталона используется таблица сделок прототипа. Для нашего примера она выглядит следующим образом:
Если в результате тестирования готового робота в МТ5, получается близкий результат, считается, что Исполнитель выполнил заказ в полном объеме. Следует отметить, что совпадения результатов на 100%, добиться не удастся, но это тема для отдельного разговора.
Исходя из всего вышесказанного, взаимодействие Заказчика и Исполнителя можно представить в виде следующих этапов:
обсуждение торговой идеи и стоимости прототипа;
оплата Заказчиком стоимости прототипа;
создание прототипа Исполнителем;
тестирование прототипа на исторических данных и анализ полученных результатов;
принятие Заказчиком решения о продолжении или свертывании работ по разработке;
в случае продолжения работ, обсуждение стоимости услуг Исполнителя по реализации прототипа, в виде готового робота для МТ5;
оплата Заказчиком стоимости робота;
создание робота Исполнителем;
приемка выполненной работы Заказчиком, на основании сравнения таблиц сделок прототипа и готового робота.