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).
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.
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, across low latency trading.
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:
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.