Atoti Market Data overview
Atoti Market Data offers an API for retrieving and processing market data across various sources. The library provides interfaces for integrating market data into applications, supporting interpolation techniques, and allowing flexible configurations.
Market data retrieval
Atoti Market Data provides retrieval methods for various types of market data:
Type | Description |
---|---|
Single market data retrieval | Retrieve a single market data value based on specified coordinates, like date, market data set, or instrument. |
Curve data retrieval | Retrieve market data organized along a single axis, such as a yield curve or interest rate curve. |
Surface data retrieval | Retrieve market data organized along two axes, such as volatility surfaces (dependent on both tenor and moneyness). |
Cube data retrieval | Retrieve multi-dimensional data from a cube (for example, swaptions data), with dimensions like tenor, moneyness, and underlying maturities. |
FX rate data retrieval | Retrieve foreign exchange rates from the FX rate market data store. |
Interpolation techniques
The library supports multiple interpolation techniques for estimating missing or intermediate data points within market data:
Using Atoti Market Data
You can integrate Atoti Market Data into your project the following ways:
These approaches are a trade-off between flexibility and ease of use.
market-data-lib
The market-data-lib
module is a library of components, including market data store definitions, post-processors for retrieval, interpolators, and more. Add this dependency to your project to pick and choose only the specific components you need. These can be used as a base for custom implementations of the interfaces, or as-is.
For details on the available interfaces and implementations, see Configuration and implementation details.
You will need to manage the lifecycle of the components directly. Simply adding the dependency to your project will not do anything.
Implementation
To use this dependency add the following to your pom.xml file:
<dependency>
<groupId>com.activeviam.apps.market-data</groupId>
<artifactId>market-data-lib</artifactId>
<version>${atoti-market-data.version}</version>
</dependency>
Pros & cons
This approach provides the most flexibility to utilize only those components you require. However, it requires the most work to instantiate and manage these components.
market-data-config
The market-data-config
contains Spring configuration classes that instantiate beans to address specific use-cases. You can import these configuration classes in your Spring project to make the beans accessible in your application.
Implementation
To use this dependency add the following to your pom.xml file:
<dependency>
<groupId>com.activeviam.apps.market-data</groupId>
<artifactId>market-data-config</artifactId>
<version>${atoti-market-data.version}</version>
</dependency>
You can then import configuration classes. For example if you wanted to use the FX retrieval stack you would create a configuration class as follows:
@Configuration
@Import(value = {
FxRateMarketDataRetrievalConfig.class
})
public class MyMarketDataConfigurationClass() {
For details on the available configuration files and their behavior, see the relevant section.
You can configure the instantiated beans with Configuration Properties.
Pros & cons
This approach requires a lot less code than using the library directly, although not as easy as using the Spring Boot Starter. It is more opinionated than using the library but more flexible than the Spring Boot Starter which automatically imports all configuration classes.
market-data-spring-boot-starter
The market-data-spring-boot-starter
module allows you to add a single dependency project and have all beans auto-configured for you. Beans will be configured for:
- Stores (and specific retrievers)
- Services (retrievers and interpolators)
- Registry injection (injecting the appropriate objects into post-processors)
You can configure the instantiated beans with Configuration Properties.
Implementation
To use this dependency add the following to your pom.xml file:
<dependency>
<groupId>com.activeviam.apps.market-data</groupId>
<artifactId>market-data-spring-boot-starter</artifactId>
<version>${atoti-market-data.version}</version>
</dependency>
Pros & cons
This approach provides a highly opinionated implementation for Atoti Market Data with the easiest set up.
Configuration and implementation details
For detailed information about the implementation and configuration, please refer to:
Topic | Section |
---|---|
Retrieval | Data retrieval |
Interpolation | Interpolation APIs |
Post-processors | Post-processors |
Configuration Properties | Configuration Properties |
Stores | CubeMarketData |
CurveMarketData | |
FXRateMarketData | |
SpotMarketData | |
SurfaceMarketData |
Source configuration
Atoti Market Data does not provide source configuration for loading data into the market data stores. You can implement it as appropriate for your project.