Alerts

Alerts for key events that allow for profitable trading or effective risk management, or to feed into your own proprietary signals.

Arbitrage Alerts

Coming Soon

Receive an alert when there is a detected arbitrage in any subscribed currency pair for your selected fee level. By default, this is the taker fee of entry tier of the given exchange for that instrument but it can be amended as part of the subscription call.

# Subscribe to arbitrage alerts on BTCUSD perpetual instruments
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.arbitrage']})
# Subscribe to arbitrage alerts on ETHUSD spot instruments
ws.send({action: 'subscribe', channel: ['ETHUSD spot.alert.arbitrage']})
# Pattern Subscribe to arbitrage alerts on all spot instruments
ws.send({action: 'subscribe', channel: ['*spot.alert.arbitrage']})

You can adjust for your own fee cut-off levels if you are eligible for incentive programmes to only receive alerts when your target level is reached:

exchanges_fees = {
'bitmex': -0.0005,
'deribit': 0,
'binance': 0
}
payload = {
action: 'subscribe',
channel: ['BTCUSD spot.alert.arbitrage'],
fees: exchange_fees
}
ws.send(payload)

Fees Parameters

Parameter

Type

Required

Description

exchange

string

no

Exchange name

fee

numeric

no

Relevant fee expressed as a percentage (e.g. 0.075% (7.5bp) would be 0.00075)

The arbitrage amount is calculated as an aggressor, crossing the spread (i.e. selling at the bid, buying at the offer) over the two exchanges. As such, the arbitrage amount is given by:

bid(1bidfee)ask(1+askfee)bid * (1 - bidfee) - ask * (1 + askfee)

You will receive a response from the API including the following information:

{
"type":"arbitrage_alert",
"asset": 'BTCUSD spot',
"bidAsset": 'btcusd',
"askAsset": 'BTC-USD',
"bestBidPrice":49077.43,
"bestAskPrice":49073.82,
"bidExFee": 49324.05,
"askExFee": 48829.67,
"bestBidAmount":0.02036575,
"bestAskAmount":0.00087747,
"arbitrage":3.610000000000582,
"bidExchange": 'bitstamp',
"askExchange": 'coinbase'
}

Large Trade Alerts

Coming Soon

Receive a notification every time there is a large trade, based on a custom level you set or our standard cut-off of 75th percentile. You can subscribe to a single asset on a single exchange, a normalized asset across all exchanges, all assets on a single exchange or all assets on all exchanges - with each alert tailored to the prevailing standard trade size in that asset.

# Subscribe to large trade alerts on deribit's BTC-PERPETUAL instrument
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.alert.largetrades']})
# Subscribe to large trade alerts on BTCUSD perpetual instruments (75th percentile)
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.largetrades']})
# Subscribe to large trade alerts on ETHUSD spot instruments (75th percentile)
ws.send({action: 'subscribe', channel: ['ETHUSD spot.alert.largetrades']})
# Pattern Subscribe to large trade alerts on all spot instruments (75th percentile)
ws.send({action: 'subscribe', channel: ['*spot.alert.largetrades']})

Breakout Detection

Receive a notification when a price breakout occurs in a given instrument or a given asset across any exchange on which it trades. Breakout Detection is based on an ensemble of on-line statistical breakout detection algorithms. This is useful for market makers looking to receive a notification when there is a price breakout in an instrument on one exchange so they can amend their position on other exchanges - even if the first exchange is one where they have no active data collection or trading activity.

# Subscribe to breakout alerts on deribit's BTC-PERPETUAL instrument
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.alert.breakout']})
# Subscribe to breakout alerts on BTCUSD perpetual instruments across
# all exchanges
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.largetrades']})

Moving Average Alerts

Receive a notification when there is a Moving Average crossover in any asset. You can provide any short-term and long-term average components in the following format:

sma.[short run minutes].[long average mnutes]

:For example, the below are common SMA alert subscription calls:

Short-run average

Long-run average

Argument

1 minute

5 minute

sma.1.5

1 minute

15 minute

sma.1.15

1 minute

30 minute

sma.1.30

5 minute

15 minute

sma.5.15

5 minute

30 minute

sma.5.30

5 minute

60 minute

sma.5.60

15 minute

60 minute

sma.15.60

15 minute

120 minutes

sma.15.120

30 minute

120 minutes

sma.30.120

# Subscribe to SMA(5,60) alerts on deribit's BTC-PERPETUAL instrument
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.alert.sma.5.60']})
# Subscribe to SMA(30,120) alerts on BTCUSD perpetual Combined Orderbook
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.sma.30.120']})