Архипов Владимир

PhiFlow: Инкрементальные вычисления для финансовых приложений — пересчёт рисков за миллисекунды вместо минут

PhiFlow: Инкрементальные вычисления для финансовых приложений — пересчёт рисков за миллисекунды вместо минут

Привет, коллеги!

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

Проблема, знакомая каждому, кто строил риск-модели

Представьте: у вас портфель из тысяч инструментов. Вы считаете Value-at-Risk (VaR), ожидаемые потери (Expected Shortfall), греки для опционов, скоринговые модели. Данные обновляются постоянно — новые цены, ставки, волатильности.

Как это обычно работает?

  • Либо вы пересчитываете всё с нуля каждый раз (дорого, медленно, особенно если инструментов много)

  • Либо вы строите сложные триггеры и кэши, которые потом отлаживаете месяцами

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

Как мы пытались решить эту проблему

Мы начали с простого вопроса: «А что, если пересчитывать только то, что реально изменилось?»

Звучит очевидно, но реализация оказалась нетривиальной. Когда у вас многослойная модель (например: цены → греки по инструментам → агрегация по секторам → портфельные метрики → общебанковские лимиты), одно изменение в цене может затронуть десятки тысяч зависимых значений.



( Читать дальше )

🚀 QuantCore.Net: .NET-библиотека для количественных расчётов. 100 000 опционов в секунду и zero-alloc

О чём это.
Все нормальные расчёты (опционы, VaR, греки) либо дёргают неуправляемый C++ код, либо жрут память и GC, либо просто медленные.

Я написал свою библиотеку — QuantCore.Net. Это in-process .NET 8 ядро для финансовых вычислений. Без REST, без Python-прослоек, без боли.

Под капотом: SIMD, ArrayPool, детерминированный RNG, батч-режимы. Всё, чтобы считать сотни тысяч инструментов за миллисекунды и не ловить StopTheWorld в 3 часа ночи.


📊 Для кого это вообще?
  1. Вы пишете своих роботов на C#.
    — Хотите быстро считать справедливую цену опционов или греки в реальном времени.
    — Надоело дёргать Excel или самопальные функции из интернета, которые плавают на 5%.

  2. Вы управляете портфелем и считаете риск.
    — Historical VaR / ES (CVaR) за 0.4 мс на 100 000 наблюдений.
    — Ни одной аллокации памяти — GC молчит.

  3. Вы делаете factor model PnL.
    — SIMD-скалярка экспозиций и факторных доходностей.
    — 100 000 позиций × 32 фактора = 2.8 мс.



( Читать дальше )

БЕСПЛАТНО и СЕРДИТО! Portfolio Stress Lab:интерактивная стресс‑лаборатория портфеля на .NET (QuantCore.Net + Tinkoff Invest API)

1) Что это за программа

Portfolio Stress Lab — настольное WPF‑приложение для продвинутого инвестора/разработчика, которое подключается к Tinkoff Invest API, загружает портфель и историю цен, и позволяет интерактивно “крутить кризис” ползунками:
БЕСПЛАТНО и СЕРДИТО! Portfolio Stress Lab:интерактивная стресс‑лаборатория портфеля на .NET (QuantCore.Net + Tinkoff Invest API)




“Индекс −12%”
“Волатильность +40%”
“Ставка +150 б.п.”
“Корреляции → кризисные”

И мгновенно видеть:
стресс‑PnL портфеля
исторические VaR/ES (99%)
вклад каждой позиции в стресс‑PnL

Вычислительное ядро — QuantCore.Net (высокопроизводительная библиотека количественных расчётов).

---

2) Сравнение с другими решениями


Тип A: брокерские приложения/личные кабинеты
Примеры: мобильное/веб‑приложение Тинькофф, другие брокеры.

Что обычно есть:
текущая стоимость портфеля
доходность
иногда простые “риск‑показатели” в мягкой форме
новости/события

Чего почти никогда нет (или есть в сильно упрощённом виде):
интерактивные стресс‑сценарии (особенно “падение индекса на X%” + “кризис корреляций”)

( Читать дальше )

Нейросеть и скальпинг

С трендингом практически не знаком, занимаюсь разработкой программных решений.
Вдохновлённый теорией пузырькового состояния, и сделав предположение, что у цены на рынке есть инерция как у физического объекта — попробовал несколько вариантов как подготовить данные и какую архитектуру нейросети построить, вроде есть какой-то успех.
Обучалось на USD000UTSTOM2023 — данные за каждую минуту 2023 года. По последним 60 шагам предсказываем тренд направления цены в течение следующих 5ти минут.
Результаты обучения такие:
=== РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ===
Потери по инерции (MSE): 0.006449
Потери по направлению (BCE): 0.612085
Точность предсказания направления: 0.7300
Средняя предсказанная инерция: 0.9013
Реальная средняя инерция: 0.9057

Далее провёл дополнительную перепроверку:
1. ТОЧНОСТЬ ПРОГНОЗА НАПРАВЛЕНИЯ:
   Всего прогнозов: 169411
   Правильных: 126161
   Точность: 0.7447 (74.47%)

   Матрица ошибок:
   True 0 (↓) predicted as 0: 65485
   True 0 (↓) predicted as 1: 18016

( Читать дальше )

теги блога Архипов Владимир

....все тэги



UPDONW
Новый дизайн