Skip to content

Enforce required today's fixing before overnight coupon projection - #3060

Open
Kiril1Shevtsov wants to merge 1 commit into
lballabio:masterfrom
Kiril1Shevtsov:fix/overnight-required-today-fixing
Open

Kiril1Shevtsov wants to merge 1 commit into
lballabio:masterfrom
Kiril1Shevtsov:fix/overnight-required-today-fixing

Conversation

@Kiril1Shevtsov

Copy link
Copy Markdown

When Settings::enforcesTodaysHistoricFixings() is enabled, the compounding overnight coupon pricer can bypass a missing current-date fixing through its telescopic discount-factor shortcut. Check the required history before entering the today-fixing fallback, outside its catch block.

The regression covers missing, stored-null and present current-date fixings with enforcement on and off, full and telescopic schedules, lookback and observation shift. Present and optional-history cases are checked against independently enumerated overnight deposit products. A future-only coupon remains forecastable without today's fixing.

Validation against cf74c9f657150750dfbf00ed6fd4c0768bc5ce36:

  • The same new-test executable fails 12 assertions with the baseline library and passes all 86 assertions with the candidate.
  • The affected overnight-coupon suite passes all 46 cases and 249 assertions.
  • The final unfiltered stock suite passes 1,715 cases and 619,823 assertions, with no failures or skipped cases.
  • git diff --check and the test-message check pass.

Native builds used Linux x86_64, GCC 14, Boost 1.87 and C++17, shared/default configuration, unity builds, -O1 -g0 -DNDEBUG and warnings as errors. The changed production and stock-test units were rebuilt and linked with hash-verified unchanged baseline objects; this was not a fresh complete rebuild.

This change is limited to CompoundingOvernightIndexedCouponPricer. Arithmetic averaging and the separate lockout and daily-spread corrections are outside its scope.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant