CME iLink Audit Trail tool

CME iLink Audit Trail tool

Introduction

CME requires that the electronic audit trail associated with any system that accesses the CME iLink gateway contain a complete record of all activity through that connection. CME also requires that responsible party must maintain the electronic audit trail for a minimum of 5 years.  

Firms responsible for the order routing/front-end audit trail of a trading system that accesses CME iLink gateway must have the ability to display data in the required format.

List of minimum acceptable audit elements is published on Minimum Acceptable Audit Trail Elements page.

More information about audit trail requirements can be found on CME Globex Front-End Audit Trail Requirements page.

 

EPAM B2BITS iLink Audit Trail tool

To simplify process of electronic audit trail building for our clients, EPAM B2BITS has developed a specialized tool which is capable to convert CME iLink binary logs, received during iLink connection activity, into one of the formats, required by CME. This tool is distributed as a part of B2BITS FIXAnetnna HFT package (Linux only) and as a separate product for both, Linux and Windows systems. Please note, audit trail tool is compatible only with iLink binary storages, produced by B2BITS's products - FIXAnetnna HFT and Java iLink Order Entry.

 

System requirements

  1. Hardware:
    Any modern Intel-based server or workstation with 64 bit CPU

  2. Supported operating systems:

    • Windows 10 1903 or later, Windows Server 2022 or later

    • Linux RHEL/RockyLinux 9

Running audit trail tool

Once audit trail tool archive file is unpacked, you will find executable file iLink3_logs_converter and required libraries.

Running iLink3_logs_converter with "/?" parameter will display list of available parameters:

Parameter

Possible values

Default value

Description

Parameter

Possible values

Default value

Description

/log_dir

 

current directory

Directory with binary iLink logs

/session_name

 

  • (all sessions)

iLink session name (including timestamp), can be wildcard, for example '44C_?_*'

/dest_dir

 

same as /log_dir

Destination directory to save converted logs to

/ext_option

all | in | out

all

Logs direction to process

/protocol

iLink3 | BrokerTec

iLink3

iLink binary messages format

/format_option

fix | txt | audit

fix

Audit trail output file format.

With "fix" format, files with incoming and outgoing messages in FIX <tag>=<value> format will be generated

With "txt" format, files with incoming and outgoing messages in iLink notations will be generated

With "audit" format, CSV file with Minimum Acceptable Audit Trail Elements will be generated

/sender

 

 

Sender tag value to use while converting in case if it is not possible to determine sender automatically

/target

 

 

Target tag value to use while converting in case if it is not possible to determine target automatically

/?

 

 

Show list of parameters

 

Examples

Converting iLink binary logs into FIX-formatted files

iLink3_logs_converter.exe /log_dir C:\iLink_logs /session_name 44C-* /protocol iLink3 /format_option fix

Output:

