The current version of Optimizer is version 19, which is available for testing November 15th, 2023. This page will focus on integration for Optimizer 19 and will be updated as and when new builds are made available.
...
The following system requirements are required to install and run CME Optimizer 19* or version 20 (see release notes):
- Windows Server 2016, 2019 or 2022
- Quad-core Processor
- 16 GB of available memory (32 GB is recommended)
- 15 GB of available storage (~5GB installation / ~10GB
- daily data files).
- Version 19 only: Microsoft .NET 6.0 Runtime x64 (6.0.6 or higher).
- Version 20 only: Microsoft .NET 8.0 Runtime x64
- Microsoft Visual C++ 2015-2022 Redistributable (x64) (14.32.31326.0 or higher)
Expected Performance
Based on extensive Optimizer 19 testing:
...
Section Name | Property Name | Type | Default Value | Description |
---|---|---|---|---|
Defaults | TransfersByPbAccount | Boolean | true | Indicates if transfers files are broken out by PB Account. True: Breaks out FIXML and CSV transfers into individual PB Account sub folders within the outputs directory. False: FIXML and CSV transfers are not broken out. |
|
|
|
Property deprecated with Version 17 | |
|
|
|
Property deprecated with Version 17 | |
BreakOnException | Boolean | false | Indicates if the program should stop if any position/portfolio errors are encountered. True: Program will exit. False: Program will discard erroneous portfolios and continue. | |
MoveDecision | String | LIFO | Transfer Allocation Method. This parameter will determine how to build transfer messages to reach optimal Futures allocation. LIFO: Last in First Out FIFO: First in First Out SNT (single net transfer): Optimizer creates one transfer per contract with today’s trade date and trade price. This should be used for portfolios expressed as net position only (not trade-level). | |
ExclusionMoveDecision | String | LIFO | The transfer allocation method for transfers that are created when a given position has been excluded e.g. global product exclusion or treasury roll flags. LIFO: Last in First Out FIFO: First in First Out SNT (single net transfer): Optimizer creates one transfer per contract with today’s trade date and trade price. This should be used for portfolios expressed as net position only (not trade-level). | |
NettingMoveDecision Please note this should be the same as MoveDecision when used for transfers generated due to netting. | String | LIFO | The transfer allocation method for transfers that are created when a given portfolio is enabled for netting. LIFO: Last in First Out FIFO: First in First Out SNT (single net transfer): Optimizer creates one transfer per contract with today’s trade date and trade price. This should be used for portfolios expressed as net position only (not trade-level). | |
|
|
|
Property deprecated with Version 17 | |
Culture | String | en-US | Sets the culture for the program. This setting should not be modified without proper evaluation. | |
TimeZone | String | Central Standard Time | Governs the date/time zone used when creating transfers. As FEC requires all trade dates to be in CST, this setting should not be modified without proper evaluation. | |
FloorSpanForFinalMarginCheck | Boolean | true | Controls net option value capping/SPAN flooring in the Optimizer solution decision. | |
Inputs | InputDirectory | String | ..\\..\\Inputs | Sets the directory path containing all inputs including positions, market data and configuration files. The path can be fully qualified or relative. Note that relative paths must be relative to the Optimizer 19 plugin directory path. Note that in JSON format, the backslash character “\” must be escaped e.g. “\\” otherwise the file will be invalid. |
PositionsFilename | String | Positions | Indicates the filename prefix for the positions file. Note that the underlying file extension must be “.CSV” | |
|
|
|
Property deprecated with Version 17 | |
IrsPnlFilename | String | IRSPNL_ | Indicates the filename prefix for the IRS PNL file. Note that the underlying file extension must be “.CSV” | |
|
|
|
Property deprecated with Version 17 | |
|
|
|
Property deprecated with Version 17 | |
|
|
|
Property deprecated with Version 17 | |
IrsDeltaLadderFilename | String | IRSDL_ | Indicates the filename prefix for the IRS DL file. Note that the underlying file extension must be “.CSV” | |
|
|
|
Property deprecated with Version 17 | |
SpanFileNameSuffix | String | cust.spn | Indicates the suffix of the span data file e.g. cust.spn | |
|
|
|
Property deprecated with Version 17 | |
MarketDataArchiveFilename | String | cme_optimizer_marketdata_*.zip | Defines the filename pattern for the CME Optimizer market data archive (ZIP file) | |
UseSpanFileInArchive | String | false | Indicates if the SPAN file included within the market data archive should be used. If true, the SPAN file will be extracted and written to the file system (process will require write privileges). If false, the program will expect the SPAN file to be on the file system (generally 'Inputs' directory_ prior to execution. | |
Outputs | OutputDirectory | String | ..\\..\\Outputs | Sets the directory path to write all logs, reports and transfers to. The path can be fully qualified or relative. Note that relative paths must be relative to the Optimizer 19 plugin directory path. Note that in JSON format, the backslash character “\” must be escaped e.g. “\\” otherwise the file will be invalid. |
CsvTransfersFilename | String | csvTransfers.csv | Sets the filename for CSV transfers. | |
TotalSavingsFilename | String | Total Savings Estimate.csv | Sets the filename for the total savings report. | |
FundingImpactsFileName | String | FundingImpact.csv | Sets the filename for the funding impact report, which shows the incremental savings pre / post optimization runs. | |
MarginSummaryFileName | String | MarginSummary.csv | Sets the filename for the margin summary report, which breaks out all margin numbers when optimizer is ran. | |
FixmlOutputFilename | String | fixmlTransfers.txt | ||
Fixml | FixmlMsgEvtSrc | String | API | Transfer Message Source. Input to the transfer message. |
FixmlClOrdIdStatic | String | 0 | Increment Option for Clearing Order ID. | |
FixmlClOrdIdStaticId | String | PM001 | Static Clearing Order ID tag. If using a static clearing order ID, this tag will be used for each transfer message. Option to have a static Order ID or an Order ID that gets incremented by 1 for each transfer message created. 0: Use a static value for all transfers vs 1: increment by 1 for each transfer created | |
SingleSidedReport | Boolean | true | Transfer message format. Indicates if the Optimizer will output Single Sided transfer messages (post FEC+ migration) or Dual Sided transfer messages. True: Single Sided messages False: Use PNL Dual Sided messages | |
FICC* | Enabled | Boolean | false | Determines if RBOE optimization is enabled or not. Default false implies RBOE optimization is not enabled, must be updated by user to enable. |
Execution Mode | Enum | BeforeIrsOptimization | Determines where the RBOE optimization occurs within the Optimizer pipeline. | |
OptimizeMoveDecision | Enum | LIFO | Determines the order of offsets and transfers when optimizing RBOE positions. Must match MoveDecision in Defaults above if using Optimizer for both RBOE and IRS Optimization. LIFO: Last in First Out FIFO: First in First Out SNT (single net transfer): Optimizer creates one transfer per contract with today’s trade date and trade price. This should be used for portfolios expressed as net position only (not trade-level). | |
UseBackMonthContracts | Boolean | true | Allows Optimizer to select positions from back month in same contract if target future allocation cannot be met by front month contract. | |
FiccPositionsFilename | String | FICCPositions_ | Filename prefix for the FICC positions file. Default filename is recommended to ensure that it is not misinterpreted with the standard positions filename prefix i.e. "Positions_" | |
FiccEquivalentPositionsFilename | String | *XMFICCPOSN_*.csv | Filename pattern for the Equivalent positions files. Note that the filename in NR may be prefixed with "NR_". | |
Exclusions | IncludeBaselineInOptimalState | Boolean | false | Allows user to define whether the 'baseline' margin case will be used during Optimizer's solution decision. Baseline margin can be impacted by exclusions for FICC processing and may become less meaningful. This config is false by default to capture this edge condition. |
Early Exercise | Section | see below | Defines if early exercise exclusions are enabled. See exclusions for more information. | |
PBAccount | Section | see below | Defines if PBAccount-based exclusions are enabled. See exclusions for more information. | |
FiccPbAccount | Section | see below | Defines if FiccPbAccount-based exclusions are enabled. See exclusions for more information. | |
Exchange | Section | see below | Defines if Exchange-based exclusions are enabled. See exclusions for more information. | |
Product | Section | see below | Defines if Product-based exclusions are enabled. See exclusions for more information. | |
TradeEvents (please see in more detail below) | Section | see below | Defined if Trade Life-cycle Events-based exclusions are enabled. See exclusions below for more information. |
...