Почему даты нельзя просто взять из календаря?

Контракт может сказать: обменять валюты через два рабочих дня.

Но он должен также определить, какие дни считаются рабочими и что делать, если расчётная дата попала на праздник.

Поэтому дата сделки — результат правил, а не только значение формата YYYY-MM-DD.

Contract Terms + Calendars + Date Convention → Contractual Date

Что такое Business Day?

Business Day — день, в который разрешено выполнить определённое договорное действие.

Таким действием может быть расчёт ставки, отправка платежа или валютный расчёт.

Один календарный день может быть рабочим для одной валюты и нерабочим для другой.

Важна не только страна, но и указанный в контракте Business Center или платёжная инфраструктура.

Как получается Near Value Date?

Сначала система определяет Trade Date и применимый Spot Lag. Затем она считает только дни, допустимые по календарям сделки.

На схеме показан условный FX Swap с лагом T+2. Понедельник не засчитывается, потому что один из двух валютных календарей закрыт.

Расчёт Near Value Date по совместному календарю валют После Trade Date выходные и праздник одной валюты пропускаются. Второй совместный рабочий день становится Near Value Date. T+2 СЧИТАЕТ СОВМЕСТНЫЕ РАБОЧИЕ ДНИ ПятницаTrade DateT Субботавыходнойне считаем Воскресеньевыходнойне считаем Понедельниквалюта A · открытвалюта B · праздникне считаем Вторникоба открытыBusiness Day 1 Средаоба открытыBusiness Day 2Near Value Date JOINT BUSINESS DAYS Contract TermsT+2 · calendars Date Engineсчитает допустимые дни Contractual DateNear Value Date Иллюстрация: конкретные календари и лаг определяются продуктом и условиями сделки

Что такое Joint Calendar?

Для поставочного FX обычно важна возможность рассчитаться обеими валютами.

Joint Calendar отвечает на вопрос: открыты ли в этот день все необходимые валютные центры и системы?

Это не обязательно пересечение двух государственных календарей.

Правило может ссылаться на конкретные Business Centers, валютные расчётные системы или дополнительные центры из подтверждения сделки.

Календарь является частью контрактной логики. Нельзя молча заменить его «календарём страны по коду валюты».

Что делает Business Day Convention?

Сначала правила дают неадаптированную дату. Если она не является Business Day, Business Day Convention определяет направление переноса.

Сравнение правил переноса нерабочей даты Following переносит дату вперёд. Modified Following переносит вперёд, но при смене месяца возвращается назад. Preceding всегда переносит назад. КАК ПЕРЕНЕСТИ НЕРАБОЧУЮ ДАТУ? FOLLOWING Нерабочая датасуббота Следующий рабочийпонедельник MODIFIED FOLLOWING Конец месяцаследующий день уже новый месяц Предыдущий рабочийостаёмся в том же месяце PRECEDING Нерабочая датасуббота Предыдущий рабочийпятница Конвенция должна применяться к той дате и тем календарям, которые определены контрактом

Following переносит дату на следующий Business Day. Preceding — на предыдущий.

Modified Following сначала идёт вперёд. Если перенос уводит дату в следующий календарный месяц, система выбирает предыдущий Business Day.

Как Tenor превращается в Far Value Date?

Tenor задаёт срок экономически. Календарь и конвенция определяют допустимую дату исполнения этого срока.

Tenor 1M означает один календарный месяц по правилам продукта, а не 30 дней. Поэтому 1M и 30D могут привести к разным датам.

Как tenor FX Swap превращается в Far Value Date Trade Date вместе со Spot Lag и календарями даёт Near Date. Tenor и roll rule дают неадаптированную Far Date, после чего календарь и конвенция дают договорную Far Value Date. TENOR ЗАДАЁТ СРОК · КАЛЕНДАРЬ ЗАДАЁТ ДАТУ Trade Dateмомент сделки Spot Lag+ Joint Calendar Near / Spot Dateбаза срока Tenor1W · 1M · 3M · 1Y Roll Rulesame dayили end-of-month Unadjusted Far Dateцелевая календарная дата Calendars + Conventionпроверить и перенести Far Value Dateдоговорная дата платежа Пример End-of-Month31 января + 1M → последний допустимый день февраля → calendar adjustment Каждая стрелка — отдельное правило, которое должно быть объяснимо и воспроизводимо

Система сначала получает Near Date, затем применяет Tenor и Roll Rule.

Так появляется Unadjusted Far Date, которую ещё нужно проверить по календарям и перенести согласно конвенции.

