Trend Angle BFThanks to Duyck for the idea for this code, and for the code itself. Also thanks to Everget, KyJ and kiasaki for code used in the calculations.
The indicator measures Moving average angles and generates a long or short signal based on the slope.
The chart used to optimise the current settings is XBT/USD on Bitmex 8hr.
You can change the MA length and stop loss, take profit params in the settings.
Green = long, red = short, white = no trade!
Jurik
Jurik RSX+Hello friends,
Meet Jurik RSX+, a powerful standalone oscillator that also integrates perfectly with Profitable Jurik RSX optimizer.
It enhances Jurik's original RSX by introducing a Values Distribution Profile , Point of Control (POC) , and Value Area visualization — transforming a traditional oscillator into a statistically guided market sentiment tool.
These additions help identify where true equilibrium, overbought, and oversold zones occur based on the actual behavior of RSX values rather than fixed numeric levels.
🛠 How It Works
Jurik RSX+ applies advanced smoothing and statistical profiling to analyze how RSX values are distributed over time.
The Values Distribution Profile builds a frequency map of RSX activity, allowing traders to see:
The Point of Control (POC) — the statistically dominant RSX level.
The Value Area — the range where RSX values cluster most frequently.
By studying this distribution, the indicator reveals true overbought, oversold, and midline zones , adapting dynamically to different instruments and market conditions.
On top of that, traders can construct fully customized Buy/Sell signals using crossover conditions between RSX, Signal Line, Midline, or POC — creating a flexible signal generation framework.
🔥 Key Features
Jurik RSX foundation with enhanced smoothing and adaptive distribution modeling
Values Distribution Profile identifying statistically balanced and extreme zones
Point of Control (POC) and Value Area visualization for precision analysis
Customizable Buy/Sell logic — up to 4 Buy and 4 Sell slots using flexible crossover conditions
Strategy Mode preventing overlapping Buy/Sell signals
Multiple visualization styles — Labels , Dots , Stripes , or combined modes
Integrated alerts for RSX, POC, and OB/OS conditions
If you'd like access or have any questions, feel free to reach out to me directly via DM.
👋 Good luck and happy trading!
Script de pago
JMA RibbonHere we are using a ribbon of 32 different Jurik Moving Averages as an experiment in trend analysis.
Profitable Jurik RSXIntroduction
As you know the Jurik RSX is a "noise free" smoothed version of RSI (Relative Strength Index), with no added lag.
It was originally developed by Mark Jurik and is used the same way as RSI. To learn more about this indicator see www.jurikres.com
The most basic and common strategy is to use the crossovers between Jurik RSX and its overbought/oversold levels as trade signals:
when RSX crosses above 30, go Long
when RSX crosses below 70, go Short
exit when a crossover occurs in the opposite direction
What is this tool?
This tool is a performance scanner that uses a decision tree-based algorithm under the hood to find the most profitable settings for Jurik RSX. It analyzes the range of periods between 2 to 100 and backtests the Jurik RSX for each period (using the strategy mentioned above) across the entire history of an instrument. If the more profitable parameter was found, the indicator will switch its value to the found one immediately.
So, instead of manually selecting parameters just apply it to your chart and relax - the algorithm will do it for you, everywhere you want.
The algorithm can work in two modes: Basic and Early Switch. The Early Switch algorithm makes some assumptions and activates a set of optimizations to find a better setting DURING the trades, not after they were actually closed.
The difference is illustrated on the screenshot below
But two modes can show identical values depending on timeframe
Additionally you can set up a backtest window through indicator's settings (the optimizers which were published before will get this feature soon).
Alerts
It has a special alert that notifies when a more profitable period was detected.
NOTE: It does not change what has already been plotted.
NOTE 2: This is not a strategy, but an algorithmic optimizer.
Jurik PPO PercentileRank Mkt Tops & BottomsI saw that Juriks Moving average and its variation of the following script has been pretty popular on MT4/MT5 FX so I decided to try to recreate it in Tradingview.
The basic logic was taken from:
Inspired by the script by one of the most active pinescripters in the early days.
The Jurik Moving average has been created by one of the most active pinescripters nowadays everget:
Those two did all the heavy lifting I am just putting all together.
Cheers to everyone and I hope you guys are a having better day than I am.
Jurik Zones — SharkCIAHere we have modified a keltner channel calculated using the Jurik Moving Average. This is a cleaner and longer term version of JMA Channels.
Moving Average CrossoverIt was planned as an addition to Moving Average Smoothness Benchmark and Profitable Moving Average Crossover , but can be used standalone.
Supports 62 types of well-known moving averages and allows full-featured customization.
Supported types of averages and filters:
AEMA , Adaptive Exponential MA (by Vitali Apirine)
AHMA , Ahrens MA (by Richard D. Ahrens)
ALMA , Arnaud Legoux MA (by Arnaud Legoux and Dimitris Kouzis-Loukas)
ALF , Adaptive Laguerre Filter (by John F. Ehlers)
AMA , Adaptive MA (by Vitali Apirine)
ARSI , Adaptive RSI
BAMA , Bryant Adaptive MA (by Michael R. Bryant)
BF2 , Butterworth Filter with 2 poles
BF3 , Butterworth Filter with 3 poles
DEMA , Double Exponential MA (by Patrick G. Mulloy)
DWMA , Double Weighted (Linear) MA
EDCF , Ehlers Distance Coefficient Filter (by John F. Ehlers)
EDSMA , Ehlers Deviation-Scaled MA (by John F. Ehlers)
EHMA , Exponential Hull MA
EMA , Exponential MA
EVWMA , Elastic Volume Weighted MA (by Christian P. Fries)
FRAMA , Fractal Adaptive MA (by John F. Ehlers)
GF1 , Gaussian Filter with 1 pole
GF2 , Gaussian Filter with 2 poles
GF3 , Gaussian Filter with 3 poles
GF4 , Gaussian Filter with 4 poles
HFSMA , Hampel Filter on Simple Moving Average
HFEMA , Hampel Filter on Exponential Moving Average
HMA , Hull MA (by Alan Hull)
HWMA , Henderson Weighted MA (by Robert Henderson)
IDWMA , Inverse Distance Weighted MA
IIRF , Infinite Impulse Response Filter (by John F. Ehlers)
JAMA , Jurik Adaptive MA (by Mark Jurik)
JMA , Jurik MA (by Mark Jurik, )
KAMA , Kaufman Adaptive MA (by Perry J. Kaufman)
LF , Laguerre Filter (by John F. Ehlers)
LMA , Leo MA (by ProRealCode' user Leo)
LSMA , Least Squares MA (Moving Linear Regression)
MAMA (by John F. Ehlers)
FAMA , Following Adaptive MA (by John F. Ehlers)
MD , McGinley Dynamic (by John R. McGinley)
MHLMA , Middle-High-Low MA (by Vitali Apirine)
MNMA , McNicholl MA (by Dennis McNicholl)
NSMA , Moving Average 3.0 on SMA (by Manfred G. Dürschner)
NEMA , Moving Average 3.0 on EMA (by Manfred G. Dürschner)
NWMA , Moving Average 3.0 on WMA (by Manfred G. Dürschner)
NVWMA , Moving Average 3.0 on VWMA (by Manfred G. Dürschner)
PEMA , Pentuple Exponential MA (by Bruno Pio)
PWMA , Parabolic Weighted MA
QMA , Quick MA (by John McCormick)
QEMA , Quadruple Exponential MA (by Bruno Pio)
REMA , Regularized Exponential MA (by Chris Satchwell)
RMA , Running MA (by J. Welles Wilder)
RMF , Recursive Median Filter (by John F. Ehlers )
RMTA , Recursive Moving Trend Average (by Dennis Meyers)
SHMMA , Sharp Modified MA (by Joe Sharp)
SMA , Simple MA
SSF2 , Super Smoother Filter with 2 poles (by John F. Ehlers)
SSF3 , Super Smoother Filter with 3 poles (by John F. Ehlers)
SWMA , Sine Weighted MA
TEMA , Triple Exponential MA (by Patrick G. Mulloy)
TMA , Triangular MA (generalized by John F. Ehlers)
T3 , (by Tim Tillson)
VIDYA , Variable Index Dynamic Average (by Tushar S. Chande)
VWMA , Volume Weighted MA (by Buff P. Dormeier)
WMA , Weighted (Linear) MA
ZLEMA , Zero Lag Exponential MA (by John F. Ehlers and Ric Way)
Jurik Adaptive Moving AverageThis is Jurik Research's original moving average and a predecessor of the well-known Jurik Moving Average (JMA). It was developed by Mark Jurik in 1994. The purpose was the same: to create the best noise reduction filter.
The algorithms of JAMA and JMA have big differences. JAMA is less responsive than JMA - sometimes it makes it better than JMA but closely depends on the objective assigned to it.
On the screenshots you can see how they behave together with different period settings.
The red line is JAMA, the purple line is JMA .
Period: 7
BTCUSD, D
AAPL, D
Period: 14
BTCUSD, D
AAPL, D
Period: 50
BTCUSD, D
AAPL, D
Reference: www.jurikres.com
Dickinson Moving Average (DMA)Implementation of the "Dickinson Moving Average" from the r/algotrading post by Nathan Dickinson
Quoted from the author of the Dickinson Moving Average:
"I was experimenting with the “zero lag” code from John Ehlers and the Hull Moving Average and noticed that they seemed to respond in complementary ways when properly set up. With the right starting values, they blend together to make a moving average which responds with one (or maybe even half a bar) of lag. To my eye, it looks to be almost as good as the Jurik Moving Average."
Optional parameter input available to use Exponential Hull Moving Average (EHMA) instead of WMA for the Hull MA is available.
Acknowledgements/Credits:
Nathan Dickinson, Dickinson Moving Average
@RicardoSantos, Function for Hull Moving Average
Exponential Hull Moving Average sourced from:
// Raudys, Aistis & Lenčiauskas, Vaidotas & Malčius, Edmundas. (2013). Moving Averages for Financial Data Smoothing.
// Communications in Computer and Information Science. 403. 34-45. 10.1007/978-3-642-41947-8_4.
@Everget, Jurik Moving Average
General Filter Estimator-An Experiment on Estimating EverythingIntroduction
The last indicators i posted where about estimating the least squares moving average, the task of estimating a filter is a funny one because its always a challenge and it require to be really creative. After the last publication of the 1LC-LSMA , who estimate the lsma with 1 line of code and only 3 functions i felt like i could maybe make something more flexible and less complex with the ability to approximate any filter output. Its possible, but the methods to do so are not something that pinescript can do, we have to use another base for our estimation using coefficients, so i inspired myself from the alpha-beta filter and i started writing the code.
Calculation and The Estimation Coefficients
Simplicity is the key word, its also my signature style, if i want something good it should be simple enough, so my code look like that :
p = length/beta
a = close - nz(b ,close)
b = nz(b ,close) + a/p*gamma
3 line, 2 function, its a good start, we could put everything in one line of code but its easier to see it this way. length control the smoothing amount of the filter, for any filter f(Period) Period should be equal to length and f(Period) = p , it would be inconvenient to have to use a different length period than the one used in the filter we want to estimate (imagine our estimation with length = 50 estimating an ema with period = 100) , this is where the first coefficients beta will be useful, it will allow us to leave length as it is. In general beta will be greater than 1, the greater it will be the less lag the filter will have, this coefficient will be useful to estimate low lagging filters, gamma however is the coefficient who will estimate lagging filters, in general it will range around .
We can get loose easily with those coefficients estimation but i will leave a coefficients table in the code for estimating popular filters, and some comparison below.
Estimating a Simple Moving Average
Of course, the boxcar filter, the running mean, the simple moving average, its an easy filter to use and calculate.
For an SMA use the following coefficients :
beta = 2
gamma = 0.5
Our filter is in red and the moving average in white with both length at 50 (This goes for every comparison we will do)
Its a bit imprecise but its a simple moving average, not the most interesting thing to estimate.
Estimating an Exponential Moving Average
The ema is a great filter because its length times more computing efficient than a simple moving average. For the EMA use the following coefficients :
beta = 3
gamma = 0.4
N.B : The EMA is rougher than the SMA, so it filter less, this is why its faster and closer to the price
Estimating The Hull Moving Average
Its a good filter for technical analysis with tons of use, lets try to estimate it ! For the HMA use the following coefficients :
beta = 4
gamma = 0.85
Looks ok, of course if you find better coefficients i will test them and actualize the coefficient table, i will also put a thank message.
Estimating a LSMA
Of course i was gonna estimate it, but this time this estimation does not have anything a lsma have, no moving average, no standard deviation, no correlation coefficient, lets do it.
For the LSMA use the following coefficients :
beta = 3.5
gamma = 0.9
Its far from being the best estimation, but its more efficient than any other i previously made.
Estimating the Quadratic Least Square Moving Average
I doubted about this one but it can be approximated as well. For the QLSMA use the following coefficients :
beta = 5.25
gamma = 1
Another ok estimate, the estimate filter a bit more than needed but its ok.
Jurik Moving Average
Its far from being a filter that i like and its a bit old. For the comparison i will use the JMA provided by @everget described in this article : c.mql5.com
For the JMA use the following coefficients :
for phase = 0
beta = pow*2 (pow is a parameter in the Jma)
gamma = 0.5
Here length = 50, phase = 0, pow = 5 so beta = 10
Looks pretty good considering the fact that the Jma use an adaptive architecture.
Discussion
I let you the task to judge if the estimation is good or not, my motivation was to estimate such filters using the less amount of calculations as possible, in itself i think that the code is quite elegant like all the codes of IIR filters (IIR Filters = Infinite Impulse Response : Filters using recursion) .
It could be possible to have a better estimate of the coefficients using optimization methods like the gradient descent. This is not feasible in pinescript but i could think about it using python or R.
Coefficients should be dependant of length but this would lead to a massive work, the variation of the estimation using fixed coefficients when using different length periods is just ok if we can allow some errors of precision.
I dont think it should be possible to estimate adaptive filter relying a lot on their adaptive parameter/smoothing constant except by making our coefficients adaptive (gamma could be)
So at the end ? What make a filter truly unique ? From my point of sight the architecture of a filter and the problem he is trying to solve is what make him unique rather than its output result. If you become a signal, hide yourself into noise, then look at the filters trying to find you, what a challenging game, this is why we need filters.
Conclusion
I wanted to give a simple filter estimator relying on two coefficients in order to estimate both lagging and low-lagging filters. I will try to give more precise estimate and update the indicator with new coefficients.
Thanks for reading !
Jurik RSX on JMAHello friends,
Meet Jurik RSX on JMA — a refined version of Jurik's classic RSX that applies advanced pre-smoothing using the best
original JMA clone available on TradingView. By filtering the input price through JMA, it delivers a cleaner, faster, and more efficient representation of market momentum — maintaining exceptional smoothness with almost no lag.
🛠 How It Works
RSX is Jurik's noise-free alternative to the traditional RSI, designed to measure trend direction and efficiency with minimal distortion. However, when the input price is noisy, even RSX can lose precision.
To solve this, the input price is first smoothed with JMA — Jurik's most advanced low-lag filter. As Jurik Research noted:
“A smooth (low noise) trend is more efficient than a noisy trend... RSX would respond better when fed pre-smoothed price data. And there's no better way to pre-smooth than by using JMA.”
This approach allows RSX to reverse with the market almost instantly , reacting sharply to genuine turning points while ignoring random fluctuations — providing traders with a clear, stable view of trend dynamics.
🔥 Key Features
JMA pre-smoothing integrated with Jurik RSX
Near-zero lag response with reduced noise
Optional overbought/oversold breakout highlighting
If you have any questions or would like to explore related Jurik-based tools, feel free to contact me directly via DM.
👋 Good luck and happy trading!
Script de pago
Jurik JMA/DWMA MACDHello friends,
Meet the Jurik JMA/DWMA MACD — an oscillator version of the crossover system originally recommended by Mark Jurik. It combines the Jurik Moving Average (JMA) and the Double Weighted Moving Average (DWMA) to form a smooth yet highly responsive convergence/divergence signal.
🛠 How It Works
Unlike standard EMA-based MACDs, this version uses Jurik's advanced non-lagging smoothing method to eliminate noise without sacrificing responsiveness , resulting in exceptionally clear and timely momentum readings.
I use the best original JMA clone available on TradingView — its behavior closely matches the genuine Jurik algorithm.
As Mark Jurik stated:
“Of all the different combinations of moving average filters to use for a MACD oscillator, we prefer using the JMA–DWMA combination.”
This oscillator measures the distance between JMA and DWMA, revealing when short-term momentum diverges from the longer-term trend. The result is a non-lagging MACD-style signal that highlights shifts in trend strength, early reversals, and exhaustion zones — all with Jurik-level smoothness and precision.
🔥 Key Features
Non-lagging, noise-reduced oscillator response
Peak highlighting
Built-in alerts for bullish and bearish peaks
If you'd like access or have any questions, feel free to reach out to me directly via DM.
👋 Good luck and happy trading!
Script de pago
Jurik JMA/DWMA CrossoverThis is a crossover system that was recommended by Mark Jurik. The system consists of Jurik Moving Average (JMA) and Double Weighted Moving Average (DWMA). In case of Jurik Moving Average I use the best original JMA' clone on TradingView that has the almost identical behaviour as the original one.
As Mr. Jurik noticed:
" JMA is ideal for the fast moving average line because it is quick to respond to reversals, is smooth and can be set to have no overshoot. DWMA (double weighted moving average) is ideal for the slower line as is tends to delay reversing direction until JMA crosses it."
Reference: www.jurikres.com
Profitable Moving Average CrossoverHello friends,
I'm glad to introduce a powerful research and optimization tool that takes the classic moving average crossover concept to a new level. Instead of relying on guesswork or fixed MA types, it lets you objectively discover the most profitable moving average pair for any instrument and timeframe.
🛠 How It Works
Moving average crossovers are among the most popular trading systems. A buy signal occurs when a shorter (faster) moving average crosses above a longer (slower) one, and a sell signal when it crosses below. The system's responsiveness — and the number of generated signals — depend on the chosen MA lengths and types.
This script evaluates 61 moving average types (including Jurik, Kaufman, Ehlers, Apirine, and others) and backtests all possible crossover combinations either across the entire chart history or within a custom backtest window . It then plots continuous profit metric lines for each crossover type and displays the top 5 performers in a results table. Each MA type is color-coded, allowing quick visual identification of which systems have historically delivered the strongest results.
🔥 Key Features
Pine Script V6 — optimized for performance and stability
Tests 61 moving average types , from classic to adaptive designs
Custom Backtest Window — analyze the entire history or a specific date range
Continuous profit curves for every crossover type plotted on chart
Top 5 crossover systems displayed in a compact summary table
Color-coded MA identifiers for fast visual comparison
Supports custom parameters for advanced MAs (JMA, ALMA, McGinley Dynamic, Adaptive Laguerre Filter, etc.)
Works seamlessly across all assets and timeframes
NOTE: Results will vary across different tickers and timeframes. Seeing strong performance in one preview does not imply similar profitability elsewhere — this variability is normal due to differing market structures.
NOTE 2: You can experiment with the tool independently or request a full study, in which case I'll share a spreadsheet of all backtest results with you.
👋 Good luck and happy trading!
Script de pago
Jurik Moving AverageThis is my best attempt to reproduce the original Jurik Moving Average. It differs from Jurik's a little bit, but in most cases it behaves like the original.
Jurik Moving Average is known as a superior noise elimination (causal, nonlinear and adaptive) filter and a world class moving average that tracks and smoothes price charts or any market-related time series with surprising agility.
Settings
Length (default: 7 )
Phase (default: 50 )
Price Source (default: close )
I attached some screenshots to show you how it works with other instruments
USDJPY, D
USDJPY, 60
USDCAD, D
USDCHF, D
EURUSD, D
GBPJPY, D
AUDUSD, D
XAUUSD, D
XAUUSD, 60
AAPL, D
AAPL, 60
MSFT, D
AMZN, D
BTCUSD, D
BTCUSD, 60
ETHUSD, D
Good luck and happy trading!
Jurik RSXAdopted to Pine from www.prorealcode.com .
I haven't yet understood the details of the algorithm but it matches the original Jurik's RSX one to one.
Jurik's RSX is a "noise free" version of RSI, with no added lag. To learn more about this indicator see www.jurikres.com .
Good luck!
Moving Average Smoothness BenchmarkHey there!
This tool will help you to choose a moving average/filter that has the lowest lag throughout the whole history for the specified period.
What does it do?
It calculates the mean absolute errors for each moving average or filter and shows histogram with results. The lower error the lower lag of the moving average.
So, the best average will be at the end of the list of labels on the chart.
Settings
The main setting is a period for all moving averages.
Additionally, it allows to customize some multi-parametric moving average such as JMA, ALMA, McGinley Dynamic, Tillson's T3, REMA, Adaptive Laguerre Filter, Hampel Filter, Recursive Median Filter and Middle-High-Low MA.
NOTE : The results may vary on the different tickers and timeframes. This tool measures the performances on the current ticker and on the current timeframe.
Supported averages/filters (use short titles to match movings on the chart)
SMA, Simple MA
EMA, Exponential MA
WMA, Weighted (Linear) MA
RMA, Running MA (by J. Welles Wilder)
VWMA, Volume Weighted MA (by Buff P. Dormeier)
AHMA, Ahrens MA (by Richard D. Ahrens)
ALMA, Arnaud Legoux MA (by Arnaud Legoux and Dimitris Kouzis-Loukas)
ALF, Adaptive Laguerre Filter (by John F. Ehlers)
ARSI, Adaptive RSI
DEMA, Double Exponential MA (by Patrick G. Mulloy)
EDCF, Ehlers Distance Coefficient Filter (by John F. Ehlers)
EVWMA, Elastic Volume Weighted MA (by Christian P. Fries)
FRAMA, Fractal Adaptive MA (by John F. Ehlers)
HFSMA, Hampel Filter on Simple Moving Average
HFEMA, Hampel Filter on Exponential Moving Average
HMA, Hull MA (by Alan Hull)
HWMA, Henderson Weighted MA (by Robert Henderson)
IIRF, Infinite Impulse Response Filter (by John F. Ehlers)
JMA1, Jurik MA with power of 1 (by Mark Jurik)
JMA2, Jurik MA with power of 2 (by Mark Jurik)
JMA3, Jurik MA with power of 3 (by Mark Jurik)
JMA4, Jurik MA with power of 4 (by Mark Jurik)
LF, Laguerre Filter (by John F. Ehlers)
LMA, Leo MA (by ProRealCode' user Leo)
LSMA, Least Squares MA (Moving Linear Regression)
MD, McGinley Dynamic (by John R. McGinley)
MHLMA, Middle-High-Low MA (by Vitali Apirine)
REMA, Regularized Exponential MA (by Chris Satchwell)
RMF, Recursive Median Filter (by John F. Ehlers)
RMTA, Recursive Moving Trend Average (by Dennis Meyers)
SHMMA, Sharp Modified MA (by Joe Sharp)
SWMA, Sine Weighted MA
TEMA, Triple Exponential MA (by Patrick G. Mulloy)
TMA, Triangular MA
T3, (by Tim Tillson)
VIDYA, Variable Index Dynamic Average (by Tushar S. Chande)
ZLEMA, Zero Lag Exponential MA (by John F. Ehlers and Ric Way)
BF2, Butterworth Filter with 2 poles
BF3, Butterworth Filter with 3 poles
SSF2, Super Smoother Filter with 2 poles (by John F. Ehlers)
SSF3, Super Smoother Filter with 3 poles (by John F. Ehlers)
GF1, Gaussian Filter with 1 pole
GF2, Gaussian Filter with 2 poles
GF3, Gaussian Filter with 3 poles
GF4, Gaussian Filter with 4 poles
Good luck and Merry Christmas!
Jurik Moving AverageThis indicator was originally developed by Mark Jurik.
NOTE: If Mr. Jurik ask me to remove this indicator from public access then I will do it.
JMA Clone 3The clone of Jurik moving average function with a power argument
The power argument allows to closely approximate price movements. The higher the power, the closer the fit. Also helps to find a balance between smoothing and fitting.





















