Algo choice: how to implement a market impact/volatility trade-off

Quantifying how macroeconomic announcements affect market reaction is key to deploying the right FX algo, writes Alexei Jiltsov of Tradefeedr


Despite the impressive array of execution algos available, users still need to specify upfront the parameters they want to use. The results can otherwise be disappointing.

Typically, an algo user will select the type – passive or active; scheduled or opportunistic; and the underlying liquidity type – and the required urgency: fast or slow. The combination of these parameters will determine the expected horizon.

But the process can also be flipped on its head. Given the expected horizon, it’s possible to determine the market impact and the volatility of the outcome an algo is likely to generate.

This strategy is shown in figure 1a. The longer the expected execution horizon, the higher the volatility of the outcome – think of it as the volatility of the implementation shortfall – but the lower the market impact.



The algo-user normally expresses a preference for balancing volatility and market impact. For example, one basis point of market impact may be worth X basis points of expected vol. If market impact is decreased by 1bp by increasing the algo horizon, the user is happy to tolerate a vol increase of up to X basis points. In this scenario, a low value of X means the user does not want to tolerate volatility and an X of zero translates to immediate trade execution.

A user looking to solve the trade-off between market impact and expected volatility must first estimate both.

Market impact can be tricky to estimate, as is what algo-users can effectively control through their own selection. For example, some algo providers may have – or may believe to have – only a temporary impact, while others can have a more lasting effect.

This is illustrated in figure 1b. An algo with permanent impact – which can be thought of as information leakage – increases the total market impact and results in a different trade-off solution altogether.  



Volatility is arguably more mechanical than market impact and less dependent on the choice of algo provider. In an ideal scenario, market impact is determined by the difference in price paths, with and without an algo-user’s order – which, by definition, is never observable. 

Assuming normal execution – something which does not alter market dynamics, such as sweeping all the liquidity – market vol with and without an algo-user’s order would be the same or very similar. For the rest of this article we will therefore focus on the volatility projection to analyse the market impact/volatility trade-off.  

Measuring and projecting volatility

Volatility is arguably more mechanical than market impact and less dependent on the choice of algo provider. In an ideal scenario, market impact is determined by the difference in price paths, with and without an algo-user’s order – which, by definition, is never observable.

Assuming normal execution – something that does not alter market dynamics, such as sweeping all the liquidity – market vol with and without an algo-user’s order would be the same or very similar. For the rest of this article, we will therefore focus on the volatility projection to analyse the market impact/volatility trade-off. 

With respect to future volatility, we prefer to use the word ‘project’ rather than ‘forecast’. Our goal is to reflect future vol via a simple framework, rather than to come up with complex – even if more accurate, especially in-sample – econometric or machine learning models.

A standard approach to volatility modelling is to split the overall vol into three components: daily volatility – or base level – intraday pattern and volatility around events.

Currency volatility throughout the day is assumed to be determined by a base level of some sort at a specific time of day. Information density is naturally higher when the main markets, such as London and New York, are open, hence volatility is expected to be higher than the base level during those hours and vice versa. The daily vol is determined by the general macro environment and can be projected using standard techniques such as a generalised autoregressive conditional heteroskedasticity (Garch) model.

The first question algo-users should ask is how stable is the intraday pattern. Figure 2 shows the estimated intraday pattern over the past five years for EUR/USD. Unsurprisingly, the pattern is relatively stable, as it mainly reflects a daily cycle.

In our example, it doubles during London hours and doubles again briefly around US macro news, which is normally at 1:30pm London time, before decreasing. Spikes around fixing times, which were once observable, have now disappeared.



Modelling the intraday volatility pattern is relatively trivial. In a nutshell, it is a regression of intraday absolute returns on the set of functions of the time of day. These functions are cycles of different frequencies, and their combination – with fitted weights – represents a ‘circadian rhythm’ for each market.

Figure 3a and 3b show a typical fit. The intraday curve is converted back into annualised volatility levels for ease of interpretation. Two periods are considered: 2015, for a reasonably high vol environment and 2019 for low vol. For each period, three curves are shown: model intraday vol, the actual intraday curve and a smoothed actual intraday curve.    



The model curve captures a generic intraday trend: EUR/USD vol is low until the London open, it spikes temporarily and then peaks around 1:30pm. It then drifts down until the London close at around 5pm and ends further down afterwards. While there is nothing too surprising about this dynamic, the difference between the volatility level at 5am and 1pm can be four-fold and this should be accounted for.

The model curve also highlights a problem: a number of spikes in the actual curve are not captured. These spikes are meaningless at the aggregate level – the jump at around 1:30pm, for example, shows the average market reactions to non-farm payroll (NFP) numbers, core retail sales or other US data announcements that all occur at the same time of day. However, these jumps are meaningful for each specific day when the algo-user is about to decide on expected vol in the upcoming few hours – especially if a specific event is set to occur. In this case, a forthcoming macro announcement could increase volatility significantly.  

