This topic includes release notes about enhancements and updates to CME Optimizer Software versions.
...
1.2. Enhancements
1.2.1. PLN and MXN
CME will support MXN Overnight TIIE Funding Rate (F-TIIE) and PLN Warsaw Interest Rate Overnight (WIRON) swap clearing in the New Release environment on Wednesday, November 01, 2023 - please see the advisory here for more details. The Production support date is early 2024, please see CME's production advisories for more details. The New
Optimizer version 19 supports the curve data necessary for trading these new contracts. Users who do not trade these contracts are also required to support Optimizer version 19.
1.3. Fixes
1.3.1. Treasury Rules-based Offset Engine (CME/FICC Cross Margin Program) Logic
...
Configuration Section | Property |
---|---|
Inputs | IrsGammaLadderFilename |
Inputs | IrsSkewSensitivityFilename |
Inputs | IrsTimeValueFilename |
Inputs | IrsVegaLadderFilename |
1.5. Testing Considerations
As with all Optimizer test periods, it is recommended to test using a combination of input files:
...
This section illustrates changes to specific sections of the Optimizer’s configuration.json file to support treasury and SOFR option exclusions. Please see
See also: configuration.json file specifications here.
Option Lifecycle Exclusions
...
- The "cme_optimizer_marketdata . . ." file from the new release (NR) test environment.
- A positions.csv file generated in the test environment (unless SOFR and Treasury options are already in your production file, in which case, use production).
- All other input files from the production environment.
1.6. Out of Scope
Treasury and SOFR options not in 1.2.1 above, including:
...
Optimizer version 17 adds validation logic for invalid dates in the position.csv input file TradeDate field. Prior Optimizer versions defaulted transfer output to an un-tradable 1/1/0001 date when an improper TradeDate format was supplied. The TradeDate field is now expected to be in date format: yyyymmdd, mm/dd/yyyy, or m/d/yyyy. Optimizer version 17 produces an error at the portfolio level if the TradeDate field is not in these formats. The new expected error is:
Invalid trade date format detected: '<<invalid format>>'. Expected yyyyMMdd or MM/dd/yyyy or M/d/yyyy
...
- Due to firm feedback on preferred default trade exclusions, Optimizer version 17 incorporates updates the default configurations in the EventExclusions section of the configuration.json file. Please note these configurations are suggestions only and firms can update exclusion configurations to meet their use cases. To better understand exclusion configurations please refer to the User Guide here.
- For treasury products:
- Changes the BeginEventType exclusion attribute to be first position/intent date (enum = 17).
- This was previously first notice date. Delivery for treasuries can begin as early as First Intent Day, one day before first notice day.
- Example updated config:
- For treasury products:
Code Block |
---|
{ "Enabled": true, "Name": "First Position Date - Treasury Roll", "BeginEventType": 17, "DaysBefore": 0, "EndEventType": 7, "DaysAfter": 0, "Type": "FUT", "Exchange": "CBT", "Codes": [ "17", "21", "25", "26", "TN", "UBE" ] }, |
- For MAC swap futures products:
- Changes the BeginEventType exclusion attribute to be last trade date (enum = 7) and the EndEventType to be last delivery date (enum=14).
- This was previously beginning at First Intent Date, which is about a week prior to delivery for these products.
Example updated config:
Code Block |
---|
{ |
...
"Enabled": true, |
...
"Name": "Last Intent Date - MAC DSF", |
...
"BeginEventType": 7, |
...
"DaysBefore": 0, |
...
"EndEventType": 14, |
...
"DaysAfter": 0, |
...
"Type": "FUT", |
...
"Exchange": "CBT", |
...
"Codes": [ "F1U", "B1U", "T1U", "N1U" ] |
...
}, |
- For Eurodollar options:
- Changes the DaysBefore exclusion attribute to be 1 day.
- This was previously 0 days before LTD which was identified as too close to E&A.
- Example updated config:
Code Block |
---|
{ |
...
"Enabled": true, |
...
"Name": "Last Trade Date - ED Option Expiration", |
...
"BeginEventType": 7, |
...
"DaysBefore": 1, |
...
"EndEventType": 999, |
...
"DaysAfter": 0, |
...
"Type": "OOF", |
...
"Exchange": "CME", |
...
"Codes": [ "ED", "E0", "E2", "E3", "E4", "E5" ] |
...
} |
- There are no default additions to the TradeEvents section of the configuration.json file to support new Eris product trade event exclusions, however, users who want to exclude these products for any valid trade event can create a new custom exclusion based on the logic defined in the User Guide here.
- Eris products are cash-settled, hence, no exclusions were deemed necessary by default.
- Removes span.ini and orgmast.xml from the Plugins/Optimizer directory. These file is now supplied in the market data zip file and users will not need to specify their locations.
- Removes the following configurations which were deprecated or made redundant in this or a prior version:
- "ShowTransferOrigin"
- "ShowTotalSavings"
- "MaxNumberOfIterations"
- "SpanIniFilesFolder" (see above note)
- "RiskManagerConfigIsEncoded"
...
- Optimizer v15.1 adds a new configuration property to control net option value capping/SPAN flooring in the Optimizer solution decision.
- Property Name: FloorSpanForFinalMarginCheck
- Type: Boolean
- Default Value: True
- A value of "true" means that Optimizer caps NOV.
A value of "false" means that Optimizer does not cap NOV (same behavior as prior builds)
Code Block |
---|
"FloorSpanForFinalMarginCheck": true |
- Background:
- Optimizer iterates through multiple solution states to find the best account savings. At the end of the Optimizer software workflow, it reviews possible solutions and selects one based on the lowest margin.
- Net Option Value can act as a credit against computed market risk, and can lead to a SPAN Margin less than 0.
- During margin settlement, total available net option value for a given portfolio is capped at the total Risk Maintenance Requirement using this formula:
- If Risk Maintenance Requirement (RRM) is > or = total Net Option Value, then Total Requirement = RRM – NOV
- If Risk Maintenance Requirement (RRM) < total Net Option Value, then Total Requirement = 0 due to NOV capping
- For example, if an account’s computed risk factors are:
- RRM = $1,000,000
- NOV = $1,200,000
- Then total requirement = $0, ANOV was capped to $1,000,000
- Optimizer v15.1 allows users to specify whether the Optimizer should cap the net option value similar to the above when it makes its solution state decision.
- For a given account, example 1: "FloorSpanForFinalMarginCheck": true
- Optimized solution 1: IRS margin: 5,000,000; SPAN margin: 0 (capped); Total margin: 5,000,000
- Optimized solution 2: IRS margin: 0; SPAN margin: 0 (capped); Total margin: 0
- Optimizer chooses solution 2 with capping logic on
- For the same account example 2: "FloorSpanForFinalMarginCheck": false
- Optimized solution 1: IRS margin: 5,000,000; SPAN margin: -15,000,000 (uncapped); Total margin: -10,000,000
- Optimized solution 2: IRS margin: 0; SPAN margin: -9,000,000 (uncapped); total margin: -9,000,000
- Optimizer chooses solution 1 with capping logic off
- Prior versions of Optimizer also choose this solution
- For a given account, example 1: "FloorSpanForFinalMarginCheck": true
- Background:
Optimizer Version 15.0 Release Notes
...
This version of Optimizer support listed options in portfolio margining.
Updates to System Requirement (see User Guide)
Updates to Optimizer input files
- Input File Contents/Number of Required Files
- Optimizer version 15 requires 9 input files to run
- All inputs will be required
- Updated input file set is larger in size than prior versions of Optimizer
- Version 15 input file set is ~ 700 MB in size, including one compressed file containing both existing and new input (details in grid below)
- Uncompressed size is ~2.2 GB
- Optimizer software will decompress the new zip automatically - not user intervention will be required.
- Optimizer v14 previously required 13 files to run with a much smaller file size footprint
- Firms with good network connectivity (dedicated circuits, 10 MB/s or higher) should expect reasonable (observed ~1 minute) transfer duration from FTP whereas firms connecting via internet should consider direct connectivity
- Version 15 input file set is ~ 700 MB in size, including one compressed file containing both existing and new input (details in grid below)
- Optimizer version 15 requires 9 input files to run
- There are no impacts to the firm-produced Positions.csv input file
- Firms should continue to include options in the positions.csv file as normal. Firms not included options in the input file should add options.
- Input File Publishing Timeline
- New Optimizer input zip file will be published by 6 pm CT. The file latency is driven by increased computation load when CME Clearing produces options market data.
- Timeline details for both ITD and EOD files is in the grid below.
- Input File Contents/Number of Required Files
Optimizer 15 Input File Impacts (all times CT)
Current File Name(s) – Production*** | New File Name(s) – Production*** | Location | Current Publishing Time | Projected Publishing Time | Current size | Projected Size | Changes for this build? |
---|---|---|---|---|---|---|---|
IRSPNL_[firm ID]_yyyymmdd_ITD/EOD.csv | Same as current | Firm FTP | ITD: 5:30 pm EOD: 6:30 pm | Same as current | Depends on number accounts | Same as current | No |
IRSGammaLadder_[firm ID]_yyyymmdd_ITD/EOD.csv | Same as current | Firm FTP | ITD: 5:30 pm EOD: 6:30 pm | Same as current | Depends on number accounts | Same as current | No |
IRSVegaLadder_[firm ID]_yyyymmdd_ITD/EOD.csv | Same as current | Firm FTP | ITD: 5:30 pm EOD: 6:30 pm | Same as current | Depends on number accounts | Same as current | No |
IRSDL_[firm ID]_yyyymmdd_ITD/EOD.csv | Same as current | Firm FTP | ITD: 5:30 pm EOD: 6:30 pm | Same as current | 1 Depends on number accounts | Same as current | No |
IRSTimeValue_[firm ID]_yyyymmdd_ITD/EOD.csv | Same as current | Firm FTP | ITD: 5:30 pm EOD: 6:30 pm | Same as current | Depends on number accounts | Same as current | No |
IRSSkewSensitivity_[firm ID]_yyyymmdd_ITD/EOD.csv | Same as current | Firm FTP | ITD: 5:30 pm EOD: 6:30 pm | Same as current | Depends on number accounts | Same as current | No |
IRSFutureScenariosPnL_yyyymmdd.csv** IRSMargin_SkewScenarios_yyyymmdd.csv Futures_Delta_yyyymmdd.csv** Base_Curves_yyyymmdd.c.sv cme_rloptimizercfg_yyyymmdd.csv | cme_optimizer_marketdata _yyyymmdd.zip* (contains several market data files) | FTP: /pub/IRS | EOD: 5:30 pm (no ITD File) | EOD: 6:00 pm (no ITD file) | 10 MB (all files together) | 600-700 MB Compressed 2.2 GB Uncompressed |
|
cme.yyyymmdd.s/e.cust.spn.zip | Same as current | FTP: /pub/SPAN/XML | Early: 4 pm EOD: 6 pm | Same as current | 18 MB Compressed 200 MB Uncompressed | Same as current | No |
Positions.csv | Same as current | Firm-produced | Firm-dependent | Same as current | Firm-dependent | Same as current | No |
...
***All test region (NR) file names are the same but include “.nr” at the end.
3. Updates to Optimizer
...
Output Files
- Optimizer will produce options transfer records in both Optimizer transfer output file formats (.csv and .txt)
- Options will be transferred at 0 price to mitigate movement of premium for Optimizer’s post-trade allocations.
- Output impact detail:
- csvTransfersyyyymmdd_[run number].csv
- File describes Optimizer transfer records in csv format
- File will be updated to include options transferred at 0 price.
- Similar to futures transfer records, options transfer records can generate with TransferOrigin = Optimizer, Netting, or Exclusion
- Please note there are no new fields in the report
- Sample:
- fixmlTransfersyyyymmdd_[run number].txt
- File describes Optimizer transfer records in fixml format. Firms typically use this file to transmit transfer records to CME via standard message queue channels.
- File will be updated to include options transferred at 0 price.
- Sample updated transfer record with highlighted additional fields for options:
- csvTransfersyyyymmdd_[run number].csv
...
Optimizer version 15 re-imagines the Optimizer’s existing exclusion configurations. Please note technical details about the new configurations can be found in the Optimizer User Guide.
Optimizer’s standard exclusion logic will be updated to include:
- Exclusions by performance bond account (PBAccount / margin account):
- When Enabled = true, Optimizer users can specify an account identifier or a string of identifiers as well as a product type (i.e. options) from the positions.csv which Optimizer will exclude from Optimization.
- To be used when a specific account owner would like to limit Optimization, for instance to prevent options from Optimizing. Users can simply remove an account from the positions.csv input file if no Optimization should occur.
- The default is Enabled = false
- See more in Optimizer User Guide
- Exclusions by product exchange:
- When Enabled = true, Users can specify a product exchange (CME, CBT, etc.) or a string of product exchanges and Optimizer will exclude all line items in the positions.csv file which contain products found in that product exchange from Optimization.
- The default is Enabled = false
- See more in Optimizer User Guide
- Exclusions by product type alone or product type and product code:
- When Enabled = true, Users can specify a product type (FUT, OOF, etc.) or a string of product types and Optimizer will exclude all line items in the positions.csv file with that product type from Optimization.
- Users can specify a product type and a product code (41, TN, etc.) or a string of product codes and Optimizer will exclude all line items in the positions.csv file with that product type and product code from Optimization.
- The default is Enabled = true and excluded products = OOF
- Note: options in portfolio margining is pending regulatory approval, hence options will be disabled by this flag by default.
- See more in Optimizer User Guide
- Exclusions by trade event:
- When Enabled = true, users can specify a trade lifecycle event (First Intent Date, Option Expiration date, etc.) and a window of days prior to that trade lifecycle event to establish an exclusion window for a product or string of products and Optimizer will exclude all products inside the exclusion window specified for that product.
- The default is Enabled = true
- See more in Optimizer User Guide
In addition to the standard exclusion logic above, Optimizer version 15 supports exclusion of options undergoing early exercise and assignment. Please note technical details about this configuration can be found in the Optimizer User Guide.
Non-standard exclusion logic: early exercise
- When Enabled = true, Optimizer will exclude any options strikes which experienced an early exercise based on the clearing POS699C file (option exception summary report)
- POS699C is included in the new cme_optimizer_marketdata zip file
- Exclusion impacts short and long options positions and for excluded strikes, including those which are not assigned in the random assignment process
- CME expects clearing firms to use this exclusion logic for the day 1 go live only. This exclusion logic should be turned off when firms are ready to go live with performing exercise and assignment in OTC accounts.
- Firms not using this flag should make sure to be familiar with the other standard exclusion flags, described previously in this document.
- The default is Enabled = true (v15 only)
...
- Please ensure that your system adheres to the minimum system requirement as described in the CME Optimizer Software User Guide.
- CME Optimizer 15 is designed to install side-by-side with existing CME Optimizer installations.
- If you have a prior version of CME Optimizer installed, please ensure that the application is not running.
...
- Download CME Optimizer 15.0.0.0. It is available to download from CME CORE. Detailed instructions can be found in the CME Optimizer Software User Guide, 'Downloading Optimizer' section.
- Log onto the system where the software is to be installed. You should log on as an administrative user.
- Double-click on the Optimizer 15 installer (filename: Optimizer.15.0.0.0.msi), this will start the installation process.
- Follow the on-screen instructions:
- You must accept the End-User License Agreement (EULA) to install Optimizer 15:
- Accept the default installation location or optionally change it:
- You can choose to automatically run the Optimizer 15 Samples once the installation completes:
...
- Verify that you have the correct privileges to install software on the target system and that security software/policies are not preventing software from being installed
- Verify that you have the minimum system requirements for hardware and operating system
- Verify that you have installed the software prerequisites and that a system reboot has been performed
- If the installer starts, but fails to complete, try running the MSI with logging enable from the command-line e.g. PowerShell:
.\Optimizer.15.0.0.0.msi /log installer.log - If the installer log does not point to a localized issue, then forward the log to posttradeservices@cmegroup.com for further investigation (see below).
Suggested Test Cases
Below is a set of suggested tests for Optimizer 15 adoption. The test cases and acceptance criteria here are suggestions only. Clearing firms are responsible for Optimizer on their own infrastructure. Please review above impacts prior to running test scenarios. Additional tests should be devised to understand the impacts of options in portfolio margin accounts - those can be decoupled from Optimizer tests.
Test Case | Description | Acceptance Criteria |
---|---|---|
| Install Optimizer on application server and run the provided input sample files. |
|
| Access Optimizer input files required to run version 15 |
|
| In Optimizer input directory:
|
|
| Using results from Optimizer test run above, compare to production results (total savings estimate file) |
|
| Ensure the early exercise exclusion is Enabled = true in configuration.json file being used by the Optimizer (this will be 'true' by default. Input mock portfolio in Optimizer wherein a strike is being flagged for early exercise (CME to assist with input data set to use). Run Optimizer. |
|
| Update the Trade Events - Enabled - Events list is set up as expected for production go live. The defaults may or may not suit your use case. Input mock portfolio in Optimizer wherein a product is undergoing a trade lifecycle event and is flagged for exclusion (CME to assist with input data set to use). Run Optimizer. |
|
| Update the Product -Enabled - Exclusions→ Type = "OOF" to Enabled = false in configuration.json file being used by the Optimizer (this will be 'true' by default). This action turns OFF the options exclusion and allows options to Optimize. Input positions.csv and other new inputs used in the new input test above. Run Optimizer. |
|
| Review all enhanced exclusion logic, if required test these similar to above exclusions. | |
| Build a positions.csv file for an account present in both NR and production. Include both options and futures. Run end to end Optimizer workflow using this positions file as input. Review trades in clearing system. |
|
...
- Please ensure that your system adheres to the minimum system requirement as described in the CME Optimizer Software User Guide.
- CME Optimizer 14 is designed to install side-by-side with existing CME Optimizer installations.
- If you have a prior version of CME Optimizer installed, please ensure that the application is not running.
...
- Download CME Optimizer 14.0.0.0. It is available to download from CME CORE. Detailed instructions can be found in the CME Optimizer Software User Guide, 'Downloading Optimizer' section.
Note users do not need to uninstall the prior version of Optimizer (v13). Optimizer 14 can be installed and run side by side with Optimizer 13 for users who install in production prior to the mandatory production deadline.
- Log onto the system where the software is to be installed. You should log on as an administrative user.
- Double-click on the Optimizer 14 installer (filename: Optimizer.14.0.0.0.msi), this will start the installation process.
- Follow the on-screen instructions:
- You must accept the End-User License Agreement (EULA) to install Optimizer 14:
- Accept the default installation location or optionally change it:
- You can choose to automatically run the Optimizer 14 Samples once the installation completes:
...
- Please ensure that your system adheres to the minimum system requirement as described in the CME Optimizer Software User Guide.
- During the installation, the installer will remove any prior versions of CME Optimizer 13 and install the latest version.
- If you have a prior version of CME Optimizer 13 installed, please ensure that the application is not running.
- If you use the default configuration or input/output directories in "C:\Program Files\CME Group\CME Optimizer 13", then it is recommended that you backup these assets before installing this update.
...
Troubleshooting
If you run into issues during the installation, please refer to the guidance below. Alternatively, reach out to our posttradeservices@cmegroup.com for further assistance:
...
Mandatory Production Release target date August 26, 2019
See also new Optimizer User Guide.
New features for Optimizer 13 include:
...
Dissimilar to prior installations, users can keep Optimizer 12 installed while installing version 13 in order to run either version under the new plug-in architecture. Due to the large quantity of changes, a new Optimizer User guide has been published here. For general details about the Portfolio Margin program, see here. For detailed release notes please see here.
CME CORE Impacts
CME CORE Rates User Interface will be impacted in the following ways:
...