Releases of Strata are performed when a set of functionality has stabilized. To access a release, see the options for obtaining Strata.
3 November 2016
This minor release contains 5 fixed issues - 1 bug fix and 4 enhancements.
- Bug fix - Example should output to target directory: #1404
- Enhancement - Inflation seasonality: #1407
- Enhancement - Enhance schedule generation: #1403
- Enhancement - Add SCALED shift type: #1402
- Enhancement - More example: #1391
20 October 2016
This minor release contains 8 fixed issues - 3 bug fixes and 5 enhancements.
- Bug fix - No scaling is applied to single-node bucketed gamma in the measures API: #1383
- Bug fix - ExplainKey.FROM_FIXING_SERIES is only populated if the fixing date equals the valuation date: #1380
- Bug fix - Measure is not Joda-convertible: #1386
- Enhancement - Add serializable interface: #1393
- Enhancement - Added GBP/EUR cross-currency convention: #1390
- Enhancement - Support single-node bucketed gamma for BulletPaymentTrade: #1382
- Enhancement - Add ValueWithFailures: #1396
- Enhancement - Allow Strata to be on the classpath more than once: #1394
7 October 2016
This release contains 62 fixed issues - 15 of which are bug fixes.
The key features are:
- Measure-level and Calc-level API support for all asset classes: #1263, #1344, #1331
- Additional holiday calendars and indices for SEK, DKK and PLN: #1373, #1326
- Enhanced performance for swap pricing: #1293, #1329
- More flexible loaders: #1267, #1269, #1245, #1249, #1282
- Support FpML parameterized notional schedule: #1242
- Enhanced explain present value: #1256, #1270, #1362
- Better error messages: #1280, #1275, #1225, #1254
- FRA payment dates are now calculated correctly: #1301
Feel free to give us feedback or ask a question in the forums.
This release is backwards compatible except for bond pricing. A total of 14 methods were marked as deprecated, all with documented replacements.
The backwards incompatibility in bond pricing is unfortunate. The changes were necessary to enable bond pricing integration into the calculation-level API. It also allow us to add pricing for Bills in the future. Migration will mostly consist of simple renames, see this pull request for more details.
As an advance warning, the CDS code is likely to change in a backwards incompatible way in release v1.2. However, it remains our goal to avoid incompatibility as far as reasonably possible.
15 July 2016
The first full release of Strata, after two years of development. Strata is already in use in production and has now reached the point where v1.0 is appropriate.
The key features are:
- Measure-level API - a high level API calculating measures for one trade
- Calc-level API - a high level API calculating measures for a mixed portfolio of trades
- Pricer-level API - a low level API performing calculations for one trade
- Market data structures - representations of curves, surfaces and other kinds of market data
- Product domain model - beans representing different financial instruments
- Conventions, indices, and holiday calendars for common markets
The supported asset classes are:
- Swap - including Vanilla, OIS, Basis, Inflation, Cross Currency and Variable Notional
- Deliverable Swap Future (DSF)
- Constant Maturity Swap (CMS)
- Ibor cap/floor
- Forward Rate Agreement (FRA)
- FX forward/spot - including Non-Delivered Forward (NDF)
- FX swap
- FX options - vanilla and single barrier
- STIR futures/options
- Bonds - Fixed coupon and Capital indexed
- Bond futures/option
- Term deposit
- Bullet payment
- CDS - currently being reviewed and subject to incompatible change
Feel free to give us feedback or ask a question in the forums.
5 July 2016
This release prepares the way for v1.0, which will be the next release. This primarily involved fixing bugs and mistakes in the API.
- Calculation API tightened to clearly separate scenario from non-scenario
- DSF based on standard market price, not decimal/fractional price
- Curve calibration with a Fed-Fund swap
- More control over IborFuture curve nodes
- Add calendar and indices for Norway
- Fixed inflation swap conventions
- Scenario generation API refactored
- New surface interpolators - surface data must now be sorted
- Renamed term deposit conventions
- Renamed scenario return types, eg. CurrencyValuesArray to CurrencyScenarioArray
- Restructured examples
- Removed implementation-specific classes from public API
Feel free to ask a question in the forums if you have difficulty porting code from v0.15 to v0.16.
17 June 2016
This release contains a new measures API. The measures API is intended to be the main access to the functionality of Strata. Applications currently using the pricer API should consider using the measures API instead.
For example, consider using
SwapTradeCalculations instead of
- New measures API
- Extended set of measures access via the calculation API
- Renamed PV01 measures
- Add a calculator to obtain the notional equivalent
- Add currency exposure and current cash to some instruments
- Add support for known amount stubs on swaps (fixed and ibor legs)
Feel free to ask a question in the forums if you have difficulty porting code from v0.14 to v0.15.
9 June 2016
This release contains a major simplification of the calculation API.
The “rules” part of the calculation API has been replaced with a “parameter” concept,
RatesMarketDataLookup that selects from the complete set of market data.
The new design is far simpler, with logic moved out of the framework and into code that applications
can control and extend. The results model now includes column headers.
The calculation runner and market data factory are both affected.
There has also been significant refactoring of packages, module structure and market data.
Separate curve and surface sensitivity objects have been combined.
Scenario market data is now more widely available, with the
MarketDataKey concept removed.
strata-function project has been renamed to
The goal has been to provide a structure that will last Strata in the long term.
v1.0 is approaching and expected at the end of June and will provide backwards compatible API stability.
- Simplified and extensible calculation API
- Curve sensitivity rebucketing
- FX single barrier option trade model and pricer
- FX vanilla option Vanna Volga pricer
- SABR swaption calibrator
- Additional swap conventions
- Abstraction for market data parameters
Feel free to ask a question in the forums if you have difficulty porting code from v0.12 to v0.14.
11 April 2016
This release contains a major rework of the security model to introduce positions.
GenericFutureOption have gone, with
GenericSecurity in use instead.
Security interface is added, with implementations that refer to other securities by identifier.
There is also a new
Position interface with
The next release will be v0.14, not v1.0.
- New security and position domain model
- Replaced generic future/option by generic security
- Inflation swap conventions
- Canadian holidays and indices
- Improved FX rate triangulation
- Enhanced examples
Feel free to ask a question in the forums if you have difficulty porting code from v0.11 to v0.12.
18 March 2016
This release contains a major rework of the trade model to introduce reference data.
Holiday calendars are now treated as data, referenced by an identifier.
Securities can also now be referenced by identifier, although only for mark-to-market pricing at present.
While there will no doubt be further trade model tweaks before v1.0, this set of changes should be by far the largest.
The holiday calendar data provided with Strata is now available using
These changes also caused
StandardId to change package.
The next release will be v0.12, not v1.0.
- New asset classes - Capital Indexed Bonds
- Refactored trade model treating holidays and securities as reference data
- Added dedicated index observation objects for querying market data
- Type-safe attributes can be attached to trades
- Add Canadian holidays and indices
- Allow holiday calendars to be queried beyond known dates
Feel free to ask a question in the forums if you have difficulty porting code from v0.10 to v0.11.
29 February 2016
Additional preparatory work for v1.0. The next release will be v0.11, not v1.0. The next release will contain a significant refactoring of the trade model to allow holidays to be managed as reference data.
- New asset classes - CMS, CMS cap/floor and Ibor cap/floor
- Calculation function design simplified, with all functions operating as multi-measure
- Enhance FX conversion of function results
- Enhanced FpML parsing, including inflation swaps
- Control over the date generated for each node in curve calibration
- Synthetic curve calibrator, calibrating on synthetic instruments
- Schedule generation handling all-stub schedules, plus performance tweaks
14 January 2016
Additional preparatory work for v1.0.
- Simpler calculation runner concept for calculations with many trades, many measures or many scenarios
- Unified pricing for Swaptions, with present value available via the calculation runner
- Add currency exposure to pricers
- Use data files to define holidays and indices
- Update interpolators and extrapolators
- Efficient data structures for large scenarios
19 November 2015
A major update that brings functionality much closer to that needed for v1.0.
- Curve calibration
- New asset classes - FX Forward, FX Swap, FX NDF, Term Deposit, Deliverable Swap Futures, Ibor STIR Futures, Bullet Payment
- Pricing level support for Swaptions, Bonds, FX vanilla options, Bond Futures, Bond Future Options, STIR Future Options (Ibor)
- Loader project, allowing data to be loaded from XML and CSV formats
- Reporting framework promoted from Beta
- Removed dependency on legacy Analytics codebase
25 June 2015
The initial release.
- Calculation engine, calculating risk measures, managing market data and scenarios
- Product definitions
- Foundations, including day counts, schedules, holidays and indices
- Asset classes - FRA, Interest Rate Swap, Generic Futures, Generic Future Options, Credit Default Swap