Warsaw Stock Exchange

Empirica technology was chosen by the biggest stock exchange in Central & Eastern Europe.

“System implemented by Empirica allows WSE to obtain additional tools for analyzing liquidity of traded instruments and activity of market participants: brokers and market makers. After four months usage of application, we didn’t had any technical intervention of Empirica. Delivered system is working according to our assumptions and needs.”

Tomasz K. Wisniewski PhD, Project Manager, Warsaw Stock Exchange

About the client

Warsaw Stock Exchange is the biggest and most liquid stock exchange in Central & Eastern Europe.

About the project

The project goal was the implementation of real time calculation system in area of liquidity of instruments quoted by stock exchange.
System has been build based on core components of Empirica Algorithmic Trading Platform. That gave WSE the flexibility to adjust the liquidity algorithms in the future.
The development team worked with agile process (scrum) with short two week iterations

Our role

Empirica has taken responsibility for design, implementation, documentation and tests of the system based on WSE assumption.

The business problem we solved

The business reason behind the system’s functionality is to track  liquidity of instruments on stock exchange for deeper analysis of instruments and market participants (brokers and market makers).


The major technical challenge was low latency performance of processing huge amounts of real time market data from the trading system of stock exchange.


Low latency and high throughput system that executes algorithms of liquidity measures and allows for flexible deployment of new algorithms. Algorithms are executed in real time on live market data directly from stock exchange system UTP. Algorithms are implemented using proprietary Empirica API. System is delivered on premise connected directly to the core WSE trading system.

Lessons learned

Performance can be gained not only by squeezing the nanoseconds out of the algorithm logic or memory operations, the most important and sometimes forgotten place is to not process the data that should not be processed at all.
Performance always starts at data feed.
Single thread processing can be much faster than processing by multiple threads (yes, CPU context change). For details how to do it properly in Java, please contact us :)

We are proud that WSE has chosen our technology. This implementation is yet another proof of high throughput and low latency processing capabilities of our systems in production installations in financial institutions.