Максим Милованов
Максим Милованов личный блог
21 января 2013, 16:47

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

В настоящее время всё больше приобретает популярность автоматизированная торговля. Для этих целей есть довольно большой спектр инструментов. В данной статье я хочу рассмотреть библиотеку StockSharp, которая позволяет программировать торговых роботов.
Рассмотрим простую систему – входа относительно внутридневных экстремумов.
Алгоритм входа в сделку:
— вход в ЛОНГ — при пробитии и закреплении цены выше внутридневного High
— вход в ШОРТ — при пробитии и закреплении цены ниже внутридневного Low
Управление позицией:
— вход в сделку только с 11.00 до 19.00
— закрытие позиции осуществляется в конце дня, либо по стоп-лосу
Управление рисками:
— риск на сделку равен 3% от цены входа
Для наглядности рассмотрим сделку по этой системе (Рис. 1). Вначале дня (до 11,00), до момента разрешения входа в сделку формируются текущие внутридневные экстремальные значения – High и Low. Вход в сделку осуществляется при наличии следующих условий:

1) Если цена пробивает одно один из экстремумов
2) Закрытие этой свечи происходит выше(ниже) экстремума
3) Длина тела свечи как минимум в два раза больше чем тень по направлению движения свечи
Создание торгового робота с помощью библиотеки Stock#. Часть 1. Разработка торгового алгоритма и обзор библиотеки Stock# 4.1.6
Рис. 1. Пример сделки по системе
Реализация данной системы в Wealth Lab и тестирование на исторических данных дает положительную кривую доходности (Рис. 2). В качестве инструмента выбран фьючерс на индекс РТС, временной интервал исторических данных – с 01.06.2008 до 17.11.2012, таймфрейм – 15 минут, проскальзывание – 50 пунктов.
Статистика системы при торговле 1 контрактом показана на рис. 3.
Создание торгового робота с помощью библиотеки Stock#. Часть 1. Разработка торгового алгоритма и обзор библиотеки Stock# 4.1.6
Рис.2. Кривая доходности торговой системы.

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


Теперь, когда определены основные параметры системы,  перейдем к её программированию и созданию торгового робота.
Обратимся к последней версии библиотеки для создания торговых роботов 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)


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

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

Код стратегии для Wealth-Lab И файл настроек Quik вы можете скачать на сайте robostroy.ru 
29 Комментариев
  • Тимофей Мартынов
    21 января 2013, 17:14
    отлично
  • AlexShul
    21 января 2013, 17:15
    Вот он, грааль! Бегу за лицензией! Жду-недождусь, когда чудо-робот наколбасит мне на BMW X6.
  • Анатолий ПравИло
    21 января 2013, 17:23
    вот это я понимаю пошаговая инструкция. А то на этих вэбинарах черти что рассказывают, кроме вот таких действий.
    Жду продолжения…
  • Дмитрий
    21 января 2013, 17:33
    спасибо за инструкцию. жду продолжения
  • старый трейдер
    21 января 2013, 18:04
    Максим Милованов, есть маленькая тонкость: статус лицензии в будущем и, самое главное, статусы коннекторов к разным платформам. В идеале — логичные разъяснения механизма монетизации.

    Иначе, великая формула про свою рубашку, которая ближе к телу, неизменно побеждает.
  • krasoffka
    21 января 2013, 18:13
    еще б где нибудь коды и файл настроек на яндекс.народе выложить например, а то робострой просить залогиниться или это так и задуманно?
  • Николай Лазарев
    21 января 2013, 19:36
    Хотел накидать по быстрому системку, но прочитав был сильно удивлён описанием системы!!!
    Может ли автор пояснить, как может цена пробить внутридневный хай??? если цена внутри дня повысилась, это и будет внутридневный хай, если цена ещё повысилась, это будет новый внутридневный хай и цена никогда его не пробъёт, потому что она его формирует.
    • Николай Лазарев
      21 января 2013, 19:41
      Николай Лазарев, Внутридневные хай и лоу.

    • Natty
      21 января 2013, 19:53
      Николай Лазарев,
      Вначале дня (до 11,00), до момента разрешения входа в сделку формируются текущие внутридневные экстремальные значения – High и Low.
      • Николай Лазарев
        21 января 2013, 20:00
        Natty, Ага, значит формируем ценовой канал от открытия до 11.00 правильно?
        Тогда ещё пару вопросов: период и уточнить понятие «закрепилась выше/ниже» т.е. закрылась выше канала и открылась новая свеча тоже выше канала? так? или как то по другому?
      • Николай Лазарев
        21 января 2013, 20:45
        Накидал этот грааль кубиками минут за 30.
        без учёта проскальзывания и комисии получилось как на картинке.
        Поставим комисы и учтём проскальзывание, будет грустно((
        • Николай Лазарев
          21 января 2013, 20:50
          Николай Лазарев, код в коммент не помещается, так бы выложил.
          В кубиках это 25 шт.
          Время написания с ноля 30 мин.)))))
          Но надеюсь в сток шарпе всё быстрее и проще.
          И ещё, моё мнение: не работают ценовые каналы по времени.
        • Микаелян Саро
          22 января 2013, 00:08
          Николай Лазарев, думаю автор хотел показать наглядность применения стокшарпа а не ценность алгоритма, хотя конечно и немного пролукавил возможно))
          • Николай Лазарев
            22 января 2013, 08:15
            Saro, Дык я нисколько не сомневаюсь в возможностях стокшарпа. Интересно было как раз проверить алгоритм.
        • Микаелян Саро
          22 января 2013, 00:22
          Николай Лазарев, у него с 2008 года, а у тебя с 2012!) думаю резы одинаковые почти
          • Николай Лазарев
            22 января 2013, 08:19
            Saro, Интрадей тестировать с 2008??? Результат будет всегда предсказуем: профит вплоть до 2012, дальше или отсутствие профита или слив. Совсем другой рынок сейчас.
  • VpnS
    21 января 2013, 21:10
    доступен ли экспорт котировок на S# в свою программу?
    данные стакана, таблица всех сделок?
    • Natty
      21 января 2013, 21:22
      VpnS, S# — это фреймворк на языке С#, следовательно, экспортировать можно собственноручно, куда только фантазии хватит.
      • VpnS
        21 января 2013, 21:28
        Natty, там есть классы для этого, или нужно всё таки самостоятельно проводить экспорт через DDE?
          • VpnS
            21 января 2013, 21:38
            Максим Милованов, ещё вопрос важный.
            там есть callback по транзакциям?
  • maks_kalinin
    21 января 2013, 22:17
    спасибо. добавил в избранное!
  • Микаелян Саро
    22 января 2013, 00:11
    Максим отличная работа!
  • Demogorgon
    22 января 2013, 10:45
    Интересно, автору плюс
  • Dr Volk
    22 января 2013, 10:56
    Спасибо! Будем ждать продолжения и читать. +++
  • DrGarik
    22 января 2013, 15:37
    Плюс и спасибо! Продолжение ждем!)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн