Повернутися до всіх конспектів

Квантовий розробник зсередини: багатофакторні моделі, інфраструктура та шлях до першої роботи

Детальний розбір реального досвіду роботи квантовим розробником — від шестиетапного процесу відбору без фінансового бекґраунду до повної архітектури багатофакторної торгової системи. Відео охоплює ключові поняття: декомпозицію альф та ризику, фундаментальний закон активного управління, а також практичну побудову портфеля з урахуванням транзакційних витрат. Окрема увага приділяється виробничій інфраструктурі — Apache Spark, Delta Lake, Parquet і KDB — із поясненням, чому саме ці інструменти є стандартом галузі та як вони взаємодіють у єдиній системі реального квантового фонду.

The Quant Insider
Дивитися відео

Досвід квантового розробника: системи, моделі та інфраструктура

Шлях до ролі квантового розробника

Освіта та досвід до найму

  • Диплом інженерного факультету Університету Ватерлоо
  • Шість стажувань у великих технологічних компаніях та стартапах як розробник програмного забезпечення та інженер машинного навчання
  • Жодного досвіду у фінансах або квантових фінансах перед влаштуванням на роботу
  • Після випуску подав сотні заявок на різноманітні квантові позиції

Процес співбесіди (6 раундів)

Раунд 1 — Технічне кодування: система управління портфелем

  • Завдання: побудувати систему, що відстежує та виконує ордери і підтримує позиції по різних акціях
  • Включало такі функції, як стоп-лосси та лімітні ордери
  • Головний висновок: половина того, що оцінює інтерв'юер — це вміння чітко й лаконічно пояснювати хід думок, а не лише технічний результат

Раунд 2 — Алгоритм на основі статистики

  • Завдання пов'язане з комбінаціями карт у колоді з 52 карт та модифікованими мастями й рангами
  • Найскладніший раунд — тестував здатність застосовувати статистику до програмування
  • Кандидат виконав завдання приблизно на 70%, але чітке пояснення ходу думок дозволило пройти далі

Раунд 3 — Системне проєктування з партнерами фірми

  • Детальний розбір резюме та проєктів
  • Демонстрація архітектури систем у реальному часі через спільний екран
  • Питання щодо організації баз даних, інженерії даних та алгоритмів машинного навчання (зокрема, градієнтний бустинг)
  • Порада: потрібно бути готовим впевнено захищати свої проєкти протягом цілої години

Раунди 4–6 — Фінальні співбесіди з партнерами

  • Кожен раунд — з іншим партнером окремого підрозділу квантового відділу
  • Суміш системного проєктування, поведінкових питань та запитань щодо баз даних
  • Питання про глобальні акції на досить загальному рівні — глибокі знання фінансів не були обов'язковими

Ключова порада щодо технічних співбесід

  • Завжди промовляйте хід думок уголос під час розв'язання задач
  • Записуйте розв'язок у псевдокоді перед реалізацією
  • Відмінна комунікація цінується вище за посередні технічні навички — особливо в нинішньому середовищі технологічної індустрії

Багатофакторна торгова модель: загальна архітектура

Базова концепція: альфа та перевищення над бенчмарком

  • Мета квантової фірми — перевершити бенчмарк, наприклад індекс
  • Альфа — це додаткова дохідність понад ринок; якщо бенчмарк зріс на 10%, а портфель на 12%, то 2% — це альфа
  • Ринкова ціна вже відображає консенсусну думку тисяч учасників, тому завдання — знайти місця, де ви обґрунтовано не погоджуєтеся з консенсусом
  • Активне управління — це, по суті, прогнозування помилок ринку

Декомпозиція дохідності акцій

  • Рух акції за будь-який день складається з кількох шарів:
    • Загальний рух ринку
    • Країновий вплив
    • Галузевий вплив (наприклад, нафтові акції рухаються разом з нафтою)
    • Ідіосинкратична дохідність — залишок, специфічний для компанії
  • На практиці ці складові розділяють за допомогою регресії: дохідність акції регресується відносно факторів-драйверів; пояснена частина — це факторна дохідність, а залишок — специфічна дохідність
  • Навіть для акцій, що тісно корелюють з галуззю, компанієспецифічний залишок зазвичай є значною частиною загального руху

Блоки архітектури багатофакторної моделі

1. Дані та сигнали

  • Вхідна точка всього конвеєра — як традиційні фінансові дані, так і альтернативні
  • Із даних будуються сигнали — вимірювані погляди на акцію (вартість, моментум, розмір, якість тощо)
  • Спочатку потрібно визначити торговий всесвіт — перелік акцій, якими взагалі допустимо торгувати; неліквідні активи виключаються, оскільки великі позиції рухають ціну проти вас

