Глава 258: Временное рассуждение в финансах
Введение
Временное рассуждение в финансах — это практика извлечения, интерпретации и использования временной информации из финансовых текстов для принятия обоснованных торговых решений. Финансовые рынки фундаментально управляются событиями, разворачивающимися во времени: отчёты о прибылях имеют конкретные даты, экономические индикаторы публикуются по расписанию, контракты истекают, а корпоративные действия следуют временным графикам. Способность автоматически понимать и рассуждать об этих временных связях является мощным преимуществом для алгоритмических торговых систем.
Традиционные подходы NLP рассматривают финансовые документы как наборы слов или последовательности токенов, игнорируя богатую временную структуру, встроенную в текст. Предложение “Федеральная резервная система повысит ставки в марте после январского отчёта CPI, превысившего ожидания” содержит множество временных ссылок, причинно-следственных связей и прогнозных сигналов, которые система временного рассуждения может извлечь и использовать.
В этой главе представлена полная система временного рассуждения в финансовых текстах. Мы рассматриваем извлечение временных выражений, упорядочивание событий, оценку длительности и применение этих техник к торговле как на фондовом рынке, так и на рынке криптовалют с использованием данных биржи Bybit.
Ключевые концепции
Временные выражения в финансовых текстах
Финансовые документы насыщены временными ссылками, которые делятся на несколько категорий:
- Явные даты: “15 марта 2024 года”, “прибыль за 3 квартал 2023”
- Относительные ссылки: “следующий квартал”, “прошлый финансовый год”, “в течение 30 дней”
- Длительности: “за последние шесть месяцев”, “на следующие три года”
- Повторяющиеся события: “каждое заседание FOMC”, “квартальный цикл отчётности”
- Нечёткие временные маркеры: “скоро”, “в ближайшей перспективе”, “недавно”
Каждая категория требует различной обработки. Явные даты могут быть нормализованы в временные метки напрямую. Относительные ссылки должны быть разрешены относительно даты создания документа или опорного времени. Длительности определяют интервалы, а не точки. Нечёткие маркеры требуют вероятностной интерпретации на основе контекста.
Формально, временное выражение $\tau$ отображается в временной интервал $[t_{start}, t_{end}]$ на абсолютной временной шкале. Для точечных выражений $t_{start} = t_{end}$. Задача извлечения — идентифицировать фрагменты текста, обозначающие временную информацию, и нормализовать их в каноническую форму.
TimeML и временная аннотация
TimeML — стандартный язык разметки для временной информации в тексте. Он определяет несколько ключевых типов аннотаций:
- TIMEX3: Временные выражения (даты, время, длительности, множества)
- EVENT: События или состояния, описанные в тексте
- TLINK: Временные связи между событиями и временами (BEFORE, AFTER, SIMULTANEOUS, INCLUDES и др.)
- ALINK: Аспектуальные связи (INITIATES, TERMINATES, CONTINUES)
- SLINK: Связи подчинения, соединяющие события через модальность
Для финансовых приложений наиболее ценны связи TLINK. Для событий $e_1$ и $e_2$ временное отношение $R(e_1, e_2) \in {BEFORE, AFTER, SIMULTANEOUS, INCLUDES, IS_INCLUDED, BEGINS, ENDS, OVERLAP}$ определяет их временную взаимосвязь. Построение согласованного временного графа из попарных отношений позволяет рассуждать о последовательностях событий.
Интервальная алгебра Аллена
Интервальная алгебра Аллена предоставляет строгую математическую основу для рассуждений о временных интервалах. Она определяет 13 взаимоисключающих отношений между двумя временными интервалами:
$$R \in {before, after, meets, met_by, overlaps, overlapped_by, starts, started_by, finishes, finished_by, during, contains, equals}$$
Для двух интервалов $X = [x_1, x_2]$ и $Y = [y_1, y_2]$:
- $X$ before $Y$: $x_2 < y_1$
- $X$ meets $Y$: $x_2 = y_1$
- $X$ overlaps $Y$: $x_1 < y_1 < x_2 < y_2$
- $X$ during $Y$: $y_1 < x_1$ и $x_2 < y_2$
- $X$ starts $Y$: $x_1 = y_1$ и $x_2 < y_2$
- $X$ finishes $Y$: $x_2 = y_2$ и $y_1 < x_1$
- $X$ equals $Y$: $x_1 = y_1$ и $x_2 = y_2$
Остальные шесть являются обратными. Алгебра Аллена поддерживает распространение ограничений через таблицу транзитивности, позволяя выводить новые отношения из известных. Например, если событие $A$ предшествует событию $B$, а $B$ перекрывается с событием $C$, то $A$ предшествует $C$.
В финансах эта система моделирует сценарии: “Период блокировки заканчивается до начала вторичного размещения” или “Конференц-звонок по прибылям перекрывается с окном экспирации опционов.”
Темпоральные графы знаний
Темпоральный граф знаний (TKG) расширяет стандартный граф знаний, связывая каждый факт с временным интервалом, в течение которого он действителен:
$$(subject, predicate, object, [t_{start}, t_{end}])$$
Для финансовых приложений TKG может содержать факты:
- (AAPL, CEO, Тим Кук, [2011-08-24, настоящее время])
- (ФРС, процентная_ставка, 5.25%, [2023-07-27, 2024-09-18])
- (BTCUSD, тренд, бычий, [2024-01-10, 2024-03-14])
Темпоральные графы знаний поддерживают запросы, невозможные со статическими графами:
- “Кто был генеральным директором компании X, когда произошёл промах с прибылью?”
- “Какой была среда процентных ставок во время последнего бычьего забега крипты?”
- “Какие регуляторные изменения действовали, когда произошёл флэш-крах?”
Задача предсказания связей в TKG оценивает вероятность того, что факт будет действителен в будущее время:
$$P((s, p, o, t_{future}) | \mathcal{G}{\leq t{now}})$$
Это напрямую соответствует финансовому прогнозированию: предсказание будущих состояний сущностей на основе их временной истории.
Подходы машинного обучения
Извлечение временных выражений на основе BERT
Дообучение BERT для извлечения временных выражений рассматривает задачу как классификацию токенов (NER). Каждый токен размечается BIO-тегами, указывающими, начинает ли он (B-TIMEX), продолжает (I-TIMEX) или находится вне (O) временного выражения.
Для входных токенов ${w_1, w_2, \ldots, w_n}$ BERT создаёт контекстуальные представления ${\mathbf{h}_1, \mathbf{h}_2, \ldots, \mathbf{h}_n}$. Классификационная голова отображает каждое представление в вероятности тегов:
$$P(y_i | w_1, \ldots, w_n) = \text{softmax}(\mathbf{W} \mathbf{h}_i + \mathbf{b})$$
Для финансового текста модель должна обрабатывать специфичные для домена выражения: “ФГ2024”, “Q3”, “расчёт T+2”, “следующий FOMC”. Адаптивное предварительное обучение на финансовых корпусах значительно улучшает распознавание таких выражений.
Классификация временных отношений
Для пары событий или временных выражений в контексте классификатор временных отношений предсказывает отношение Аллена между ними. Входные данные формируются конкатенацией контекста вокруг обеих сущностей со специальными маркерами:
$$\text{input} = [\text{CLS}] ; \text{context}_1 ; [E1] ; e_1 ; [/E1] ; \text{context}_2 ; [E2] ; e_2 ; [/E2] ; [\text{SEP}]$$
Представление [CLS] пропускается через многоклассовый классификатор:
$$P(R | e_1, e_2, \text{context}) = \text{softmax}(\mathbf{W}R \mathbf{h}{[CLS]} + \mathbf{b}_R)$$
Модель обучается на размеченных наборах данных временных отношений (TimeBank, AQUAINT) и дообучается на финансовых текстах, где временное упорядочивание критически важно для понимания причинно-следственных связей.
Темпоральные графовые нейронные сети
Для рассуждений над темпоральными графами знаний темпоральные графовые нейронные сети (T-GNN) обучают представления, захватывающие как структурные, так и временные паттерны:
$$\mathbf{h}v^{(l+1)} = \sigma \left( \sum{(u, r, t) \in \mathcal{N}(v)} \alpha(t) \cdot \mathbf{W}_r^{(l)} \mathbf{h}_u^{(l)} + \mathbf{b}^{(l)} \right)$$
где $\alpha(t)$ — весовой коэффициент внимания с временным затуханием, придающий большее значение недавним фактам:
$$\alpha(t) = \exp\left(-\lambda (t_{now} - t)\right)$$
Механизм темпорального внимания позволяет сети учиться, что недавние смены CEO важнее назначений десятилетней давности, в то время как долгосрочные тенденции процентных ставок могут иметь устойчивые эффекты.
Seq2Seq для построения временной шкалы
Построение полной временной шкалы из финансового документа может быть сформулировано как задача seq2seq. Энкодер обрабатывает входной текст, а декодер генерирует структурированную временную шкалу событий:
$$\text{Вход: } \text{“AAPL отчитался за Q3 1 августа. На следующий день акция упала на 5%…”}$$ $$\text{Выход: } (e_1, \text{2024-08-01}, \text{earnings_report}) \rightarrow (e_2, \text{2024-08-02}, \text{price_drop})$$
Декодер использует темпоральные позиционные кодирования, захватывающие как позицию в последовательности, так и календарное время, что позволяет модели рассуждать о временных промежутках и периодичностях.
Инженерия признаков
Признаки временной плотности
Плотность временных ссылок в финансовом документе коррелирует с его релевантностью для чувствительных ко времени торговых решений:
$$\text{TemporalDensity}(d) = \frac{|{\tau \in d : \tau \text{ является TIMEX3}}|}{|d|}$$
где $|d|$ — количество токенов в документе $d$. Документы с высокой временной плотностью (отчёты о прибылях, экономические календари, регуляторные документы) содержат больше сигналов для торговли, чем документы с низкой временной плотностью (общие комментарии, аналитические обзоры).
Оценка новизны события
Новизна событий, упомянутых в документе, влияет на их рыночное воздействие. Взвешенная по новизне оценка для каждого события:
$$\text{Recency}(e) = \exp\left(-\lambda \cdot \frac{t_{now} - t_e}{T_{scale}}\right)$$
где $t_e$ — время события, $t_{now}$ — текущее время, $\lambda$ — параметр затухания, а $T_{scale}$ нормализует временную разницу (например, в торговых днях). События с высокой оценкой новизны с большей вероятностью управляют текущим ценовым действием.
Коэффициент направленности в будущее
Отношение временных выражений, направленных в будущее, к направленным в прошлое в документе характеризует его прогнозную природу:
$$\text{FLR}(d) = \frac{|{\tau \in d : t_\tau > t_{now}}|}{|{\tau \in d : t_\tau \leq t_{now}}| + \epsilon}$$
Документы с высоким FLR содержат предсказания, прогнозы и перспективные заявления, особенно ценные для торговли. Расшифровки конференц-звонков по прибылям обычно имеют высокий FLR в секции прогнозов и низкий FLR в обзоре результатов.
Оценка временной когерентности
Временная когерентность документа измеряет, насколько последовательно события упорядочены в тексте относительно их фактического хронологического порядка:
$$\text{Coherence}(d) = \frac{\text{количество согласованных пар событий}}{\text{общее количество пар событий}}$$
Оценка когерентности, близкая к 1.0, указывает на хронологически организованное повествование, тогда как низкая оценка предполагает сложную временную структуру (ретроспективы, сравнения через временные периоды), требующую более изощрённого рассуждения.
Применения
Торговля по временной шкале событий прибылей
Временное рассуждение позволяет систематическую торговлю вокруг событий прибылей через построение полных временных шкал:
- До отчёта: Извлечение прогнозных заявлений из аналитических отчётов и прогнозов компании. Определение временных ссылок на периоды признания выручки, продления контрактов и запуски продуктов.
- Публикация отчёта: Разбор отчёта на предмет временных сравнений (рост г/г, кв/кв), длительности трендов (“третий последовательный квартал роста”) и будущих обязательств.
- После отчёта: Мониторинг ревизий аналитиков и извлечение временных ожиданий для будущих кварталов. Обнаружение изменений в языке временных характеристик (“ускоряющийся” vs “стабилизирующийся” vs “замедляющийся”).
Торговые сигналы генерируются, когда временной анализ выявляет расхождения между ожиданиями рынка (подразумеваемыми ценообразованием опционов и консенсусом аналитиков) и фактической временной структурой фундаментальных показателей компании.
Последовательность регуляторных событий
Финансовые регуляции следуют сложным временным графикам с фазами предложения, комментирования и внедрения. Временное рассуждение извлекает эти последовательности:
- Сроки периодов комментирования
- Графики поэтапного внедрения новых требований
- Этапы соответствия
- Истечение отсрочек
Торговые стратегии на основе регуляторных временных графиков могут открывать позиции до дат внедрения, когда участники рынка медленно учитывают регуляторные последствия.
Временные паттерны криптовалют
Криптовалютные рынки демонстрируют временные паттерны, отличные от традиционных финансов:
- Графики обновлений протоколов: Хард-форки, дедлайны миграции токенов, периоды блокировки стейкинга
- Токеномические события: Графики вестинга, даты разблокировки токенов, циклы халвинга
- Временная динамика DeFi: Эпохи майнинга ликвидности, периоды голосования по управлению, переключения комиссий протокола
Временное рассуждение, применённое к крипто-специфичным источникам (форумы управления, документация протоколов, данные блокчейна), генерирует торговые сигналы из предстоящих токеномических событий.
Кросс-активный темпоральный арбитраж
Когда временной анализ показывает, что влияние события учтено в одном активе, но ещё не в другом, возникают возможности кросс-активного арбитража. Например:
- Решение по ставке отражено в ценах облигаций, но ещё не на валютных рынках
- Временная линия нарушения цепочки поставок влияет на товарные фьючерсы раньше, чем корректируются рынки акций
- Регуляторный график влияет на один токен криптобиржи раньше другого
Система временного рассуждения определяет эти опережения и запаздывания, сравнивая временные линии событий по коррелированным активам.
Реализация на Rust
Наша реализация на Rust предоставляет полный инструментарий для временного рассуждения с анализом финансовых текстов, включающий следующие компоненты:
TemporalExpression
Структура TemporalExpression представляет извлечённую временную ссылку с нормализованной формой. Она хранит исходный текстовый фрагмент, разрешённый временной интервал [start, end], тип выражения (DATE, TIME, DURATION, SET) и оценку уверенности. Парсер обрабатывает финансово-специфичные форматы, включая фискальные кварталы (Q1-Q4), фискальные годы (FY2024) и конвенции расчётов (T+1, T+2).
TemporalRelation
Перечисление TemporalRelation реализует все 13 интервальных отношений Аллена и поддерживает распространение ограничений через таблицу транзитивности. По известным отношениям между парами событий оно выводит новые отношения через транзитивное замыкание, строя полный временной граф.
EventTimeline
Структура EventTimeline поддерживает упорядоченную последовательность финансовых событий, извлечённых из текста. Она поддерживает вставку, запрос по временному диапазону и обнаружение пробелов. События представлены с метками времени, типами (EARNINGS, FOMC, HALVING, UNLOCK) и связанными сущностями. Временная линия может объединять события из нескольких источников с сохранением временной согласованности.
TemporalFeatureExtractor
TemporalFeatureExtractor вычисляет метрики инженерии признаков: временную плотность, оценки новизны событий, коэффициент направленности в будущее и временную когерентность. Он принимает необработанный текст и создаёт вектор признаков, пригодный для последующих моделей ML.
TemporalTradingStrategy
TemporalTradingStrategy реализует фреймворк бэктестинга, генерирующий сигналы покупки/продажи на основе временных признаков. Стратегия комбинирует взвешенные по новизне оценки событий с коэффициентами направленности в будущее для создания составного сигнала. Поддерживаются настраиваемые пороги, размер позиции на основе силы сигнала и управление рисками через темпоральные стоп-лоссы (выход при истечении ожидаемого окна влияния события).
BybitClient
Структура BybitClient обеспечивает асинхронный HTTP-доступ к API Bybit V5. Она получает данные свечей (kline) из эндпоинта /v5/market/kline для бэктестинга и снимки книги ордеров из /v5/market/orderbook для генерации сигналов в реальном времени. Клиент обрабатывает парсинг ответов, обработку ошибок и ограничения скорости запросов.
Интеграция с API Bybit
Реализация подключается к REST API Bybit V5 для получения рыночных данных для бэктестинга и торговли в реальном времени:
- Эндпоинт Kline (
/v5/market/kline): Предоставляет данные свечей OHLCV с настраиваемыми интервалами. Используется для бэктестинга временных торговых стратегий на исторических данных криптовалют. - Эндпоинт книги ордеров (
/v5/market/orderbook): Предоставляет снимки книги ордеров в реальном времени для генерации сигналов и исполнения.
Криптовалютные рынки особенно хорошо подходят для стратегий временного рассуждения, потому что:
- Рынки торгуются 24/7, что делает временные паттерны более последовательными
- Графики разблокировки токенов и события протоколов следуют предсказуемым временным линиям
- Данные блокчейна предоставляют верифицируемые метки времени для событий
- API Bybit предоставляет детальные исторические данные для всестороннего бэктестинга
Литература
- Allen, J. F. (1983). Maintaining knowledge about temporal intervals. Communications of the ACM, 26(11), 832-843.
- Pustejovsky, J., Castano, J., Ingria, R., Sauri, R., Gaizauskas, R., Setzer, A., & Katz, G. (2003). TimeML: Robust specification of event and temporal expressions in text. New Directions in Question Answering, 3, 28-34.
- Ning, Q., Wu, H., & Roth, D. (2018). A multi-axis annotation scheme for event temporal relations. Proceedings of ACL, 1318-1328.
- Leeuwenberg, A., & Moens, M. F. (2019). A survey on temporal reasoning for temporal information extraction from text. Journal of Artificial Intelligence Research, 66, 341-380.
- Lacroix, T., Obozinski, G., & Usunier, N. (2020). Tensor decompositions for temporal knowledge base completion. Proceedings of ICLR.