Stationary Extrapolated Levels Oscillator


The oscillator version of the stationary extrapolated levels indicator. The methodology behind the extrapolated levels where to minimize the risk of making a decision based only on a forecast, therefore the indicator plotted levels in order to determine possible reversal points, signals where generated when the detrended series crossed over/under those levels.

The Indicator

First we detrend the price, this is because forecasting the trend is often harder than a series without trend (stationarity > non-stationarity), then we forecast the detrended price with a linear extrapolation over a period of length and apply a max/min filter twice to the forecast, the max/min filters are just the highest and lowest function in pine. So the max/min filter have lag length/2, by applying it two times we have a lag of length which is the period of the forecast. Because we use highest and lowest we can apply min-max normalization in the form of :

x' = (x - min(x, min'))/(max(x,max') - min(x, min'))

where x is the detrended price, max' the highest of the forecast of x and min' the lowest of the forecast of x. This result in a scaled oscillator in a range of (1,0),

When the indicator is equal to 1 or 0 there are high chances of reversals, more in depth this mean that the detrended price have crossed the highest/lowest of the forecast, when the indicator is equal to 0 or 1 for a long time this mean that the forecast was quite inaccurate, you can minimize risk by focusing on the cross between the detrended price and the 0.8/0.2 levels.


I've shown an oscillator version of my previous "Stationary extrapolated levels" indicator, the method involving taking the highest and lowest of the forecast is a great way to minimize the risk involved by time-series forecasting driven decisions. So i hope you find an use to it.

Thanks for reading !
Versionshinweise: - v4
- additional changes
Von Favorisierten Skripten entfernen Zu Favorisierten Skripten hinzufügen
« Je suis las des cruautés de mes semblables, qui ne sont pas mes pareils.

« Je prendrai l’essor et je m’envolerai vers la mer.

« Je connaîtrai le goût des brises du large. J’entendrai les grands cris de la tempête.


is always -1 so it should be
ext = (y - 1 * (y - y)) / 2
Hadus Hadus
@Hadus, "((x-x)/(x-x))"
"(y - 1 * (y - y))/2"
Hadus Hadus
@Hadus, I can't comment it ffs :)
line 7 could be simplified so between the + and the * there is -1
@Hadus, New version posted, next time you want to post code use the built in tag.
Awesome job Alex! This is extremely helpful in finding tops and bottoms along with trading retracements.
+1 Antworten
alexgrover Mackavelli
@Mackavelli, Thanks a lot for the support :) I'll try to make similar things in the future.
Great thank you. Nice that you're still on board.
+3 Antworten
@xcromo, thanks for the support
+1 Antworten
Thank you sir.
+2 Antworten
alexgrover tiamo3733
@tiamo3733, you are welcome
+1 Antworten
Startseite Aktien-Screener Forex-Screener Krypto-Screener Wirtschaftskalender So funktioniert es! Chartmerkmale Preise Einen Freund empfehlen Hausregeln Hilfe Center Webseite & Brokerlösungen Widgets Charting Lösungen Lightweight Charting Library Blog & News Twitter
Profil Profileinstellungen Konto und Abrechnung Einen Freund empfehlen Meine Support Tickets Hilfe Center Veröffentlichte Ideen Followers Ich folge Private Nachrichten Chat Abmelden