“For me, MATLAB is the best tool for rapid quantitative analysis. I can analyze large data sets, visualize results, and automate the process once I’ve validated it. Building a complete execution analysis system from scratch in Java® or a similar language would take months longer.”

Shelly Shi, Liquidnet

Price, executions, and performance measures of one order plotted using Liquidnet Execution Analyzer.

Institutional equity traders typically perform transactions involving tens of thousands of shares. Many of the trades they execute on the open market drive the price of the equity up or down, causing them to pay more for an equity that they are buying or to receive less for one that they are selling. To reduce the market impact of large trades, these investors turn to alternative trading systems such as Liquidnet, in which trades are executed anonymously.

To ensure the best executions and provide in-depth analytical tools for their clients, Liquidnet developed Execution Analyzer, a post-trade analysis tool that compares the order execution price with the market trend at a short time scale. They dramatically reduced development time by using MATLAB®.

“We wanted to provide this analytical tool in our system, and we didn’t want development to take months,” says Shelly Shi, quantitative analyst at Liquidnet. “MATLAB and its companion toolboxes offer ready-made database access and data analysis capabilities, so it was the fastest way to develop a complete solution for evaluating transactions performed on Liquidnet.”

Challenge

The performance of order execution is traditionally measured against various benchmarks in macro time scale, including open, close, and volume-weighted average price (VWAP). However, in the fast-moving equity market, many traders want to know how their trades, especially those trades of larger size executed in dark pool, perform in micro time scale.

To measure the execution performance, Liquidnet must analyze every transaction by comparing the execution price of the equity with price trends preceding and following the transaction and then calculate a quantified measure. In the past, Liquidnet used Microsoft® Excel® spreadsheets to perform this analysis. The manual process was done on an ad hoc basis on individual data sets, and it often required hours to evaluate a single order.

“In our old process, we would write a SQL query, copy the results into a spreadsheet, and process them manually,” says Shi. “Checking even a few trades would take a full day, so it was challenging to analyze all the transactions executed daily. We needed to automate the process, but it wasn’t possible with spreadsheets.”

Solution

Liquidnet used MATLAB and companion toolboxes to develop Execution Analyzer, an automated system that measures the execution performance in micro time scale.

Shi and her colleagues imported Liquidnet execution data and market data from an Oracle® database into MATLAB using Database Toolbox™.

Using MATLAB and Curve Fitting Toolbox™, Shi modeled historical market data for each equity involved in a Liquidnet transaction. She then developed algorithms in MATLAB to compare execution prices with price trends and derive a quantified measure that represents the performance of the individual execution. This measure is also statistically meaningful, so it can be used in statistical analyses later on.

She used Statistics and Machine Learning Toolbox™ to perform a variety of statistical analyses on transactions in different groups. The analyses were used to further improve Liquidnet’s trading algorithms.

Results

Transaction evaluations completed in minutes, not hours. “Our Excel-based process required hours to analyze a single transaction,” says Shi. “Using MATLAB we can complete the same analysis in minutes, enabling us to implement a system capable of analyzing every execution in our marketplace.”

Analysis capability extended to 100% of daily transactions. “Before building Execution Analyzer, execution analysis was so labor-intensive that it was challenging to cover all the transactions executed,” says Shi. “With MATLAB we built an automated system capable of analyzing 100% of the orders executed on Liquidnet every day.”

Potential data-entry errors eliminated. “The MATLAB system is more reliable than our manual approach because there’s no human interaction for data input or any other processing steps,” says Shi. “MATLAB directly retrieves the transaction and market data from our database, so there is no chance of human errors in this process.”