Мальчик buybuy
Мальчик buybuy личный блог
11 октября 2019, 16:27

Вопрос по платформе, годной для HFT (specially for Eugene Logunov). Навеяно топиком fxsaber

Коллеги!

А есть ли на рынке коммерческое изделие, позволяющее тестировать стратегии на тиковых данных и размещать ордера на исполнение без косяков, в ценовой категории до $100k (аренда — до $5k)? Т.е. нужен терминал/тестер, оптимизатор не обязателен. CQG не предлагать.

Сам для пары пилотных HFT-проектов использую TSLab и MT5, параллельно ваяется своя енжина.
Оба приведенных продукта неплохо работают, пока мы не начинаем работать с задержками не больше минуты (скромно молчу про секунды и миллисекунды, про микросекунды даже не заикаюсь). Дальше оба продукта начинают грубо косячить, как на тесте, так и на исполнении.
Поддержка все всасывает, что-то корректирует, по чему-то явно отписывается, что не видит смысла вносить в продукт измененения и просит учитывать различия ручками и/или с помощью самописного софта.
Не хочу (и не буду) устраивать здесь говносрач продуктивное интеллигентное обсуждение указанных продуктов, но косяков в них полно (на малых таймфреймах), что-то лечится (напильником — реверс-инжиниринг и переписывание отдельных dll), что-то не лечится (лезть в ядро некошерно, да и незачем).

Так есть разумные по цене профессиональные решения? Или только ручками ab ovo?

С уважением за любой конструктивный ответ

