Eugen Soloviov

Eugen Soloviov

Инженер торговых систем

Разработка торговых ботов с 2017 года: межбиржевой арбитраж (подключал до 30 бирж), парный арбитраж на коинтеграции между спотом и фьючерсами, скальпинг, фронтраннинг, торговля по новостям, сентиментный анализ, трендовые алгоритмы, а также алгоритмы управления и балансировки портфелей. Делает выставление ордеров до 1 мс, warehouse для big data, бэктестинг-движки, AI-агентов и интерфейсы для ботов (в т.ч. open-source profitmaker.cc). Стек: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, архитектура.

Статьи

Выбор мейкер-тейкер: тарифные уровни, ребейты и истинная цена пересечения спреда

Выбор мейкер-тейкер: тарифные уровни, ребейты и истинная цена пересечения спреда

Мейкер против тейкера — это сделка с неблагоприятным отбором, наряженная в тарифную сетку. Математика безубыточности через Глостена-Милгрома, реальные тарифные уровни крипторынка и токен-скидки, история майнинга ребейтов, зависимость ценности ребейта от позиции в очереди и моделирование ступенчатых комиссий в бэктесте.

Implementation shortfall и самодельный TCA: как измерить, сколько реально стоит исполнение

Implementation shortfall и самодельный TCA: как измерить, сколько реально стоит исполнение

Implementation shortfall Перольда, превращенный в рабочий TCA-пайплайн для крипто-ботов: декомпозиция от цены на момент принятия решения, markout-кривые на t+1s/10s/60s, ~200 строк Python поверх собственных сделок и обратная связь в модель издержек бэктеста.

Ончейн-ликвидации: механика Aave и Compound и бизнес ботов вокруг них

Ончейн-ликвидации: механика Aave и Compound и бизнес ботов вокруг них

Как на самом деле работают ликвидации в Aave v3 и Compound: математика health factor, close factor, ликвидационные бонусы, триггеры оракула Chainlink и что нужно, чтобы в 2026 году запустить ликвидационного бота на флеш-займах.

Uniswap v3 для квантов: концентрированная ликвидность и математика тиков с нуля

Uniswap v3 для квантов: концентрированная ликвидность и математика тиков с нуля

Как Uniswap v3 на самом деле устроен под капотом: виртуальные резервы, ликвидность L, sqrtPriceX96, математика тиков, feeGrowthInside и почему позиция LP — это выплата с короткой волатильностью. С точными формулами и разобранным числовым примером.

Анатомия MEV: сэндвич-атаки, фронтраннинг и темный лес мемпула

Анатомия MEV: сэндвич-атаки, фронтраннинг и темный лес мемпула

Каждый своп, отправленный в публичный RPC, — это видимый лимитный ордер, который никто не обязан исполнять честно. Технический разбор того, как работает извлечение MEV: порядок транзакций в мемпуле, математика сэндвич-атаки на Uniswap v2, PGA, Flashbots и защита трейдера.

Симуляция исполнения: лестница от фантазии по цене закрытия до реальности с учетом очереди

Симуляция исполнения: лестница от фантазии по цене закрытия до реальности с учетом очереди

Пять ступеней точности симуляции исполнения — от филлов по цене закрытия до вероятностных моделей позиции в очереди. Частичные исполнения как конечный автомат, границы вероятности исполнения лимитных ордеров как PnL-вилка и цикл калибровки по живым филлам.

TWAP против VWAP против POV: выбор бенчмарка исполнения (и когда каждый из них вас обманывает)

TWAP против VWAP против POV: выбор бенчмарка исполнения (и когда каждый из них вас обманывает)

TWAP, VWAP и POV — это ставки на прогноз объема. Разбираем скрытые допущения каждого планировщика, строим внутридневные кривые объема для крипты и сравниваем все три алгоритма на переигранных L2-данных.

Алмгрен-Чрисс без размахивания руками: оптимальное исполнение, которое можно реализовать за один вечер

Алмгрен-Чрисс без размахивания руками: оптимальное исполнение, которое можно реализовать за один вечер

Полный вывод модели оптимального исполнения Алмгрена-Чрисса: линейный импакт, траектория sinh/cosh, эффективная граница и рабочий Python для калибровки eta, gamma и sigma по данным стакана L2 и сделок Binance.

Честный негативный результат: десятки тысяч бэктестов, пять мажоров, никакого робастного edge

Честный негативный результат: десятки тысяч бэктестов, пять мажоров, никакого робастного edge

Финал арки про поиск и оверфиттинг — и он заканчивается негативным результатом, то есть правильным. Односимвольный поиск на ETHUSDT с двумя таймфреймами нашел конфигурацию на +16.35% out-of-sample и +2.62% на нетронутом holdout; Deflated Sharpe Ratio, учитывающий ~37,000 испытаний, дефлировал ее до 0.00. Кросс-инструментальный проход по пяти мажорам (ETH/BTC/SOL/BNB/XRP, ~1.18M минутных баров каждый) с отбором по медиане out-of-sample добивает окончательно: двойной таймфрейм DSR 0.24 / PBO 0.264, тройной DSR 0.14 / PBO 0.327 — оба не проходят гейты. Чемпион прибылен на 1 из 5 символов и убыточен на остальных. Именно для этого анти-оверфит аппарат и существует: чтобы не дать вам отгрузить лучший из шума как альфу.

Доказываем отсутствие look-ahead в мультитаймфреймовых бэктестах: возмущаем будущее, доказываем, что прошлое его не видит

Доказываем отсутствие look-ahead в мультитаймфреймовых бэктестах: возмущаем будущее, доказываем, что прошлое его не видит

Мультитаймфреймовые бэктесты пропускают будущее через формирующийся бар старшего таймфрейма, чей финальный close еще не существует. Уверенность нельзя получить одним лишь ревью кода — это надо тестировать. Мы воспроизводим правило closed-bar живого бота один в один, а затем доказываем отсутствие утечки с помощью пробы со сдвинутым будущим: возмущаем каждый будущий бар и проверяем, что каждый прошлый сигнал и сделка побитово не изменились. 25 из 25 проверок паритета, и проба не беззубая.

Когда GPU окупается: roofline перебора параметров, где заголовочные 167x — на самом деле 27x алгоритма, умноженные на 6.2x железа

Когда GPU окупается: roofline перебора параметров, где заголовочные 167x — на самом деле 27x алгоритма, умноженные на 6.2x железа

Отрыв GPU от CPU растет с размером батча — от 54.5x при одной комбинации на вызов до 359.6x при 61 на нашем мультитаймфреймовом предрасчете индикаторов, — потому что маленький перебор не может амортизировать накладные расходы на запуск ядер и пересылку данных. Мы раскладываем заголовочные 167x на алгоритмический выигрыш 27x, который ускоряет и CPU, и аппаратный выигрыш 6.2x, показываем, что истинный отрыв GPU от лучшего CPU — лишь 3.2x на одном таймфрейме и 6.2x на нескольких, и даем руководство к решению: насколько широким должен быть перебор, чтобы GPU стоил вложений.

Ловушка точности GPU: как fp32-бэктест на Apple Metal незаметно возвращает мусор

Ловушка точности GPU: как fp32-бэктест на Apple Metal незаметно возвращает мусор

GPU Apple Metal не имеет float64. Наивно перенесите на него векторизованный бэктест — и соблазнительная WMA на префиксных суммах переполняет fp32: максимальная относительная ошибка 211× — но при этом все отрабатывает и выдает правдоподобные числа. Решение — не в дополнительной точности, а в другой формуле: прямая оконная свертка, безопасная для fp32 с точностью до 8×10⁻⁷ и быстрее однопоточной numba в 55.9 раза. Ловушка, арифметика и как доказать, что вы в нее не попали.