kvazar
kvazar личный блог
10 октября 2020, 17:47

Если начать сначала, что бы, какое подключение выбрали для работы механической торговой системы, для скорости?

Если есть личный опыт использования нескольких вариантов ДЛЯ MOEX, было бы здорово получить комментарий.

39 Комментариев
  • FinSerfing
    10 октября 2020, 18:02

    Прикол в том, что вы получите набор ответов.

    Но среди них будет очень мало тех, кто реально пробовал создавать коннекторы.

    Т.е. по сути вы узнаете мнение толпы.

    А толпа в подавляющем большинстве случаев ошибается.

      • FinSerfing
        11 октября 2020, 08:25

        kvazar, это срез из теоретиков и программистов.

        Которые к прибыльному трейдингу отношения не имеют.

  • Андрей К
    10 октября 2020, 18:04
    Уточните для какого рынка
      • Андрей К
        10 октября 2020, 18:25
        kvazar, ммвб плаза не подойдет. Остается только fix для заявок и fast для котировок. Можно взять сразу шлюз ASTS — он как плаза для forts
  • 3Qu
    10 октября 2020, 18:09
    Lua -C++. В общем, все основное, включая коды, есть в моем блоге
    • 3Qu
      10 октября 2020, 18:17
      kvazar, а куда и зачем вам скорость? Пипсуете? Для остального сверхскорость без надобности.
        • 3Qu
          10 октября 2020, 19:09
          kvazar, все вполне успевает я даже через Луа. Доли секунды ничего не решают.
          Если руками все успевается, то любым скриптом тем более.
    • FinSerfing
      10 октября 2020, 18:31

      kvazar, потому что Транзак привязывает к одному брокеру.

  • Нувот Вчеранов
    10 октября 2020, 20:18
    Я бы начал под Transaq Connector, не забывая про абстракционный слой, чтобы можно было потом другим коннектором подменить при необходимости.

    Плюсы: бесплатно и можно писать на любом человеческом языке, не корчась через пень колоду с луа внутри квика. Или с больным экспортом данных из квика и отдельным интерфейсом для подачи ордеров через квик.

    Минусы: ну да, только Финам.

    Сам я коннектор писал и немного погонял, правда в итоге он мне не пригодился, потому что я бросил спекуляции.
      • Нувот Вчеранов
        10 октября 2020, 20:38
        kvazar, ну я более всего подкован в джаве и котлине, так что писал на них. Но обратиться к .dll можно из любого полноценного языка.

    • FinSerfing
      11 октября 2020, 08:29
      Нувот Вчеранов, начинающий программист и абстрактный слой несовместимы.
      • Нувот Вчеранов
        11 октября 2020, 11:10

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

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

        А с квиком? Через луа кое-как? Писать на двух языках? Или копаться с DDE в 2020? Да это преступление против человечества.

        Лучше уж тогда сразу через коннекторы прямого доступа к бирже. Тем более если нужно действительно быстро, то другого варианта и нет.

        • FinSerfing
          11 октября 2020, 11:13

          Нувот Вчеранов, нет.

          Потом впихнуть его будет нельзя.

          Всё это закладывается на этапе проектирования.

          В противном случае получается высоко связанный код.

          Т.е. клубок проблем.

          Который затягивается на шее, выбрасывается и полностью переписывается.

           

          Программист начинающий.

          Я на этом настаиваю.

          Это отчётливо видно из постановки и формы вопросов.

          Он гонится за глубоко вторичным, упуская суть.

          Потому что не имеет опыта.
           

          Прямые коннекторы к бирже стоят денег, они сложнее в создании и их скорость в 99% не нужна.

          От слова «совсем».

          Это пустая трата времени и ресурсов.

          Такова реальность.

          • Нувот Вчеранов
            11 октября 2020, 11:19
            FinSerfing, да конкретно это задача это не рокет саенс, честно.
            Если человек не подумал и написал аля Транзак.дайМнеСилу, то нажать пару кнопочек чтобы IDE за тебя переписала на Коннектор.дайМнеСилу, а Транзак бы наследовал «Коннектор». Я немного (но очень немного) утрирую, но тут максимум на день работы если не пытаться пользоваться специфическими функциями какого-то конкретно коннектора.

            Коннекторы-то все примерно похожи и абстракционнный слой тут простой как 2 копейки. Послать/отменить ордер, получать цены.
            • FinSerfing
              11 октября 2020, 11:21

              Нувот Вчеранов, простой для опытного и рокетсайнс для начинающего.

              Это если делать отдельный модуль.

               

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

              Для начинающего она просто непосильна.

            • FinSerfing
              11 октября 2020, 12:35

              kvazar, вы абсолютно беспричинно хватаетесь за C++.

              Не понимая, что язык — это 1/10 от решения задачи.

              Нужно смотреть на набор готовых/актуальных библиотек, на стоимость написания и поддержки кода.

              А эти затраты просто запредельны.

              Ради чего ?

              Чтобы зарабатывать это не нужно.

                • FinSerfing
                  11 октября 2020, 12:59

                  kvazar, повторю ещё раз: во всех современных горизонтах вы присутствовать не сможете.

                  Как бы вам этого не хотелось.

                  Ибо время жизни не резиновое.

            • Андрей К
              11 октября 2020, 18:09
              kvazar, 
              . я хочу оценить ± подходов. 
              вообщем никто не высказался, тогда я вам расскажу. Берете свои сделки, находите их в ленте и смотрите что вокруг них происходит. Если до них в пределах секунды постоянно проходят объяемные сделки, то есть перед вами постоянно съедается сайз и вам не достается и вы попадаете на проскальзывание, тогда стоит задуматься насчет коннекторов побыстрее. А пока, cтарайтесь проектировать так, что связка робота к коннекторам была более менее универсальна и взаимозаменяема
  • ch5oh
    10 октября 2020, 22:32
    Условие «Для скорости» однозначно приводит к варианту Plaza.
  • wrmngr
    10 октября 2020, 22:52
    Это смотря что понимать под «скоростью». Кому-то хватает квика, а кто-то соревнуется за лишние микросекунды покупая  FPGA, чтобы разместить в дата-центре бирже на коллокейшене
      • wrmngr
        11 октября 2020, 00:21
        kvazar, это слишком расплывчато. Быстро сдать можно и звонком брокеру по телефону рыночной заявкой. Перевыставлять ордера тоже не проблема, если вы не собираетесь конкурировать за место в очереди заявок
        • FinSerfing
          11 октября 2020, 08:31

          wrmngr, именно.

          Техническое требование растёт из реальных потребностей торговой стратегии.

  • PavelS
    11 октября 2020, 01:32
    Я работал на Quik+Lua+C#, TransaqConnector, TransaqConnector HFT, PlazaII через инет и PlazaII в колокейшен. Transaq хорош, сбоев не бывает, но если нужна именно скорость то Plaza.
  • Andrew Morozov
    11 октября 2020, 14:36
    Тоже работал transaq, quik — lua-c++, plaza2. Транзак однозначно проще использовать и по скорости вполне хорош. В квике, правда, особых тормозов тоже не видел, но намного больше кода. Из минусов, тики у транзака на сервере есть только за текущий день. Огромный плюс, можно прямо в питоне загрузить библиотеку и без всяких костылей работать с данными. Другое дело, если Вы хотите получать синхронные с глубиной рынка данные о ваших заявках, только plaza2 и полный ордер лог. Либо если Ваш алгоритм чувствителен к качеству котировок, ни на одном апи у брокеров их тоже не будет.

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

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