P.S. Говнотерки продуктивное и интеллигентное обсуждение деталей конкретных продуктов поддерживать не буду. Не продаю, а покупаю.
P.P.S. Под нормальным продуктом понимается продукт с исчерпывающей документацией (хотя бы для программера)
67 Комментариев
  • tashik
    11 октября 2019, 16:40
    насколько я знаю, у всех какой-то самопал на плюсах. Спасибо за пост, самой интересно узнать, вдруг я что-то пропустила.
  • CloseToAlgoTrading
    11 октября 2019, 17:19
    Позвольте поинтерисоваться, а в чем проблема тестирования с использованием тиковых данных?
    зы. В целом, ведь любой фреймворк для тестирования позволяет этот делать, если у вас есть данные конечно.
      • CloseToAlgoTrading
        11 октября 2019, 17:35
        Мальчик Buybuy, хмм… возможно так и есть. Попробуйте глянуть бэктредер, возможно там будет ситуация лучше, хотя не уверен. 

        Вы там еще про 100к написали… т.е. вы еще и объемы думаете учитывать? тогда наверное сложно будет что то найти…
      • ves2010
        11 октября 2019, 17:52
        Мальчик Buybuy, более того… ставишь лимитку например по 200… цена походит… упирается в 200, но не переходит через 200...

        и сразу вопрос а будет ли сделка? тестировщик напишет что сделка была,
        а в реальности все зависит от очереди в стакане 
        • ch5oh
          11 октября 2019, 18:03

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

        • SergeyJu
          11 октября 2019, 18:08
          ves2010, я всегда принимал, что выполняется покупка, если цена была на тик выше. Продажа — если на тик ниже цены в заявке. Но если объем больше 1 лота, и это может оказаться хуже реального исполнения. 
            • ves2010
              11 октября 2019, 19:06
              Мальчик Buybuy, ну как бы я те больше скажу...
              в реальных торгах сделки идут быстрее чем данные о цене...

              т.е. ставим лимитку… она исполнилась и приходит сообщение, и только спустя некоторое время приходит цена… и как такое тестить?
                • Антон Денисков (Fry)
                  11 октября 2019, 22:50
                  Мальчик Buybuy, это надо всем! Просто мы сейчас находимся как до средневековья в тёмную эпоху. Когда любые научные знания прятались от всех в тёмных подвалах. На днях сидел всю ночь за столом с группой HFT-шников. Суть в том, что каждая команда тайно от других разрабатывает свой велосипед. Все попытки объединить труд упираются в сильные страхи. Платформа и система конкуренции стратегий — это и есть наше личное преимущество на рынке, говорят они.
        • yurikon
          11 октября 2019, 18:50
          ves2010, не пробовали пробивать уровень стопа из системы своим сайзом и «создавать» сигнал? ))) забавная штука  проскольз отрицательный ))
          • ves2010
            11 октября 2019, 19:07
            yurikon, мысль была, но ее технически сложно протестить
            этим балуется брокерня, т.к они видят скопления стопов и их срывают
        • tashik
          12 октября 2019, 01:04
          ves2010, Os.Engine имеет триггерную цену и цену ордера. Между ними разница на размер допускаемого проскальзывания. При достижении триггера ордер по цене триггер минус проскальзывание (или плюс, если шорт) идёт в стакан. В тестере анализируются тики и ордер или исполняется или отзывается через заданное кол-во секунд и автоматически выставляется новый, по заданным новым условиям. Имхо вполне вменяемая схема. 
      • tashik
        11 октября 2019, 18:40
        Мальчик Buybuy, у меня ося на трейдах (считай что тиках) работает, нальет в тестере по цене следующего трейда. Свечки же можно вообще не прорисовывать. Исходный код там открытый, научить его «размазыванию» (закрытие «хвост селедки») можно. Бесплатно. Но для HFT не особо годится, хотя коннект к плазе имеется. Тестировщик раз в секунду рассчитывает, для Ultra-HFT не покатит
      • quant_trader
        11 октября 2019, 21:42
        Мальчик Buybuy, «Все известные тестеры (в т.ч. 2 из содержания топика) исполнят Ваш ордер по Open(NextBar).»

        Амиброкер по любой
        limit_price=ref(c,-1)*0.999;
        Buy=L<limit_price;
        BuyPrice=limit_price;
        т е можно цену задавать непосредственно в коде
  • _sg_
    11 октября 2019, 19:09
    1. Быстрые стратегии (секундные) точно протестировать практически невозможно. Причины Вы сами описали прекрасно. 
    2. Можно написать Executer, который по реальному потоку Tick-ов и bid/ask — ов будет исполнять ордера. Получите некоторую приближенную оценку идеи.
    3. Но лучше сразу переходить на реальные торги малым size-ом. И смотреть как происходит реальный execution.
    Ведь главный плюс быстрых стратегий в том, что Вы сразу или, скажем мягче, в течение непродолжительного времени увидите и поймете работает идея или сразу в «топку». Вы сразу увидите все свои косяки и поймете мясо Вы или нет.
    В 2011 — 2014гг я делал так, как в пункте 3. У меня было не очень много  сделок по сравнению с  современным уровнем. Примерно 1000 в день на RI.
    Постепенно снижал к-во сделок. Остановился где-то на 320 — 350.
    Это было оптимально для моих стратегий.
    Ну а потом началось — Изменение шага цены, Увеличение комиссий.
    Ухудшение performance. Значительное. Я понял, что это Тренд.
    И завязал со своими быстрыми (секундными ) стратегиями.
    Я желаю Вам успехом в этом направлении.
    Но хочу подчеркнуть, что главные сложности не в том, чтобы что-то реализовать и протестировать, а в том, что простое какое-нибудь административное решение, например, очередное увеличение комиссии, навсегда уничтожит Ваш волшебный алгоритм окончательно и бесповоротно.
    Всего хорошего.
  • yurikon
    11 октября 2019, 19:15
    Универсальные вещи всегда будут проигрывать решениям под конкретную задачу. 
    Тестер без знания особенностей биржи, тоже бесполезен. Вот смотрите, тест простого маркет мейкера  на тиках на XBTUSD, биржа BITMEX. Можно подумать — грааль, если не знать, что в такие моменты биржа просто уходит в оверлоад и не принимает ордера.


      • Антон Денисков (Fry)
        11 октября 2019, 23:05
        Мальчик Buybuy, для крипты это норма. Причём там всё в динамике меняется. Надо постоянно мониторить правила, но и не факт, что они соответствуют. Могут и задним числом обновить условия торговли.
  • yurikon
    11 октября 2019, 19:45
    Нет, просто в такие моменты биржа не принимает ордера вообще. Это как первая секунда на фортсе- висит груша, нельзя скушать )))
    Если нужно hft, только своё пилить с учётом всех особенностей.
  • fxsaber
    11 октября 2019, 19:52
    Использую надстройку над MT5-тестером (выкладывал). Исполнение происходит ровно по тем правилам, какие задашь.

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

    Все, что нужно от MT5-Тестера — его внутренний таймер, подача тиков, облачный оптимизатор.

    Надстройка — только учет исполнения.

    Такое ощущение, что программеры некомпетентны. Не нужны никакие DLL или разборки с MQ, чтобы из MT5-тестера сделать то, что хочется.
    • ch5oh
      11 октября 2019, 20:04

      fxsaber, когда Вам прикроют обнаруженную лазейку — только вопрос времени. =)

      • fxsaber
        11 октября 2019, 20:22
        ch5oh, поясните.
      • fxsaber
        11 октября 2019, 20:22
        Мальчик Buybuy, давайте на примере все же. Если хотите не просто поговорить.
          • fxsaber
            11 октября 2019, 21:08
            Мальчик Buybuy, зачем устраивать дискуссию, если достаточно просто показать пример проблемы? Иначе получается, что заявляете о наличии проблем, но не озвучиваете их.

            Многие люди работают с поддержкой. Информация по программисту ни о чем.
              • fxsaber
                11 октября 2019, 21:14
                Мальчик Buybuy, только ЗА.
    • yurikon
      11 октября 2019, 20:26
      fxsaber, мт5 умеет работать напрямую со шлюзом биржи или только через сервер брокера?
      • fxsaber
        11 октября 2019, 20:32
        yurikon, есть два режима работы MT5.

        1. Как полноценная торговая платформа. Тогда прокладка в виде сервера обязательна.

        2. В виде урезанного торгового Терминала. Когда пишется фидер, который торговое окружение биржи (для крипты так делается часто) отображает в виде кастомных символов и торгового состояния счета. Это делается напрямую через API биржи.

        А торговый робот запускается на кастомном символе с минимальными изменениями. Все работает почти так же, как на родном символе для робота. Только отправка ордеров идет через «фидер обратной связи».

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

        Так в одном Терминале MT5 можно торговать одновременно много бирж, например.

  • Joni2
    11 октября 2019, 20:03
    NinjaTrader 8
  • bozon
    11 октября 2019, 20:41
    Если честно, то я врядли что-то могу дельное Вам подсказать. Ваш HFT принесёт выхлоп только если Вы маркетмейкер и планируете собирать объёмы. В противном случае тики вообще бесполезны — меньше пяти минут смысла лезть нету.
    • fxsaber
      11 октября 2019, 21:10
      bozon, анализирую только тики и для толстокожих ТС. Бары ни к чему, если есть тики.
    • bozon
      12 октября 2019, 11:42
      bozon, заинтриговали Вы своим хфт. Их технологии так или иначе сводятся в очень короткий опцион атм (t=1 минута и больше). Не понятно только что к чему торговать:)) И расчитать потенциальную доходность можно только на истории (нет такой q, которая *t). А так и квик вполне подойдёт.
  • Gypsy
    11 октября 2019, 20:58
    Сам написал себе тестер.
  • Remarka
    11 октября 2019, 22:08
    NinjaTrader 8 не подойдет, интересно?
  • EY
    11 октября 2019, 22:32
    Посмотрите на
    www.deltixlab.com/products/
    с Россией похоже не работают, веб сайт открывается через VPN
    когда-то читал их документацию, выглядит солидно. Но дорого
  • Cristopher Robin
    12 октября 2019, 01:08
    в таком масштабе времени все привычные для вас представления перестают работать, поэтому не существует и не может существовать специального годного софта для хфт. В хфт исполнение это часть алгоритма и софт пишется под алгоритм.
      • Cristopher Robin
        12 октября 2019, 07:48
        Мальчик Buybuy, настоящие хфтшники может и не сядут, но по бюджетам похоже что вы с ними не сядите. Напишите мне, пока у вас деньги не закончились.
  • Евгений Шибаев
    12 октября 2019, 16:41
    В Jatotrader есть механизм тестирования на тиках который с реалом совпадает на более чем 100%, т.е. сделки на реале совершаются чаще чем на тестере. Просто реализован механизм строгого исполнения заявки на ценовом уровне. Заявка считается исполненной если цена после выставления заявки  была на тик лучше цены заявки и объем, прошедший по этой цене больше или равен объему заявки. Если меньше, то часть заявки останется неудовлетворенной. На счет ХФТ не знаю но порядка 3000 сделок за день по инструменту с тестом идут один в один, иногда чаще, по вышеуказанным причинам
    • _sg_
      12 октября 2019, 23:39
      Евгений Шибаев,
       Заявка считается исполненной если цена после выставления заявки  была на тик лучше цены заявки
       
      Правильно ли я понял, что выставляя заявку например 
      «Buy 1 SiZ9 @65500 Limit»
      Вы считаете исполнение когда Price = 65499 ?
      Если это так, то на мой взгляд, получается искусственное приписывание себе 1  MinStep в плюс. Что существенно влияет на результаты тестов в сторону улучшения.
      Допускаю, что я что-то не понял в Вашем комментарии.
      • Евгений Шибаев
        13 октября 2019, 11:59
        _sg_, да, понимаете правильно только приписки нет — ордер считается исполненным по цене выставления Limit 65500
    • fxsaber
      13 октября 2019, 00:16
      Евгений Шибаев, пробовал так же два режима исполнения: по касанию, по пересечению ценой лимитника. Варианты дают разные результаты, поэтому смотрю на OrderOpenPriceBest (наилучшая цена открытия за время жизни позиции) и OrderOpenPriceLength (суммарная длительность цен лучше цены открытия за время жизни позиции). В зависимости от этих показателей, принимаю решение, какой тип исполнения выбрать.

      Идеально только касаться редко получается, поэтому для Тестера оставляю исполнение по касанию. На реале при первом касании может не исполниться, зато в виртуальном исполняется и уже держится лимитка на этом уровне, пока на реале не исполнится, либо пока в виртуале не закроется поза.
      • _sg_
        13 октября 2019, 13:33
        fxsaber, 
        лично я делал по касанию с Random.
        Замедляет немного весь процесс.
        Но я считаю это лучше пересечения.
        • fxsaber
          13 октября 2019, 13:52
          _sg_, при рэндоме одинаковые проходы выдают разные результаты. Задавал по i-му касанию или по времени жизни тика. В общем, вариантов может быть масса. Главное, чтобы была простая возможность их реализовывать. Поэтому со своим решением (случай, когда не так страшен черт, как его малюют) лучше всего. Сделал на базе MT5-Тестера. Легко и эффективно получилось.

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

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