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
Hardware:
Any modern Intel-based server or workstation with 64 bit CPUSupported 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 |
|---|---|---|---|
/log_dir |
| current directory | Directory with binary iLink logs |
/session_name |
|
| 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,,,,,,,,,,,,,, |