Revolut FIX Gateway is a FIX 4.4-compliant gateway that provides a direct connectivity to the Revolut matching engine cluster.
Each FIX API (Trading and Market Data) is served by its respective Revolut FIX Gateway.
Revolut FIX Gateway operates in the UTC time zone.
For more information about FIX, see the FIX protocol documentation.
These messages are the same for both the Trading FIX API and Market Data API.
Once the rate limiter counter reaches the defined value (currently 7500 orders in the 5-second sliding window), FIX Gateway will start sending rejection for NEW (D
New Order - Single) and REPLACE (G
Order Cancel/Replace Request) orders, until the number of recently posted orders reduces below the threshold:
For a NEW order that violates the rate limiter, FIX Gateway will reply with 8
(ExecutionReport):
Tag | Name | Value |
---|---|---|
103 | OrdRejReason | 99 - Other |
58 | Text | Rate limit exceeded |
For a REPLACE order that violates the rate limiter, FIX Gateway will reply with 9
(OrderCancelReject):
Tag | Name | Value |
---|---|---|
102 | CxlRejReason | 99 - Other |
58 | Text | Rate limit exceeded |
The impact of NEW and REPLACE is the same (weight=1).
There is no rate limiter for CANCEL (F
Order Cancel Request) requests (weight=0).
The expected behavior is to tolerate such rejections, wait (for example, ~1 second) and re-send the ORDER/REPLACE request, with more recent price if necessary.
When a REPLACE order is rejected by the rate limiter, the order that was supposed to be replaced (previous order) stays intact. This means the previous order is not cancelled or modified.
If it is necessary to remove the previous order, the trading algorithm should send an explicit CANCEL request.
The rate limiter scope is active per FIX session independently, and it is not shared. If the trading service is connected under two different sessions (or two different gateway nodes), the actual allowed rate will be 2x higher.