Skip to main content
Version: Staging

Schema: ResponderMarkupSN (ID: 2502)

METADATA

AttributeValue
Topic2450-liquidity-notice
MLink TokenSystemData
SRSE ProductSRTrade

Note: The symbol = next to a field number indicates that it is a primary key.

BODY

#FieldTypeComment
10=accntstring(16)
11=clientFirmstring(16)
12=rootTickerKey
13=expiryDateKey
14=respSideenum : BuySellauction responder side (your side); Buy = Buy Synthetic (European/Flex)
100tickerTickerKey
101isDisabledenum : YesNoif Yes, this auto-responder record is disabled
102expiryQtyAvailintsynthetics (contracts) available for responding (day total; this ticker/expiry; all strikes) [note: 1 contract = undPerCn underlier units]
103tickerQtyAvailintsynthetics (contracts) available for responding (day total; this ticker; all strikes) [note: 1 contract = undPerCn underlier units]
104refUPrcTypeenum : RefUPrcTypemid or cross (bid/ask)
105transactFeedouble(+ = you pay) / (- = you receive)
106stockRatedouble0.00 = no effective lend/borrow value (360 day convention)
107moneyRatedoubleeffective rate to borrow/lend money to expiry (360 day convention) [compares to globalRate * 360 / 365]
108ddivPvdoublepresent value of any expected dividends to expiry
109divControlenum : DivControldisable this auto-responder record if SR Dividends exist or are estimates
110incFeesInRespenum : YesNoinclude all estimated responder fees in final response price
111roundRuleenum : RoundRule
112openExpiryQtyintremaining synthetics (100 share units) available for responding (day total; this ticker/expiry; all strikes)
113openTickerQtyintremaining synthetics (100 share units) available for responding (day total; this ticker; all strikes)
114cumExpiryQtyintsynthetics (100 share units) traded (day total; this expiry; all strikes)
115cumExpiryMoneydoublecumulative fill money (credit/debit) (this expiry)
116avgExpiryPricedoubleavg fill effective price (this expiry) [compare to live uPrc]
117isDivControlDisabledenum : YesNoyes if dividend control above is triggered
118uBiddoublelive stock price [nbbo bid]
119uAskdoublelive stock price [nbbo ask]
120iDaysdoubleiDays = effective interest days [SR supplied]
121iYearsdoubleiYears = iDays / 360.0
122strikedoubleSR selected strike
123strikePvdoublestrikePv = strike * (1.0 - moneyRate * iYears) [moneyRate supplied above]
124stockLendPvdoublestockLendPv = uPrc * stockRate * iYears [stockRate supplied above]
125syntheticPremdoublesyntheticPrem = stockLendPv + strikePv + ddivPv + rcEExPrem (if any) [uPrc + pRv.price - cRv.price] [ddivPv supplied above]
126effSyntheticLimitdoubleeffSyntheticLimit = syntheticPrem +/- transactFee [buy/sell]
127limitPricedoublelimitPrice = ROUND(effSyntheticLimit) [this is your response limit price]
128modifiedBystring(24)user who last modified this record
129modifiedInenum : SysEnvironment
130timestampDateTimetimestamp of last modification

Get Schema API Call

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 = 'ResponderMarkupSN'

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

Get Msg API Call

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 = 'ResponderMarkupSN'

# 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 = 'ticker|isDisabled|expiryQtyAvail|tickerQtyAvail|refUPrcType|transactFee|stockRate|moneyRate|ddivPv|divControl|incFeesInResp|roundRule|openExpiryQty|openTickerQty|cumExpiryQty|cumExpiryMoney|avgExpiryPrice|isDivControlDisabled|uBid|uAsk|iDays|iYears|strike|strikePv|stockLendPv|syntheticPrem|effSyntheticLimit|limitPrice|modifiedBy|modifiedIn|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 = 'accnt: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)

Get Msgs API Call

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 = 'ResponderMarkupSN'

# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned
VIEW = 'ticker|isDisabled|expiryQtyAvail|tickerQtyAvail|refUPrcType|transactFee|stockRate|moneyRate|ddivPv|divControl|incFeesInResp|roundRule|openExpiryQty|openTickerQty|cumExpiryQty|cumExpiryMoney|avgExpiryPrice|isDivControlDisabled|uBid|uAsk|iDays|iYears|strike|strikePv|stockLendPv|syntheticPrem|effSyntheticLimit|limitPrice|modifiedBy|modifiedIn|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 = 'accnt: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 = 'ticker: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)

Get Aggregate API Call

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 = 'ResponderMarkupSN'

# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'ticker|isDisabled|expiryQtyAvail|tickerQtyAvail|refUPrcType|transactFee|stockRate|moneyRate|ddivPv|divControl|incFeesInResp|roundRule|openExpiryQty|openTickerQty|cumExpiryQty|cumExpiryMoney|avgExpiryPrice|isDivControlDisabled|uBid|uAsk|iDays|iYears|strike|strikePv|stockLendPv|syntheticPrem|effSyntheticLimit|limitPrice|modifiedBy|modifiedIn|timestamp'

# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'isDisabled|refUPrcType|divControl|incFeesInResp|roundRule|isDivControlDisabled|modifiedIn'

# 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 = 'accnt: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)

Get Count API Call

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 = 'ResponderMarkupSN'

# 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 = 'accnt: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)