Если базовая дата находится в конце месяца, может применяться End-of-Month Rule.

Например, для 31 января срок 1M должен корректно определить допустимую дату февраля.

Для коротких FX-сделок встречаются специальные tenors: ON — Overnight, TN — Tomorrow/Next, SN — Spot/Next. У них различаются Near Date, Far Date и точка отсчёта.

Broken Date означает нестандартную явно согласованную дату.

Она не выводится только из стандартного Tenor, но всё равно проверяется по договорным календарным правилам.

Как таймзона и Cut-off определяют Business Date?

Календарь отвечает, рабочий ли это день.

Time Zone и Cut-off определяют, наступил ли этот день и к какому операционному дню относится событие.

Один момент может быть вечером в New York, ночью в London и уже следующим календарным днём в Tokyo.

Поэтому UTC-дата события не обязана совпадать с Business Date сделки.

Как timestamp превращается в Business Date Один однозначный момент UTC переводится в локальное время указанной зоны. Локальный cut-off определяет, относится событие к текущему или следующему Business Date. ОДИН INSTANT · РАЗНЫЕ ЛОКАЛЬНЫЕ ДАТЫ Event Time · UTC Instantоднозначный момент события America/New_YorkLocal Date + Timeс учётом DST Europe/LondonLocal Date + Timeс учётом DST Asia/TokyoLocal Date + Timeможет быть уже следующий день Process-specific Cut-offдо cut-off → сегодня · после → следующий Business Date BUSINESS DATE

Business Date нельзя определять как date(timestamp UTC).

Сначала Instant переводится в Local Date Time нужной зоны, затем применяется локальный Cut-off конкретного процесса.

Например, сделка после торгового Cut-off может относиться к следующему Business Date, хотя её Event Time остаётся прежним.

Платёжный Cut-off, торговый Cut-off и граница риск-отчётности могут различаться.

Правило должно явно указывать процесс, временную зону и результат после наступления Cut-off.

Нужно хранить идентификатор зоны, например Europe/London, а не только UTC+1.

Offset меняется из-за переходов на летнее время и изменений правил часового пояса.

Чем отличаются Event Time, Processing Time и Business Date?

Event Time показывает, когда событие произошло. Processing Time — когда система получила или обработала сообщение.

Business Date показывает, к какому операционному дню относится событие.

Платёж мог исполниться в 23:58, а сообщение поступить в Risk Control System в 00:03.

Если использовать Processing Time вместо Event Time, риск исчезнет в неправильный момент.

Как календарь влияет на риск?

Если дата сдвинулась, сдвигается момент денежного потока.

Treasury должна обеспечить валюту в другой день, а Risk Control System — использовать новую дату в расчёте.

  • Liquidity Gap попадает в другую временную корзину.
  • Future Exposure моделируется на изменившемся горизонте.
  • Дисконтирование использует другое время до Cash Flow.
  • Settlement Risk начинается вокруг фактической Value Date.
  • Cut-off и локальное время меняют длительность Settlement Window.
  • EOD-снимок может отнести событие к другому Business Date.
  • Limit Usage может измениться из-за переноса обязательства.

Ошибка на один день — не косметическая. Она может дать неверный платёж, неверную ликвидность и неверный риск одновременно.

Что должна хранить система?

Для воспроизводимости недостаточно сохранить итоговую дату.

Нужны исходная дата, Tenor, Roll Rule, календари, Business Centers, конвенция, версия календарных данных и результат.

Для события нужны Event Time, Processing Time и вычисленный Business Date.

Для локального правила — Zone ID, Cut-off и версия timezone data, использованная при расчёте.

Праздники иногда объявляются или меняются после заключения сделки.

Поэтому система должна различать календарь, известный на дату расчёта, и актуальный календарь исполнения.

Внеплановый выходной требует управляемого пересчёта. Нельзя незаметно изменить дату во всех сделках без версии, причины и Audit Trail.

Кто отвечает и как он думает?

Middle Office проверяет calendars, Business Centers и conventions в Trade Record.

Его вопрос: можно ли воспроизвести договорную дату из условий сделки?

Back Office и Operations следят за платёжными календарями, Zone ID, cut-offs и фактической возможностью расчёта.

Их вопрос: можно ли исполнить обязательство в рассчитанный день и время?

Treasury смотрит на дату как на будущий приток или отток валюты. Сдвиг даже на один день меняет Liquidity Forecast.

Риск-офицер контролирует, что Exposure, PFE, Liquidity Gap и Settlement Risk используют те же даты, Business Date и Event Time, что Trade Record и платёжный процесс.