“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
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.”
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.”
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 Toolbox™ to perform a variety of statistical analyses on transactions in different groups. The analyses were used to further improve Liquidnet’s trading algorithms.
To help users visualize performance, Execution Analyzer generates graphs using MATLAB plotting tools.
Measure trade performance in micro time scale
Use MATLAB and companion toolboxes to develop an automated system that compares specific transaction data with market trends and derives the quantified measure of performance