Processing session: C:/iLink_logs/44C-iLink_1760365903648765300 Finished. FIX "out" file: 20251013 14:32:05.332 - 8=FIX.4.2|9=241|35=CX|1505=0|5297=1760365925321967400|1324=A|9726=1|2362=3453934|9708=G|582=1|1816=0|8000=N|1031=W|5290=12345|36023=12345|1671=3|1691=trd|1693=24|1691=GG01|1693=1|1691=B2B|1693=118|2668=0|34=1|49=44C|56=iLink|52=20251013-14:32:05.332|1676=1|10=038| 20251013 14:32:05.613 - 8=FIX.4.2|9=207|35=D|44=0.000000000|38=1000000|48=17003745|54=2|9726=2|5392=B2B|11=37210607Ord97_47|1505=0|2422=0|5297=1760365925609915300|9537=US|40=2|59=99|1028=0|18=0|5906=A|34=2|49=44C|56=iLink|52=20251013-14:32:05.613|10=203| 20251013 14:32:38.479 - 8=FIX.4.2|9=241|35=CX|1505=0|5297=1760365958464244400|1324=A|9726=3|2362=3453934|9708=G|582=1|1816=0|8000=N|1031=W|5290=12345|36023=12345|1671=3|1691=trd|1693=24|1691=GG01|1693=1|1691=B2B|1693=118|2668=0|34=3|49=44C|56=iLink|52=20251013-14:32:38.479|1676=1|10=062| 20251013 14:32:38.544 - 8=FIX.4.2|9=207|35=D|44=0.000000000|38=1000000|48=17003745|54=1|9726=4|5392=B2B|11=37210607Ord98_47|1505=0|2422=0|5297=1760365958528051500|9537=US|40=2|59=99|1028=0|18=0|5906=A|34=4|49=44C|56=iLink|52=20251013-14:32:38.544|10=215| FIX "in" file: 20251013 14:32:05.929 - 8=FIX.4.2|9=268|35=CY|9726=1|39001=1760365903648765300|1505=0|5297=1760365925815099213|2362=3453934|1878=0|8000=N|1031=W|1324=A|1879=0|5290=12345|36023=12345|9765=0|1671=3|1691=GG01|1693=1|1691=TRD|1693=24|1691=B2B|1693=118|2668=0|34=1|49=44C|56=iLink|52=20251013-14:32:05.929|1676=1|10=041| 20251013 14:32:05.929 - 8=FIX.4.2|9=323|35=8|9726=2|39001=1760365903648765300|17=94919:256|5392=B2B|11=37210607Ord97_47|1505=0|37=9434004804|44=0.000000000|60=1760365925811072686|5297=1760365925815146542|2422=0|9537=US|48=17003745|38=1000000|432=20374|40=2|54=2|59=99|1028=0|9765=0|18=0|5906=A|7552=435899|34=2|49=44C|56=iLink|52=20251013-14:32:05.929|39=0|150=0|10=250| 20251013 14:32:38.782 - 8=FIX.4.2|9=268|35=CY|9726=3|39001=1760365903648765300|1505=0|5297=1760365958673276158|2362=3453934|1878=0|8000=N|1031=W|1324=A|1879=0|5290=12345|36023=12345|9765=0|1671=3|1691=GG01|1693=1|1691=TRD|1693=24|1691=B2B|1693=118|2668=0|34=3|49=44C|56=iLink|52=20251013-14:32:38.782|1676=1|10=061| 20251013 14:32:38.782 - 8=FIX.4.2|9=323|35=8|9726=4|39001=1760365903648765300|17=94919:257|5392=B2B|11=37210607Ord98_47|1505=0|37=9434004805|44=0.000000000|60=1760365958670369141|5297=1760365958673310615|2422=0|9537=US|48=17003745|38=1000000|432=20374|40=2|54=1|59=99|1028=0|9765=0|18=0|5906=A|7552=275971|34=4|49=44C|56=iLink|52=20251013-14:32:38.782|39=0|150=0|10=002|

 

Converting iLink binary logs into iLink-formatted files

iLink3_logs_converter.exe /log_dir C:\iLink_logs /session_name 44C-* /protocol iLink3 /format_option txt /dest_dir C:\Converted_logs

Output:

Processing session: C:/iLink_logs/44C-iLink_1760365903648765300 Finished. iLink "out" file: 20251013 14:32:05.332 - messageType=518(PartyDetailsDefinitionRequest518)|messageLength=231|partyDetailsListReqID=0|sendingTimeEpoch=1760365925321967400|listUpdateAction=Add|seqNum=1|memo=|avgPxGroupID=|selfMatchPreventionID=3453934|cmtaGiveupCD=GiveUp|custOrderCapacity=Membertradingfortheirownaccount|clearingAccountType=Customer|selfMatchPreventionInstruction=CancelNewest|avgPxIndicator=Null|clearingTradePriceType=Null|custOrderHandlingInst=DeskElectronic|executor=12345|idmShortCode=12345|NoPartyDetails=([0]{partyDetailID=trd|partyDetailRole=CustomerAccount}|[1]{partyDetailID=GG01|partyDetailRole=ExecutingFirm}|[2]{partyDetailID=B2B|partyDetailRole=Operator})|NoTrdRegPublications=() 20251013 14:32:05.613 - messageType=514(NewOrderSingle514)|messageLength=144|price={mantissa=0}|orderQty=1000000|securityID=17003745|side=Sell|seqNum=2|senderID=B2B|clOrdID=37210607Ord97_47|partyDetailsListReqID=0|orderRequestID=0|sendingTimeEpoch=1760365925609915300|stopPx={mantissa=9223372036854775807}|location=US|minQty=4294967295|displayQty=4294967295|expireDate=65535|ordType=Limit|timeInForce=GoodForSession|manualOrderIndicator=Automated|execInst=|executionMode=Aggressive|liquidityFlag=Null|managedOrder=Null|shortSaleType=Null|discretionPrice={mantissa=9223372036854775807}|reservationPrice={mantissa=9223372036854775807} 20251013 14:32:38.479 - messageType=518(PartyDetailsDefinitionRequest518)|messageLength=231|partyDetailsListReqID=0|sendingTimeEpoch=1760365958464244400|listUpdateAction=Add|seqNum=3|memo=|avgPxGroupID=|selfMatchPreventionID=3453934|cmtaGiveupCD=GiveUp|custOrderCapacity=Membertradingfortheirownaccount|clearingAccountType=Customer|selfMatchPreventionInstruction=CancelNewest|avgPxIndicator=Null|clearingTradePriceType=Null|custOrderHandlingInst=DeskElectronic|executor=12345|idmShortCode=12345|NoPartyDetails=([0]{partyDetailID=trd|partyDetailRole=CustomerAccount}|[1]{partyDetailID=GG01|partyDetailRole=ExecutingFirm}|[2]{partyDetailID=B2B|partyDetailRole=Operator})|NoTrdRegPublications=() 20251013 14:32:38.544 - messageType=514(NewOrderSingle514)|messageLength=144|price={mantissa=0}|orderQty=1000000|securityID=17003745|side=Buy|seqNum=4|senderID=B2B|clOrdID=37210607Ord98_47|partyDetailsListReqID=0|orderRequestID=0|sendingTimeEpoch=1760365958528051500|stopPx={mantissa=9223372036854775807}|location=US|minQty=4294967295|displayQty=4294967295|expireDate=65535|ordType=Limit|timeInForce=GoodForSession|manualOrderIndicator=Automated|execInst=|executionMode=Aggressive|liquidityFlag=Null|managedOrder=Null|shortSaleType=Null|discretionPrice={mantissa=9223372036854775807}|reservationPrice={mantissa=9223372036854775807} iLink "in" file: 20251013 14:32:05.929 - messageType=519(PartyDetailsDefinitionRequestAck519)|messageLength=243|seqNum=1|uuid=1760365903648765300|memo=|avgPxGroupID=|partyDetailsListReqID=0|sendingTimeEpoch=1760365925815099213|selfMatchPreventionID=3453934|partyDetailRequestStatus=0|custOrderCapacity=Null|clearingAccountType=Null|selfMatchPreventionInstruction=CancelNewest|avgPxIndicator=Null|clearingTradePriceType=Null|cmtaGiveupCD=Null|custOrderHandlingInst=DeskElectronic|listUpdateAction=Add|partyDetailDefinitionStatus=0|executor=12345|idmShortCode=12345|possRetransFlag=False|splitMsg=Null|NoPartyDetails=([0]{partyDetailID=GG01|partyDetailRole=ExecutingFirm}|[1]{partyDetailID=TRD|partyDetailRole=CustomerAccount}|[2]{partyDetailID=B2B|partyDetailRole=Operator})|NoTrdRegPublications=() 20251013 14:32:05.929 - messageType=522(ExecutionReportNew522)|messageLength=238|seqNum=2|uuid=1760365903648765300|execID=94919:256|senderID=B2B|clOrdID=37210607Ord97_47|partyDetailsListReqID=0|orderID=9434004804|price={mantissa=0}|stopPx={mantissa=9223372036854775807}|transactTime=1760365925811072686|sendingTimeEpoch=1760365925815146542|orderRequestID=0|crossID=18446744073709551615|hostCrossID=18446744073709551615|location=US|securityID=17003745|orderQty=1000000|minQty=4294967295|displayQty=4294967295|expireDate=20374|delayDuration=65535|ordType=Limit|side=Sell|timeInForce=GoodForSession|manualOrderIndicator=Automated|possRetransFlag=False|splitMsg=Null|crossType=255|execInst=|executionMode=Aggressive|liquidityFlag=Null|managedOrder=Null|shortSaleType=Null|delayToTime=435899|discretionPrice={mantissa=9223372036854775807}|reservationPrice={mantissa=9223372036854775807}|priorityIndicator=255 20251013 14:32:38.782 - messageType=519(PartyDetailsDefinitionRequestAck519)|messageLength=243|seqNum=3|uuid=1760365903648765300|memo=|avgPxGroupID=|partyDetailsListReqID=0|sendingTimeEpoch=1760365958673276158|selfMatchPreventionID=3453934|partyDetailRequestStatus=0|custOrderCapacity=Null|clearingAccountType=Null|selfMatchPreventionInstruction=CancelNewest|avgPxIndicator=Null|clearingTradePriceType=Null|cmtaGiveupCD=Null|custOrderHandlingInst=DeskElectronic|listUpdateAction=Add|partyDetailDefinitionStatus=0|executor=12345|idmShortCode=12345|possRetransFlag=False|splitMsg=Null|NoPartyDetails=([0]{partyDetailID=GG01|partyDetailRole=ExecutingFirm}|[1]{partyDetailID=TRD|partyDetailRole=CustomerAccount}|[2]{partyDetailID=B2B|partyDetailRole=Operator})|NoTrdRegPublications=() 20251013 14:32:38.782 - messageType=522(ExecutionReportNew522)|messageLength=238|seqNum=4|uuid=1760365903648765300|execID=94919:257|senderID=B2B|clOrdID=37210607Ord98_47|partyDetailsListReqID=0|orderID=9434004805|price={mantissa=0}|stopPx={mantissa=9223372036854775807}|transactTime=1760365958670369141|sendingTimeEpoch=1760365958673310615|orderRequestID=0|crossID=18446744073709551615|hostCrossID=18446744073709551615|location=US|securityID=17003745|orderQty=1000000|minQty=4294967295|displayQty=4294967295|expireDate=20374|delayDuration=65535|ordType=Limit|side=Buy|timeInForce=GoodForSession|manualOrderIndicator=Automated|possRetransFlag=False|splitMsg=Null|crossType=255|execInst=|executionMode=Aggressive|liquidityFlag=Null|managedOrder=Null|shortSaleType=Null|delayToTime=275971|discretionPrice={mantissa=9223372036854775807}|reservationPrice={mantissa=9223372036854775807}|priorityIndicator=255

 

Converting iLink binary logs into CSV-formatted files

iLink3_logs_converter.exe /log_dir C:\iLink_logs /session_name 44C-* /protocol iLink3 /format_option audit /dest_dir C:\Converted_logs

Output:

Processing session: C:/iLink_logs/44C-iLink_1760365903648765300 Finished. CSV file: Sending Timestamps,Message Direction,Operator ID,Session ID,Manual Order Indicator,Message Type,Instrument,Order Flow ID,CME Globex Order ID,Client Order ID,Order Request ID,Buy/Sell Indicator,Quantity,Limit Price,Stop Price,Order Type,Order Qualifier,IFM Flag,Display Quantity,Minimum Quantity,Country of Origin,Fill Price,Fill Quantity,Cumulative Quantity,Remaining Quantity,Aggressor Flag,Source of Cancellation,Reject Reason,CME Globex Message ID,Cross ID,Quote Request ID,Message Quote ID,Quote Set ID,Quote Entry ID,Bid Price,Bid Size,Offer Price,Offer Size,Processed Entries,Party Details List Request ID,ListUpdateAction,Self-Matching Prevention ID,Self-Match Prevention Instr,Customer Type Indicator,AvgPxGroupID,Average Px Ind,CmtaGiveUpCD,Origin,Clearing Trade Price Type,Customer Handling Instr,Executing Firm ID,Account Number,Take Up Firm,Take up Account 20251013-14:32:05.321967,TO CME,B2B,44C,,CX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,A,3453934,N,1,,,G,0,,W,EE01,trd,, 20251013-14:32:05.609915,TO CME,B2B,44C,0,D,17003745,37210607Ord97_47,,37210607Ord97_47,0,2,1000000,0.000000000,,2,99,,,,US,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,, 20251013-14:32:05.815146,FROM CME,B2B,44C,0,8--0,17003745,37210607Ord97_47,9434004804,37210607Ord97_47,0,2,1000000,0.000000000,,2,99,,,,US,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,, 20251013-14:32:38.464244,TO CME,B2B,44C,,CX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,A,3453934,N,1,,,G,0,,W,EE01,trd,, 20251013-14:32:38.528051,TO CME,B2B,44C,0,D,17003745,37210607Ord98_47,,37210607Ord98_47,0,1,1000000,0.000000000,,2,99,,,,US,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,, 20251013-14:32:38.673310,FROM CME,B2B,44C,0,8--0,17003745,37210607Ord98_47,9434004805,37210607Ord98_47,0,1,1000000,0.000000000,,2,99,,,,US,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,