TASC 2022.07 Pairs Rotation With Ehlers Loops


TASC's July 2022 edition of Traders' Tips includes an article by John Ehlers titled "Pairs Rotation With ​Ehlers Loops". This is the code that implements the Ehlers Loops applied to pairs rotation trading.


John Ehlers developed Ehlers loops as a tool to visualize the performance of one data stream versus another. Initially, he used this tool to chart price versus volume . However, Ehlers loops proved to be suitable for determining the timing of the pairs rotation strategy. This strategy works by having a long position in only one of two securities, depending on which one is considered stronger at a given time.

When the prices of two securities (filtered and scaled with a standard deviation for consistent presentation) are plotted against each other, the curvature and direction of rotation on the chart can help guide decisions on long positions. For example, when plotting a stock versus a referenced symbol, a vertical upward movement while rotating clockwise is a sign of going long the stock. Similarly, a horizontal movement to the right while rotating counterclockwise is the sign to go long the reference. A higher probability of a reversal is expected when the price moves more than one or two standard deviations.


The script uses the following steps to calculate the Ehlers Loops:
  • The price data of both securities in the pair are individually filtered using identical high-pass and SuperSmoother filters. This results in two band-limited data streams, having a nominally zero mean. The input parameters Low-Pass Period and High-Pass Period control the filter bandwidth and thus can modify the shape of the Ehlers Loops.
  • Subsequently, the filtered data streams are scaled in terms of standard deviation by dividing each of them by their root-mean-square (​RMS) values. These data streams are plotted as zero-mean oscillators.
  • Finally, the scaled data streams are displayed one against another for the selected time interval (defined by the input parameter Loop Segments). In the resulting scatterplot, the thicker line corresponds to the later data points. The fluctuations of the filtered price data of the chart symbol are plotted along the y-axis, and the price changes of the referenced symbol are shown along the x-axis.

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?