Блог им. Shurik

Что вы используете для написания роботов?

Что вы используете для написания роботов?

Alfa Direct API
Plaza 2
QPile
Quik API (свой DDE сервер, Transaq2Quik)
SmartCom
StockSharp
другое (Alor COM, TS Lab, Micex Gate, ...)
я торгую руками
Всего проголосовало: 325

Подниму вопрос, который многим интересен - какое API вы используете для написания роботов? В комментариях просьба написать почему и планируете ли менять API в дальнейшем. Если планируете - что мешает вам поменять прямо сейчас. P.S. Вариант StockSharp - использование S# для любого реализованного в нём API (Quik api, smartcom, alfa direct, alor, transaq, plaza2).
★17
111 комментариев
Плаза 2… для хфт (у меня на хфт акцент) альтернатив нет… использую полноценную сдк с фермой тестовых ботов, возможностью потиково записывать синхронно с точностью до млс данные по всем потокам с плазы в файл и тестовым сервером, на котором могу эмулировать торги как в реальном времени.
avatar
Karaya1, для ХФТ тестировать не по по тикам нужно, а по стаканам. А вообще потиковый бэктестер сейчас есть у многих. В том числе и у нас. Но, повторюсь, лучше все же стаканы. Разница в результаты порой такая же, как true и false.
avatar
Mikhail Sukhov, И стаканы иссественно тоже пишутся… я ж указал — «по всем потокам»…
avatar
Karaya1, Стаканы, сделки, общее кол-во заявок, ОИ… еще кой че… все с точностью до млс синхронно в один файл.
avatar
Karaya1, посмотрите у нас Гидру. Вы удивитесь, насколько то, что вы делаете для себя, есть уже у многих.
avatar
Mikhail Sukhov, можно пару вопросов про гидру относительно квика и плазы?
Насколько сложно сделать там получение и архивацию сделок по всем торгуемым инструментам? Т е не настраиваемый список получаемых а все что торгуется аналогично файлам на фтп ртс.
Можно ли накапливать бидаски т е снепшоты к примеру таблицы котировок?
avatar
nfxzhzh, да оно уже все есть. Фильтр по инструментам выключите — и усе. У нас все, что Плаза льет, архивируется. Стаканы правильным пацанам можем подкинуть =)
avatar
Mikhail Sukhov, а из таблицы сделок в Квике? Не дорос пока до Плазы.
Про стаканы в документации написано, а вот что касается накопления таблицы котировок как? Поясню вот есть например опционная борда, хотелось бы иметь секундную историю бидасков. Теоретически из квика можно вытащить историю изменений но это уже совсем нереально круто, пусть хотя бы снепшоты.

Хочу добавить возвращаясь к дискуссии на пауке про датафид признаю Вашу правоту по необходимости работать с ТВС.
avatar
nfxzhzh, ТВС из Квика экспортируется. Котировки (я так понял по ТТП) не экспротируются. Бидаски лучше лить через стаканы.
avatar
Mikhail Sukhov, и ТВС разбирается на все торгуемые инструменты не только по ФОРТС но и по ММВБ? Если так то очень здорово, уже это много.

Бидаски конечно хорошо бы лить через стаканы но Квик не потянет мне кажется открытые стаканы по всем инструментам.

Спасибо за ответ.
avatar
Руки
Stock#
Wealth-Lab :)
avatar
Первый бот был в экселе-смартсом. ща руками торгую), всё вот планирую с StockSharp разобратся да всё время нехватает.малёха QPile использую.
avatar
Юзаю активно qpile и transaq
transaq нравится больше но это все субъективно они оба хороши но Transaq лучше :)

см. профиль
avatar
думал с чего начать. решил среднесрочные стратегии сначала в qpile автоматизировать, но смотрю в сторону стокшарпа. купайл только временное решение, для освобождения времени. по стокшарпу начал разбираться, возможно купайл брошу раньше, чем думаю :) для быстроты перехода на стокшарп имхо надо побольше примеров, простых стратегий, но от и до рабочих. либо какой-то простой шаблон-скелет. на таких примерах переходить или обучаться получается гораздо быстрее если человек подкован в программировании. пока выбор происходит в сторону, где быстрее можно запустить.
avatar
MaxStark, а десятки примеров в архиве недостаточны для изучения?
Александр Муханчиков, вот я их как раз и изучаю, поэтому купайл брошу скорее чем думаю. вобщем скажу так, что стокшарп только первым впечатлением отпугивает, потом понимаешь что все круто. ну может не примеры, а пошаговый гайд какой-то, в хелпе что-то подомная под квиком как раз видел
avatar
Александр Муханчиков, а где то есть скелет полностью готового робота с какой нить простеньктй стратегией зашитой?
avatar
churinga, да, в архиве StockSharp (см. на сайте StockSharp.com), в Samples — есть много примеров готовых роботов на SMA.
MaxStark, купайл это жесть =(
avatar
Горбунов Алексей, это да, согласен, там все печально
avatar
Горбунов Алексей, почему? там всё просто готовый робот всё на русском, только подставь условие исполнения всего 10 команд изучить-не надо быть программистом, в отличии от всяких шарпов, где сначала заплплати нереальным колчесвом времени сили т.д… а потом может чтото получиш. квик на порядок проще и надёжнее любого другого способа. Сложные языки оправданы только в случае очень сложных расчётов типа фурье, интегралы и т.д.
avatar
Роботорговец, qpile это из разряда — машина не роскошь, а средство для передвижения. Хочется от робота стабильной и комфортной его работы. На qpile такого не получишь.
avatar
Горбунов Алексей, для большинства проблема с какой стороны к стокшарпу подступиться. синтаксис c# не проблема. поэтому нужен гайд хороший от а до я 8) тогда будет самой популярной платформой — если вы к этому стремитесь конечно. с наилучшими пожеланиями :)
avatar
MaxStark, может ли в этом случае помочь вики страницы, на которых всё будет подробно расписано самими пользователями?
Александр Муханчиков, вряд ли это поможет…

Я собственно почему предложил видео-презентации сделать, потому что это будет более наглядно.
Александр Муханчиков, вполне. главное, чтобы было место, где можно быстро найти ответы на всякие вопросы как подключаться и следить за подключением/ как получить свечку/ как выставить ордера/ как управлять позой и размером позы. ну и т.п. и с примерами. все конечно имхо :) я вот реально разрываюсь сейчас начинать с купайл(куча примеров и достаточно описано все) и стокшарп (смущают подводные камни, которые могут встретиться, некий туман еще в голове)
avatar
MaxStark, мы вас слышим =) и стараемся реализовывать популярные пожелания. Студия должна решить часть проблем ;) и дальше будем развиваться
avatar
Горбунов Алексей, да как тут раз всё стабильно, нет никаких постредников, выход сразу на биржу-надёжость. комфорт одинаковый, только квик уже готов к работе, а за шарп нужно работать отдельно-не нужные затраты.(повторюсь если у вас не сложный алгоритм типа черепашек-нидзя)
avatar
Горбунов Алексей, ну раз вы на qpile не получили это не значит что получите ну другом языке.
avatar
Роботорговец, > и надёжнее любого другого способа.

С учетом того, что C# разрабатывает команда из 40 человек, а Qpile поддерживают (даже не разрабатывают, а только лишь поддерживают) 0.5 сотрудника Арки, с вашим утверждением сложно согласиться. Тем более, что Квик сам по себе не является надежной платформой для роботов, о чем сами же создатели заявляли не раз. У вас видимо Квик не падал в течении торговой сессии ни разу.
avatar
reist, голословные утверждения… чем квик ненадежен то сам по себе?
avatar
Dimanite, все нормально, Квик рулит. Все роботы на ЛЧИ торгуют через него и написаны они на Купайл.
avatar
reist, вы ответили на другую тему. русские вёдра штампуют 2 человека, а венецианские 100 человек-это не значит что в русских хуже переносить воду. кто там чё разрабатывал вообще пофиг, мы говорим о прибыли, т.е при тех же результатах торговли(надёжности и полученных реальных деньгах), на квике затрат меньшепри раз в 100000, чем на шарпах. #-крутая прога-не спорю, но для расчета пересечения 3-х линий, такая мощная система просто не требуется.
avatar
Роботорговец, согласен
avatar
Саш, стокшарп умеет алгоритм тестить сразу на большом количестве инструментов?
avatar
Kazai-Mazai, да
Использую QUIK API, DDE, Transaq2Quik. Переходить на что-либо другое не планирую, потому что этого более чем хватает и весь код написан мной, а значит я могу его менять как мне хочется.
avatar
Александр а вы не планируете создать свою базу данных? таких параметров как Кол-во заявок, ои, Общий спрос и предложение ну итд. и транслировать это. и как смотриш на это?
avatar
towace, всё будет :)
Александр Муханчиков, как там у тебя дела с твоими проектами? что нового?
avatar
Quik API + Delphi
почему не StockSharp? потому как код закрытый, ну и реализация на делфи для меня попроще, чем на C#
avatar
xTestero, smart-lab.ru/blog/22771.php

Если интересно, конечно. :)
escoman, интересно ес-но, но а толку? не нащел в посте ссылки на «скачать»:)
avatar
xTestero, был просто отдельный пост с ссылкой на скачивание демки: smart-lab.ru/blog/23301.php, и хелпа: smart-lab.ru/blog/23416.php
escoman, скачал, посмотрю…
исходников не будет?:)
да, чисто из любопытства — как интерпретатор реализован?
avatar
xTestero, я взял уже готовый Pascal Script.
Правда его пришлось напильником дорабатывать. :)

По исходникам. Вопрос есть ли смысл?
Если совместную разработку делать, то можно и открыть исходники.
escoman, чтоб топик оффтопом не заваливать скинь плиз скайп/аську в личку?
avatar
тоже ТСЛаб,
потому как совсем не програмёр и рынок ПОКА не основной доход, основная моя проблема — вера в робота и невмешательство в его работу…
avatar
Собственная торговая платформа… SAT.

О СтокШарпе знаю. Но проблематично перескочить со своих разработок на чьи-то.

Хотя, конечно, в СтокШарпе привлекает то, что библиотека поддерживается многими пользователями/разработчиками…
У меня только робот который автоматом ставит стоп и убирает если закрываюсь сам по рынку)))
avatar
руками -> Excel+Альфа директ -> smartCom -> P2
avatar
Mx, ничего себе. Сколько лет ушло на этот путь?
avatar
Mikhail Sukhov, серьезно 4 года, до этого баловался только. Забыл добавить — там где руками еще паралельтно много чего на MQL писано было под форекс. )
avatar
Mikhail Sukhov, реально многие роботорговцы прошли этот путь.

О том же Сток-Шарпе, например, я узнал ещё года 2 назад. Когда была только версия под Квик.
escoman, мне для статистики. Купельщики вот надеются по быстрому, за пару месяцев роботов освоить. А я вот не понимаю, как можно этому научиться, не потратив несколько лет как минимум. И знания языка программирования для меня не особо сильно помогает. Все время натыкаюсь то на фундаментальщину, то на математику.
avatar
Mikhail Sukhov, Не путай понятия…
avatar
Mikhail Sukhov, раскажите пожалуйста подробнее о StockSharp Studio :) что это будет?
avatar
fau, графическая часть S# будет. Подробнее, когда выпустим. =)
avatar
Не совсем понятны мнения многих. Например, если человек владеет C#, то ежу понятно, что при первом взгляде на Qpile он его отметет за несовершенство. И зачем ему опускаться до менее совершенного языка. Но, если этот человек — здравомыслящий, он не будет его поносить, а просто поймет, что существуют разные задачи и разные подходы. Или вы делите, как дети, на тех, кто играет в сложные машинки и тех, кто играет в простые? РАЗНЫЕ ЗАДАЧИ!!!
avatar
Согласен с Работорговцем. Qpile за глаза достаточно для реализации большинства идей, где не нужна скорость больше 1 раз/сек. И вообще, чем старше человек, тем меньше кнопочек хочет на пульте телевизора. Я в молодости аж визжал, если в программе было как можно больше настроек, драйвера там менял всякие каждый день. А теперь — честь и хвала PnP! купил комп, а он сразу работает!!!
avatar
воздержался
планирую использовать StockSharp
avatar
роботы победители используют ITinvest и надо полагать SmartCom?
2008 — Eva
2009 — Dettier
2010 — robot_Panda
2011 — robot_PRADA
avatar
sam, :) вопрос интересный.

Т.к. СмартКОМ безбожно тормозил в те годы.
escoman, не тормозил, а глючил. ошибся я.
sam, через плазу2 они все
«моего» варианта нет, поэтому воздержался от голосования.

Использую c# и API к торговой платформе OEC Trader (брокер Open E Cry). Вот здесь лежит дока к этому АПИ:
openecry.ru/index.php/forum/5-torgovyj-terminal-openecry/117-dokumentatsiya-na-api-dostupa-k-funktsiya-terminala-oec-trader
Рустам Мингазов, «другое»
Александр Муханчиков, а точно, пропустил.
Mikhail Sukhov, так что скоро и ОЕК будем использовать.
avatar
Mikhail Sukhov, Хорошая тема.
Можем голосом пообщаться?
Рустам Мингазов, постучал в скайп
Рустам Мингазов, состыковались.
avatar
Mikhail Sukhov, Коллеги, было приятно пообщаться.
Mikhail Sukhov, сорри, не совсем понял на что деньги собираются? Коннектор — это грубо говоря через какой логин подключаться? или что?
Меня от сток шарпа как и от шарпа вообще отделяет только неумение потоки программировать. Вернее не потоки, а изменеие из одного потока данных в другом.
avatar
Spekyl, самое интересное, что изменение данный в одном потоке и в нескольких ничем не отличается. Но знание потоков для роботов — это must have. Потому что биржа — потоковая модель. А не синхронная, как это любят представлять Велс или Квик.
avatar
Mikhail Sukhov, в смысле то, что у вас называется событийной моделью?
escoman, событийная модель — это высокоуровневая обертка над потоками. И там количество сценариев ограничено. Поэтому сами потоки в любом случае нужно уметь использовать.
avatar
Mikhail Sukhov, потоки — в смысле threads?

Я просто не понял сути понятия «поток» в данном контексте, который упоминал Spekyl.
escoman, потоки — да, треды. Но событийная модель — это несколько другое. Это больше стиль, чем механизм.
avatar
Mikhail Sukhov, а ну это понятно.
Можно и с одним потоком событийную модель построить.

Я так понял, что Велс и Квик останавливают исполнение алгоритма робота на время, например, отправки заявки в шлюз?
escoman, повторюсь, это больше стиль. Например, чтобы реагировать на изменения стакана или изменения внутри бара, то в Велсе и Квике нужно довольно хитро написать скрипт. Там нет события. Если же использовать события, то все намного проще:

riDepth.Changed += () =>
{
// логика реагирования на изменение стакана
// срабатывает точь в точь, когда он меняется,
// а не когда заканчивается интервал
};

Событийная модель делает это читабельнее:

this
.When(Depth.BestBidMore(upLimit))
.Do(/* обрабатываем конкретное правило повышения бида */);
avatar
Mikhail Sukhov, понятно.

Т.е. типа использование анонимных методов? Кажется это так называется.
escoman, лямбд… Не важно, можно и через обычные разработчики. Но смысл в том, что императивные языки не очень годятся под события. Тут рулит функциональный стиль. И C# медленно но верно к нему сползает. В следующей версии вообще поддержка событийного подхода будет на уровне языка. Тогда все станет еще роднее и удобнее.
avatar
Mikhail Sukhov, ладно, ладно.
Не буду больше мучать. :)))
Mikhail Sukhov, а есть пример с комментариями для тупых, или суть в двух абазацах. Я умом понимаю, что как-то просто все решается, но в большинстве книжек про многопоточность либо заумь (для меня, во всяком случае) либо кратко, что она вообще есть.
avatar
Spekyl, какие потоки? Что Вы имеете в виду?
в стокшарпе потоковая модель косячная — правда имел дело только с квиковским апи — но все же — нафига на каждый колбак по потоку вешать — один поток рулез — гемора в разборе полетов на порядок меньше получается имхо
avatar
IAA, количество потоков != количеству событий. Не плохо бы разобраться в вопросе, прежде чем ярлыки вешать.
avatar
могу подискутировать но лень ))
потоки это зло если пользовать их неумеючи
если даже либа квика подразумевает мультипоточные коллбаки — я бы все равно все сводил в один тред — и никакой синхронизации и гемора — 50к небольших событий можно в секунду обрабатывать в одном треде — думаю столько ртс не снилось
avatar
я в потоках последние 6 лет)) — можно сказать собаку съел
правда не знаю спецификации взаимодействия сторонних с c#
но для того чтобы сказать что тредовая модель в стокшарпе убогая мне инфы достаточно
avatar
IAA, можно конкретики — что убогое?
Александр Муханчиков, мне тоже интересно.

Хотя я в своём SAT тоже отказался от идеи использования потоков. Но там проблема другая — старые VCL-контролы не поддерживают одновременных обращений из разных потоков.

Поэтому, кстати, меня тоже заинтересовал S#. Хотя для позиционных роботов по фигу, что в одном потоке обработка идёт, что в разных. :)
LMAX API
avatar
InraidoTrading, IMAX API. SendOrder3D =)
avatar
Mikhail Sukhov,
LMAX — London MultilAteral Exchange. У них свой API, я использую .NET.
К трёхмерной графике отношения не имеет :)
avatar
Ой, MultiAsset :)
avatar
InraidoTrading, а я уже думал теперь роботом можно торговать прямо из кинозала =(
avatar
юзаю то что находится под черепной коробкой, точнее потихоньку сам превращаюсь в робота))))
avatar
насчет убогости стокшарповой модели — не вижу смысла иметь больше одного треда на биржу и если не хватает производительности то это уже кривые ручки…

если уж так хотите использовать пул потоков тогда должна быть четко документированная модель а не просто синхронайз везде — это хорошая база для дедлоков

хорошая практика в таких программах привязывать тред не к типу событий а привязывать инструмент к потоку — те вся маркет дата и все ордера для конкретного инструмента проходят в одном потоке

в доках нет правил копирования доменных объектов — надо все определять эмпирически — что копируется что модифицируется и синхронизованно и доступно между различными потоками неясно

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

такую багу даже недавно видел на форуме что номер транзакции не был инициализированн в событии трейда — если логика робота основывается на этом он просто его пропустит — это типичный кросскондишн

короче если покопаться то наверное еще куча всего найдется — нет ни времени не желания

в любом случае удачи — дело все равно полезное
avatar
Если нужно помочь с роботом стучи мне, www.katkov.us
avatar

теги блога Александр Муханчиков

....все тэги



UPDONW
Новый дизайн