Exploiting signals derived from OTC FX options transaction data
As a central repository for all derivatives trading by US persons or entities, the DTCC database contains a wealth of highly exploitable OTC transaction data. Yet the data as it is in DTCC is poorly organized, contains errors, and provides little to no insight.
Enterprai, however, is the first company to organise, clean, and extract informative signals from this data. We also engineer new and novel features from the raw data, and show how they can yield monetizable trading signals.
In FX, for example, currency pairs can be profitably traded based on signals derived from FX options market data. Appropriately curated delta-weighted Call/Put skews express a measure of market positioning on the underlying pair. And a good proxy for market positioning, moreover, can provide exploitable mean-reversion signals in the spot market. We construct such a positioning time series.
On the other hand, the market’s total gamma exposure, computed from individual trades and aggregated, is a measure of how much delta there is to hedge. A rise in the market’s gamma exposure can increase spot market volatility, and thereby signal information concerning market risk.
While the Call/Put skew-based FX positioning series is a richly exploitable signal on its own, it can nevertheless be augmented. Because very stretched positions on a currency pair (e.g. the market is very long one currency and short another) can foretell a mean reversion event, we hypothesised that if properly combined, the gamma signal could potentiate the positioning signal, and increase the returns and the Sharpe ratios of a strategy that trades on a function of both, relative to trading on the positioning alone.
Both of these time series–aggregate gamma exposure and FX-positioning–are proprietary to Enterprai and are available through our workstation and data products. To illustrate the informational content and exploitability of this data, we display below the results of a simple trading strategy based on FX positioning alone, as well as on a function of positioning and gamma.
In terms of options trades as speculation, Calls and Puts on an FX pair function as directional bets on the spot price. Being long an option, as a simplification we can interpret a Call as expressing a long position on the currency pair, and a Put determining a short position. Aggregating the size (notional) of all Calls and Puts and comparing the spread between them measures the net balance of how much of the market is betting on a spot price increase versus a decrease. And weighting each trade by its current delta further refines this measure by giving more relevance or importance to trades closer to (or in) the money. This reasoning suggests that a delta-weighted Call/Put skew is an accurate, options-based measure of the market’s position on the underlying currency pair.
On the other hand, many options trades are not used in a speculative way, but purely to hedge, for example with international firms hedging currency risk. These options tend to have longer tenors and are not necessarily European. The trades most relevant to FX positioning should therefore have medium to short term original tenor length, not be far from expiry, and they should be European options1. Restricting the trades we use to compute the Call/Put skew on the basis of this criteria should identify a more accurate measure of positioning.
After imposing these restrictions on the options dataset, computing the deltas of the trades, and aggregating the notionals for all Calls and Puts (from the restricted dataset), the delta-weighted Call/Put skew-based positioning score has the following form2:
<code>100 * ( C - P ) / ( C + P )</code>
The positioning is expressed as a time series, with each data point (score) ranging from -100 to 100. A value of 0 implies an equal amount of (delta-weighted) Call and Put notional. A value of 100 (-100) means that the market is all Calls (Puts). As an example, we plot below the EURUSD positioning time series overlaid with the spot rate since 2013, where the positioning score has been smoothed by taking the 10-day moving average.
To simplify the meaning and intuition of the positioning score, we also make the following classification of the market’s overall position:
- Long - whenever positioning is above 0.5 standard deviations (most of the flow is in Calls)
- Short- whenever positioning is below -0.5 standard deviations (most of the flow is in Puts)
- Neutral - whenever positioning is between -0.5 to 0.5 standard deviations from the mean (the market exhibits balanced flows
Chart 1 below shows the positioning score on September 3rd, 2021, where all currency crosses are with the USD unless explicitly noted (e.g. EURCHF, EURJPY, etc).
Our trading signal is the positioning score multiplied by -1, meaning we trade against positioning. As we are trading in the spot market, our portfolio consists of the currencies comprising the pair, and we exchange between them. For each pair traded, we assume we have a bank account that contains a certain amount of the quote currency, which we use to buy or short the base currency. So, for example, if we are trading EURUSD, our account consists of dollars, and we use them to go long or short on euros in accordance with the signal.
In each period our trading strategy requires that we re-balance our portfolio to hold the amount of the base currency equal to the signal. For example, suppose the signal on a given day is 70. This implies that we re-balance our portfolio in such a way that we hold 70 units of the base currency; if the signal is -10, then we re-balance so that we short 10 units of the base. And this rebalancing is funded by the amount of quote currency in the account3.
While the portfolio will certainly make a profit over time by trading against stretched positioning, its success does not require large market abnormalities. The strategy trades continuously, with the size of the rebalancing proportionate to the size of the signal.
Trading Results for FX-Positioning
In Table 1 below, we show the annual Sharpe ratios of multiple FX pairs, trading only on the positioning signal, with all pairs being traded since the beginning of 2015 up until March 31, 2022. Note that we applied a 5 days moving average to our signals.
Gamma Exposure Signal
To augment the FX-positioning signal, we add an additional signal based on the market’s gamma exposure. We would like to impose the same restrictions for the option as with FX positioning. This currency is not a possibility within the Enterprai’s API so we compute the Gamma exposure from all options. We hope to overcome this limitation in the near future. In brief, we compute the gamma of all options, weight them by their notionals, and aggregate. Because in practice market-makers are usually short options trades, the market’s gamma is the negative of the computed value.
Using the Joint Signal: Combining Gamma and Positioning
The idea here is that the higher the gamma exposure, the more delta there is to hedge, which means the market took more risk, and the price could swing in the near future. On the other hand, stretched positioning also has a kind of risk associated with it, namely that of sudden reversion. Thus, the higher the gamma exposure is, the more informative the positioning signal is. We hypothesised, therefore, that the market’s gamma exposure potentiates the positioning signal and found evidence for this across many pairs.
To give mathematical form to this intuition, we trade on a smoothed ratio of the positioning signal over the market’s gamma exposure:
The strategy we use is the same one we employed by trading against the positioning, but the signal is now the ratio of the positioning score and the gamma exposure. To refine the signal we experimented with several different smoothing schemes of varying moving average lengths. In Table 2 below we present the results on multiple pairs under two of the best performing schemes:
- Both signals are smoothed by 5-day moving averages
- The combined signal is smoothed by a 5-day moving average
By comparing Table 2 with Table 1, we see that most Sharpe’s are higher when the trading signal uses both positioning and gamma, and in some cases the increase is significant. But there are also exceptions (e.g. GBPUSD).
Trading with Constraints (Using Positioning + Gamma)
Our strategies so far were highly stylized in the sense that there were no constraints, frictions, or transaction costs, no limit (outside the size of the signal itself), for example, on how large our short or long positions could be. In order to obtain realistic returns, and to study the effect on Sharpe ratios, we imposed some simple but credible constraints:
- Constraint on long positions: This means the account holding the quote currency will always show a non-negative balance. This constraint binds only when the strategy suggests a long position too large to be funded by the current account balance. In this case, we go long as much as possible, meaning we spend all the quote currency on it.
- Constraint on short positions: The limit is a certain ratio of the quote currency cash balance. We can only go short of value no-more than X of the quote currency cash balance. We set X=9 to mean that we will just go bankrupt if the spot rate rises by 10% overnight. Such an event is relatively rare for developed market currency pairs4.
- A weaker signal will be able to fully implement the strategy and achieve a good Sharpe, but somewhat at the expense of returns.
- A stronger signal tends to generate higher returns, but the Sharpe’s tend to suffer.
We attempted some optimisation of this signal tuning for the different pairs, and below in Table 3 we present three settings for the signal adjustment. The first implements the best Sharpe, the second yields a good combination of Sharpe and returns, and the third generates the best returns.
Comparing the Sharpe ratios of Table 3 to Table 1, we see that trading on the ratio of positioning to gamma, together with the constraints, mostly and significantly outperforms trading on the positioning signal alone.
To give a more granular view of the performance of EURUSD, we also display in-depth data from the “Balanced” column for EURUSD below, including the returns, the rolling annual Sharpe, and the relative drawdown.
1 We use specific hyper parameter settings for this to make it precise.
2 While this formula is the same as the Call/Put skew from the API, it is not the same time series. The difference comes from the data that is used: the positioning is computed from a subset of trades defined by the restrictions described above, which identifies market positioning.
3 Here we are not imposing constraints on the size of our short or long positions (with the exception of the implicit constraint on the size of the signal itself), or imposing any transaction costs, but are exploring a highly stylised strategy to determine the exploitability of the signal. Below we trade under more realistic constraints and present those results. See the “Trading with Constraints” section.
4 A move of this magnitude happened in 2015, when the Swiss Franc rapidly appreciated on the euro after the peg was detached. For this reason, below we ran our strategy again on USDCHF starting in Jan 2016, after the value of the CHF settled down.