Schema: SpdrStreetExecution (ID: 1555)
SpdrStreetExecution records are published by SpdrStreetGateways when child order fills are received. These records update if busted or corrected by a downstream venue.
METADATA
| Attribute | Value |
|---|---|
| Topic | 1525-child-orders |
| MLink Token | Internal |
| MLink Endpoint | MLink-Live |
| SRSE Product |
Note: The symbol
=next to a field number indicates that it is a primary key.
BODY
| # | Field | Type | Default Value | Comment |
|---|---|---|---|---|
| 10= | fillExecId | string(48) | ExecId<17> from execReport | |
| 11= | fillExecRefId | string(32) | ||
| 12= | fillLegRefId | string(24) | ||
| 13= | fillMessageId | string(24) | ||
| 14= | fillLastMkt | string(6) | ||
| 15= | routingCode | string(65) | ||
| 100 | accnt | string(16) | ||
| 103 | clientFirm | string(16) | ||
| 106 | parentNumber | long | parent number (if any available) | |
| 109 | baseParentNumber | long | base parent number (start of parent cxl/replace chain) | |
| 112 | clOrdId | string(16) | SR child order number (EE) [hex] (join w/SpdrStreetOrder.pkey.clOrdId) | |
| 115 | baseClOrdId | long | EE side base clOrdId (join w/SpdrChildOrder.pkey.clOrdId) | |
| 118 | orderShape | enum : SpdrOrderShape | ||
| 293 | orderExDest | string(16) | ||
| 124 | secKey | OptionKey | from child order | |
| 127 | secType | enum : SpdrKeyType | from child order | |
| 130 | spdrSource | enum : SpdrSource | from child order | |
| 133 | groupingCode | long | from child order | |
| 136 | serverCode | string(32) | StreetGW ServerCode | |
| 139 | upSenderCompId | string(32) | senderCompID/targetCompID of the StreetGW -> EE session | |
| 142 | upTargetCompId | string(32) | ||
| 145 | upSenderSubId | string(20) | senderSubID/targetSubID of the StreetGW -> EE session | |
| 148 | upTargetSubId | string(20) | ||
| 151 | streetSessionDate | DateTime | ||
| 154 | streetSessionCounter | byte | ||
| 157 | streetSeqNumOut | int | ||
| 160 | streetClOrdId | string(24) | ||
| 163 | orderId | string(24) | ||
| 166 | templateName | string(24) | outbound order rewrite template name | |
| 169 | exchSecurity | string(12) | Exchange symbol description necessary for translated securities | |
| 172 | securityDesc | string(24) | ||
| 175 | orderSide | enum : BuySell | ||
| 178 | orderSize | int | ||
| 181 | orderPrice | double | ||
| 184 | exchOrderPrice | double | ||
| 187 | exchDisplayFactor | double | ||
| 190 | priceFormat | string(4) | ||
| 193 | timeInForce | enum : TimeInForce | ||
| 196 | orderType | enum : SpdrOrderType | ||
| 199 | isPegLimit | enum : YesNo | Yes if order sent to exchange with a Market or 'Peg' style limit (returned in exec report) | |
| 202 | isHeld | enum : YesNo | Yes if order sent to exchange marked "Held" | |
| 205 | isDirected | enum : YesNo | Yes if order sent to exchange directed to a specific exchange, as opposed to a smart router | |
| 208 | fillClOrdId | string(24) | ||
| 211 | fillCrossId | string(24) | ||
| 214 | fillQuoteId | string(24) | ||
| 217 | fillSymbol | text1 | ||
| 220 | fillSecurityID | text1 | fix tag 48 | |
| 223 | fillSecIDSource | string(4) | fix tag 22 | |
| 226 | fillSecurityDesc | text1 | fix tag 107 | |
| 229 | fillSecurityType | string(4) | fix tag 167 | |
| 232 | fillMaturityDate | DateTime | composite of 541, 200, 205, | |
| 235 | fillStrike | double | fix tag 202 | |
| 238 | fillPutOrCall | string(2) | fix tag 201 | |
| 241 | execType | string(4) | ||
| 244 | execTransType | string(4) | ||
| 247 | version | byte | cancel/correct version number (initial fill is version=1) | |
| 250 | fillDttm | DateTime | fill DateTime (from SRDateTime) | |
| 253 | fillAccount | text1 | ||
| 256 | fillSide | string(6) | fill side (from execReport.side) | |
| 259 | fillSize | int | fill size (from execReport.lastSize) | |
| 262 | fillPrice | double | fill price (from execReport.lastPrice) | |
| 265 | fillTransactDttm | DateTime | fill DateTime (from execReport.fillDttm) | |
| 268 | fillSRLiqTag | string(2) | fill SR normalized liquidity tag | |
| 271 | fillExchLiqTag | string(4) | fill exchange liquidity code | |
| 274 | fillExchDetail | text1 | other fix tags (tag:value#tag:value) [additional detail used for analysis] | |
| 277 | fillFirmType | string(16) | fill firm type (as reported from street side) | |
| 280 | fillExecBroker | string(16) | fill execution broker (as reported from street side) | |
| 283 | fillOrderCapacity | string(4) | fill order capacity (as reported from street side) | |
| 286 | fillStreetText | text1 | ||
| 294 | completionType | enum : CompletionType | None, DAC, POC, TAS, TACO, BTIC | |
| 295 | completionState | enum : CompletionState | ||
| 296 | completionPrice | double | completion trade price (final trade price) | |
| 297 | completionSecKey | OptionKey | final settlement secKey (contract that DAC, TAS, TACO, etc. will convert to; might not be valid until completed) | |
| 298 | completionSecType | enum : SpdrKeyType | usually Future or Option (None if not yet valid) | |
| 289 | sgwTimestamp | long | street gateway arrival timestamp | |
| 292 | timestamp | DateTime |
Get Schema API Call
- Python
- cUrl
import requests
# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'
# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'
# Replace with your desired MsgType.
MSG_TYPE = 'SpdrStreetExecution'
# Request Parameters for Get Schema Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getschema',
"msgType": MSG_TYPE,
}
response = requests.get(MLINK_PROD_URL, params=params)
curl -G 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json' \
--data-urlencode 'apiKey=XXXX-XXXX-XXXX-XXXX' \
--data-urlencode 'cmd=getschema' \
--data-urlencode 'msgType=SpdrStreetExecution'
Get Msg API Call
- Python
- cUrl
import requests
# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'
# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'
# Replace with your desired MsgType.
MSG_TYPE = 'SpdrStreetExecution'
# Replace with your pkey value for getting the specific message desired
PKEY = 'ReplaceThisValueForTheQueryToWork'
# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned.
VIEW = 'accnt|clientFirm|parentNumber|baseParentNumber|clOrdId|baseClOrdId|orderShape|orderExDest|secKey|secType|spdrSource|groupingCode|serverCode|upSenderCompId|upTargetCompId|upSenderSubId|upTargetSubId|streetSessionDate|streetSessionCounter|streetSeqNumOut|streetClOrdId|orderId|templateName|exchSecurity|securityDesc|orderSide|orderSize|orderPrice|exchOrderPrice|exchDisplayFactor|priceFormat|timeInForce|orderType|isPegLimit|isHeld|isDirected|fillClOrdId|fillCrossId|fillQuoteId|fillSymbol|fillSecurityID|fillSecIDSource|fillSecurityDesc|fillSecurityType|fillMaturityDate|fillStrike|fillPutOrCall|execType|execTransType|version|fillDttm|fillAccount|fillSide|fillSize|fillPrice|fillTransactDttm|fillSRLiqTag|fillExchLiqTag|fillExchDetail|fillFirmType|fillExecBroker|fillOrderCapacity|fillStreetText|completionType|completionState|completionPrice|completionSecKey|completionSecType|sgwTimestamp|timestamp'
# Replace with your desired where clause.
# a string in the form "field1:eq:valuse" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'fillExecId:eq:ExampleString'
# Request Parameters for getmsg Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getmsg',
"pkey": PKEY,
"msgType": MSG_TYPE,
# Optional Parameters
"view": VIEW,
"where": WHERE
}
response = requests.get(MLINK_PROD_URL, params=params)
curl -G 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json' \
--data-urlencode 'apiKey=XXXX-XXXX-XXXX-XXXX' \
--data-urlencode 'cmd=getmsg' \
--data-urlencode 'pkey=ReplaceThisValueForTheQueryToWork' \
--data-urlencode 'msgType=SpdrStreetExecution' \
--data-urlencode 'view=accnt|clientFirm|parentNumber|baseParentNumber|clOrdId|baseClOrdId|orderShape|orderExDest|secKey|secType|spdrSource|groupingCode|serverCode|upSenderCompId|upTargetCompId|upSenderSubId|upTargetSubId|streetSessionDate|streetSessionCounter|streetSeqNumOut|streetClOrdId|orderId|templateName|exchSecurity|securityDesc|orderSide|orderSize|orderPrice|exchOrderPrice|exchDisplayFactor|priceFormat|timeInForce|orderType|isPegLimit|isHeld|isDirected|fillClOrdId|fillCrossId|fillQuoteId|fillSymbol|fillSecurityID|fillSecIDSource|fillSecurityDesc|fillSecurityType|fillMaturityDate|fillStrike|fillPutOrCall|execType|execTransType|version|fillDttm|fillAccount|fillSide|fillSize|fillPrice|fillTransactDttm|fillSRLiqTag|fillExchLiqTag|fillExchDetail|fillFirmType|fillExecBroker|fillOrderCapacity|fillStreetText|completionType|completionState|completionPrice|completionSecKey|completionSecType|sgwTimestamp|timestamp' \
--data-urlencode 'where=fillExecId:eq:ExampleString'
Get Msgs API Call
- Python
- cUrl
import requests
# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'
# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'
# Replace with your desired MsgType.
MSG_TYPE = 'SpdrStreetExecution'
# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned
VIEW = 'accnt|clientFirm|parentNumber|baseParentNumber|clOrdId|baseClOrdId|orderShape|orderExDest|secKey|secType|spdrSource|groupingCode|serverCode|upSenderCompId|upTargetCompId|upSenderSubId|upTargetSubId|streetSessionDate|streetSessionCounter|streetSeqNumOut|streetClOrdId|orderId|templateName|exchSecurity|securityDesc|orderSide|orderSize|orderPrice|exchOrderPrice|exchDisplayFactor|priceFormat|timeInForce|orderType|isPegLimit|isHeld|isDirected|fillClOrdId|fillCrossId|fillQuoteId|fillSymbol|fillSecurityID|fillSecIDSource|fillSecurityDesc|fillSecurityType|fillMaturityDate|fillStrike|fillPutOrCall|execType|execTransType|version|fillDttm|fillAccount|fillSide|fillSize|fillPrice|fillTransactDttm|fillSRLiqTag|fillExchLiqTag|fillExchDetail|fillFirmType|fillExecBroker|fillOrderCapacity|fillStreetText|completionType|completionState|completionPrice|completionSecKey|completionSecType|sgwTimestamp|timestamp'
# Replace with your desired where clause.
# a string in the form "field1:eq:value" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'fillExecId:eq:ExampleString'
# Replace with your desired limit of how many messages you receive. The default limit is 500
LIMIT = 500
# Order clause eg. "(field1:DESC | field1:ASC | field2:DESC:ABS | field2:ASC:ABS" (default is unordered; default is faster)
ORDER = 'accnt:ASC'
# Request Parameters for getmsgs Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getmsgs',
"msgType": MSG_TYPE,
# Optional Parameters
"view": VIEW,
"where": WHERE,
"limit": LIMIT,
"order": ORDER
}
response = requests.get(MLINK_PROD_URL, params=params)
curl -G 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json' \
--data-urlencode 'apiKey=XXXX-XXXX-XXXX-XXXX' \
--data-urlencode 'cmd=getmsgs' \
--data-urlencode 'msgType=SpdrStreetExecution' \
--data-urlencode 'view=accnt|clientFirm|parentNumber|baseParentNumber|clOrdId|baseClOrdId|orderShape|orderExDest|secKey|secType|spdrSource|groupingCode|serverCode|upSenderCompId|upTargetCompId|upSenderSubId|upTargetSubId|streetSessionDate|streetSessionCounter|streetSeqNumOut|streetClOrdId|orderId|templateName|exchSecurity|securityDesc|orderSide|orderSize|orderPrice|exchOrderPrice|exchDisplayFactor|priceFormat|timeInForce|orderType|isPegLimit|isHeld|isDirected|fillClOrdId|fillCrossId|fillQuoteId|fillSymbol|fillSecurityID|fillSecIDSource|fillSecurityDesc|fillSecurityType|fillMaturityDate|fillStrike|fillPutOrCall|execType|execTransType|version|fillDttm|fillAccount|fillSide|fillSize|fillPrice|fillTransactDttm|fillSRLiqTag|fillExchLiqTag|fillExchDetail|fillFirmType|fillExecBroker|fillOrderCapacity|fillStreetText|completionType|completionState|completionPrice|completionSecKey|completionSecType|sgwTimestamp|timestamp' \
--data-urlencode 'where=fillExecId:eq:ExampleString' \
--data-urlencode 'limit=500' \
--data-urlencode 'order=accnt:ASC'
Get Aggregate API Call
- Python
- cUrl
import requests
# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'
# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'
# Replace with your desired MsgType.
MSG_TYPE = 'SpdrStreetExecution'
# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'accnt|clientFirm|parentNumber|baseParentNumber|clOrdId|baseClOrdId|orderShape|orderExDest|secKey|secType|spdrSource|groupingCode|serverCode|upSenderCompId|upTargetCompId|upSenderSubId|upTargetSubId|streetSessionDate|streetSessionCounter|streetSeqNumOut|streetClOrdId|orderId|templateName|exchSecurity|securityDesc|orderSide|orderSize|orderPrice|exchOrderPrice|exchDisplayFactor|priceFormat|timeInForce|orderType|isPegLimit|isHeld|isDirected|fillClOrdId|fillCrossId|fillQuoteId|fillSymbol|fillSecurityID|fillSecIDSource|fillSecurityDesc|fillSecurityType|fillMaturityDate|fillStrike|fillPutOrCall|execType|execTransType|version|fillDttm|fillAccount|fillSide|fillSize|fillPrice|fillTransactDttm|fillSRLiqTag|fillExchLiqTag|fillExchDetail|fillFirmType|fillExecBroker|fillOrderCapacity|fillStreetText|completionType|completionState|completionPrice|completionSecKey|completionSecType|sgwTimestamp|timestamp'
# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'orderShape|secType|spdrSource|orderSide|timeInForce|orderType|isPegLimit|isHeld|isDirected|completionType|completionState|completionSecType'
# Replace with your desired where clause.
# a string in the form "field1:eq:value" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'fillExecId:eq:ExampleString'
# Request Parameters for getaggregate Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getaggregate',
"msgType": MSG_TYPE,
"measure": MEASURE,
"group": GROUP,
# Optional Parameters
"where": WHERE,
}
response = requests.get(MLINK_PROD_URL, params=params)
curl -G 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json' \
--data-urlencode 'apiKey=XXXX-XXXX-XXXX-XXXX' \
--data-urlencode 'cmd=getaggregate' \
--data-urlencode 'msgType=SpdrStreetExecution' \
--data-urlencode 'measure=accnt|clientFirm|parentNumber|baseParentNumber|clOrdId|baseClOrdId|orderShape|orderExDest|secKey|secType|spdrSource|groupingCode|serverCode|upSenderCompId|upTargetCompId|upSenderSubId|upTargetSubId|streetSessionDate|streetSessionCounter|streetSeqNumOut|streetClOrdId|orderId|templateName|exchSecurity|securityDesc|orderSide|orderSize|orderPrice|exchOrderPrice|exchDisplayFactor|priceFormat|timeInForce|orderType|isPegLimit|isHeld|isDirected|fillClOrdId|fillCrossId|fillQuoteId|fillSymbol|fillSecurityID|fillSecIDSource|fillSecurityDesc|fillSecurityType|fillMaturityDate|fillStrike|fillPutOrCall|execType|execTransType|version|fillDttm|fillAccount|fillSide|fillSize|fillPrice|fillTransactDttm|fillSRLiqTag|fillExchLiqTag|fillExchDetail|fillFirmType|fillExecBroker|fillOrderCapacity|fillStreetText|completionType|completionState|completionPrice|completionSecKey|completionSecType|sgwTimestamp|timestamp' \
--data-urlencode 'group=orderShape|secType|spdrSource|orderSide|timeInForce|orderType|isPegLimit|isHeld|isDirected|completionType|completionState|completionSecType' \
--data-urlencode 'where=fillExecId:eq:ExampleString'
Get Count API Call
- Python
- cUrl
import requests
# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'
# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'
# Replace with your desired MsgType.
MSG_TYPE = 'SpdrStreetExecution'
# Replace with your desired where clause.
# a string in the form "field1:eq:value" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'fillExecId:eq:ExampleString'
# Request Parameters for getCount Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getcount',
"msgType": MSG_TYPE,
# Optional Parameters
"where": WHERE,
}
response = requests.get(MLINK_PROD_URL, params=params)
curl -G 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json' \
--data-urlencode 'apiKey=XXXX-XXXX-XXXX-XXXX' \
--data-urlencode 'cmd=getcount' \
--data-urlencode 'msgType=SpdrStreetExecution' \
--data-urlencode 'where=fillExecId:eq:ExampleString'