Feed 'L' - Counterparty limits
Counterparty limits feed
Requests
Feed handling
limit =
{
"counterpartyId": int,
"ownLimit": {
"grossLimit": int,
"asset": string,
"limitUtilization": int,
"equity": int,
"markup": int,
"tradingDisabled": bool,
"maintenanceMargin": int <optional>,
"restrictedTrading": int <optional>,
"initialMargin": int <optional>
} <optional>,
"mutualLimit": {
"grossLimit": int,
"asset": string,
"limitUtilization": int,
"equity": int,
"markup": int,
"tradingDisabled": bool,
"maintenanceMargin": int <optional>,
"restrictedTrading": int <optional>,
"initialMargin": int <optional>
} <optional>
}
For the detailed counterparty limit description
// snapshot
['L', 0, 'S', array of limit]
// limit added
['L', 0, '+', limit]
// limit modified
['L', 0, 'M', limit]
// limit removed
['L', 0, '-', limit]
// failed to subscribe
['L', 0, 'Z', 2]
// unsubscribed
['L', 0, 'U', 0]
applyToSnapshot(prevSnapshot, feed, action, data) {
switch (feed) {
case 'L': {
switch (action) {
case 'S': {
return [...data]
}
case '+': {
prevSnapshot.push(data)
break
}
case 'M': {
for (var i in prevSnapshot) {
// Update limit for counterparty
if (prevSnapshot[i]["counterpartyId"] == data["counterpartyId"]) {
prevSnapshot[i] = data
break
}
}
break
}
case '-': {
for (var i in prevSnapshot) {
// Delete limit for counterparty
if (prevSnapshot[i]["counterpartyId"] == data["counterpartyId"]) {
prevSnapshot.splice(i, 1)
break
}
}
break
}
}
break
}
}
return prevSnapshot
}
Last updated