July 14, 2020 ← Back to article listing
Understanding Direct Market Access (DMA)
Direct Market Access (DMA) is the common term used to describe physical connectivity and programmatic access, that supports the ability to interact with buy and sell orders for traded products / contracts, directly to automated trading systems (ATS) liquidity pools.
Within Direct Market Access (DMA) however, it is also important to understand the additional terms Low Latency DMA (LLDMA) and Ultra Low Latency DMA (ULLDMA).
Why Low Latency DMA (LLDMA) and Ultra Low Latency DMA (ULLDMA)?
Working backwards, one could observe that usage of Ultra Low Latency DMA could be a marketing term that is used by technology vendors to imply performance advantages beyond standard DMA and Low Latency DMA. There is likely some truth in this, but there are also real relative differences.
We have previously defined Direct Market Access (DMA) as a reference to algorithmic trading using direct access to liquidity pools.
There are no absolute definitions that define the comparative performance metrics of DMA, LLDMA and ULLDMA, nor what is measured in terms of venues, order book depth, traded products or logic flows to compare performance profiles.
The OnixS view is that there are a large number of variables that can impact performance comparisons, and that generally performance profiles provided by technology vendors are suspect simply for the reason that they are provided by the vendor and therefore likely to be designed to show their offerings in a positive light.
OnixS therefore provides reference implementation source code samples within our SDK implementation software distributions to enable developers to quickly execute performance analysis based on known use cases and open code. The recommendation is to execute these benchmarks on the target platform and to then adapt the source code samples to the specific context. This has the further advantage of developer education on performance optimisation techniques.
Having said this, we will provide some guidance on DMA vs LLDMA vs ULLDMA. Here, we will assume that DMA is just the direct access method itself, so focus on defining LLDMA vs ULLDMA.
LLDMA vs ULLDMA: What Speed Qualifies as ULLDMA?
The Wikipedia definition of ULLDMA is "incur no delay greater than 500 microseconds" . Other references state that only speeds under 1 millisecond (1,000 microseconds) qualify as ultra low. In the current trading landscape, those seem like a long time. But it is generally accepted that these performance numbers will continue to trend towards zero over time.
OnixS’ own LLDMA and ULLDMA definitions are based on how we typically measure the market data handler and order entry SDK implementations using two methods:
- 1. "Tick-to-callback". The market data handler SDK Tick-to-call back measures the time to process incoming market data from the moment when the SDK receives a packet from the network to the time the SDK passes the results of packet processing to the correspondent user API callbacks. We would suggest the following definitions in this context:
- LLDMA < 5 microseconds (0.005 milliseconds)
- ULLDMA < 1 microseconds (0.001 milliseconds)
- "Tick-to-trade". An integrated trading client that includes the market data handler and order entry handler SDKs with a dummy trading strategy. This measures wire-to-wire latency (based on network tap measurements) between an incoming market data update packet and outgoing order entry packet caused by the corresponding market data update. The trading algorithmic logic does nothing in this context other than trigger the order entry event.
- LLDMA < 100 microseconds (0.100 milliseconds)
- ULLDMA tick to trade <5 microseconds (0.005 milliseconds)
But to repeat and emphasise a prior point - the performance profile that matters is that which developers/traders see using the target context on the target deployment platform.
The numbers presented above are what we see using the included reference implementation source code samples. If you want to do performance analysis, then that is the best place to start.