Торговые роботы. С чего начать. Общие вопросы

Торговые роботы. С чего начать. Общие вопросы
Atom
27.08.2012
M.Kovaleva


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

[b][center]Учить язык программирования или использовать визуальный редактор?[/center][/b] Во многих программах для тестирования торгового робота и, тем более, непосредственно для его написания, требуется знание языка программирования. Изучение языка программирования в наших умах – дело сложное и не скорое, поэтому в поиске более легких путей начали разрабатываться визуальные редакторы. Есть отличная статья, которая отражает всю суть визуальных редакторов. Выдержка из [url=http://stocksharp.blogspot.com/2011/02/blog-post_19.html][color=green][b]статьи[/b][/color][/url]:

[quote][i]«В чем причина провальности таких решений? В направлении. Людям, которые только изучают программирование, визуальный редактор только навредит. Он дает первоначальный вау фактор, который исчезает уже ко второму дню использования. Через неделю, код будет выглядеть как на картинке. И вот тут как раз и происходит крах такого подхода. Они были призваны упростить программирование. А вместо этого, происходит усложнение. И более того, код в текстовом файле начинает занимать значительно меньше места, чем вся эта мега-диаграмма, не влезающая аж 8 мониторов. А уж как ее тестировать - у-у-у-у. Это отдельная тема мазохизма.»[/i] [/quote] [b][center]Выбор языка программирования[/center][/b] Изучить язык программирования будет сложнее, чем освоить визуальный редактор, но если у Вас серьёзные намерения, это правильный выбор. Но языков программирования много, какой выбрать? Основные языки, на которых пишут роботов: • [color=green][b]QPILE – встроенный язык в терминале QUIK[/b][/color] • [color=green][b]VBA Excel[/b][/color] • [color=green][b]Delphi[/b][/color] • [color=green][b]C#[/b][/color]

[color=green][b][center]QPILE[/center][/b][/color] Трудно выделить какие-либо существенные плюсы в этом языке программирования, другие языки существенно превосходят его по функциональности, возможностям и другим параметрам. Его широкое распространение связанно с тем, что до недавнего времени не существовало альтернативы, а также с тем, что терминалом QUIK пользуются большинство трейдеров и, соответственно, qpile на слуху. Единственный плюс, вытекающий из популярности qpile – довольно просто получить тех. поддержку на форумах. На qpile можно написать робота, тестировать торговые стратегии нельзя. Я не советую использовать этот язык. [color=green][b][center] VBA Excel[/center][/b][/color] В целом те же замечания, что и в qpile. Функционал чуть шире, но пользуются им небольшое количество трейдеров, а значит тех. поддержку получить сложно.

[center][color=green][b]Delphi[/b][/color][/center] Язык функциональный, на нем Вы сможете реализовать практически любую задачу, которая встанет перед Вами. Но абсолютно все придется писать самому, к тому же поддержки в виде форумов и других ресурсов нет или практически нет. Отсутствие тех. поддержки и необходимость писать весь код самому делает этот язык непривлекательным.

[color=green][center][b]C#[/b][/center][/color] С# (разработан Microsoft) выделяется по всем параметрам. Функциональность, простота и надежность сделали его фаворитом для большинства платформ для тестирования торговых стратегий. WealthLab, TS-Lab в качестве внутреннего языка программирования используют именно его. Возможность написания библиотек на C# существенно ускорила и облегчила написание торгового робота. Что такое библиотека? Представьте себе, что Вам нужно написать код, который будет выставлять заявку на рынок. Код будет состоять из 100 строк, на написание и отладку которых уйдет N-е количество времени. Теперь представьте, что кто-то уже написал этот код и теперь Вы можете воспользоваться им, написав одну строчку. Библиотека – это множество кодов, написанных проф. программистами. Библиотека StockSharp содержит все коды, которые нужны для разработки торгового робота. Таким образом, Вы экономите время на написание и отладку кода. Раньше каждый писал библиотеку для себя, для этого нужно иметь приличный опыт программирования. Теперь любой может использовать плюсы языка C#, не являясь проф. программистом. На нашем форуме оперативно отвечают на вопросы, Вы всегда сможете получить тех поддержку от первых лиц. Что мы имеем в итоге: выучив C# у вас нет привязки к какой-то одной платформе, язык используется повсеместно. На нем можно тестировать торговые стратегии как интрадей (WeathLab), так и HFT (StockSharp). Написание торговых роботов - можно самостоятельно писать свой код, можно воспользоваться библиотекой S#.

[b]Рекомендуем ознакомиться: [url=http://stocksharp.blogspot.com/2010/07/blog-post_12.html]Небольшая статья о выборе языка программирования.[/url][/b]

[b][color=green][center]Создание торговых роботов условно можно разделить на два этапа:[/center][/color][/b] 1 — тестирование торговой системы; 2 — воплощение торговой системы в виде робота.

[b][center]1. Тестирование торговой стратегии[/center][/b] Тестирование торговых систем призвано доказать прибыльность системы, найти её минусы и подсказать способы улучшить систему. Я выделю три основных платформы для тестирования: [b]WealthLab[/b] — cтабильная, удобная в использовании платформа. Подойдет для тестирования внутридневных стратегий, среднесрочных, долгосрочных, тестирования на портфеле бумаг. WLD - oдно из лучший решений на данный момент. В WLD — нельзя тестировать HFT стратегии. Внутренний язык программирования в WLD — C#. [b]TSLab[/b] — тот самый визуальный редактор, о котором мы говорили в самом начале. Алгоритм представлен в виде блок-схемы. Разработка относительно новая, поэтому имеются некоторые проблемы с тестированием и расчетами, хотя в последнее время проблем стало значительно меньше. Основной минус визуальных редакторов мы уже затрагивали. Если выбирать между TSLab и WLD, выбор очевиден. [b]StockSharp[/b] – возможность тестирования HFT стратегий. В скором времени появится полноценная графическая среда ([b]StockSharp Studio[/b]) для тестирования всех видов систем. Другие платформы для тестирования: Metastock, amibroker, OpenQuant.

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

[list][][url=http://rusalgo.com/article/what-to-choose]Какую платформу для торговых роботов выбрать: TSLab,WealthLab,StockSharp?[/url] [][url=http://rusalgo.com/article/stocksharp-yes-or-not]StockSharp (СтокШарп) – Торговые роботы. Стоит ли выбирать?[/url][/list] В этих статьях вы ознакомитесь с текущим положением дел. Мы умеренно сообщаем вам об этом сейчас, когда вы уже прочитали половину статьи, с той целью, чтобы вы прочувствовали, как меняются технологии с течением времени. Но, с другой стороны, вы можете убедиться, что наш основной совет – изучать C# – остался прежним. Этот совет становится даже более актуальным, т.к. и в TSLab API используется C#!

[b][center]2. Воплощение торговой системы в виде робота[/center][/b] Торговые роботы реализуются двумя путями: 1 — тестирование стратегии на WealthLab (WLD), а реализация робота на qpile. Минус такого подхода – надо знать два языка программирования: C# для WLD и qpile для QUIK. 2 — к программе для тестирования торговых систем приделывается коннектор.

[b]Второй путь:[/b] Робот пишется на платформе для тестирования торговых систем и подсоединяется к торговому терминалу через коннектор. Удобство такого метода должно состоять в том, что после тестирования торговой стратегии Вы можете сразу вводить робота в эксплуатацию. Так задумывалось, но не всегда так бывает. Возникают различные сложности, природа которых лежит в том, что программы для тестирования стратегий создавались для тестирования, а не использования их в виде торговых роботов. Например, отсутствие обратной связи, когда после выставления заявки нельзя проверить её статус – была она исполнена или не дошла из-за разрыва интернета. Сами коннекторы чаще всего самописные, что делает связку "торговый робот/платформа" нестабильной. Для 6го WealthLab есть коннектор, написанный брокерской компанией Церих; коннектор платный - 50 рублей в день. Издержки, сопоставимые с платой за Интернет, и есть какая-то уверенность стабильной работы. Все же этот путь тупиковый: программа для тестирования стратегий накладывает сильные ограничения на функционал робота, поэтому вернемся к первому способу, когда реализация торгового робота осуществляется на языке программирования. В этом случае функционал робота ограничивается лишь возможностями языка программирования, а значит, почти не ограничен.

[b]Первый путь:[/b] Совсем не обязательно знать два языка программирования, если Вы прислушались к совету и выбрали C#. Тестирование торговых систем идет на WLD, там пишется код на C#, потом этот же код с минимальными изменениями переносится в инфраструктуру робота, написанного на C# с использованием библиотеки StockSharp. Правильный выбор языка позволяет использовать нам лучшие решения. Функционал робота неограничен по сравнению с первым случаем. Есть возможность обратной связи (отслеживания состояния робота), автоматическое переподключение при разрыве и т.д. Ниже показан [b]пример интерфейса торгового робота, написанного с использованием библиотеки StockSharp[/b].

Из этого окна осуществляется запуск и навигация по роботу. При нажатии кнопки "Старт" робот запускают все прописанные торговые терминалы, логинится и выполняет подключение к данным. [center][img]102067[/img][/center] Если нужно добавить новый терминал – заходим в настройку. [center][img]102068[/img][/center] Редактирование настроек робота без вмешательства во внутренний код. [center][img]102069[/img][/center] Робот отчитывается о своих действиях, пересчет алгоритма идет с заданной вами частотой. [center][img]102070[/img][/center] [center][b]Итог[/b][/center] Знание языка программирования открывает перед нами широкие возможности. Выбор С# позволяет использовать лучшие решения и не привязываться к определенному продукту. Практически все продукты, связанные с тестированием ТС и созданием роботов, используют C#. Тестирование стратегии лучше всего делать в WealthLab. Реализовывать робота лучше всего, используя библиотеку S# - мы экономим своё время и упрощаем задачу написания торговых роботов.

[b][center]Успехов на рынке! Торговые роботы Stock# Горбунов Алексей [/center][/b]

[center][url=http://stocksharp.com/doc/][color=green][b]Ознакомиться с документацией к библиотеке S# можно здесь.[/b][/color][/url] [/center]





Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy