Александр Муханчиков
Александр Муханчиков личный блог
06 января 2012, 14:12

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

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

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

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

                      Спасибо за ответ.
  • wavelet
    06 января 2012, 14:25
    Руки
    Stock#
    Wealth-Lab :)
  • waceto
    06 января 2012, 14:32
    Первый бот был в экселе-смартсом. ща руками торгую), всё вот планирую с StockSharp разобратся да всё время нехватает.малёха QPile использую.
    • Werner Heisenberg
      06 января 2012, 18:15
      Юзаю активно qpile и transaq
      transaq нравится больше но это все субъективно они оба хороши но Transaq лучше :)

      см. профиль
  • MaxStark
    06 января 2012, 14:35
    думал с чего начать. решил среднесрочные стратегии сначала в qpile автоматизировать, но смотрю в сторону стокшарпа. купайл только временное решение, для освобождения времени. по стокшарпу начал разбираться, возможно купайл брошу раньше, чем думаю :) для быстроты перехода на стокшарп имхо надо побольше примеров, простых стратегий, но от и до рабочих. либо какой-то простой шаблон-скелет. на таких примерах переходить или обучаться получается гораздо быстрее если человек подкован в программировании. пока выбор происходит в сторону, где быстрее можно запустить.
      • MaxStark
        06 января 2012, 14:45
        Александр Муханчиков, вот я их как раз и изучаю, поэтому купайл брошу скорее чем думаю. вобщем скажу так, что стокшарп только первым впечатлением отпугивает, потом понимаешь что все круто. ну может не примеры, а пошаговый гайд какой-то, в хелпе что-то подомная под квиком как раз видел
      • churinga
        06 января 2012, 16:07
        Александр Муханчиков, а где то есть скелет полностью готового робота с какой нить простеньктй стратегией зашитой?
    • rusalgo.com
      06 января 2012, 15:06
      MaxStark, купайл это жесть =(
      • MaxStark
        06 января 2012, 15:09
        Горбунов Алексей, это да, согласен, там все печально
      • Роботорговец
        06 января 2012, 15:38
        Горбунов Алексей, почему? там всё просто готовый робот всё на русском, только подставь условие исполнения всего 10 команд изучить-не надо быть программистом, в отличии от всяких шарпов, где сначала заплплати нереальным колчесвом времени сили т.д… а потом может чтото получиш. квик на порядок проще и надёжнее любого другого способа. Сложные языки оправданы только в случае очень сложных расчётов типа фурье, интегралы и т.д.
        • rusalgo.com
          06 января 2012, 15:43
          Роботорговец, qpile это из разряда — машина не роскошь, а средство для передвижения. Хочется от робота стабильной и комфортной его работы. На qpile такого не получишь.
          • MaxStark
            06 января 2012, 15:47
            Горбунов Алексей, для большинства проблема с какой стороны к стокшарпу подступиться. синтаксис c# не проблема. поэтому нужен гайд хороший от а до я 8) тогда будет самой популярной платформой — если вы к этому стремитесь конечно. с наилучшими пожеланиями :)
              • Сармин Алексей (escoman)
                06 января 2012, 15:54
                Александр Муханчиков, вряд ли это поможет…

                Я собственно почему предложил видео-презентации сделать, потому что это будет более наглядно.
              • MaxStark
                06 января 2012, 15:54
                Александр Муханчиков, вполне. главное, чтобы было место, где можно быстро найти ответы на всякие вопросы как подключаться и следить за подключением/ как получить свечку/ как выставить ордера/ как управлять позой и размером позы. ну и т.п. и с примерами. все конечно имхо :) я вот реально разрываюсь сейчас начинать с купайл(куча примеров и достаточно описано все) и стокшарп (смущают подводные камни, которые могут встретиться, некий туман еще в голове)
            • rusalgo.com
              07 января 2012, 14:12
              MaxStark, мы вас слышим =) и стараемся реализовывать популярные пожелания. Студия должна решить часть проблем ;) и дальше будем развиваться
          • Роботорговец
            06 января 2012, 15:48
            Горбунов Алексей, да как тут раз всё стабильно, нет никаких постредников, выход сразу на биржу-надёжость. комфорт одинаковый, только квик уже готов к работе, а за шарп нужно работать отдельно-не нужные затраты.(повторюсь если у вас не сложный алгоритм типа черепашек-нидзя)
          • Werner Heisenberg
            06 января 2012, 18:18
            Горбунов Алексей, ну раз вы на qpile не получили это не значит что получите ну другом языке.
        • Евгений
          06 января 2012, 15:51
          Роботорговец, > и надёжнее любого другого способа.

          С учетом того, что C# разрабатывает команда из 40 человек, а Qpile поддерживают (даже не разрабатывают, а только лишь поддерживают) 0.5 сотрудника Арки, с вашим утверждением сложно согласиться. Тем более, что Квик сам по себе не является надежной платформой для роботов, о чем сами же создатели заявляли не раз. У вас видимо Квик не падал в течении торговой сессии ни разу.
          • Werner Heisenberg
            06 января 2012, 18:20
            reist, голословные утверждения… чем квик ненадежен то сам по себе?
            • Евгений
              06 января 2012, 19:27
              Dimanite, все нормально, Квик рулит. Все роботы на ЛЧИ торгуют через него и написаны они на Купайл.
          • Роботорговец
            07 января 2012, 16:44
            reist, вы ответили на другую тему. русские вёдра штампуют 2 человека, а венецианские 100 человек-это не значит что в русских хуже переносить воду. кто там чё разрабатывал вообще пофиг, мы говорим о прибыли, т.е при тех же результатах торговли(надёжности и полученных реальных деньгах), на квике затрат меньшепри раз в 100000, чем на шарпах. #-крутая прога-не спорю, но для расчета пересечения 3-х линий, такая мощная система просто не требуется.
        • Werner Heisenberg
          06 января 2012, 18:17
          Роботорговец, согласен
  • Казай Мазай
    06 января 2012, 14:41
    Саш, стокшарп умеет алгоритм тестить сразу на большом количестве инструментов?
  • RIH2
    06 января 2012, 14:53
    Использую QUIK API, DDE, Transaq2Quik. Переходить на что-либо другое не планирую, потому что этого более чем хватает и весь код написан мной, а значит я могу его менять как мне хочется.
  • waceto
    06 января 2012, 15:03
    Александр а вы не планируете создать свою базу данных? таких параметров как Кол-во заявок, ои, Общий спрос и предложение ну итд. и транслировать это. и как смотриш на это?
  • xTestero
    06 января 2012, 15:17
    Quik API + Delphi
    почему не StockSharp? потому как код закрытый, ну и реализация на делфи для меня попроще, чем на C#
    • Сармин Алексей (escoman)
      06 января 2012, 15:22
      xTestero, smart-lab.ru/blog/22771.php

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

              По исходникам. Вопрос есть ли смысл?
              Если совместную разработку делать, то можно и открыть исходники.
              • xTestero
                06 января 2012, 16:06
                escoman, чтоб топик оффтопом не заваливать скинь плиз скайп/аську в личку?
  • vvkg
    06 января 2012, 15:20
    тоже ТСЛаб,
    потому как совсем не програмёр и рынок ПОКА не основной доход, основная моя проблема — вера в робота и невмешательство в его работу…
  • Сармин Алексей (escoman)
    06 января 2012, 15:26
    Собственная торговая платформа… SAT.

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

    Хотя, конечно, в СтокШарпе привлекает то, что библиотека поддерживается многими пользователями/разработчиками…
  • Евгений
    06 января 2012, 15:54
    У меня только робот который автоматом ставит стоп и убирает если закрываюсь сам по рынку)))
  • inc
    06 января 2012, 15:54
    руками -> Excel+Альфа директ -> smartCom -> P2
    • Mikhail Sukhov
      06 января 2012, 15:57
      Mx, ничего себе. Сколько лет ушло на этот путь?
      • inc
        06 января 2012, 16:01
        Mikhail Sukhov, серьезно 4 года, до этого баловался только. Забыл добавить — там где руками еще паралельтно много чего на MQL писано было под форекс. )
      • Сармин Алексей (escoman)
        06 января 2012, 16:05
        Mikhail Sukhov, реально многие роботорговцы прошли этот путь.

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

    Использую 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
  • Spekyl
    06 января 2012, 18:25
    Меня от сток шарпа как и от шарпа вообще отделяет только неумение потоки программировать. Вернее не потоки, а изменеие из одного потока данных в другом.
    • Mikhail Sukhov
      06 января 2012, 18:26
      Spekyl, самое интересное, что изменение данный в одном потоке и в нескольких ничем не отличается. Но знание потоков для роботов — это must have. Потому что биржа — потоковая модель. А не синхронная, как это любят представлять Велс или Квик.
      • Сармин Алексей (escoman)
        06 января 2012, 18:28
        Mikhail Sukhov, в смысле то, что у вас называется событийной моделью?
        • Mikhail Sukhov
          06 января 2012, 20:26
          escoman, событийная модель — это высокоуровневая обертка над потоками. И там количество сценариев ограничено. Поэтому сами потоки в любом случае нужно уметь использовать.
          • Сармин Алексей (escoman)
            06 января 2012, 21:11
            Mikhail Sukhov, потоки — в смысле threads?

            Я просто не понял сути понятия «поток» в данном контексте, который упоминал Spekyl.
            • Mikhail Sukhov
              06 января 2012, 21:13
              escoman, потоки — да, треды. Но событийная модель — это несколько другое. Это больше стиль, чем механизм.
              • Сармин Алексей (escoman)
                06 января 2012, 21:18
                Mikhail Sukhov, а ну это понятно.
                Можно и с одним потоком событийную модель построить.

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

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

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

                  this
                  .When(Depth.BestBidMore(upLimit))
                  .Do(/* обрабатываем конкретное правило повышения бида */);
                  • Сармин Алексей (escoman)
                    06 января 2012, 21:30
                    Mikhail Sukhov, понятно.

                    Т.е. типа использование анонимных методов? Кажется это так называется.
                    • Mikhail Sukhov
                      06 января 2012, 21:32
                      escoman, лямбд… Не важно, можно и через обычные разработчики. Но смысл в том, что императивные языки не очень годятся под события. Тут рулит функциональный стиль. И C# медленно но верно к нему сползает. В следующей версии вообще поддержка событийного подхода будет на уровне языка. Тогда все станет еще роднее и удобнее.
      • Spekyl
        06 января 2012, 18:33
        Mikhail Sukhov, а есть пример с комментариями для тупых, или суть в двух абазацах. Я умом понимаю, что как-то просто все решается, но в большинстве книжек про многопоточность либо заумь (для меня, во всяком случае) либо кратко, что она вообще есть.
    • Сармин Алексей (escoman)
      06 января 2012, 18:27
      Spekyl, какие потоки? Что Вы имеете в виду?
  • Ivan Antipin
    06 января 2012, 20:42
    в стокшарпе потоковая модель косячная — правда имел дело только с квиковским апи — но все же — нафига на каждый колбак по потоку вешать — один поток рулез — гемора в разборе полетов на порядок меньше получается имхо
    • Mikhail Sukhov
      06 января 2012, 20:46
      IAA, количество потоков != количеству событий. Не плохо бы разобраться в вопросе, прежде чем ярлыки вешать.
  • Ivan Antipin
    06 января 2012, 20:57
    могу подискутировать но лень ))
    потоки это зло если пользовать их неумеючи
    если даже либа квика подразумевает мультипоточные коллбаки — я бы все равно все сводил в один тред — и никакой синхронизации и гемора — 50к небольших событий можно в секунду обрабатывать в одном треде — думаю столько ртс не снилось
  • Ivan Antipin
    06 января 2012, 21:06
    я в потоках последние 6 лет)) — можно сказать собаку съел
    правда не знаю спецификации взаимодействия сторонних с c#
    но для того чтобы сказать что тредовая модель в стокшарпе убогая мне инфы достаточно
      • Сармин Алексей (escoman)
        06 января 2012, 21:17
        Александр Муханчиков, мне тоже интересно.

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

        Поэтому, кстати, меня тоже заинтересовал S#. Хотя для позиционных роботов по фигу, что в одном потоке обработка идёт, что в разных. :)
  • InraidoTrading
    06 января 2012, 21:13
    LMAX API
    • Mikhail Sukhov
      06 января 2012, 21:15
      InraidoTrading, IMAX API. SendOrder3D =)
      • InraidoTrading
        06 января 2012, 21:20
        Mikhail Sukhov,
        LMAX — London MultilAteral Exchange. У них свой API, я использую .NET.
        К трёхмерной графике отношения не имеет :)
        • InraidoTrading
          06 января 2012, 21:22
          Ой, MultiAsset :)
        • Mikhail Sukhov
          06 января 2012, 21:27
          InraidoTrading, а я уже думал теперь роботом можно торговать прямо из кинозала =(
  • Stef.Meyer
    06 января 2012, 22:03
    юзаю то что находится под черепной коробкой, точнее потихоньку сам превращаюсь в робота))))
  • Ivan Antipin
    07 января 2012, 09:44
    насчет убогости стокшарповой модели — не вижу смысла иметь больше одного треда на биржу и если не хватает производительности то это уже кривые ручки…

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

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

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

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

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

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

    в любом случае удачи — дело все равно полезное
  • Oleg
    23 марта 2012, 18:04
    Если нужно помочь с роботом стучи мне, www.katkov.us

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

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