# StatArb : Fourier transform to find the perfect factor?

We have a basic mean reverting strategy. Given a bench of assets, we are looking for the best linear combination of them such as the resulting normalized time series would be noisy at high frequencies (in order to have opportunities), but with very few directional (or low frequency) because we run with a long-timed EMA that acts as a stop loss (if that EMA goes too far away from the current price, we reduce the position even at a loss, to avoid further loss).

We implemented a script that outputs all the possible combinations from a bench of assets. For example : BTC, ETH, SOL, ADA :

BTC - ETH
BTC - SOL
ETH - SOL
BTC - ETH - SOL
BTC - ETH - SOL - ADA


Then we run a Tensorflow adam algorithm on each factor to have the weights that minimize : (for example with ETH - SOL - ADA) :

find A and B minimizing 1 ETH - A * SOL - B * ADA


Basically, it's just like an OLS. We couldn't tell the optimizer to minimize

A * ETH + B * SOL + C * ADA


Because it would just output A = 0, B = 0 and C = 0. I couldn't really get rid of this problem so I stick one asset multiplier to 1 and make the others hedging perfectly with it by running this OLS

But anyway, now that we have all these linear combinations of assets, the goal is to take the one that have the higher amplitude in high frequency, and the lowest possible directional, lowest possible low frequency.

My question is : Do you think using Fourier transform could be an answer to that problem ? Why is it so sparsely documented in statistical arbitrage papers while it looks like the perfect mathematical tool for statistical arbitrage? I'm basically quite new to statistical arbitrage so I'm looking for the mathematical tools that are usually used in the industry.

• Hi: I'm not sure if youre stock symbols represent prices or returns It seems like you might want the johansen cointegration framework. That approach finds the loadings such that the 3 series are cointegrated. The problem with the approach ( when applied in practice ) is that the loadings can tend to be unstable. If you google for "johansen's cointegration framework", I'm sure a lot of things would result. Note that I'm totally clear that it's appropriate in your case because I couldn't follow what you were doing in terms of high and low frequency but it's worth taking a look at. Aug 3, 2022 at 17:54