Конструктор торговых роботов в терминале SMARTx предназначен для разработки, отладки и использования механических торговых систем (МТС), то есть, систем проводящих самостоятельно анализ рыночных данных, формирующих торговые сигналы и производящих автоматическую торговлю. В качестве встроенного языка программирования используется TradeScript™  -  векторный язык, который был создан компанией Modulus Financial Engineering (США) специально для конструирования и эксплуатации торговых роботов.

Руководство пользователя TradeScript загрузить (1,7 Mb)

Установка и запуск плагина

  • В торговом терминале SMARTx зайдите в меню «Расширения» — «Установить расширения»;
  • В списке плагинов выберите «Конструктор торговых роботов TradeScript™» и нажмите «Установить»;
  • После установки плагина, он будет доступен в меню «Расширения».

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

Пошаговая инструкция создания собственного робота

 

Шаг 1. Нажмите в менеджере стратегий кнопку Добавить.
Откроется пустая форма  «Настройки стратегии», состоящая из двух закладок:
- описания стратегии, формирующей сигналы (Стратегия) и
- описания исполнений приказов по возникшим сигналам (Торговля).
 
Все параметры и окна (кроме опциональных) должны быть заполнены для корректной настройки торгового робота.

 

Шаг 2. Определяем параметры торговой стратегии

Для этого во вкладке Стратегия задаем:
  • Название Стратегии, под которым она будет видна в менеджере стратегий.
  • Инструмент,  рыночная информация по которому будет использоваться для анализа формирования сигналов.
  • Тайм-фрейм. Определяет период времени, по которому производится проверка на возникновение очередного торгового сигнала. Доступны все временные периоды (Tick, 1 минута, 5 минут и т.д.), поддерживаемые терминалом SMARTx.
  • Количество баров. Количество баров определяет минимально необходимое количество исторических периодов, которые потребуются вашей стратегии для того, чтобы она корректно работала. Например, если вы используете в стратегии простую скользящую среднюю построенную по 120 периодам, вам понадобится задать в этом поле число 120.

В результате, мы будем иметь следующее (см. рисунок слева).

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

 

Шаг 3. Пишем скрипт сигнала на покупку

В руководстве пользователя TradeScript приведено множество примеров программирования простейших торговых сигналов.
Например, простейшая торговая система – это система построенная на основе сигналов, генерируемых по пересечению разнопериодных скользящих средних. Соответствующий скрипт на покупку может быть записан так:
SET A = EMA(close,15)
SET B = EMA(close,21)
CROSSOVER(A,B)=TRUE

Первые две строчки определяют переменные A и B как экспоненциально-скользящие средние EMA, построенные на основе цен закрытия последних 15 (A) и 21 (B) интервалов. 
Последняя строчка, используя внутреннюю функцию CROSSOVER(A,B), определяет когда одна функция A пересечет другую B снизу вверх. Как только это произойдет – возникнет сигнал на покупку. Разумеется, TradeScript™, поддерживает значительно более сложные настройки робота.

 

Шаг 4. Пишем скрипт сигнала на продажу

Теперь нам нужно написать скрипт сигнала на продажу. Пусть, например, это будет обратный сигнал, полученный от пересечения 15-ти периодной средней сверху вниз 21-периодную:
SET A = EMA(close,15)
SET B = EMA(close,21)
CROSSOVER(B,A)=TRUE

Поскольку TradeScript™ - это векторный язык, то же самое можно записать проще, без определения лишних переменных. Например, так:
CROSSOVER(EMA(close,21),EMA(close,15))=TRUE
Тогда информация во вкладке SELL будет иметь вид:

 

Шаг 5. Описываем параметры торговли по сигналам

Для этого открываем вкладку Торговля и определяем там
  • Инструмент, по которому будет происходить автоматическая торговля.  В приведенном примере – акции ОАО «Сбербанк»
  • Портфель, по которому будет проходить торговля. В приведенном примере портфель BP0681-MS-01. Вы можете задать любой торгуемый на рынке  инструмент, не обязательно именно тот, по которому формируется сигнал.
Далее нам понадобится задать параметры выводимых на рынок приказов. Это:
  • Объем заявки в лотах (контрактах). В приведенном примере – 5 лотов.
И три опциональных параметра, которые можно не заполнять:
  • Проскальзывание в пунктах, кратных минимальному шагу цены. Робот прибавит к цене последней сделки на которой получен сигнал эту величину и по получившейся цене отправит заявку на рынок.
  • Время жизни заявки в секундах – это то время, через которое выставленная заявка будет автоматически снята (если, конечно,  она до этого момента не исполнится). В приведенном примере – 180 секунд (т.е. 3 минуты).
  • Порог ухода цены в пунктах, кратных минимальному шагу цены. Заявка будет снята, если цена успеет уйти от нее за величину этого порога.
В результате, мы получим форму с заполненными полями, как это показано на рисунке слева.

 

Шаг 6а. Предварительное тестирование торгового робота

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

Для этого мы возвращаемся на вкладку Стратегия.
Нажимаем кнопку «Запустить» и открываем закладку «Сигналы». Эта закладка предназначена для отображения формируемых роботом торговых сигналов, так  как показано на рисунке.

Важно: в процессе торговли и в режиме отладки параметры стратегий не доступны для редактирования. Чтобы отредактировать стратегию, ее нужно сначала остановить.

 

Шаг 6b. Тестирование торгового робота на исторических данных (back-testing)

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

Для бэк-тестинга следует открыть последнюю вкладку, кот орая так и называетс "Бэк-тестинг". В правом верхнем окне вы увидите основные параметры настройки стратегии, которая будет тестироваться. Это: сигнальный и торговый инструменты, тайм-фрейм, количество лотов в заявке, используемое проскальзывание, максимальный объем позиции и ее стартовое значение.

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

Последнее, что можно (но не обязательно) задать, - это начальный капитал и учет или не учет комиссий.

Комиссии могут задаваться в виде фиксированных в привязке к количеству проторгованных контрактов, или в виде оборотных - в %% от объема сделки.

 Важно иметь ввиду, что расчет бэк-теста производится не всегда в рублях, а иногда в ценах, привязанных к котировкам. Например для акций и для срочных контрактов у которых стоимость шага цены = 1 рублю расчеты будут в рублях. А для срочных контрактов у которых цены привязаны к рублю сложным образом (контракты с валютной стоимостью) все расчеты будут произведены в пунктах. Это обстоятельство следует иметь ввиду, назначая стартовую сумму и задавая размер комиссионных - они тоже должны быть выражены в пунктах.

 

Шаг 7. Запуск торгового робота.

После того как все нужные поля вкладок «Стратегия» и «Торговля» заполнены, а торговый робот отлажен, можно запустить его для торговли на реальном рынке.
Для этого нужно поставить галочку в поле «Включить автоматическое выставление заявок», расположенную на вкладке Торговля. И нажать кнопку «Запустить». Все, ваш робот работает!

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

 

Ограничение ответственности 

Весь объем ответственности за действия роботов, созданных  Клиентом, или используемых скриптов в плагине "Конструктор торговых роботов TradeScript" торгового терминала несет исключительно Клиент. Незнание особенностей работы, настроек или эксплуатации торгового терминала SMARTx или конструктора роботов TradeScript, а также иные подобные доводы, не будут  являться основанием для  освобождения Клиента от полной ответственности за действия его роботов.

АО «ИК «Ай Ти Инвест» использует файлы cookie с целью обеспечения функционирования и персонализации сервисов, а также повышения удобства пользования сайтом. Продолжая пользоваться сайтом, вы соглашаетесь на обработку файлов cookie и пользовательских данных