2. Альфи (очищені прогнози дохідності)

  • Сирий сигнал не можна торгувати безпосередньо — його потрібно перетворити на альфу
  • Альфа — це добуток трьох складових:
    • Волатильність акції
    • Інформаційний коефіцієнт — реальна прогностична сила сигналу
    • Поточне значення сигналу для конкретної акції
  • Кожен очищений сигнал стає одним фактором; модель одночасно використовує багато незалежних факторів

3. Модель ризику (паралельно з альфами)

  • Відповідає на питання: скільки коштуватиме прийнятий ризик у вигляді волатильності
  • Використовує ту саму декомпозицію: дохідність акції = експозиція до спільних факторів (галузі, індекси ризику) + специфічна частина

Чому факторна модель ризику, а не коваріація між акціями напряму?

  • Для 1 400 акцій кількість попарних коваріацій складає ~980 000 — неможливо надійно оцінити
  • Факторна модель: кожна акція — це набір експозицій до ~65 спільних факторів → потрібно оцінити лише ~2 000 коваріацій між факторами
  • Це перетворює нерозв'язну задачу на обчислювально можливу

Ключові інсайти про ризик

  • Диверсифікація: ризик портфеля менший за зважену суму ризиків окремих акцій, оскільки вони не рухаються синхронно
  • Специфічний ризик можна розбавити диверсифікацією; систематичний ризик не зникає, скільки б акцій ви не тримали — це основна ідея CAPM
  • Ризик у часі: дисперсія накопичується лінійно з часом (за умови відсутності автокореляції), тому ризик зростає пропорційно кореню квадратному з часу — місячну волатильність перетворюють на річну, множачи на √12, а не на 12

4. Побудова портфеля (оптимізатор)

  • Отримує на вхід альфи та модель ризику
  • Балансуюча задача: максимізувати очікувану дохідність мінус штраф за ризик мінус транзакційні витрати — при дотриманні обмежень (ліміти позицій, секторна нейтральність, капи на оборотність, ліміти плечового навантаження)
  • Результат — цільовий портфель: точна кількість кожного активу, яку потрібно тримати

5. Реалізація та торгівля

  • Філософія: відняти якомога менше вартості від альфи
  • Складові транзакційних витрат:
    • Комісія — плата брокеру за акцію
    • Спред між попитом і пропозицією — вартість двосторонньої угоди
    • Вплив на ринок — купівля великих обсягів рухає ціну проти вас (аналог принципу невизначеності Гейзенберга у фінансах)
    • Альтернативна вартість — упущена вигода через очікування кращої ціни, поки ринок іде вгору
  • Дефіцит реалізації (implementation shortfall): різниця між гіпотетичним «паперовим» портфелем без витрат і реальним портфелем — загальна міра витрат на виконання

6. Аналіз ефективності

  • Декомпозиція результатів після факту: скільки надійшло від навмисних факторних ставок, скільки від обмежень, скільки — просто шум
  • Мета — відокремити майстерність від удачі та знайти джерела справжньої переваги
  • Фактори завжди деградують у часі — як тільки їх відкривають усі, перевага зникає, тому пошук нових факторів — безперервний процес

Фундаментальний закон активного управління

Два ключові показники

  • Інформаційне відношення (IR): активна дохідність / активний ризик — «табель успішності» менеджера
  • Фундаментальний закон: IR ≈ Майстерність × √Широта, де широта — кількість незалежних ставок

Чому незалежність ставок є визначальною

  • Якщо ви маєте 5 довгих позицій у роздрібному секторі та 5 коротких в енергетиці — це 2 ставки, а не 10
  • Справжня широта означає по-справжньому різні рішення по назвах та в часі
  • Багатофакторна модель — це машина для генерації широти: тисячі малих, незалежних, дещо кращих за рівні ставок щодня по всьому ринку
  • Квадратний корінь показує, що накопичення широти перетворює скромну перевагу на кожну ставку на серйозну сукупну перевагу

Дані та сигнали: практична реалізація

Альтернативні дані

  • Приклади: дані з соціальних мереж, інформація про ланцюги постачань, новинні статті, транзакції кредитних карток, брокерські звіти
  • Причина популярності: традиційні дані стали надто конкурентними, фірми шукають унікальні джерела для побудови факторів

