Adaptive, Zero lag Schaff Trend Cycle [Loxx]

TASC's March 2008 edition Traders' Tips includes an article by John ​Ehlers titled "Measuring Cycle Periods," and describes the use of bandpass filters to estimate the length, in bars, of the currently dominant price cycle.

What are Dominant Cycles and Why should we use them?

Even the most casual chart reader will be able to spot times when the market is cycling and other times when longer-term trends are in play. Cycling markets are ideal for swing trading however attempting to “trade the swing” in a trending market can be a recipe for disaster. Similarly, applying trend trading techniques during a cycling market can equally wreak havoc in your account. Cycle or trend modes can readily be identified in hindsight. But it would be useful to have an objective scientific approach to guide you as to the current market mode.

There are a number of tools already available to differentiate between cycle and trend modes. For example, measuring the trend slope over the cycle period to the amplitude of the cyclic swing is one possibility.

We begin by thinking of cycle mode in terms of frequency or its inverse, periodicity. Since the markets are fractal ; daily, weekly, and intraday charts are pretty much indistinguishable when time scales are removed. Thus it is useful to think of the cycle period in terms of its bar count. For example, a 20 bar cycle using daily data corresponds to a cycle period of approximately one month.

When viewed as a waveform, slow-varying price trends constitute the waveform's low frequency components and day-to-day fluctuations (noise) constitute the high frequency components. The objective in cycle mode is to filter out the unwanted components--both low frequency trends and the high frequency noise--and retain only the range of frequencies over the desired swing period. A filter for doing this is called a bandpass filter and the range of frequencies passed is the filter's bandwidth.

Indicator Features
-Zero lag or Regular Schaff Trend Cycle calculation
- Fixed or Band-pass Dominant Cycle for Schaff Trend Cycle MA period inputs
-10 different moving average options for Zero lag calculations
-Separate Band-pass Dominant Cycle calculations for both Schaff Trend Cycle and MA calculations
- Slow-to-Fast Band-pass Dominant Cycle input to tweak the ratio of Schaff Trend Cycle MA input periods as they relate to each other
Release Notes: Updated MACD calculation to include custom smoothing
Release Notes: Changed code to match Schaff Trend Cycle indicator for MT4, this is now an exact clone but with Zero lang and Adaptive Cycle measurements
Release Notes: Updated boundaries

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?