Versions Compared

Key

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

...

  1. Install FIXEdge using these instructions: https://kb.b2bits.com/display/B2BITS/FIXEdge+Installation+Guide
    During the installation point to attached license files

  2. Create a database for storing ICE trades:
    1. Create database itself. ‘ICE_Trades’ is suggested as the default name.
    2. Create database tables using ‘ICE_database.sql’ script – adjust if necessary (database name, user, etc)
    3. Add ODBC data source for the database

  3. Adjust FIXEdge configuration (typically located here ‘C:/B2BITS/FIXEdge/FIXEdge1/conf/’)
    1. ICE Handler property file (ICEProperties.properties)
      1.  Specify SenderCompID for:
        1.  ICESession property so that its final format is: SenderCompID[SOH]TargetCompID
        2. ICESession.SenderCompID property
      2. Add security definitions subscriptions to necessary markets using provided examples in "Security Definition Subscriptions" section: 
        1. Add security definition subscription name to the list in ICESession.SecurityDefinitionSubscriptions property
        2. Specify SecurityID and CFICode for added security definition subscription as described in property file comments or instruction below
        Codes of ICE markets can be found at: https://www.theice.com/publicdocs/technology/Supported_Market_Types_on_ICE_API.pdf
      3. Specify appropriate value of ICESession.SecurityDefinitionSubscriptions.RequestMode property 
        1. If you wish to receive SecurityDefinitions from p.ii only once a day, set ICESession.SecurityDefinitionSubscriptions.RequestMode = OnceADay
        2. If you wish to receive SecurityDefinitions from p.ii on each logon, set ICESession.SecurityDefinitionSubscriptions.RequestMode = EachLogon
      4. Specify correct path in ICESession.StorageFileName property.
    2. Make changes to the ‘FIXEdge.properties’ configuration file:
      1. For ‘ICESession’ specify SenderCompID, your ICE Username and Password. Now the parameters are filled with dummy values / not filled
    3. ‘BL_Config.xml’
      1. Make sure that correct ICE Handler lib (Windows or Linux) and appropriate path is specified in ICE Handler definition
      2. Make sure that all <History> entities point to correct DSN, also adjust username and password if differ
      3. Specify correct SenderCompID in the rule "Launch ICE Handler" in line: <MatchMessage Value=".*PLACE YOUR SENDER COMP ID HERE.*" />
        E.g., if you SenderCompID your SenderCompID is 1234, the rule will look like: <MatchMessage Value=".*1234.*" />
      4. Check the paths to ICETrdCapt.js and ICESecDef.js java scripts in rules 'Save ICE Trade Capture Report data and register trade in ICEHandler' and 'Save ICE Security Definition data and register secdef in ICEHandler' accordingly

  4. Start FIXEdge from FIX Integrated Control Center (FIXICC)

How to subscribe to particular ICE market?

ICE markets ICE Trade Capture Solution will subscribe to are specified in ICEProperties.properties configuration file.

In order to subscribe to particular ICE market, follow the step-by-step instruction below:

  1. Look through https://www.theice.com/publicdocs/technology/Supported_Market_Types_on_ICE_API.pdf and find the ICE Market Type ID you are interested in;
  2. Come up with the name for the subscription and specify it in ICESession.SecurityDefinitionSubscriptions property (it supports several values delimited by comma).
  3. Add subscription details in the following format:
    ICESession.SecurityDefinitionSubscriptions.<Subscription_Name>.SecurityID = ice_market_type_id
    ICESession.SecurityDefinitionSubscriptions.<Subscription_Name>.CFICode = FXXXXX (for Futures) or OXXXXX (for Options)

Below is the example for the subscription to Atlantic Coal Futures market type. Market ID is 123. Let's say we are interested in options and subscription name is ICEAtlanticCoalOptions:

Code Block
languagebash
titleSnippet from ICEProperties.properties
linenumberstrue
ICESession.SecurityDefinitionSubscriptions = ICEAtlanticCoalOptions
ICESession.SecurityDefinitionSubscriptions.ICEAtlanticCoalOptions.SecurityID = 123
ICESession.SecurityDefinitionSubscriptions.ICEAtlanticCoalOptions.CFICode = OXXXXX

To add new ICE market, just repeat the steps 1-3 and update the ICEProperties.properties configuration fileLet's say we are interested in Singapore Energy futures (Market ID is 133) and subscription name is ICESingaporeEnergyFutures:

Code Block
languagebash
titleSnippet from ICEProperties.properties
linenumberstrue
ICESession.SecurityDefinitionSubscriptions = ICEAtlanticCoalOptions, ICESingaporeEnergyFutures
# Atlantic Coal Futures
ICESession.SecurityDefinitionSubscriptions.ICEAtlanticCoalOptions.SecurityID = 123
ICESession.SecurityDefinitionSubscriptions.ICEAtlanticCoalOptions.CFICode = OXXXXX
# Singapore Energy
ICESession.SecurityDefinitionSubscriptions.ICESingaporeEnergyFutures.SecurityID = 133
ICESession.SecurityDefinitionSubscriptions.ICESingaporeEnergyFutures.CFICode = FXXXXX

How to perform recovery and re-request trades from some period?

...

What is the ICE session schedule and how to setup it in ICE Trade Capture Solution?


How to make new field from ICE Trade Capture FIX interface to be stored in the database?

In order to process new fields so that they can appear in the database

...

, the following needs to be done:

  1. Add new fields to the BL_Config file. Use Business Rules Guide#Histories for reference.
    Check where the FIX tag you are interested in is located in the FIX message. Note that tags from repeating groups are allocated to the separate tables. Check ICE Trade Capture to Database for details.
    1. If FIX tag is located in the root of the message (either Trade Capture Report or Security Definition), then add it to the ICEReports / ICESecurityDefinitions history
    2. If FIX tag is located in one of the repeating groups which are already stored in the database, then add it to the corresponding history
    3. If FIX tag is located in one of the repeating groups which are not stored in the database, then add new history for the group and specify required field there

  2. Add new fields to the JS files (either ICESecDef.js or ICETrdCapt.js depending on which fields you are going to add). Use BL Scripting with JavaScript for reference.
    Note that processing and recording of the values to the tables will be performed according to the order specified in JS file.

  3. Add new fields to the database according to the changes made in BL_Config on step 1.

In order to apply the changes, you will need to restart the FIXEdge.

How can I know about the ICE releases which affect the ICE Trade Capture solution?

...