Обсуждение статьи "Как составить Техническое Задание для заказа торгового робота"

 

Опубликована статья Как составить Техническое Задание для заказа торгового робота:

Вы разработали торговую стратегию и торгуете по ней? Если правила вашей системы хорошо формализуются в программные алгоритмы, то лучше вместо себя поставить торговать робота. Робот не спит, не ест и не подвержен человеческим слабостям. В этой статье мы покажем, как составить Техническое Задание для заказа торгового робота во Фрилансе.

Почему важно составить хорошее Техническое Задание

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

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

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

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

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

Пример Технического Задания

Приведем пример того, как могло быть сформулировано Технические задание для советника MACD Sample, входящего в поставку терминала MetaTrader 5.

1. Идея торговой системы: входы на пересечении главной и сигнальной линий индикатора MACD в направлении текущего тренда.

2. Тренд определяется по экспоненциальной скользящей средней с указанным периодом (InpMATrendPeriod). Если текущее значение EMA больше предыдущего, то тренд восходящий (ema_current > ema_previous), в противном случае, если текущее значение EMA меньше предыдущего, то тренд нисходящий (ema_current< ema_previous).

3. Торговые Сигналы:

  • Сигнал на покупку - главная линия индикатора MACD пересекает сигнальную снизу вверх (macd_current>signal_current && macd_previous<signal_previous)
  • Сигнал на продажу - главная линия индикатора MACD пересекает сигнальную сверху вниз (macd_current<signal_current && macd_previous>signal_previous). Пример покупки и продажи показан на рисунке ниже.


4. Закрытие позиций происходит по противоположным сигналам: Buy-позиции закрываются по сигналам на продажу, Sell-позиции закрываются по сигналам на покупку.

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

6. Дополнительные фильтры на открытие позиции:

Для отсеивания слабых сигналов используем абсолютное значение главной линии индикатора MACD - если оно больше заданного уровня открытия (open_level) в пунктах, то сигнал подтвержден. Таким образом, условия подтверждения силы сигналов выглядят так:

  • Подтверждение сигнала на покупку — Abs(macd_current)>open_level
  • Подтверждение сигнала на продажу — macd_current>open_level

7. Дополнительные фильтры на закрытие позиции:

Для закрытия также подтверждаем силу сигналов с помощью абсолютного значения главной линии индикатора MACD — если оно больше заданного уровня закрытия (close_level) в пунктах, то сигнал подтвержден. Таким образом, условия подтверждения для закрытия позиций по сигналам выглядят так:

  • Подтверждение для закрытия Buy-позиции — macd_current>close_level
  • Подтверждение для закрытия Sell-позиции — Abs(macd_current)>close_level

8. Закрытие позиции по TakeProfit — при открытие позиции сразу же выставляется ордер TakeProfit на заданном фиксированном расстоянии от цены открытия в пунктах, которое задается входным параметром InpTakeProfit.

9. Сопровождение позиции

Для защиты прибыли используется TrailngStop — ордер StopLoss выставляется в том случае, если прибыль в пунктах превысила заданное значение, которое указывается входным параметром InpTrailingStop. В дальнейшем, если цена продолжает двигаться в благоприятном направлении, StopLoss всегда подтягивается на заданном расстоянии. StopLoss не может перемещаться в неблагоприятном направлении, то есть размер стопа не может быть увеличен. Если не сработал ни один из защитных ордеров — TakeProfit или StopLoss — то позиция будет закрыта по сигналу противоположного направления. Других выходов из позиции нет.


Автор: MetaQuotes Software Corp.

Причина обращения: