Skip to main content
Version: Upcoming

Schema: ResponderMarkupVegaDir (ID: 2496)

METADATA

AttributeValue
Topic2450-liquidity-notice
MLink TokenClientTrading
SRSE ProductSRTrade

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

BODY

#FieldTypeDefault ValueComment
10=accntstring(16)
11=clientFirmstring(16)
17=ekeyExpiryKey
13=respSideenum : BuySellauction responder side (your side)
18=responderIDlongclient supplied responder ID (can be any number including zero)
100userNamestring(24)username used for responding to auction notices
101isDisabledenum : YesNoif Yes, this auto-responder record is disabled
137enabledUntilDateTimewill be enabled up until this time
103canIncludeStockenum : YesNoif yes, can respond to auction notices that include a stock leg
178canRespondSRenum : YesNoif yes, can respond to auction notices from SR
179canRespondExchenum : YesNoif yes, can respond to auction notices from exchanges
104cpFlagenum : CallPutPairif not Pair must match all option legs
109minXDeltafloat-0.50all leg xDelta must be between [minXDelta, maxXDelta]
110maxXDeltafloat+0.50
111minStrikedouble0all leg strikes must be between [minStrike, maxStrike]
112maxStrikedouble999999
219clientVolSurfaceenum : ClientSurface
220atmVolfloat[AtmVolPinned] clientSurface = SRSurface pinned to atmVol @ atmStrike (strike = fwdUPrcRef)
114minSurfEdgeVolfloat-99spread surface edge (in vol) (0.01 = 1.0 vol pts) (+ = through surface; - = behind surface)
113minSurfEdgePremfloat-99spread surface edge (in premium) (+ = through surface; - = behind surface)
184minProbabilityfloatoption response probability will be >= minProbability
115incFeesInRespenum : YesNoinclude all estimated responder exchange fees in final response price (prior to rounding)
116roundRuleenum : RoundRule
117maxResponseSizeintmaximum number of contracts per response (will respond for 100% if auction size <= maxResponseSize)
118maxResponseVegafloatmaximum total vega per response
224totalResponseSizefloatmaximum number of contracts (filled) all day (this responder record)
119totalResponseVegafloatmaximum vega (filled) all day (this responder record)
225policyAutoHedgeenum : YesNoif yes, all option fills will be autoHedgePolicy eligible
127riskGroupIdlong0Default: 0 (none).
226minUPrcfloat1min/max underlier price bounds (no responses while underlier is outside of bounds)
227maxUPrcfloat99999
228numNoticesintnumber of notices that match response bucket
229numNoticeBlockintnumber of SR block auction numNotices
230numNoticeFlashintnumber of SR flash auction numNotices
231numNoticeExchPIintnumber of Exch Price Improvement auction numNotices
232numNoticeExchEXintnumber of Exch Exposure auction numNotices
233numNotMktPennyintnumber auction numNotices
234numMktPenny1intnumber auction numNotices
235numMktPenny2intnumber auction numNotices
236numMktPenny3pintnumber auction numNotices
237numNotMktNickleintnumber auction numNotices
238numMktNickle1intnumber auction numNotices
239numMktNickle2intnumber auction numNotices
240numMktNickle3pintnumber auction numNotices
241respDisabledSkipsintnumber skipped from isDisabled
242stockDisabledSkipsintnumber skipped from canIncludeStock != Yes
243cpFlagSkipsintnumber skipped from cpFlag not matching notice legs CallPut
244flexSkipsintnumber skipped from flex/listed filter
245ekeySkipsintnumber skipped from leg ekey mismatch
246xDeltaRangeSkipsintnumber skipped from out of range XDelta value
247strikeRangeSkipsintnumber skipped from out of range strike
248sVolErrorSkipsint
249userVolErrSkipsint
250zeroSizeSkipsintnumber skipped from zero avail response size
251totalSizeSkipsintnumber skipped from total contract size limit
252totalVegaSkipsintnumber skipped from total vega size limit
253sysErrorSkipsint
254userSurfSkipsint
255probErrorSkipsint
256offMarketSkipsintnumber skipped from response price at or worse that exch/nbbo market
257noticePriceSkipsintnumber skipped from limit price worse that notice price (and already committed)
258numRejectHoldSkipsintnumber skipped from reject hold (prior reject)
259numResponsesintnumber of response attempts (number of parentOrders/NoticeExecReports)
260numRejectsintnumber of response rejects (in the SR execution engines)
261lastRejectReasontext1
262numRespondsBlockintnumber of SR block auction responses
263numRespondsFlashintnumber of SR flash auction responses
264numResponsesExchPIintnumber of Exch Price Improvement auction responses
265numResponsesExchEXintnumber of Exch Exposure auction responses
266numFullSizeint
267numAllocSizeint
268numPriceMissint
269numTooLateint
270numOtherMissint
271numDidNotTradeint
210numTradedint
132qtyTradedint
272vegaTradedfloat
273sumWidthTradedfloatSUM: marketWidth * trdQty => AvgMktWidth = sumWidthTraded / qtyTraded
274sumSurfEdgeTradedfloatSUM: printEdge * trdQty => AvgPrintEdge = sumSurfEdgeTraded / qtyTraded
275sumM1PnLTradedfloatSUM: M1PnL * trdQty => AvgM1PnL = sumM1PnLTraded / qtyTraded
276sumM10PnLTradedfloatSUM: M10PnL * trdQty => AvgM10PnL = sumM10PnLTraded / qtyTraded
277numTradedBlockintnumber of SR block auctions traded
278numTradedFlashintnumber of SR flash auctions traded
279numTradedExchPIintnumber of Exch Price Improvement auctions traded
280numTradedExchEXintnumber of Exch Exposure auctions traded
134modifiedBystring(24)user who last modified this record
135modifiedInenum : SysEnvironment
136timestampDateTimetimestamp of last modification

