FX algo performance during the COVID-19 crisis

June 2023 in Market Watch

By Pete Eggleston, Co-founder & Director, and Sachapon Tungsong, Machine Learning Quantitative Researcher, at BestX, Ltd

The beginning of 2020 witnessed a significant increase in volatility compared to 2019, which was relatively calm. With the onset of the COVID-19 crisis, we observed unprecedented volatilities throughout March 2020. One theme of research at BestX has been modelling intraday regimes in financial markets, focusing on liquidity and volatility regimes. One of the objectives of this research is to assist with execution decision making, of which the choice of algo can be a key determinant in achieving best execution.

We have also observed an increase in FX algo usage during the coronavirus crisis so far—for example, the ratio of EURUSD algo to spot volume processed by BestX went from 22% in Q4-2019 to 34% in Q1-2020. Previously we have analysed how different styles of algos perform in different market regimes, as measured by our machine learning model. In this paper we update this analysis and specifically focus on comparing the performance in Q4-2019 and Q1-2020 of two main algo styles, namely Get Done and Opportunistic.

Volatility, liquidity and regimes

EURUSD volatility increased significantly from Q4-2019 to Q1-2020. The average hourly volatility increased from 3.26% in Q4-2019 to 6.00% in Q1-2020. We also observed a decrease in liquidity on average—the mean bid-ask spread increased slightly from 0.51 basis points in Q4-2019 to 0.58 basis points in Q1-2020.

To help understand intraday patterns of EURUSD volatility and liquidity during Q4-2019 and Q1-2020, Figures 1 and 2 illustrate the average EURUSD volatility and bid-ask spread for each hour in a day.
Market Watch

Market Watch

We use tick prices, normally of millisecond frequency, to compute volatility and bid-ask spread for each non-overlapping hour, i.e., 2019-12-11 09:00, 2019-12-11 10:00, etc. Three regimes are defined separately for volatility and liquidity: High, Medium, and Low. As liquidity is proxied by bid-ask spread, High liquidity corresponds to low bid-ask spread and vice versa. The methodology for regime classification is described in detail in our previous publication. Figure 3 illustrates the boundaries of volatility and liquidity regimes which correspond to the 90-day rolling 33rd and 67th percentiles of each variable.
Market Watch

BestX algo styles

BestX categorizes FX trading algos into five groups as discussed in Table 1. We will carry out our analysis in the subsequent sections based on this algo taxonomy.

Algo performance and market impact

In this section we analyse the average performance and market footprint of Get Done and Opportunistic algos in each volatility-liquidity regime. Our sample includes EURUSD algo trades executed in Q4-2019 (September 1, 2019 to December 31, 2019) and Q1-2020 (January 1, 2020 to April 21, 2020). Table 2 summarises the number of algo trades and combined USD notional analysed in this study.

We assign each algo to a volatility-liquidity regime based on the algo parent’s arrival time stamp. For example, an algo is considered to have been executed in High volatility regime if the parent’s arrival time stamp is 2019-12-11 09:34:55 and the volatility level regime for the hour ending 2019-12-11 10:00:00 is High.  We benchmark Get Done algos against the arrival price (observed market mid price at the Market Arrival time stamp) and Opportunistic algos against the Interval TWAP price. For analysis of market impact, we look at the market 5-second post-trade revaluation. A positive reval number means the trade has not caused market impact, i.e., when the FX rate moves down after a buy trade is executed.

We group algo fills by volatility-liquidity regimes and compute the notional-weighted average of performance against each of the benchmarks and its 95% confidence interval using the bootstrap method. Results are presented in a heatmap where positive performance numbers in green cells indicate over-performance and negative performance numbers in red cells indicate under-performance.
Market Watch
Market Watch

Get Done

Figures 4a and 4b show that, EURUSD Get Done algos outperformance against arrival price have significantly improved from Q4-2019 to Q1-2020. In the High volatility regime, where most trades took place, the performance improvement ranges from 0.3 bps to 3.17 bps. The only regimes we observed worsened performance are in Low liquidity coupled with Low to Medium volatility; however, with only 21 algo trades observed in these regimes, one should interpret the results with caution.

The remarkable improvement in performance may be explained by the fact that the market conditions in Q1-2020 were more suitable for Get Done algos as they generally perform better in higher volatility periods. However, it does appear that this improved performance versus arrival price may have come at the expense of increased market impact, as measured by the 5-second revaluation metric shown in Figures 5a and 5b. Interestingly, this increased impact has been observed in nearly all market regimes.
Market Watch
Market Watch


Given the majority of Opportunistic algos were executed over longer time horizons than Get Done, the Interval TWAP is a more appropriate benchmark for the former. Figures 6 and 7 subsequently show regime performances for Opportunistic algos, measured versus the Interval TWAP, and the algos’ market footprint.

Although market impact looks to be similar in Q1-2020 vs Q4-2019, the benchmark performance appears to have worsened. For example, in the most populated regime in Q1-2020, High volatility and Low liquidity, underperformance has approximately doubled, from -0.62 bps in Q4-2019 to -1.28 bps in Q1-2020. Given the need for Opportunistic algos to take advantage of liquidity over time, this result makes intuitive sense because the “opportunity cost” of passive order placement is higher during periods of high volatility and lower liquidity.

The only regimes where Opportunistic algos were seen to outperform Interval TWAP in 2020-Q1 were Low and Medium volatility regimes, when combined with Low liquidity regimes. However, it is worth noting that these regimes were clearly not observed frequently in 2020-Q1 as the sample sizes are comparatively very small, and hence, probably not statistically significant.
Market Watch
Market Watch


We have previously observed how significant the performance differences can be depending on the algo style chosen when executing in different market regimes. Towards the end of Q1-2020 we observed unprecedented market conditions, which resulted in extreme price movements and realized volatility. We have shown in this analysis that such conditions make it even more important to make informed decisions around execution, especially algo selection in the prevailing market regime. For example, if you were trading Opportunistic algos in Q4-2019, during High volatility regimes, the difference in performance versus Interval TWAP between High and Low liquidity regimes was 0.39 bps. In Q1-2020, this difference increased significantly to 1.04 bps.  Trading EURUSD Opportunistic algos in High liquidity regimes as opposed to Low liquidity regimes in Q1-2020 could have made a significant impact to the bottom line. Informed trading decisions, where trader’s experience and intuition combined with insights from data and analytics, are a key component of achieving best execution in any market, but this is accentuated in times of market stress.