Підбір цінних паперів (Security Matching)

  • Процес зіставлення сутностей у наборі даних (наприклад, URL-адреса apple.com) з внутрішніми ідентифікаторами фірми
  • Стандартні ідентифікатори: ISIN, CUSIP, Bloomberg ID
  • Ключова вимога — прив'язка до точки в часі (point-in-time): ідентифікатор дійсний лише для тих часових проміжків, коли він реально використовувався — інакше виникає упередження на майбутнє (look-ahead bias)
  • Набори даних часто мають обсяг кілька терабайт і потребують розподілених обчислень та ефективних інструментів (Polars, Spark, NumPy)

Очищення та аудит даних

  • Дані від постачальників ніколи не надходять чистими; стандартна робота включає перевірку викидів, заповнення пропусків, виправлення форматів, узгодження між постачальниками
  • Завантажувачі даних (data loaders): унікальні для кожного постачальника механізми оновлення — тягнуть нові дані, виконують трансформації та зберігають у внутрішню базу; збій завантажувача зупиняє відповідний торговий фактор
  • Аудит даних: статистичні метрики по колонках, перевірка покриття цінних паперів; при перевищенні порогових значень спрацьовує сповіщення для відповідальної особи

Виробнича реалізація торгових факторів

Процес переведення в продакшн

  • Дослідницький код (зазвичай на R) конвертується в Python, Spark або KDB
  • Розробнику надається документ Word із повною методологією фактора — центральний орієнтир для всієї команди
  • Документація критично важлива: фактори потребують повторних досліджень через деградацію, і чітка документація прискорює майбутні проєкти

Розподілені обчислення та часові вікна

  • Повний історичний прогін (5–15 років даних) займає від півдня до цілого дня з розподіленими обчисленнями
  • Торгові фактори мають жорсткі часові вікна оновлення: при торгівлі глобальними акціями після закриття Нью-Йоркської біржі є лічені години до відкриття японського ринку

Командна структура

  • Кожен проєкт ведеться малою групою: дослідник, розробник, тестувальник та кілька старших партнерів для нагляду
  • Ефективні, злагоджені групи зберігаються разом для майбутніх проєктів

Інфраструктура: міграція до хмари

Від власних серверів до хмарних рішень

  • Спочатку всі обчислення відбувалися на власних серверах у офісі
  • Зростання команди, збільшення обсягів даних та складності факторів зумовили міграцію до AWS та Databricks

Ключові сервіси AWS

  • EC2 — обчислювальні інстанції
  • ECR — реєстр контейнерів
  • S3 — об'єктне сховище

Apache Spark: рушій масштабованих обчислень

Архітектура та принцип роботи

  • Розподілений рушій обробки даних в оперативній пам'яті
  • Компоненти:
    • Драйвер — «мозок», що зберігає програму та будує план виконання
    • Виконавці (executors) — робочі вузли по всьому кластеру, що паралельно обробляють дані
    • Менеджер кластера — розподіляє машини
    • Набір даних розбивається на партиції, кожен виконавець обробляє свою партицію одночасно

Ліниве виконання та оптимізатор Catalyst

  • Spark не виконує трансформації одразу — він будує граф кроків (план виконання) і чекає на дію (запис результату, підрахунок рядків тощо)
  • Оптимізатор запитів Catalyst переглядає весь план цілком і переписує його для максимальної ефективності:
    • Проштовхування фільтрів до джерела даних — зчитується лише необхідне
    • Оптимальне перевпорядкування з'єднань
    • Усе це відбувається до обробки жодного байту реальних даних

Обробка в оперативній пам'яті

  • Стара модель MapReduce записувала проміжні результати на диск між кожним кроком
  • Spark зберігає дані в пам'яті між кроками, що робить його на порядок швидшим для багатоетапних конвеєрів

Відмовостійкість через лінійність

  • Spark пам'ятає лінійність — рецепт трансформацій, що породив кожен шматок даних
  • Якщо машина виходить з ладу, він просто перераховує втрачений фрагмент замість провалу всього завдання

