CloseToAlgoTrading
CloseToAlgoTrading личный блог
04 января 2024, 15:48

Вопрос алготрайдерам по внутреннему механизму сведения позиций.

Добрый день,

Хочу поинтересоваться у тех у кого крутятся одновременно большое количество стратегий с пересекающимися инструментами.

Каким образом реализовано, технически, сведение позиций между стратегиями?

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

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

Поделитесь опытом, коллеги.
34 Комментария
  • SergeyJu
    04 января 2024, 17:21
    тип исполнения — только лимитка
    таймфрейм — один, самый мелкий
  • Дмитрий Овчинников
    04 января 2024, 17:45
    Каждая стратегия ведет свою позицию (свои позиции). Никакого сведения нет. Проблем с «таймингом и типом исполнения» нет. 
  • Replikant_mih
    04 января 2024, 18:35

    Послушаю в сторонке).

     

    У меня архитектура такая, что стратегия-TF-всеТикеры — сигналы на исполнение брокеру в одно время улетают (последовательно, но есть момент времени где я уже вижу все сигналы). А вот соседние такие же комбинации, например, другая стратегия — они уже «сами по себе» и нигде нету участка где мы ждём отстающих. Теоретически я могу ждать пока все подтянутся и дальше какую угодно логику натягивать, в т.ч. сальдировать и выводить на рынок только разницу, но в этом случае либо надо ждать самых медленных ну либо ждать какое-то время в которое N% сигналов укладывается, уложившихся сводить, остальные без сведения. В общем в любом случае «ждать» — это какие-то доп. расходы (на проскальзывании), скомпенсирует ли оно излишние комиссии — долей таких перекрытий определяется. У меня пока, вроде, не особо актуально.

  • Кирилл Гудков
    04 января 2024, 19:30

    Про один таймфрейм (M1) и унифицированное исполнение (лимитки) уже выше поминали. Все страты на одном тикере не сами выставляют ордера, а отправляют хочухи {цена, объем, знак} на следующий бар в общий котел. Там вычисляется общая позиция в стакане, из нее вычитается текущая позиция, сначала накатываются отмены заявок, потом добавления.

     

    Код интернализации действительно срабатывает очень редко, он кстати на заставке профиля :). Но сведение заявок от десятков страт к 1-2 транзакциям полезно каждый день, без него брокер бы меня давно придушил за к-во транзакций/сек.

     

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

     

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

    Разнонаправленные позы бывают нередко, но вероятность того, что зеркальные стратегии примут решение встать в разные стороны именно таки на одном и том же баре, околоноля. Если такое происходит, то даже в лог 1 уровня пишется запись типа «охнихренасебе случай»

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

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