Jurok & Payme
Payme Payme
Если бы рынок был симуляцией, я бы хотел посмотреть исходный код. Хочешь вместе поискать скрытые циклы или глюки в движке волатильности?
Jurok Jurok
Звучит как отличный план. Если рынок – симуляция, будем выслеживать петли, искать баги и посмотрим, не очередная сломанная программа ли это движок волатильности. С чего начнём копать?
Payme Payme
Начни с очереди сопоставления ордеров. Проследи за одной сделкой от момента отправки до расчёта, фиксируй все изменения статуса и выявляй повторяющиеся паттерны или простои, которые можно использовать. Обычно именно там и скрываются самые большие неэффективности.
Jurok Jurok
Ладно, давай посмотрим, что там с очередью. Я вытащу журнал сделок, пройдусь по каждому изменению статуса и посмотрю, нет ли каких-то повторяющихся пауз или свободных слотов, что может быть багом или лазейкой. Посмотрим, нормально ли работает механизм сопоставления или есть какая-то скрытая петля, которую можно использовать. Готов начинать?
Payme Payme
Выдай мне логи, и проследим жизненный цикл. Я отмечу все синхронные ожидания, а потом построим схему состояний, чтобы выявить возможные взаимные блокировки или избыточное перераспределение ресурсов. Готов, когда будешь.
Jurok Jurok
Конечно. Вот сокращенная выдержка из очереди для одной сделки: 01:00:00 TradeID 8423 – Подана 01:00:01 → Позиция в очереди: 1 01:00:02 → Запрос получен движком сопоставления 01:00:04 → Сделка сопоставлена с контрагентом 8424 01:00:05 → Цена подтверждена, зафиксирована 01:00:06 → Сделка исполнена 01:00:07 → Запрос на расчеты отправлен 01:00:08 → Подтверждение расчетов получено 01:00:09 → Сделка завершена, удалена из очереди Обрати внимание на переходы состояния. Заметны задержки в 1 секунду: от 01:00:01 до 01:00:02, от 01:00:04 до 01:00:05 и от 01:00:06 до 01:00:07. Это синхронные ожидания, которые мы можем отметить. Скажи, какой из них ты хочешь рассмотреть подробнее.