Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.


ShowTransferOrigin

Boolean

true

Describes the transfer reason i.e. Optimizer or Netting.

True: Adds an additional column to the CSV transfer called “Transfer Origin” which indicates if the transfer originated from “Optimizer” or “Netting”.

False: The column is not shown.

Property deprecated with Version 17


ShowTotalSavings

Boolean

true

Indicates if Optimizer should calculate the total savings realized by Portfolio Margining for each portfolio.

True: Optimizer will calculate total savings and output a total savings report file.

False: Optimizer will not perform any additional logic.

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).


ExclusionMoveDecisionStringLIFO

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).


MaxNumberOfIterations

Number

500

This setting should not be modified without proper evaluation.

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.


FloorSpanForFinalMarginCheckBooleantrueControls 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”


IrsGammaLadderFilename

String

IRSGammaLadder_

Indicates the filename prefix for the IRS Gamma Ladder 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”


IrsSkewSensitivityFilename

String

IRSSkewSensitivity_

Indicates the filename prefix for the IRS Skew Sensitivity file. Note that the underlying file extension must be “.CSV”

Property deprecated with Version 17


IrsTimeValueFilename

String

IRSTimeValue_

Indicates the filename prefix for the IRS Time Value file. Note that the underlying file extension must be “.CSV”

Property deprecated with Version 17


IrsVegaLadderFilename

String

IRSVegaLadder_

Indicates the filename prefix for the IRS Vega Ladder file. Note that the underlying file extension must be “.CSV”

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”


SpanIniFilesFolder

String

..\\

Sets the directory path containing the span.ini and orgmast.xml files. Note that these files can be placed within the inputs directory. The path can be fully qualified or relative.

Note that relative paths must be relative to the Optimizer 17 plugin directory path.

Note that in JSON format, the backslash character “\” must be escaped e.g. “\\” otherwise the file will be invalid.

Property deprecated with Version 17


SpanFileNameSuffix

String

cust.spn

Indicates the suffix of the span data file e.g. cust.spn


RiskManagerConfigIsEncoded

Boolean

true

Indicates if the ZIP file is encoded or not.

Property deprecated with Version 17


MarketDataArchiveFilenameStringcme_optimizer_marketdata_*.zipDefines the filename pattern for the CME Optimizer market data archive (ZIP file)

UseSpanFileInArchiveStringfalse

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.


ExchangeSectionsee belowDefines if Exchange-based exclusions are enabled. See exclusions for more information.

ProductSectionsee belowDefines if Product-based exclusions are enabled. See exclusions for more information.

TradeEvents (please see in more detail below)Sectionsee belowDefined if Trade Life-cycle Events-based exclusions are enabled. See exclusions below for more information.

...