Дмитрий Власов
Дмитрий Власов личный блог
07 мая 2011, 13:08

С# роботы против всех (первая часть вебинара Михаила Сухова)

Данный вебинар состоялся 3-го мая 2011 года при содействии компании АЛОР.
В  процессе вебинара создатель известной библиотеки Stock# (S#) Михаил Сухов рассказал о создании торговых  роботов и о том, какую роль играет  С# в создании этих торговых роботов.


Сегодня выкладываю краткий обзор первой теоретической части данного вебинара. Чтобы не пропустиить продолжение – подписывайтесь по RSS на обновление нашего блога и ждите продолжения.
 
Существуют два основных метода разработки торговых роботов:
Самый популярный метод создания торговых роботов – использование среды, которую предоставляют программы технического анализа (ТА). Речь идет о таких программах, как: Wealth Lab, TSLab, AmiBroker, Ninja Trader, OpenQuant и другие.


Второй, не менее популярный метод разработки торговых роботов – это когда робот программируются в среде программирования. При этом используется API предоставляемый брокером или биржей (например Plaza 2 у РТС или Micex Gateway у ММВБ). Речь идет о таких средах программирования, как Visual Studio, Delphi,  Java.
Во всех этих двух подходах используется C#.
Этот язык программирования стал стандартом для разработки приложений для трейдинга. C# можно использовать и при работе с программами технического анализа и писать на нем автономных торговых роботов с использованием API.
Используют язык С#  такие программы как ВелсЛаб, ТСЛаб, Ninja Trader, Open Quant, RightEdge (http://www.rightedgesystems.com). Возможное еще есть что-нибудь интересное, но мы пока этого, к сожалению, не знаем.
Давайте теперь посмотрим основные плюсы и минусы двух методов разработки торговых роботов:
Плюсы разработки торговых роботов в среде программ для технического анализа:
Во-первых, уже проделана работа с подключением. Нам не нужно заботиться о том, как соединиться с Квиком, как получить сделки, как работать со стаканом и т.д. Это всё входит в стандартную поставку.
Во-вторых, во всех таких программах есть графика (свечи, таблицы, отчеты по тестированию). Все эти программы “user friendly”. Когда пользователь открывает окно, то сразу видит среду, в которой он привык работать. Там есть инструменты, заявки, лента сделок. То есть присутствует всё, что пользователю знакомо «с пеленок», т.е. с тех пор, как трейдер начал торговать на рынке.
В-третьих, помимо привычной графики (свечки, бары, линии…) есть отчеты по тестированию.
В четвертых –  есть наработанная база стандартных решений в виде индикаторов. Есть стандартные решения, которые не нужно выдумывать, пытаться найти – как они реализуются.
Минусы разработки торговых роботов в среде программ для технического анализа:
Во-первых, минус в том, что в основном это западные программы и они не работают стандартно с российским рынком, с российскими терминалами.
Во-вторых, среда для программирования – чуждая для трейдеров среда. Здесь в своей тарелке себя чувствуют только профессионалы программисты. Здесь нет стандартных терминов, которыми оперируют трейдеры.
В-третьих, существующие решения поставляются без исходников.
В-четвертых,  все решения в таких программах носят массовый характер (нет уникальности). Создать что-то на базе стандартных вещей и чтобы это хотя бы не торговало в минус – для этого надо проделать немалую работу. А чтобы это работало даже в плюс – нужно очень сильно постараться. Со стандартными вещами это проблематично. Нужно создавать все-таки что-то уникальное. А как уже упоминалось – без исходников это сделать проблематично.
Плюсы и минусы можно представить в виде обоюдоострого меча. С одной стороны плюс, но применительно к другой области этот плюс может оказаться минусом.
Рассмотрим Плюсы и минусы роботов под API:
Первый плюс создания роботов под API – возможность создания HFT роботов.
Аббревиатура HFT (High Frequency Trading) обозначает высокочастотный робот. Критерием здесь является скорость работы робота с биржей. Другими словами, все что работает с биржей выше определенной частоты  это HFT робот. Стратегиями для HFT робота может быть скальпинг, арбитраж, парный трейдинг и т.п.
В то же время, если арбитражная стратегия не предполагает часто выставлять заявки, то это арбитражная стратегия, но не HFT робот.
Второй плюс – возможность создания собственного интерфейса. В самописных роботах всегда можно сделать свой собственный график.
Наличие графика в стандартных программах технического анализа для HFT робота – это не плюс, а минус. Ведь из-за большого количества заявок и сделок на графике будет «мешанина». Графики будут непонятными и только бесполезно отнимать память. Ведь даже в пределах минуты будет очень много сигналов.
Сейчас я работаю с роботом под опционы. В этом роботе графики совсем не такие, к каким привыкли обычные трейдеры. На моем графике нет не свечек нет линий. Этот график отображает профиль позиции. У меня всего три кнопочки: подключиться, торговля и пересчет позиции. В целях оптимизации работы он не постоянно обновляется.
Создавать такие интерфейсы в принципе невозможно в программе технического анализа. Здесь как в анекдоте – это вначале у всех головы разные, а потом они у всех одинаковые. Программы технического анализа по-сути диктуют нам условия, т.е. мы должны следовать её правилам. Наш робот должен быть стандартным, код должен быть стандартным, графический интерфейс должен быть стандартным. Параметры должны быть заданы по заранее определенным правилам. Естественно, это не всегда удобно.
Поэтому еще раз подчеркну, что наличие графики в программах технического анализа иногда полезно, а иногда и нет.
В-третьих, еще один существенный плюс,  который я выделил при создании собственного робота – это работа с источниками данных.
Как я уже говорил, робот, написанный в среде программ для технического анализа, не работает с разными источниками данных. Ему это не нужно.
Роботу же, который работает с API  доступны все возможности того API, с которыми он работает. Например, квик не предоставляет никакой работы с историческими  данными, а вот Алор Аттентис и Смартком – предоставляют.
Также и при работе с Plaza2 там предоставление данных не такое, как мы привыкли при работе с терминалами. Там очень много информации, которая нам просто не транслируется. Эти справочники данных  мы не можем получить из программ технического анализа
В четвертых, построение торгового робота с использованием API позволяет работать с такими специфичными транзакциями, как Move Orders, адресные заявки, маркетмейкерские операции.
В программах ТА есть 4 основные транзакции – Buy At Market, Sell At Market, Buy At Close, Sell At Close. Естественно, стандартные программы технического анализа не позволяют работать с такими транзакциями.
Нужно понимать, что создание программ технического анализа – это бизнес тех людей, которые делают бизнес на трейдерах.  Так устроен мир, что все зарабатывают на ком-то. Трейдеры зарабатывают тоже на ком-то, откровенно говоря.
В-пятых, построение робота позволяет творить уникальные возможности.
Приоритеты тех, кто делает программы для технического анализа и у трейдеров – разные. Основная цель разработчиков программ технического анализа – продать программу. Это значит, что там не будет каких-то сложных решений, являющихся профитными, но так как этим пользуются не массово – то вряд ли эти решения будут реализованы. Вы можете очень долго просить команду разработки внедрить какую-нибудь фишку, но она Вам вряд ли пойдет навстречу.
Программы технического анализа всегда опираются на популярные известные алгоритмы, на те алгоритмы, которые являются «попсовыми». Никто не будет делать для Вас уникальные решения Только Вы сами можете это реализовать.  Либо же можете приобрести робот, сделанный под API.
Такой робот сделанный под АPI, имеет больше шансов принести прибыль, чем робот построенный на стандартных индикаторах. Конечно главное – идея, но и техническая реализация идеи тоже очень важна. Я бы сказал, что это даже равноценные вещи.
Теперь о самой библиотеке Stock#.  Что такое библиотека Stock#. Библиотека S# – это наработка для тех, кто собирается делать роботов под API.
Я всегда торговал на рынке только с помощью роботов. Мой первоначальный опыт торговли связан именно с алготрейдингом. Именно так я понимаю рынок. Оглядев возможности различных программ, я понял, чтобы зарабатывать, эксплуатирую одинаковые торговые идеи – остальных нужно хоть в чем-то превосходить.
В чем я мог остальных превосходить? В технике. Именно поэтому я создал техническое решение в виде библиотеки Stock#. Это решение, конечно, сложнее, чем использование программ технического анализа. Оно рассчитано на профессионалов  и использует напрямую API.
Разработка робота на Stock# – это тоже самое, что создание робота под API. Естественно, здесь есть свои «плюшки», которые упрощают работу по созданию робота.
Библиотека Stock# писалась под себя. Это жирный плюс, т.к. когда сам торгуешь с помощью робота и  пишешь робота под себя, ты реально понимаешь, что нужно, а что бесполезно. А когда заказываешь робота на основе технического анализа то многие вещи могут оказаться бесполезными.
Не забудьте подписываться на RSS. Продолжение следует…
В следующей части:
— примеры торгового кода на C# с использованием библиотеки S# и без неё.
— демонстрация простейшего торгового робота;
— рассказ о том, как можно научиться делать торговых роботов самостоятельно.
— ответы на самые популярные вопросы по Stock#;
Нет похожих сообщений.
10 Комментариев
  • cyberpunk
    07 мая 2011, 16:31
    Интересно, что двигает автором(ами) проекта, распространяя этот продукт? ))) Принцип свободы информации? Амбиции? )
    Проделан огромный объем работы…
    • johnny
      10 мая 2011, 13:00
      популяризация продукта => внедрение чего-то на нём кем-то => заказы по написанию чего-то на нём кому-то :)
  • Ustas
    07 мая 2011, 19:35
    что двигает? а ничего, просто есть настоящие спецы, учись у них работать. Человек поделился одной сотой своего ОЧЕНЬ высокого мастерства, ему не трудно, а нам приятно. Такие ребята как Сухов — это надежда не просто России, но и всего человечества. Те люди кто что-то делает реальное на самом деле. Сорри за пафос, но так оно и есть.
  • Евгений
    08 мая 2011, 00:39
    Ждем запись вебинара.
  • Shkretov Yury
    08 мая 2011, 10:25
    Спасибо за информацию!!!
  • Дмитрий Almazov
    10 мая 2011, 13:09
    Ждем продолжения
  • Anton Shulgin
    25 декабря 2014, 20:16
    Требуется программист, который сможет мне помочь написать индикатор для плафтормы Ninja Trader на платной основе.
    Индикатор только по свечному аналзу.
    Прошу писать на почту bestflor@gmail.com

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

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