Macroeconomic announcements and other pre-scheduled events, such as central banks’ announcements or speeches by major political leaders, all affect market vol. Market reaction to these events changes over time, and events that are important in one macro cycle can be completely ignored in another.

Figure 4 shows the volatility around some major US macro announcements. It is clear that the NFP numbers are the undisputed king when it comes to post-announcement volatility. While this is well known in the market, its quantification is important. The chart suggests NFP volatility is double that of core retail sales and triple that of initial jobless claims.

It is also important to note that vol subsides to base level pretty quickly, but not instantaneously. It normally takes about an hour for market vol to subside, while the initial spike lasts less than 10 minutes. 



The final component is base daily vol. Figure 5 shows its dynamics and how important it is to differentiate between currency pairs.

For example, recent Covid-19 events did not quite register as a risk barometer in EUR/USD and AUD/USD price action, when compared with 2008. On the flip side, USD/JPY base vol levels are comparable to 2008, while USD/NOK realised vol, which reflects oil dynamics, is much more significant than it was during the financial crisis.

If we were to apply historical currency reactions from 2008 to project volatility in the current environment, we would overprice AUD/USD risk and under-price USD/NOK risk. The simplest explanation for this is that the former is no longer the carry currency it was in 2008 and the latter has been massively affected by recent oil price action.



The three components just analysed can be put together to project future volatility for the purposes of algo trading.

Let’s assume we would like to execute an algo transaction at 7:30am New York time on a payroll day, before the 8:30am announcement. First, we project the base daily vol for the day. Second, we apply the intraday pattern to it. And third, we apply any event volatility add-ons, such as the estimation that the market will be considerably more volatile right after the announcement and for some time after. The sum of those three components gives us the total expected volatility for each execution horizon.

But what would happen if we continued to run the algo past the announcement time? Figure 6 offers an answer to this question.

If we run an algo between 7:30am and 8:30am, we would expect the total spot vol for this period to be around 12bp. However, if we were to run the algo for one more minute after the 8.30am announcement, the expected volatility would jump to 35bp.

In other words, adding one minute to the execution horizon triples the total expected price volatility. And although there is nothing too surprising about NFP numbers being important to the overall volatility of the algo outcome, the ability to quantify it ahead of the decision-making process is crucial.

As to why an algo user would want to run over an NFP announcement, it could simply be because the order was too big to be done in a reduced liquidity environment ahead of the event, or there simply was no time left before it.  


When things go wrong, don’t panic

When an algo is run over a macroeconomic event, things can either go in the user’s favour or against it. In both cases, the user would be compelled to intervene. It is useful to understand a typical market reaction to an event and to develop a strategy for capturing the value in both scenarios. Figure 7 summarises the long-term reaction of EUR/USD to events over time.



On average, the reaction to NFP numbers is very fast and the market doesn’t look back – at least for two hours. In the event of a higher-than-expected NFP number, EUR/USD drops and remains lower after that.

The reverse is true for lower-than-expected NFP numbers. The average size of the move is 10bp, which is quite significant. Core retail sales exhibit the same qualitative picture, although the size of the move is about half that of NFP numbers.

The market reaction is less straightforward for lesser economic announcements. For example, with initial jobless claims, not only the reaction is more subdued but, more importantly, the market comes back to its initial state after roughly 30 minutes.

How does this project onto algo urgency and other algo control parameters? Take EUR/USD and NFP figures, for example. If the numbers come in less than expected, we are in the presence of an adverse event for the exchange rate. The damage is done in the first minute, and unless there is a compelling reason to speed up the execution and pay the spread aggressively, the alternative scenario of doing nothing and keep running the algo as before would make sense. The same is even truer for initial jobless claims.

Structural changes in the market should also be taken into account, which is what figure 8 attempts to show. The four graphs track the average reaction of EUR/USD to distinct events on a rolling basis. It is clear that, together with the decrease in volatility over time, FX markets – at least in EUR/USD – have stopped responding strongly to specific economic events.  



Why the EUR/USD market specifically responds less to macro events is an open question. The answers may range from a less pronounced business cycle to other data points, like alternative data, being relied on more to track economic performance. The reaction can also be asset-specific, but users of EUR/USD algos should always take the most recent stats into account.

  • LinkedIn  
  • Save this article
  • Print this page  

Only users who have a paid subscription or are part of a corporate subscription are able to print or copy content.

To access these options, along with all other subscription benefits, please contact [email protected] or view our subscription options here:

You are currently unable to copy this content. Please contact [email protected] to find out more.

You need to sign in to use this feature. If you don’t have a FX Markets account, please register for a trial.

Sign in
You are currently on corporate access.

To use this feature you will need an individual account. If you have one already please sign in.

Sign in.

Alternatively you can request an indvidual account here: