I’ve heard many explanations for how the Beatles got their name. I have to admit I never quite put two and two together to realise it could be a pun on the word “beat”, until someone on Twitter pointed it out a few months ago (despite my predilection for coming up with awful puns to tweet). There’s also an explanation that the “beetle” was supposed to be related to The Crickets, Buddy Holly’s band. There have obviously been many bands since the Beatles, but their music has still reverberated over the generations. Maybe it’s for a simple fact that a remarkable number of their songs are really memorable!
Sure, not every single track they made was material to be realised as a single, but listen to some of their full albums from start to finish and it’s sometimes to difficult to tell what was realised as a single and what wasn’t. It’s not like sometimes when you listen to an album, and maybe there are two or three good tracks which were released as singles, and the rest are basically fillers. Of course, what constitutes good or bad music is subjective, and will differ between people.
When it comes to financial markets, there can also be a lot of subjectivity, when we develop trading ideas. However, time provides objectivity to that trading idea, in the form of a P&L. If we think purely about trade execution, trying to be more objective, is the premise behind transaction cost analysis. It gives us a way of assessing whether we have actually achieved best execution. Indeed, when it comes to many cash markets like FX spot, there are a few TCA products out there. There’s Cuemacro’s tcapy for FX spot for example, which is a Python based library. Clients get access to 100% of the source code for tcapy too (and modify it as they want), and can run internally keeping trade data private. Recently, I made a post on LinkedIn, asking whether it was worth modifying Cuemacro’s tcapy product for FX options. I got a lot of interesting replies so I thought it would be worth writing about it in more detail.
Basically, transaction cost analysis takes your trade data (potentially also of your peer group for comparison), which needs to be properly time stamped. It also takes market data to use as a benchmark. For FX spot, the “price” could be a mid-market quote, collated from a number of venues (like New Change FX do) or it can be collated from streaming prices you collect from your liquidity providers. Market data you collect could include top of the book bid/ask quotes, and possibly market depth data.
When it comes to FX options, the complexity of the problem increases, given there are so extra steps we need to take to take to construct our benchmark reference price for each option we have traded. We need to collect high frequency spot data and also rates data for all the various tenors. We also need to collect market data for all the points on the FX option surface across both strike and tenor space. Sources like Bloomberg and Reuters have indicative quotes. Obviously, without sufficient data trying to do TCA is incredibly challenging, but in recent years, like with FX spot, it is also possible to get streaming executable pricing for FX options (at least for vanillas, which is the focus of this article). There might also be publicly available trade data which might be helpful. Once we have all the market data collected on a high frequency basis, we need an option pricer to generate our benchmark option price to compare against every option trade we have executed.
There are obviously questions about whether you want to also add any pricing adjustments (related to credit risk as an example) to our “benchmark” (how “accurate” would our benchmark need to be if we are trying to compare liquidity providers for example?). Also for interpolated dates (ie. not ones which are directly quoted), maybe we might need to have an event calendar? Once, we can calculate a price though, we could reuse a lot of the machinery associated with FX spot TCA. For example, we can then calculate metrics such as slippage, as we would for FX spot.
I don’t claim to know all the answers about extending TCA to FX options space, and the above is a vastly simplified summary of what would need to be done. There’s also a question of whether there’s sufficient interest for TCA in FX options space. My impression is that having proper TCA tools in FX options space would help traders to shed a light on their execution costs, in a way that has been done already for FX spot.
If your firm trades FX options and you would be interested in engaging with Cuemacro to extend tcapy to FX options (or indeed FX forwards), drop me a message. Maybe, when it comes to developing TCA, there is a subjective element after all, even if the output is objective.. just as there is with assessing what music you like! One last question, what’s your favourite Beatles track?