Перемішування (Shuffle) як головний виклик

  • Деякі операції (з'єднання, групування) потребують переміщення даних між машинами по мережі, щоб пов'язані рядки опинилися разом
  • Саме це переміщення є найдорожчою частиною
  • Більшість оптимізації Spark зводиться до мінімізації та контролю перемішувань

Практичний приклад: обробка терабайтного набору альтернативних даних

  1. Spark читає партиції з S3, розподіляючи їх між виконавцями
  2. Завдяки ліниві виконанні проштовхує фільтри за датами та колонками — зчитує лише потрібне
  3. Паралельно виконує трансформації на кожній партиції: очищення, агрегація, обчислення ознак
  4. Для підбору цінних паперів — широкомовне з'єднання (broadcast join): невелика таблиця відповідностей розсилається на кожен виконавець, тому з'єднання відбувається локально без перемішування
  5. Результат партиціонується за датою та записується у таблицю Delta Lake для подальшого споживання торговим фактором
  • Історичний прогін, який на одній машині тривав би дні, скорочується до годин

Сховища даних у квантовій сфері

Чому вибір бази даних є принциповим

  • Місце зберігання даних — не другорядне рішення, воно безпосередньо визначає продуктивність усієї системи
  • Близько 80% співбесід на позиції квантового розробника містили конкретні запитання про бази даних
  • Найпоширеніші теми: Parquet / Delta Lake та KDB

Parquet і Delta Lake: масштабований архів для досліджень

Формат Parquet: стовпцева організація даних

  • Звичайна база даних зберігає всі поля запису разом у рядку
  • Parquet перевертає цю логіку: кожен стовпець зберігається разом
  • Переваги для квантових задач (де зазвичай потрібно кілька стовпців по мільйонах рядків):
    • Зчитуються лише запитані стовпці — решта не чіпається
    • Чудове стиснення — схожі значення розміщені поруч
    • Пропуск чанків, що гарантовано не відповідають фільтру

Delta Lake: транзакційний шар поверх Parquet

  • Самі по собі папки з файлами Parquet не мають поняття про атомарні зміни
  • Delta Lake додає журнал транзакцій, що забезпечує гарантії ACID:
    • Атомарність — запис або відбувається повністю, або не відбувається взагалі
    • Узгодженість — читач ніколи не бачить наполовину записану таблицю
    • Ізольованість — паралельні завдання не псують одне одного
    • Довговічність — зафіксовані дані не губляться
  • Примусове дотримання схеми — погані дані не проникають непомітно

Чому Delta Lake ідеально підходить для квантових часових рядів

  • Дані партиціонуються за датою: запит за 10 роками по кількох полях сканує лише потрібні партиції та стовпці
  • Щоденні оновлення — просте додавання нової партиції, швидко та дешево
  • Версіонування та подорож у часі: завдяки журналу транзакцій можна запросити таблицю в будь-якому минулому стані — критично важливо для прив'язки до точки в часі при бектестингу факторів
  • Відтворюваність: якщо постачальник переглядає історичні дані, можна чисто перезаписати лише відповідні партиції
  • Зберігання на дешевому об'єктному сховищі (S3) з паралельним зчитуванням — пропускна здатність масштабується з розміром кластера

KDB та мова Q: рушій живої торгівлі

Що таке KDB

  • Стовпцева база даних часових рядів в оперативній пам'яті, побудована з нуля для фінансових даних
  • Розрахована на величезні потоки тікових даних і котирувань із мітками часу

Мова Q: векторизована лаконічність

  • Надзвичайно стисла та векторизована — невеликі вирази оперують цілими стовпцями одразу (подібно до NumPy)
  • Виконується дуже близько до «заліза» — мінімальні накладні витрати

Ключова перевага: з'єднання за станом на момент часу (as-of join)

  • Для кожної угоди потрібно знайти котирування, яке діяло саме в той момент
  • Ця операція повсюдна у фінансах і болісно повільна у звичайних базах даних
  • У KDB — це первинна операція, блискавично швидка за замовчуванням

Поєднання KDB та HTCondor на практиці

  • KDB зберігав і обслуговував дані часових рядів на великій швидкості
  • HTCondor — планувальник завдань, що розподіляв обчислення торгової моделі по сітці машин поверх KDB

Порівняння двох підходів до зберігання

ХарактеристикаParquet / Delta LakeKDB
ПризначенняДослідження та пакетна обробкаЖива торгівля та часові ряди
МасштабТерабайти, роки історіїШвидкість у реальному часі
Головна перевагаВерсіонування, дешевизна, масштабуванняСирова швидкість на тікових даних
Типове використанняБектестинг факторів, архівЖивий торговий рушій
  • Більшість фірм використовують обидва підходи, оскільки вони вирішують принципово різні задачі

Загальний підсумок: єдина зв'язана система

Весь описаний матеріал складається у єдину картину багатофакторної машини, де кожен блок існує з конкретною причиною та органічно пов'язаний з рештою — саме так це відчувається зсередини реальної квантової фірми:

  • Блок даних → підбір цінних паперів, очищення, альтернативні дані
  • Блок альф → конвеєр від дослідження до продакшну
  • Блок ризику та оптимізації → факторна модель ризику, побудова портфеля
  • Блок реалізації → торгівля, транзакційні витрати
  • Інфраструктура → Spark, Parquet, Delta Lake, KDB, HTCondor — усе, що змушує систему працювати вчасно