Migration notes 5.0
This page explains the changes required to migrate to the stated version of the Atoti Market Risk.
Migrate to 5.0.0
Upgrading from version 4.1.0 - see Atoti Market Risk 5.0.0 Release Notes.
- Atoti Market Risk uses Atoti Server 6.0.3 and Atoti UI 5.0.22. For new features and fixes included in these releases, please see the Atoti UI documentation and Atoti UI Migration Notes, and the release notes for Atoti Server.
Headline announcement
- Upgrade to Atoti Server 6.0.3
- What-If and Sign-Off REST services migrated to Spring MVC : The What-If REST and Sign-Off services are now @RestController classes that conform to Spring MVC patterns.
- Change to the way FX conversion is computed for PnL values in the VaR-ES cube.
- Taylor VaR enhancements:
- You can now use market shift data from a different date to the asOfDate for the calculation of Taylor measures.
- New measures display minimum, maximum and average values of market shift vectors, and the value at a user-specified percentile of the vector.
- TradeKey field has been introduced for Summary data.
- Application and Integration tests have been moved to dedicated module.
- Sources have been moved to jar artifacts.
- Configuration module sources have been moved to a separate zip to be used in conjunction with the main application zip.
Upgrade to Atoti Server 6.0.3
Monitoring configuration
In Atoti Server 6.0.3, monitoring is part of the core product. The Atoti Server Monitoring (APM) extension is no longer needed.
- The following configuration files have been added:
- ApplicationMonitoringConfig.java
- BraveTracingConfig.java
- MonitorConfig.java
Security Configuration
- The UserDetailsService bean is now defined in its own class, UserDetailsServiceConfig. The class InMemoryUserDetailsManagerBuilder has been removed.
- In the class ASecurityConfig, the class AActiveUISecurityConfigurer has been added to handle the security for the Atoti UI connection.
The SecurityConfig file has been modified accordingly.
Data-Extract-Engine Configuration
Only the CsvDataExtractionEngineConfig configuration class coming from the Data Controller core classes is imported now. These configuration files are no longer imported:
- CsvDataExtractionServicesConfig
- CsvDataExtractionRestServicesConfig
- CsvEnhancedDrillthroughServicesConfig
- EnhancedDrillthroughRestServicesConfig
- DataExtractionWebServicesConfig
- DataExtractionRemotingServicesConfig
REST services
-
The classes DatastoreServiceConfiguration and MarketRiskDatastoreServicesConfig have been removed.
-
The classes ISignOffRestService and SignOffRestServiceConfig have been removed.
-
The class SignOffRestService is now a Spring MVC RestController.
-
The class DataLoadControllerRestServiceConfig has been removed.
-
The class WhatIfFileUploadRestConfig has been removed.
-
The interface IWhatIfSubmitter has been created in the mr-common-lib module with a default implementation for a What-If submission. In order to define that interface in mr-common-lib module, a dependency to whatif-core and a dependency to adjustments-services have been added in the POM file of the module.
-
The WhatIf REST services in the project are defined as RestController classes:
- In the mr-common-config module:
- ParentChildRestServiceController
- in the mr-var-config module:
- PnLBookScalingRestService
- PnLBookAddonRestService
- PnLVectorScalingRestService
- PnLVectorAddonRestService
- PnLScenarioScalingRestService
- PnLScenarioAddonRestService
- PnLVectorSubstitutionRestService
- in the mr-sensi-config module:
- DeltaBookScalingRestService
- DeltaBookAddonRestService
- DeltaVectorScalingRestService
- DeltaVectorAddonRestService
- DeltaVectorSubstitutionRestService
- In the mr-common-config module:
-
The class ParentChildRestfulService has been removed and is replaced by the class ParentChildRestServiceController implemented as a RestController.
-
The class SupportedWhatIfOperationsRestServiceConfig now simply imports the configuration files SupportedBranchAwareAdjustmentsService and SupportedBranchAwareAdjustmentsRestService.
-
The class WhatIfRestConfig imports the classes mentioned above.
-
The class FileUploadWhatIfRestfulService is now a RestController.
Content Server Database
The content server database has been migrated to H2 version 2.
Datastore Configuration
- The class ExtendedDatastoreConfig has been renamed to ExtendedActivePivotWithDatastoreConfig and its content upgraded to be compatible with the Atoti Server 6.0 API.
Source Configuration
-
The interfaces CsvColumnsProviderFunction (class file), CsvPublisherProviderFunction (class file) and CsvSourceParametersProviderFunction (in class ACsvSourceParametersProvider) have been created as aliases of functions used to make source configuration beans accessible from a different configuration class than the one in which they are defined without cycling bean dependencies.
They are used in the classes CsvColumnsProvider, CsvPublisherProvider and in all the source configuration files:-
in the mr-common-config module:
- AdjustmentAzureCsvSourceConfig
- AdjustmentCsvSourceConfig
- AdjustmentLocalCsvSourceConfig
- CommonAzureCsvSourceConfig
- CommonCsvSourceConfig
- CommonLocalCsvSourceConfig
-
in the mr-var-config module:
- VaRSummaryAzureCsvSourceConfig
- VaRSummaryCsvSourceConfig
- VaRSummaryLocalCsvSourceConfig
- VaRAzureCsvSourceConfig
- VaRCsvSourceConfig
- VaRLocalCsvSourceConfig
- VarSourceConfiguration
-
in the mr-sensi-config module:
- ASensiCsvSourceConfig
- SensiAzureCsvSourceConfig
- SensiLocalCsvSourceConfig
- ASensiImportCsvSourceConfig
- SensiImportAzureCsvSourceConfig
- SensiImportLocalCsvSourceConfig
- ScalarSensiCsvSourceParametersProviderConfig
- SensiCsvSourceParametersProviderConfig
- StdSensiCsvSourceParametersProviderConfig.
The source configuration for scalar sensitivities has been put in the ScalarSensiCsvSourceParametersProviderConfig, that replaces the AScalarSensiCsvCSourceConfig class.
The source configuration for vectorized sensitivities has been put in the StdSensiCsvSourceParametersProviderConfig class, that replaces the AStdSensiCsvSourceConfig class.
The ScalarSensiAzureCsvSourceConfig and ScalarSensiLocalCsvSourceConfig classes have been removed.
-
in the mr-sensi-config module:
- PnLAzureCsvSourceConfig
- PnLCsvSourceConfig
- PnLLocalCsvSourceConfig
- PnLCsvSourceParametersProviderConfig
- PnLSummaryAzureCsvSourceConfig
- PnLSummaryCsvSourceConfig
- PnLSummaryLocalCsvSourceConfig
-
-
The AdjustmentsCsvSourceParametersProviderConfig and CommonCsvSourceParametersProviderConfig classes have been removed.
-
The CommonSourcePatternsConfig class has be renamed to CommonCsvSourceParametersProviderConfig and moved from config to extensions package. The bean commonPatterns is split into two beans, commonPatterns and commonPatternsMainCubes, which return ChannelParametersHolderOperator instead of ChannelParametersHolder.
-
The following Spring bean qualifiers have been changed:
Define | Value | What | Related source | Bean return |
---|---|---|---|---|
SP_QUALIFIER__SENSI_TOPIC_COLUMNS_PROVIDER | sensi-topic-columns-provider | Removed | Sensi-Source | CsvColumnsProvider |
SP_QUALIFIER__SENSI_TOPIC_PUBLISHERS_PROVIDER | sensi-topic-publishers-provider | Removed | Sensi-Source | CsvPublisherProvider |
SP_QUALIFIER__SENSI_SUMMARY_TOPIC_COLUMNS_PROVIDER | sensi-summary-topic-columns-provider | Removed | Sensi-Import-Source | CsvColumnsProvider |
SP_QUALIFIER__SENSI_SUMMARY_TOPIC_PUBLISHERS_PROVIDER | sensi-summary-topic-publishers-provider | Removed | Sensi-Import-Source | CsvPublisherProvider |
SP_QUALIFIER__VAR_TOPIC_COLUMNS_PROVIDER | var-topic-columns-provider | Removed | VaR-Source | CsvColumnsProvider |
SP_QUALIFIER__VAR_TOPIC_PUBLISHERS_PROVIDER | var-topic-publishers-provider | Removed | VaR-Source | CsvPublisherProvider |
SP_QUALIFIER__VAR_SUMMARY_TOPIC_COLUMNS_PROVIDER | var-summary-topic-columns-provider | Removed | VaR-Summary-Source | CsvColumnsProvider |
SP_QUALIFIER__VAR_SUMMARY_TOPIC_PUBLISHERS_PROVIDER | var-summary-topic-publishers-provider | Removed | VaR-Summary-Source | CsvPublisherProvider |
SP_QUALIFIER__PNL_TOPIC_COLUMNS_PROVIDER | pnl-topic-columns-provider | Removed | PnL-Source | CsvColumnsProvider |
SP_QUALIFIER__PNL_TOPIC_PUBLISHERS_PROVIDER | pnl-topic-publishers-provider | Removed | PnL-Source | CsvPublisherProvider |
SP_QUALIFIER__PNL_SUMMARY_TOPIC_COLUMNS_PROVIDER | pnl-summary-topic-columns-provider | Removed | PnL-Summary-Source | CsvColumnsProvider |
SP_QUALIFIER__PNL_SUMMARY_TOPIC_PUBLISHERS_PROVIDER | pnl-summary-topic-publishers-provider | Removed | PnL-Summary-Source | CsvPublisherProvider |
SP_QUALIFIER__ADJUSTMENTS_TOPIC_COLUMNS_PROVIDER | adjustments-topic-columns-provider | Removed | adjustment-Source | CsvColumnsProvider |
SP_QUALIFIER__ADJUSTMENTS_TOPIC_PUBLISHERS_PROVIDER | adjustments-topic-publishers-provider | Removed | adjustment-Source | CsvPublisherProvider |
SP_QUALIFIER__COMMON_TOPIC_COLUMNS_PROVIDER | common-topic-columns-provider | Removed | common-Source | CsvColumnsProvider |
SP_QUALIFIER__COMMON_TOPIC_PUBLISHERS_PROVIDER | common-topic-publishers-provider | Removed | common-Source | CsvPublisherProvider |
SP_QUALIFIER__SENSI_TOPIC_TO_STORE_AND_FILE_MAP | sensi-topic-to-store-and-file-map | Added | Sensi-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__SENSI_SUMMARY_TOPIC_TO_STORE_AND_FILE_MAP | sensi-summary-topic-to-store-and-file-map | Added | Sensi-Import-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__VAR_TOPIC_TO_STORE_AND_FILE_MAP | var-topic-to-store-and-file-map | Added | VaR-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__VAR_SUMMARY_TOPIC_TO_STORE_AND_FILE_MAP | var-summary-topic-to-store-and-file-map | Added | VaR-Summary-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__PNL_TOPIC_TO_STORE_AND_FILE_MAP | pnl-topic-to-store-and-file-map | Added | PnL-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__PNL_SUMMARY_TOPIC_TO_STORE_AND_FILE_MAP | pnl-summary-topic-to-store-and-file-map | Added | PnL-Summary-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__ADJUSTMENTS_TOPIC_TO_STORE_AND_FILE_MAP | adjustments-topic-to-store-and-file-map | Added | adjustment-Source | ChannelParametersHolderOperator |
SP_QUALIFIER__COMMON_TOPIC_TO_STORE_AND_FILE_MAP | common-topic-to-store-and-file-map | Added | common-Source | ChannelParametersHolderOperator |
commonPatterns | Removed | common-Source | ChannelParametersHolder |
Continuous Queries Streams and Handlers
- The class ASetStoreStream has been removed.
VaR FX Conversion
This version changes the method by which PnL vectors are converted to a different currency within the VaR-ES cube. The mark-to-market (MTM) value of the trade is now included in the calculation to ensure the FX risk associated with the trade is taken into account. Details of the calculation can be seen here. This change impacts all measures that are based on the PnL vectors, including VaR, VaE, Expected Shortfall, and so on.
Change in handling of summary data
In order to be consistent with the DirectQuery feature and to simplify the setup, the summary cubes (Var-ES Summary cube, Sensi Summary cube, PnL Summary cube) are deprecated.
The summary data are now intended to be loaded into the main cubes (Var-ES cube, Sensi cube, PnL cube) or grabbed from the DirectQuery feature. They will no longer be in a separate cube.
The summary data are intended to be aggregated at book level and doesn’t contain any TradeId. Compared to the file format used for the Summary cubes, the number of columns are reduced to get closer to the main store format. The parent child and the fx rates are intended to also be exported and re-imported as they are removed from the flat summary data.
To activate this new feature, the deprecated cubes have to be disabled (var-summary=false, pnl-summary=false, sensi-summary=false).
To store book-level data with trade-level data, a new field is now present on the base stores: TradeKey
. It takes the role of the primary key previously held by the TradeId
field.
For trade-level data, TradeKey
equals TradeId
. For book-level data, TradeKey
equals book + "#" + var_inclusion
and TradeId
is empty. It is equal to the specific value _DATAMEMBER_
, which means it’s empty for a level member.
Application tests moved
Tests have been moved from the mr-application module to their own module mr-application-tests. The test class MarketRiskTestApplication remains under tests in the mr-application module.
Deliverables
The application is now delivered on its own as a zip file while the rest of the sources are packaged as jars. All of them are available on Artifactory. As a result, now all modules have source and test jars available.
To preserve configuration flexibility, the configuration module sources (without tests) are now delivered as a zip file to be used in conjunction with the main application zip. To use this archive in a new project, extract the main archive into a directory, followed by the config archive in the same directory, overriding the pom.xml file.
Configuration files
Files Added
apm.properties
The apm.properties file is used to configure the Atoti Server Application Performance Monitoring (APM). APM monitors the healthiness and performance of Atoti Server instances. It provides several features easing the support work, and reducing the burden of maintaining and troubleshooting Atoti Server.
For more details on this file, see Application Performance Monitoring in the Atoti Server Documentation.
tracing.properties
Includes tracing configuration for Atoti Server. For additional information, see Tracing Properties in the Atoti Server Documentation.
Files Modified
jwt.properties
Properties starting with qfs.jwt
have been renamed to start with activeviam.jwt
.
application.yaml
New properties:
Property Name | Value | Comment |
---|---|---|
springdoc.swagger-ui.enabled |
false |
Enable flag for Swagger UI. |
spring.profiles.active |
"local-content" |
Active Spring profiles. |
mr.properties
New properties:
Property Name | Value | Comment |
---|---|---|
summaryPnLFilePattern |
glob:**SummaryPL*.csv | Pattern for the summary data loaded into the PnL Cube. |
summarySensiFilePattern |
glob:**SummarySensitivity*.csv | Pattern for the summary data loaded into the Sensitivity Cube. |
summaryTradePnlFilePattern |
glob:**SummaryVaR*.csv | Pattern for the summary data loaded into the VaR/ES Cube. |
mr-config.properties
New properties:
Property Name | Value | Comment |
---|---|---|
market.shift.date.level |
"MarketShiftDate@MarketShiftDate@Dates" |
Level containing the date used to select market shifts for Taylor calculations. |
market.shift.date.specific |
"TODAY=DAY0,YESTERDAY=DAY-1" |
The specific dates used to fill the MarketShiftDate hierarchy. The first one is the default. The format is <three characters for date plugin name> + <an integer as a parameter>.Where the default registered date plugins are:
|
shift.percentile.default.value |
95 |
The default percentile of market shifts when displayed by the x Shift Vector Percentile measures. |
Updated properties:
Property Name | Comment | New Value | Old Value |
---|---|---|---|
contentServer.factory-reset.folder-name | The folder to import only contains bookmarks information, not the content of the whole content server | mr-bookmarks | mr-content-server |
signoff.properties
Updated properties:
Property Name | Comment | New Value | Old Value | ||
---|---|---|---|---|---|
sign-off.extraction.templates | New template has been added to extract files with the new summary format. | DEFAULT:CubeAdjustmentExport,FXRateExport,BookParentChildExport;VaR-ES Cube:VaRESCubeExport,VaRESAggCubeExport,VaRESCubeMetricExport,VaRSummaryExport;VaR-ES Cube | VaR:VaRESCubeMetricVaROnlyExport;Sensitivity Cube:SensiCubeExport,SensiAggCubeExport,SensiCubeMetricExport;PLCube:PLCubeExport,PLAggCubeExport | DEFAULT:CubeAdjustmentExport,FXRateExport,BookParentChildExport;VaR-ES Cube:VaRESCubeExport,VaRESAggCubeExport,VaRESCubeMetricExport,VaRSummaryExport;VaR-ES Cube | VaR:VaRESCubeMetricVaROnlyExport;Sensitivity Cube:SensiCubeExport,SensiAggCubeExport,SensiCubeMetricExport;PLCube:PLCubeExport,PLAggCubeExport,PnLSummaryExport |
sign-off.extraction.templates.scalar | New template has been added to extract files with the new summary format. | DEFAULT:CubeAdjustmentExport,FXRateExport,BookParentChildExport;VaR-ES Cube:VaRESCubeExport,VaRESAggCubeExport,VaRESCubeMetricExport,VaRSummaryExport;VaR-ES Cube | VaR:VaRESCubeMetricVaROnlyExport;Sensitivity Cube:SensiScalarCubeExport,SensiScalarAggCubeExport,SensiCubeMetricExport,SensiSummaryExport;PLCube:PLCubeExport,PLAggCubeExport | DEFAULT:CubeAdjustmentExport,FXRateExport,BookParentChildExport;VaR-ES Cube:VaRESCubeExport,VaRESAggCubeExport,VaRESCubeMetricExport,VaRSummaryExport;VaR-ES Cube | VaR:VaRESCubeMetricVaROnlyExport;Sensitivity Cube:SensiScalarCubeExport,SensiScalarAggCubeExport,SensiCubeMetricExport,SensiSummaryExport;PLCube:PLCubeExport,PLAggCubeExport,PnLSummaryExport |
Properties used for tests: mr.bookmarks.properties
Updated properties:
Property Name | Comment | New Value | Old Value |
---|---|---|---|
contentServer.url | The exported folder only contains bookmarks information, not the content of the whole content server | mr-bookmarks | risk-content-server |
contentServer.bookmarks.export-folder-name | Updated URL for the ActivePivot 6.0.x content server | http://localhost:10010/mr-application/activeviam/content | http://localhost:10010/mr-application/content |
Datastores
Modified
The following fields have been added to the stores:
Modification | Store | Field | Type | Description |
---|---|---|---|---|
Added | TradePnL, BaseStore | MTM | Double | The mark-to-market (MTM) value of the trade. This is used to calculate FX risk when converting PnL values to another currency. |
Added | TradeAttributes | TradeKey | String | Primary key that contains either tradeID or book and other discriminator fields. |
Deleted | TradeAttributes | TradeId | String | The main table is now linked using the TradeKey field. |
Added | Pnl, BaseStore | TradeKey | String | Primary key that contains either tradeID or book and other discriminator fields. |
Modified | Pnl, BaseStore | TradeId | String | This fields is not a primary key anymore, the TradeKey field is used instead. |
Added | TradeSensitivities, BaseStore | TradeKey | String | Primary key that contains either tradeID or book and other discriminator fields |
Modified | TradeSensitivities, BaseStore | TradeId | String | This fields is not a primary key anymore, the TradeKey field is used instead. |
Added | TradePnL, BaseStore | TradeKey | String | Primary key that contains either tradeID or book and other discriminator fields |
Modified | TradePnL, BaseStore | TradeId | String | This fields is not a primary key anymore, the TradeKey field is used instead. |
Modified | TradePnL, BaseStore | Liquidity Horizon | Int | This fields is now a primary key. |
Modified | BookParentChild | Parent | String | Not a key field anymore. |
Modified | CounterpartyParentChild | Parent | String | Not a key field anymore. |
Modified | LegalEntityParentChild | Parent | String | Not a key field anymore. |
Measures
Added
Cube | Measure | Details |
---|---|---|
VaR-ES, VaR-ES Summary | MTM | Mark-to-market (MTM) value of the trade. |
VaR-ES, VaR-ES Summary | MTM Native | Mark-to-market (MTM) value of the trade in units of original currency. |
Market Data | Shift Vector Minimum | Minimum of the Market Shift vector, not interpolated, not normalized |
Market Data | Shift Vector Maximum | Maximum of the Market Shift vector, not interpolated, not normalized |
Market Data | Shift Vector Average | Average of the Market Shift vector, not interpolated, not normalized |
Market Data | Shift Vector Percentile | Percentile of the Market Shift vector, not interpolated, not normalized |
Market Data | Shift Vector Normalized Minimum | Minimum of the Market Shift vector, not interpolated, normalized |
Market Data | Shift Vector Normalized Maximum | Maximum of the Market Shift vector, not interpolated, normalized |
Market Data | Shift Vector Normalized Average | Average of the Market Shift vector, not interpolated, normalized |
Market Data | Shift Vector Normalized Percentile | Percentile of the Market Shift vector, not interpolated, normalized |
Sensi, Sensi Summary | Correlation Shift Vector Minimum | Minimum of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Correlation Shift Vector Maximum | Maximum of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Correlation Shift Vector Average | Average of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Correlation Shift Vector Percentile | Percentile of the Market Shift vector used by the Correlation sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Correlation Shift Vector Normalized Minimum | Minimum of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Correlation Shift Vector Normalized Maximum | Maximum of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Correlation Shift Vector Normalized Average | Average of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Correlation Shift Vector Normalized Percentile | Percentile of the Market Shift vector used by the Correlation sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Minimum | Minimum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Maximum | Maximum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Average | Average of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Percentile | Percentile of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Normalized Minimum | Minimum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Normalized Maximum | Maximum of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Normalized Average | Average of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | CrossGamma Shift Vector Normalized Percentile | Percentile of the Market Shift vector used by the CrossGamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Delta Shift Vector Minimum | Minimum of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Delta Shift Vector Maximum | Maximum of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Delta Shift Vector Average | Average of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Delta Shift Vector Percentile | Percentile of the Market Shift vector used by the Delta sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Delta Shift Vector Normalized Minimum | Minimum of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Delta Shift Vector Normalized Maximum | Maximum of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Delta Shift Vector Normalized Average | Average of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Delta Shift Vector Normalized Percentile | Percentile of the Market Shift vector used by the Delta sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Gamma Shift Vector Minimum | Minimum of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Gamma Shift Vector Maximum | Maximum of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Gamma Shift Vector Average | Average of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Gamma Shift Vector Percentile | Percentile of the Market Shift vector used by the Gamma sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Gamma Shift Vector Normalized Minimum | Minimum of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Gamma Shift Vector Normalized Maximum | Maximum of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Gamma Shift Vector Normalized Average | Average of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Gamma Shift Vector Normalized Percentile | Percentile of the Market Shift vector used by the Gamma sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vanna Shift Vector Minimum | Minimum of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vanna Shift Vector Maximum | Maximum of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vanna Shift Vector Average | Average of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vanna Shift Vector Percentile | Percentile of the Market Shift vector used by the Vanna sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vanna Shift Vector Normalized Minimum | Minimum of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vanna Shift Vector Normalized Maximum | Maximum of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vanna Shift Vector Normalized Average | Average of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vanna Shift Vector Normalized Percentile | Percentile of the Market Shift vector used by the Vanna sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vega Shift Vector Minimum | Minimum of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vega Shift Vector Maximum | Maximum of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vega Shift Vector Average | Average of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vega Shift Vector Percentile | Percentile of the Market Shift vector used by the Vega sensitivity, not interpolated, not normalized |
Sensi, Sensi Summary | Vega Shift Vector Normalized Minimum | Minimum of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vega Shift Vector Normalized Maximum | Maximum of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vega Shift Vector Normalized Average | Average of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized |
Sensi, Sensi Summary | Vega Shift Vector Normalized Percentile | Percentile of the Market Shift vector used by the Vega sensitivity, not interpolated, normalized |
Modified
This version changes the method by which PnL vectors are converted to a different currency within the VaR-ES cube. The mark-to-market (MTM) value of the trade is now included in the calculation to ensure the FX risk associated with the trade is taken into account. For the details of the calculation, see FX Effect on VaR. This change impacts all measures that are based on the PnL vectors, including VaR, VaE, Expected Shortfall, etc.
Input file formats
New files
File | Required | Purpose |
---|---|---|
SummarySensitivity.csv | This file stores the sensitivities relative to a risk factor at the book level. |
Modified
File | Details |
---|---|
TradePnLs.csv | An MTM column has been added representing the market-to-market value of the trade. Please note, the MTM column has been added before the PnL vector column. This is a breaking change. The column must be present in the input file, however it can be left empty for any trade. |
Cube schema
Added
Cube | Dimension | Hierarchy | Levels | Datastore fields | Details |
---|---|---|---|---|---|
Sensitivity, Sensitivity Summary, VaR-ES, VaR-ES Summary, Combined | MarketShiftDate | MarketShiftDate | [MarketShiftDate] | MarketShifts: AsOfDate. Supplemented by specific dates indicated in the market.shift.date.specific property. |
This slicing hierarchy is used to select market shifts from a specific date for the calculation of Taylor measures. |
Upgrade to What-If 2.0 and Solutions BOM 1.1-AS6.0
The Solutions Tools BOM has been upgraded to 1.1-AS6.0, replacing Accelerator Tools BOM 1.0-AP6.0:
<solutions-tools-bom.version>1.1-AS6.0</solutions-tools-bom.version>
This includes What-If 2.0.0-AS6.0, which required the change of dependencies from:
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif-examples</artifactId>
</dependency>
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif-core</artifactId>
</dependency>
to
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif</artifactId>
</dependency>
mr-common-config
- The class UnsecuredDatabaseServiceConfig has been added. It extends the core Atoti server class ADatabaseServiceConfig and defines parsers for What-If 2.0 objects, but does not set up the table security and does not define any formatters.
note
It is highly recommended to implement your own table security instead of using the one defined in the class UnsecuredDatabaseServiceConfig, and to use this class as a template to learn how to configure the table security and to obtain the map of parsers required by What-If 2.0.
-
WhatIfConfig: see What-If documentation: What-If Implementation Example for a detailed breakdown of the configuration of the new library.
-
Class WhatIfDatastoreDescriptionConfig.java:
configurator.addStore(schema, WhatIfDatastoreDefinition.WhatIfStoreDesc());
has been replaced by:
configurator.addStore(schema, SimulationPersistenceStoreDefinition.DatastorePersistenceStoreDesc());
-
Class MessengerDefinitionConfig.java: the WhatIfDistributedController has been removed from the query cube agents.
-
Files deleted:
File | Reason | |
---|---|---|
WhatIfConflictManager | The merging mechanism has been removed from What-If 2.0. | |
WhatIfSecurityManager | Replaced by the What-If 2.0 Spring-based security manager. | |
ParentChildWhatIfDefinition | Replaced by ParentChildSimulationDefinition in the common library. | |
VectorIndexScalingWhatIfDefinition | Replaced by PnLIndexedArithmeticSimulationDefinition in the mr-var-config. | |
VectorScalingWhatIfDefinition | Replaced by PnLArithmeticSimulationDefinition in the mr-var-config. |
mr-common-lib
- A dependency to the following artifact has been added in the POM file:
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif</artifactId>
</dependency>
It replaces the dependency to the following artifact:
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif-core</artifactId>
</dependency>
-
New interface IDatabaseSimulationSubmitter containing the default implementation method to submit a What-If request and the constant used to define the name space for What-If REST services. It replaces the deleted class IWhatIfSubmitter.java.
-
New class WhatIfUtils containing a helper method to parse the string representation of as-of-dates.
Implementation of What-If use cases
For an example of the process used to implement the MR what-if use-cases in What-If 2.0, refer to What-If Implementation Example
mr-sensi-config
-
The classes SensiBookArithmeticSimulationDefinition.java and SensiRollOverSimulationDefinition.java have been created to define the database simulation definitions. The class SensiSubstitutionWhatIfDefinition.java has been replaced by SensiBookArithmeticSimulationDefinition.java.
-
REST services: the interfaces in folder mr-sensi-config/src/main/java/com/activeviam/mr/sensi/config/whatif/rest/intf/ have been deleted: REST services are now defined using abstract classes instead of interfaces. Each abstract class returns the database simulation definition relevant for each use case. Where possible, the ICondition needed for the What-If operations are no longer defined in the abstract classes of the REST service, they are now defined in the database simulation definitions mentioned above.
-
The abstract classes ASensiVectorScalingRestService.java and ASensiBookScalingRestService.java have been removed, and their logic has been merged with the abstract class ASensiArithmeticSimulationRestService.java.
mr-sensi-lib
A dependency to the following artifact has been added in the POM file:
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif</artifactId>
</dependency>
mr-var-config
-
The classes PnLRollOverSimulationDefinition.java, PnLIndexedArithmeticSimulationDefinition.java and PnLArithmeticSimulationDefinition.java.java have been created to define the database simulation definitions.
-
The class PnLVectorSubstitutionWhatIfDefinition.java has been removed, replaced by the newly created PnLRollOverSimulationDefinition.java class.
-
REST services: the interfaces in folder mr-var-config/src/main/java/com/activeviam/mr/var/config/whatif/rest/intf have been deleted: REST services are now defined using abstract classes instead of interfaces. Each abstract class returns the database simulation definition relevant for each use-case. Where possible, The ICondition needed for the What-If operations are not anymore defined in the abstract classes of the REST service, they are now defined in the database simulation definitions mentioned above.
-
The abstract classes APnLBookScalingRestService.java and APnLVectorScalingRestService.java have been removed, and their logic has been merged with the abstract class APnLArithmeticSimulationRestService.java.
-
The abstract class APnLScenarioScalingRestService.java has been replaced by the abstract class APnLScenarioIndexedArithmeticSimulationRestService.java.
-
The abstract class APnLVectorSubstitutionRestService.java has been replaced by the abstract class APnLRollOverRestService.java.
mr-var-lib
A dependency to the following artifact has been added in the POM file:
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif</artifactId>
</dependency>
It replaces the dependency to the following artifacts:
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif-core</artifactId>
</dependency>
<dependency>
<groupId>com.activeviam.tools</groupId>
<artifactId>whatif-examples</artifactId>
</dependency>
mr-application
- The FileUploadWhatIfDefinition class now extends ADatabaseSimulationDefinition.
- The class FileUploadWhatIfSubmitter creates instances of FileUploadWhatIfDefinition.
- The class FileUploadWhatIfRestfulService injects an implementation of IDatabaseSimulationsWorkflow instead of IWhatIfWorkflow.
Dependencies to Limits
Dependency to the limits module
- The dependency to the artifact lookup-post-processor-ap60 has been removed from the POM files.
- The definition of the limitsModule bean has been removed from the MarketRiskConfig.java file.
Dependency to the services JAR
- The dependency to the artifact com.activeviam.apps.services has been removed from the POM files.
- The import of the RestServiceConfig.class class has been removed from the MarketRiskConfig.java file.
To enable Atoti Limits in the project, please see the Atoti Limits documentation