Финансовая лаборатория

Биржевая торговля и торговые роботы


После изучения возможностей Wealth-Lab по созданию торговых стратегий и получения практического результата в виде готового кода оттестированной, оптимизированной и генерирующей алерты торговой стратегии, неизбежно возникнет вопрос об автоматизации подачи торговых сигналов брокеру. Т.е. как это громко не звучит - мы должны задуматься о создании торгового робота.

Задачи, которые решает торговый робот

Торговый робот - это программа, либо совокупность программ, которые решают следующие задачи:

1)   Автоматизация создания алертов.

Алерт - это торговый сигнал, который сигнализирует о необходимости отправить торговый приказ указанного типа в систему.

2)     Автоматизация передачи торговых ордеров на сервер брокера.

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

3)     Автоматизация получения обратной связи от брокера, т.е. анализ результатов исполнения торговых приказов.

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

4)     Анализ состояния активов на брокерском счете в разрезе разных торговых стратегий.

Активы в данном случае - это совокупность денежных средств и открытых позиций (акций, фьючерсных и опционных контрактов).

Способы решения задач по автоматизации торговли

Первый этап на пути торгового робота мы уже прошли - Wealth-Lab умеет анализировать данные и генерировать алерты. Но даже здесь хорошо бы сделать так, чтобы исходные данные о цене финансовых инструментов мы получали автоматически. А как же нам решать следующие задачи?

1. Ручное управление процессом.

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

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

2. Создание собственной программы, взаимодействующей с брокером.

Если Вы хотите заняться творчеством - попробуйте с помощью языка программирования C# и вспомогательных средств (например, библиотеки Stock#, разработанной Михаилом Суховым и товарищами) создать собственную программу, которая подключается к брокеру, следит за базами данных, отдает и контролирует приказы.

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

Как результат в такой программе можно запрограммировать ту стратегию, которую мы нашли, запрограммировали, протестировали и оптимизировали в программе Wealth-Lab. В этом случае Wealth-Lab в автоматизации вообще не участвует, мы используем ее только как средство создания и тестирования торговых стратегий.

3. Использование готовых программ

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

Примером использование сторонней программы могут служить такие программы, как TSLab и TradeMatic.

4. Автоматическая торговля на российских биржах прямо из Wealth-Lab

Сразу скажу, что те пользователи программы Wealth-Lab, которые находятся в США и Канаде пользуются версией "Pro" и имеют такую возможность по умолчанию. Wealth-Lab Pro уже полностью интегрирована с торговой системой брокера Fidelity. Они автоматически получают как данные о ценах, так и фундаментальные данные, отдают приказы брокеру прямо из программы, отслеживают свои позиции и реальную эффективность торговых стратегий.

А что касается пользователей, которые находятся за пределами США (в т.ч. в России) - здесь ситуация несколько сложнее. Программа, которая продается здесь имеет название Wealth-Lab Developer. Продажей этой версии Wealth-Lab занимается компания MS123 LLC (по лицензии Fidelity).  Функционально Wealth-Lab Developer ничем не отличается от Wealth-Lab Pro. Единственное отличие - нет интеграции с брокером Fidelity - да эта интеграция нам и не нужна.

Брокер-Адаптер для Wealth-Lab

Хорошо бы, чтобы Wealth-Lab была интегрирована именно с тем брокером, к которому мы уже привыкли, но позаботиться об этом  нужно самостоятельно.

Давайте сразу же упомяну о том, что нужно сделать для интеграции Велса с Вашим брокером и полной автоматизации торговли с помощью программы Wealth-Lab:

Нужно создать 3 провайдера:

  • Static Data Provider - его главная задача - получение  исторических данных котировок для тестирования стратегий.
  • Realtime Data Provider  - организует поставку потоковых (реал-тайм) данных в стратегию Wealth-Lab.
  • Broker Adapter - должен в процессе реальных торгов выставлять через заявки на биржу, отслеживать текущее состояние выставленных заявок и синхронизировать исполненные заявки с Wealth-Lab.

Сложность здесь есть только в создании брокер-адаптера.

Дело в том, что официальная позиция Fidelity - не поддерживать разработку чужих брокер-адаптеров. Только свой и только для США и Канады (где Fidelity и представлена). Разработчикам остается только выполнять указания.

В принципе, разработчики Велса не против, если кто-то методом тыка делает брокер-адаптер, но вот консультаций и техподдержки по этому вопросу (из-за Фиделити) не оказывают.

"Подсмотреть" реализацию класса брокер-адаптера - не сложно. Проблема в том, чтобы его грамотно реализовать. Например, для поддержки "торговли на бумаге" нужно реализовывать методы, которых нет в спецификации.

Связка старой версии Велс-Лаб  (Wealth-Lab Developer 4) с торговой программой Квик

В сети давно уже можно найти видео с рассказом о том, как связать с Quik старую версию Велс Лаб. Речь здесь идет об устаревшей версии Wealth-Lab Developer 4. Сейчас этот продукт компанией разработчиком уже не развивается, однако его можно использовать.

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

Несмотря на то, что 4-й Велс был предком нынешнего Wealth-Lab 6.3 - по-сути, это две совершенно различные программы.

Скажу только о том, что в 4-й версии язык программирования торговых стратегий был встроенный (на базе Паскаля), и программа не являлась .NET ориентированной. В современной версии Wealth-Lab 6.3  торговые стратегии можно создавать на любом из более чем 20-ти .NET языков программирования. Но рекомендуется, конечно же C#, ведь язык С-шарп более мощный по сравнению с Паскалем.

Кроме того, в 4-ке отсутствуют такие "няшки", как генетический оптимизатор, многие визуализаторы да и вообще, это уже "вчерашний день". Хотя многие привыкли к тому языку программирования торговых стратегий, который был в 4-й версии и с трудом переходят на новую версию с C#.

Отмечу также, что по функциональности для целей создания торговых стратегий старый язык, который использует WL-4 по прежнему можно использовать. Практически любую стратегию, код которой создан C# (WL6), можно также написать и на Паскале (WL4), возможно используя большее количество программного кода.

Готовая связка между Квиком и WL4 под названием программно-консалтинговый пакет "Каркас автономного робота" продается его создателями за 20 000 рублей. Кому интересно - можете посмотреть здесь.

Однако выбирая такой вариант автоматизации - следует задаться таким вопросом: "Как долго будет поддерживаться Wealth-Lab-4? Не будут ли, через годик-другой, нынешние усилия на освоение старой версии Wealth-Lab пустой тратой времени"?

Связка Wealth-Lab .NET  с Квиком с помощью Zerich Algo Trading

Некоторое время назад брокерская компания "Церих" решила осуществить такую реализацию и создала Zerich Algo Trading. Как я понял, непосредственным программированием этой связки занимался в компании Дмитрий Горяинов, а теоретическую поддержку, тестирование, отладку и популяризацию осуществлял в компании Арсен Яковлев.

Zerich Algo Trading - это набор расширений для Wealth-Lab Developer .Net, позволяющих самостоятельно создать, протестировать на исторических данных и запустить на исполнение торговую стратегию любой сложности.

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

К сожалению, в этом году Церих перестал поддерживать WLD, и убрал всю информацию у себя на сайте, включая лучший русский форум по Wealth-Lab (по моему мнению).

Однако не все так плохо. Как мне стало известно, Арсен Яковлев, который в Церихе Велсом занимался вместе со своей командой выделился из структурного подразделения Цериха и стал развивать этот сервис самостоятельно. Кроме того, что не может не радовать умерший (вроде бы) форум вновь как птица феникс возродился вот в этом месте.

Информацию о данном проекте можно посмотреть на сайте с простым и понятным названием: http://wealth-lab.net

Я сам был клиентом Цериха, купил с их помощью лицензию на Wealth-Lab. Нужно будет более подробно присмотреться к данному проекту.

Но, как говорится, нет худа без добра. Благодаря этому я более плотно занялся изучением программы Wealth-Lab, языка С#, сформировал системный подход к построению торговых систем.

Уже задумывался о создании собственного брокер-адаптера и тут буквально недавно натолкнулся на сайт, где предлагают готовый Broker-Adapter к Квику и АльфаДиректу.

Связка Quik с Wealth-Lab 6.3 с помощью брокер адаптера от Real- Time Trading

Разработкой интеграции Wealth-Lab с торговыми терминалами российских брокеров озаботилась компания Real- Time Trading. Причем не только озаботилась, но и судя по их сайту реализовала задуманное, создав брокер-адаптер и предложила это решение для алготрейдеров, которые хотят автоматизировать свою торговлю.

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

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

Обязательно напишу в своем блоге о процессе подключения, проблемах, которые возникают, эффективности работы адаптеров в общем, о своих впечатлениях. Так что не забывайте подписываться на новые статьи по RSS, либо через форму подписки, которая находится в верхнем левом углу блога.

PS:

Единственная сложность - я всегда торговал с помощью Алор-Трейд. К программе привык, сжился буквально с ней. Теперь придется разбираться с Квиком или АльфаДиректом. Ну чтож, как говорится, будем пробовать. Кстати, посоветуйте - кто пользовался, -  какой терминал удобнее на Ваш взгляд. Жду Ваших советов в комментариях.

Комментариев: 31

  1. SazanTrader пишет:

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

    • Дмитрий Власов пишет:

      Давно хочу более подробно SmartX посмотреть – все руки никак не доходят.

      • SazanTrader пишет:

        Записи серии вебинаров по работе со SmartX, в том числе и по автоматизированной торговле, можно посмотреть на сайте http://www.iLearney.ru.
        Вот ссылка на запись последнего вебинара: http://www.ilearney.ru/elearning/details.php?ID=7628

      • Игорь пишет:

        Дмитрий, по поводу SmartX, не слушайте никого, настолько сырой продукт, что просто ужас, являюсь клиентов инвеста уже 7 лет, поэтому говорю не просто так, а хорошо зная предмет. Смарттрейд, в свое время был лучшим терминалом, на мой взгляд, а СмартХ- это хорошая задумка, но исполнение…. Лучше убить себя об стену. Баг на баге и багам погоняет. Надо отдать должное, разработчикам, борятся с багами активно, но вылавливать их еще долго. Хваленый менеджер стратегий, с помощью которого, а точнее с помощью скриптового языка которого, якобы можно торговать в автоматическом режиме, ой не смешите мои тапки :) То написанный скрипт не может справится с нечетными заявками, то по сигналу, безупречно сработавшему, выставляет заявку на биржу плюс 1000-3000 пунктов от сигнала :), то выставит заявку и тут же ее сам отменит. Так что, пока инвест сделает нормальный продукт, много воды утечет :) Тем более они сами, сейчас рекомендует, так чтобы руководство не слышало :), торгуйте на старом терминале. Да и сам скриптовый язык – это не C# :)

      • Игорь пишет:

        Дмитрий, что касается связки WLD и Quik, если брать в качестве боевого терминала именно Quik ты не рассматривал вариант работы Квик и TradeMatic Strategy Trader?. Правда,он платный – 350 рублей в месяц, если версия не TradeMatic Pro Планирую, его потестить в ближайшее время. Так, что о впечатлениях отпишусь
        P.S. Ничего, что, я на ты перешел? :)

        • Дмитрий Власов пишет:

          Конечно, на Ты удобнее.
          По поводу TradeMatic – я так понимаю, это практически русский Велс, только с добавленными глюками.

          Я думал такой вариант возможен – поиск и оптимизация на велсе, а торговля с помощью ТСЛаб. Но конечно, если адаптер хорошо работает, то удобнее просто через Велс.

  2. Евгений пишет:

    Интересно, на каких тайм-фреймах работает этот адаптер?

    • Дмитрий Власов пишет:

      А Вы про какой из 3-х адаптеров спрашиваете?

      • Евгений пишет:

        Да я уже на их сайте нашёл: мин – минута, макс – год
        я про связку квик и велслаб

        • Дмитрий Власов пишет:

          А я в инструкции вычитал, что минимальный таймфрейм, с которым можно работать – тик. Буду пробовать.

  3. Зорин_Олег пишет:

    Имя и фамилия бывшего разработчика «ZerichAlgo Trading» пишется Дмитрий Горяинов, поправьте.
    О.З.

  4. rasswet пишет:

    посмотрите еще http://www.itplan.ru/TraderExplorer/MetaStockWLD.aspx
    в копилку…

  5. rasswet пишет:

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

    • Дмитрий Власов пишет:

      Да, я тоже к такому выводу пришел. Кстати, Вашу систему заканчиваю кодировать. Скоро пришлю.

      • rasswet пишет:

        спасибо огромное!

      • rasswet пишет:

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

  6. Зорин_Олег пишет:

    Считаю, что Wealth-Lab необходимо использовать как среду для разработки торговых стратегий, а затем стратегию в виде торгующего алгоритма (кода) с небольшим управляющим интерфейсом адаптировать или присоединять к понравившемуся торговому терминалу или к бирже напрямую.
    1.Считаю такую конфигурацию более надёжной в плане устойчивости взаимодействия разных программ.
    2.Wealth-Lab не задействуется в торговле, а значит, может быть использована для разработки и оптимизации новых стратегий.
    3.Программы, которые задействованы в боевой торговле лучше не трогать.
    4.Хотя, можно купить второй Wealth-Lab
    О.З.

    • Дмитрий Власов пишет:

      Да, наверное второй Велс-Лаб будет наилучшим решением. Тем более там скидку при покупке второй версии дают. Кажется будет стоить 300 долларов, а не 800. Все-таки в Велсе удобнее, чем в стороннем решении – сразу и отчеты видишь такие же и сравнить их можно с теоретическими сделками, которые должны были произойти.

  7. Vladimir пишет:

    А каждый год 150$ за каждую копию платить? Т.е. если 2 купили, то 300$ ежегодно?

    • Дмитрий Власов пишет:

      Что за одну 150 долларов каждый последующий год – это точно. А вот со 2-й копии – нужно уточнить.

  8. [...] Автоматизация подачи торговых сигналов с помощью Wealth-L… [...]

  9. Алексей пишет:

    Дмитрий, добрый день.

    Вроде уже много времени прошло. Как ваши впечатления от продукта РТТ (Велс и Квик)? Что работает, что нет? Как поддержка и обновления?

    Алексей

    • Дмитрий Власов пишет:

      Алексей, я уже писал, что стал пользоваться сервисом WLRT (Wealth-Lab Russians Trader) – это Арсен яковлев и команда, которые раньше работали в Церихе и делали ZerichAlgoTrader. Вот их сайт: http://wealth-lab.net

      Их решение мне лично подошло больше чем решение от RTT. Хотя еще раз скажу, что разработчики QUIKLiveTrading тоже молодцы и со временем их решение будет отличной альтернативой.

      WLRT работает нормально. Конечно не без глюков (как и в любом программном решении), но торговать на автомате можно. Вот где обсуждение можно посмотреть:

  10. Алексей пишет:

    Дмитрий, спасибо за оперативный ответ.
    Слышал что у Цериха много глюков было с этим продуктом.
    А сравнить в плане устойчивости WLRT и QUIKLiveTrading можно?
    Ребята из RTT позиционируют себя партнерами Фиделити. Не знаете правда и это серьезный плюс?
    Не подскажете есть полная инструкция на русском на Велс 6.2 и выше?

    • Дмитрий Власов пишет:

      Как не странно, партнерами Фиделити позиционируют себя и ребята из WLRT… Хотя официальных представителей Фиделити, насколько я знаю, в России нет. А вот партнеров – как оказалось, много.

    • Name (required) пишет:

      Вэлслаб делают не Фиделити, а MS123. Контрольный пакет АО MS123 сейчас принадлежит брокерской фирме Фиделити, но программерская фирма MS123 это не брокер Фиделити. Китайцы купили Вольво, а и индусы Лэнд Ровер. Но Вольво не китайское авто, а Лэнд Ровер не индийское… MS123 – не Фиделити.

  11. Алексей пишет:

    Спасибо

  12. Андрей пишет:

    –[[Если Вы хотите заняться творчеством - попробуйте с помощью языка программирования C# и вспомогательных средств (например, библиотеки Stock#, разработанной Михаилом Суховым и товарищами) создать собственную программу, которая подключается к брокеру, следит за базами данных, отдает и контролирует приказы.]] Странные у вас рассуждения зачем вы изобретаете велосипед и парите людям мозги, программу можно писать просто на lua в quik, штатным способом через notepad++ с подсветкой lua и с отладкой в decoda. И это совсем не трудно lua во многом схож с с++, который знает сейчас любой ученик в школе, который учился немного лучше чем на 3

Оставить комментарий