Заметка

Создание торгового робота с помощью библиотеки Stock#. Часть 1. Разработка торгового алгоритма и обзор библиотеки Stock# 4.1.6

  4  

В настоящее время всё больше приобретает популярность автоматизированная торговля. Для этих целей есть довольно большой спектр инструментов. В данной статье я хочу рассмотреть библиотеку StockSharp, которая позволяет программировать торговых роботов.
Рассмотрим простую систему – входа относительно внутридневных экстремумов.

Алгоритм входа в сделку:

- вход в ЛОНГ — при пробитии и закреплении цены выше внутридневного High

- вход в ШОРТ — при пробитии и закреплении цены ниже внутридневного Low

Управление позицией:

- вход в сделку только с 11.00 до 19.00

- закрытие позиции осуществляется в конце дня, либо по стоп-лосу

Управление рисками:

- риск на сделку равен 3% от цены входа

Для наглядности рассмотрим сделку по этой системе (Рис. 1). Вначале дня (до 11,00), до момента разрешения входа в сделку формируются текущие внутридневные экстремальные значения – High и Low. Вход в сделку осуществляется при наличии следующих условий:

1) Если цена пробивает одно один из экстремумов

2) Закрытие этой свечи происходит выше(ниже) экстремума

3) Длина тела свечи как минимум в два раза больше чем тень по направлению движения свечи

Рис. 1. Пример сделки по системе

Реализация данной системы в Wealth Lab и тестирование на исторических данных дает положительную кривую доходности (Рис. 2). В качестве инструмента выбран фьючерс на индекс РТС, временной интервал исторических данных – с 01.06.2008 до 17.11.2012, таймфрейм – 15 минут, проскальзывание – 50 пунктов.

Статистика системы при торговле 1 контрактом показана на рис. 3.

Рис.2. Кривая доходности торговой системы.

Рис. 3. Статистика торговой системы.

Хотелось бы отметить, что данная торговая система не имеет прикладной характер. Безусловно, она прибыльная, но доходность не высока. В системе присутствуют временные циклы, где система работает хорошо (Рис. 4).

Рис. 4. Временные циклы системы, приносящие прибыль.

Теперь, когда определены основные параметры системы,  перейдем к её программированию и созданию торгового робота.

Обратимся к последней версии библиотеки для создания торговых роботов Stock# 4.1.6.

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

Первое что нужно сделать – это скачать библиотеку Stock# —https://www.box.com/stocksharp и распаковать архив с библиотекой.

Архив состоит из (Рис. 5):

1) Самой библиотеки в виде подключаемых DLL-файлов (папка References)

2) Примеров для различных терминалов (папка Samples)

3) Гидры – программы для загрузки и обработки рыночных данных (папка Hydra)

4) Файл со справкой по библиотеке (StockSharp.chm)

5) Файла с лицензионным соглашением (StockSharp_EULA_ru.rtf)

6) Файла с информацией о сборке (StockSharpAssemblyInfo.cs)

Рис 5. Структура архива библиотеки Stock# 4.1.6

Далее, чтобы работать полноценно с библиотекой рекомендуется получить лицензию, которая для физических лиц бесплатна. Для этого надо скачать утилиту для получения лицензии https://www.box.com/stocksharp, запустить её (Рис. 6), ввести логин/пароль (необходимо предварительно зарегистрироваться на сайте StockSharp), сохранить файл с лицензией. Более подробную информацию можно узнать на форуме – http://stocksharp.com/forum/yaf_postst2297_Litsienziia—Novaia-riedaktsiia.aspx.

Рис 6. Получение лицензии StockSharp

Пришло время настроить терминал QUIK для работы с нашим роботом. Для этого, проще всего импортировать файл настроек QUIK. Т.е. терминал должен иметь определенный набор открытых таблиц (Рис. 7), таких как портфели, все сделки и т.д.

Рис. 7. Терминал QUIK после загрузки в него необходимых настроек

На этом подготовительный этап работы для написания робота закончен. Остается запустить среду Visual Studio и начать программировать. Об этом я расскажу в следующей части статьи.

Прикрепленные файлы

·   Код стратегии и настройки для Quik.rar

Комментарии

umoz — 21 января 2013 г.

луцчше п кто-нибудь про матлаб коннектор написал, а то я ничего непонел

0 +

Максим Милованов — 21 января 2013 г.

umoz, а есть ли смысл через матлаб торговать роботом ?
Всё-таки цели МатЛаба и платформы .NET отличаются кардинально.
Если моделировать что-либо, то конечно МатЛаб имеет преимущество.

0 +

umoz — 22 января 2013 г.

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

0 +

umoz — 22 января 2013 г.

Максим Милованов, и да ждемс продолжения этой серии)

0 +

YUBA — 23 января 2013 г.

umoz, если не ошибаюсь, в матлаб есть VBA. Кто или что мешает использовать для построения системы?
Кстати, первые модели делал на матлаб. Первые торговые системы в Ексел VBA. На часах, и даже на 5 мин ТФ это нормально работает, т.к. быстродействие не нужно.
Есть недостаток такого подхода. При использовании VBA, Ексель уже невозможно использовать. И + - нужны спец меры для управления такой системой. Связано с однопоточностью VBA.

0 +

YUBA — 23 января 2013 г.

umoz, Отстал от жизни. )) Лет 5 прошло с тех пор.
Сейчас в матлаб все по другому. Все оч интересно для построения автосистем.

1 +

Flyanimal — 28 января 2013 г.

YUBA, +1))
В матлабе для трейдинга сейчас есть все что нужно + к этому - очень много готовых математических моделей, которые можно просто вставлять и тестировать стратегии.
Было бы здорово, если эту тему кто-нибудь бы раскрыл здесь на сайте. Очень полезная вещь

0 +

Написать комментарий

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

Написать администратору