REPEATING FIELDS

Calibration

#FieldTypeDefault ValueComment
222cValuefloatclient surface volatility @ moneyness
223moneynessfloatmoneyness = SR xAxis value

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

# 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 = 'ResponderMarkupVegaDir'

# 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 = 'userName|isDisabled|enabledUntil|canIncludeStock|canRespondSR|canRespondExch|cpFlag|minXDelta|maxXDelta|minStrike|maxStrike|clientVolSurface|atmVol|minSurfEdgeVol|minSurfEdgePrem|minProbability|incFeesInResp|roundRule|maxResponseSize|maxResponseVega|totalResponseSize|totalResponseVega|policyAutoHedge|riskGroupId|minUPrc|maxUPrc|numNotices|numNoticeBlock|numNoticeFlash|numNoticeExchPI|numNoticeExchEX|numNotMktPenny|numMktPenny1|numMktPenny2|numMktPenny3p|numNotMktNickle|numMktNickle1|numMktNickle2|numMktNickle3p|respDisabledSkips|stockDisabledSkips|cpFlagSkips|flexSkips|ekeySkips|xDeltaRangeSkips|strikeRangeSkips|sVolErrorSkips|userVolErrSkips|zeroSizeSkips|totalSizeSkips|totalVegaSkips|sysErrorSkips|userSurfSkips|probErrorSkips|offMarketSkips|noticePriceSkips|numRejectHoldSkips|numResponses|numRejects|lastRejectReason|numRespondsBlock|numRespondsFlash|numResponsesExchPI|numResponsesExchEX|numFullSize|numAllocSize|numPriceMiss|numTooLate|numOtherMiss|numDidNotTrade|numTraded|qtyTraded|vegaTraded|sumWidthTraded|sumSurfEdgeTraded|sumM1PnLTraded|sumM10PnLTraded|numTradedBlock|numTradedFlash|numTradedExchPI|numTradedExchEX|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 = 'ResponderMarkupVegaDir'

# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned
VIEW = 'userName|isDisabled|enabledUntil|canIncludeStock|canRespondSR|canRespondExch|cpFlag|minXDelta|maxXDelta|minStrike|maxStrike|clientVolSurface|atmVol|minSurfEdgeVol|minSurfEdgePrem|minProbability|incFeesInResp|roundRule|maxResponseSize|maxResponseVega|totalResponseSize|totalResponseVega|policyAutoHedge|riskGroupId|minUPrc|maxUPrc|numNotices|numNoticeBlock|numNoticeFlash|numNoticeExchPI|numNoticeExchEX|numNotMktPenny|numMktPenny1|numMktPenny2|numMktPenny3p|numNotMktNickle|numMktNickle1|numMktNickle2|numMktNickle3p|respDisabledSkips|stockDisabledSkips|cpFlagSkips|flexSkips|ekeySkips|xDeltaRangeSkips|strikeRangeSkips|sVolErrorSkips|userVolErrSkips|zeroSizeSkips|totalSizeSkips|totalVegaSkips|sysErrorSkips|userSurfSkips|probErrorSkips|offMarketSkips|noticePriceSkips|numRejectHoldSkips|numResponses|numRejects|lastRejectReason|numRespondsBlock|numRespondsFlash|numResponsesExchPI|numResponsesExchEX|numFullSize|numAllocSize|numPriceMiss|numTooLate|numOtherMiss|numDidNotTrade|numTraded|qtyTraded|vegaTraded|sumWidthTraded|sumSurfEdgeTraded|sumM1PnLTraded|sumM10PnLTraded|numTradedBlock|numTradedFlash|numTradedExchPI|numTradedExchEX|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 = 'userName: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 = 'ResponderMarkupVegaDir'

# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'userName|isDisabled|enabledUntil|canIncludeStock|canRespondSR|canRespondExch|cpFlag|minXDelta|maxXDelta|minStrike|maxStrike|clientVolSurface|atmVol|minSurfEdgeVol|minSurfEdgePrem|minProbability|incFeesInResp|roundRule|maxResponseSize|maxResponseVega|totalResponseSize|totalResponseVega|policyAutoHedge|riskGroupId|minUPrc|maxUPrc|numNotices|numNoticeBlock|numNoticeFlash|numNoticeExchPI|numNoticeExchEX|numNotMktPenny|numMktPenny1|numMktPenny2|numMktPenny3p|numNotMktNickle|numMktNickle1|numMktNickle2|numMktNickle3p|respDisabledSkips|stockDisabledSkips|cpFlagSkips|flexSkips|ekeySkips|xDeltaRangeSkips|strikeRangeSkips|sVolErrorSkips|userVolErrSkips|zeroSizeSkips|totalSizeSkips|totalVegaSkips|sysErrorSkips|userSurfSkips|probErrorSkips|offMarketSkips|noticePriceSkips|numRejectHoldSkips|numResponses|numRejects|lastRejectReason|numRespondsBlock|numRespondsFlash|numResponsesExchPI|numResponsesExchEX|numFullSize|numAllocSize|numPriceMiss|numTooLate|numOtherMiss|numDidNotTrade|numTraded|qtyTraded|vegaTraded|sumWidthTraded|sumSurfEdgeTraded|sumM1PnLTraded|sumM10PnLTraded|numTradedBlock|numTradedFlash|numTradedExchPI|numTradedExchEX|modifiedBy|modifiedIn|timestamp'

# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'isDisabled|canIncludeStock|canRespondSR|canRespondExch|cpFlag|clientVolSurface|incFeesInResp|roundRule|policyAutoHedge|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 = 'ResponderMarkupVegaDir'

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