Cerca negli script per "Exponential"
Exponential Moving AveragesCreated by using the Simple Moving Average indicator created by stocksinboxx
Plots four Exponential Moving Averages on a chart. (9, 20, 50, 200)
Exponentially Weighted Moving Average Oscillator [BackQuant]Exponentially Weighted Moving Average (EWMA)
The Exponentially Weighted Moving Average (EWMA) is a quantitative or statistical measure used to model or describe a time series. The EWMA is widely used in finance, the main applications being technical analysis and volatility modeling.
The moving average is designed as such that older observations are given lower weights. The weights fall exponentially as the data point gets older – hence the name exponentially weighted.
Applications of the EWMA
The EWMA is widely used in technical analysis. It may not be used directly, but it is used in conjunction with other indicators to generate trading signals. A well-known example is the Negative Volume Index (NVI), which is used in conjunction with its EWMA.
Why is it different from the In-Built TradingView EWMA
Adaptive Algorithms: If your strategy requires the alpha parameter to change adaptively based on certain conditions (for example, based on market volatility), a for loop can be used to adjust the weights dynamically within the loop as opposed to the fixed decay rate in the standard EWMA.
Customization: A for loop allows for more complex and nuanced calculations that may not be directly supported by built-in functions. For example, you might want to adjust the weights in a non-standard way that the typical EWMA calculation doesn't allow for.
Use of the Oscillator
This mainly comes from 3 main premises, this is something I like to do personally since it is easier to work with them in the context of my system. E.g. Using them to spot clear trends without noise on longer timeframes.
Clarity: Plotting the EWMA as an oscillator provides a clear visual representation of the momentum or trend strength. It allows traders to see overbought or oversold conditions relative to a normalized range.
Comparison: An oscillator can make it easier to compare different securities or timeframes on a similar scale, especially when normalized. This is because the oscillator values are typically bounded within a range (like -1 to 1 or 0 to 100), whereas the actual price series can vary significantly.
Focus on Change: When plotted as an oscillator, the focus is on the rate of change or the relative movement of the EWMA, not on the absolute price levels. This can help traders spot divergences or convergences that may not be as apparent when the EWMA is plotted directly on the price chart. This is also one reason there is a conditional plotting on the chart.
Trend Strength: When normalized, the distance of the oscillator from its midpoint can be interpreted as the strength of the trend, providing a quantitative measure that can be used to make systematic trading decisions.
Here are the backtests on the 1D Timeframe for
BITSTAMP:BTCUSD
BITSTAMP:ETHUSD
COINBASE:SOLUSD
When using this script the user is able to define a source and period, which by extension calculates the alpha. An option to colour the bars accord to trend.
This makes it super easy to use in a system.
I recommend using this as above the midline (0) for a positive trend and below the midline for negative trend.
Hence why I put a label on the last bar to ensure it is easier for traders to read.
Lastly, The decreasing colour relative to RoC, this also helps traders to understand the strength of the indicator and gain insight into when to potentially reduce position size.
This indicator is best used in the medium timeframe.
Exponential Deviation Bands Width [ChuckBanger]This indicator is a compliment to Exponential Deviation Bands . It is the difference between the upper and the lower bands divided by the middle band. It is an easy way to visualize consolidation before price movements or periods of higher volatility.
How it works
During a period of high volatility, the distance between the two bands will widen and Exponential Deviation Bands width will increase. And the opposite occurs during a period of low volatility, the distance between the two bands will contract and Exponential Deviation Bands width will decrease. Meaning there is a tendency for bands to alternate between expansion and contraction.
When the bands are relatively far apart, that is often is a sign that the current trend is ending. When the distance between the two bands is relatively narrow that often is a sign that the market is about to initiate a bigger move in either direction.
Exponential Deviation Bands [ChuckBanger]This is Exponential Deviation Bands. It is a price band indicator based on exponential deviation rather than the more traditional standard deviation, as you find in the well-known Bollinger Bands calculation. As compared to standard deviation bands, exponential deviation bands apply more weight to recent data and generate fewer breakouts. There fore it is a much better tool to identifying trends.
One strategy on the daily can be
Buy next bar if closing price crosses below the lower bands
Sell if price is equal to the current value of the upper bands
Exponential MA Channel, Daily Timeframe (Crypto)Moving averages are some of the most common tools for traders. Some of the most widely used ones are simple moving averages (e.g. 20SMA, 50 SMA, 100 SMA, 200SMA,...). There are endless combinations of moving averages that can be used. I prefer to use exponential moving averages because they react more quickly to price data (essentially they filter back through the data over a discrete number of timesteps, with more recent history receiving the highest weighting in the final calculation).
This script uses a combination of the 21EMA, 53 EMA, and 100EMA. The idea of this script is to provide insight into when an asset might be close to a local top/bottom by monitoring price within the middle channel (yellow, blue, and orange lines), as well as identifying longer timeframe opportunities to buy/sell by examining the upper (green) and lower (red) bands. Disclaimer: this is not a guarantee that if price enters a region, that it will be a top or bottom, it is simply an indicator to get an idea based on price history.
As far as I know, this particular combination of exponential moving averages has not yet been published. I do not have an infinite amount of time to check through the entire library of published scripts. If someone else has already done this, I was unaware. Numerical computations were performed on ETHBTC price data in order to find the coefficients used in this script. Essentially, each EMA has a multiplier of either 1, a fraction of 1, or a number larger than 1 (these are the numbers in the script being multiplied by 'out1', 'out2', 'out3'; feel free to change these and see how this changes the indicator). I have found it to be useful for myself, and hope other people can tinker with this idea. My only wish is to allow other people to use this starting point to explore for themselves. I hope that I am allowed to publish this script without it being taken down so that others can freely use it.
Recommendations: although this was fit specifically for ETHBTC, it appears useful for many crypto pairs, specifically alt-BTC pairs and crypto-USD pairs. For example, I have found it useful for BTCUSD, ETHUSD, LINKUSD, LINKBTC, ETHBTC, ADABTC, etc. Only use on the DAILY timeframe.
Exponential Grid [Phi, Pi, Euler]If you disagree with one of the EMH principles that price is too random, then by definition you must agree that historic price has deterministic function to a scenario ahead.
I personally believe that constants like phi, pi and e can mimic exponential growth of the price.
In this script, first grid is based on the Lowest price multiplied with self fraction of the constant.
For example:
If you are familiar with fib ratio 1.272, then you must know that it is 1.618 to the power of 0.5.
With default settings of exponent step 0.25
First grid = Lowest price x phi^0.25
Second grid = Lowest price x phi^0.25x2
Third grid = Lowest price x phi^0.25x3 and so on
The script will automatically find the lowest price and update the grid values.
Or you can set up your custom Lowest price manually if you feel like the All Time Low level loses its relevance value after long period.
There are 64 grids including Lowest price level. And it wasn't by a chance. Pine Script has a limitation of max 64 plots. Number of grids shown in the chart depends on the highest price. Once price breaks above ATH a couple of next grids will be plotted automatically. In most cases if everything is plotted, the chart appears squeezed and you'll need to zoom in to see it. Therefore, I adjusted it relatively to the scale of the chart for the comfort.
In some cases 64 plots aren't enough to cover the whole chart. For example, let's take a look at NVIDIA chart:
Since the price has started with 0.0333, it is way too small to cover all with default settings.
We are left with 2 choices:
Either Enable "Round"
OR increase Exponent Step (from 0.25 to 0.5 in the particular example below)
If you set constant to pi or e which is a bigger number than phi, expect the gaps to be bigger. To reduce it to a more gradual way of expansion you can decrease Exponent Step.
Exponential Regression From ArraysCalculates an exponential regression from arrays. Due to line limits, for sets greater than the limit, only every nth value is plotted in order to cover the entire set.
Exponential Bollinger Bands [Updated Feb 2018]The same as my previous Exponential Bollinger Bands script, but now you can set a desired offset for the indicator. I have published this as a new script that way those who prefer the old script can continue to use it without seeing any changes.
2/20 Exponential Moving Average This indicator plots 2/20 exponential moving average. For the Mov
Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
Moving Average Exponential (Daily Frozen EMA)This script plots an Exponential Moving Average (EMA) based on the daily timeframe, but with a unique twist:
✅ The EMA value is frozen for the entire current daily session, only updating when a new daily candle begins.
🔍 How it works:
The EMA is calculated using the 1-day timeframe, regardless of the chart's current timeframe.
This EMA value remains fixed throughout the day — it doesn't fluctuate intrabar.
It updates only once the daily candle has closed, providing a stable and reliable reference point during the trading day.
The default is the 5 day EMA but can be changed to any EMA timeframe you desire such as 9, 21, 50, 100. 200, etc.
✨ Additional Features:
✅ Optional smoothing with various moving average types (SMA, EMA, WMA, SMMA, VWMA).
✅ Optional Bollinger Bands on top of the smoothed EMA.
✅ Adjustable settings for EMA length, smoothing type, Bollinger Band deviation, and display options.
🛠️ Use Cases:
Ideal for traders who want a non-reactive EMA during intraday trading.
Helps reduce signal noise by anchoring EMA to higher timeframe structure.
Useful for strategy development where EMA should represent confirmed daily bias only.
Hope this helps, happy trading!
3 Moving Average ExponentialSince I noticed there was no Script with actually 3 EMA together (all the ones I found said it was Exponential, but actually was Simple), i created this one.
The lengths, 17 72 305, are based on the phi cube theory, introduced by Bo Williams. The slow length (305) indicate a likely strong support/resistance and the region between the fast and medium lengths (17, 72) indicate where the price tends to return after a boost or little diversion from the price average.
6 Simple Blue & 5 Exponential Yellow Moving Averages6 simple and 5 exponential Moving Averages in one indicator.
I made this because its not always easy to tell what average the price might be bouncing off from when you only have a couple at a time.
For some reason, the defaults aren't working.
To fix this, just open the configuration for the indicator after the first time that you load it.
Then check/uncheck the box and set the time period.
If anyone knows how I can fix this in the code, please let me know.
Blue indicators are simple and the Yellow are exponential.
Thinner more transparent lines are shorter term averages and Thicker lines are longer term averages.
I modeled it after the source of several other scripts which had less averages
Exponentially Deviating Moving Average (MZ EDMA)Exponentially Deviating Moving Average (MZ EDMA) is derived from Exponential Moving Average to predict better exit in top reversal case.
EDMA Philosophy
EDMA is calculated in following steps:
In first step, Exponentially expanding moving line is calculated with same code as of EMA but with different smoothness (1 instead of 2).
In 2nd step, Exponentially contracting moving line is calculated using 1st calculated line as source input and also using same code as of EMA but with different smoothness (1 instead of 2).
In 3rd step, Hull Moving Average with 3/2 of EDMA length is calculated using final line as source input. This final HMA will be equal to Exponentially Deviating Moving Average.
EDMA Advantages
EDMA's main advantage is that in case of top price reversal it deviates from conventional EMA of 2*Length. This benefits in using EDMA for EMA cross with quick signals avoiding unnecessary crossovers. EDMA's deviation in case of top reversal can be seen as below:
EDMA presents better smoothened curve which acts as better Support and resistance. EDMA coparison with conventional EMA of 2*length of EDMA is as follows.
Additional Features
EMA Band: EMA band is shown on chart to better visualize EMA cross with EDMA.
Dynamic Coloring: Chikou Filter library is used for derivation of dynamic coloring of EDMA and its band.
Alerts: Alerts are provided of all trade signals. Weak buy/sell would trigger if EMA of 2*EDMA_length crosses EDMA. Strong buy/sell would trigger if EMA of same length as of EDMA crosses EDMA.
Trade Confirmation with Chikou Filter: Trend filteration from Chikou filter library is used as an option to enhance trades signals accuracy.
Defaults
Currently default EDMA and EMA1 length is set to 20 period which I've found better for higher timeframes but this can be adjusted according to user's timeframe. I would soon add Multi Timeframe option in script too. Chikou filter's period is set to 25.
Hybrid Triple Exponential Smoothing🙏🏻 TV, I present you HTES aka Hybrid Triple Exponential Smoothing, designed by Holt & Winters in the US, assembled by me in Saint P. I apply exponential smoothing individually to the data itself, then to residuals from the fitted values, and lastly to one-point forecast (OPF) errors, hence 'hybrid'. At the same time, the method is a closed-form solution and purely online, no need to make any recalculations & optimize anything, so the method is O(1).
^^ historical OPFs and one-point forecasting interval plotted instead of fitted values and prediction interval
Before the How-to, first let me tell you some non-obvious things about Triple Exponential smoothing (and about Exponential Smoothing in general) that not many catch. Expo smoothing seems very straightforward and obvious, but if you look deeper...
1) The whole point of exponential smoothing is its incremental/online nature, and its O(1) algorithm complexity, making it dope for high-frequency streaming data that is also univariate and has no weights. Consequently:
- Any hybrid models that involve expo smoothing and any type of ML models like gradient boosting applied to residuals rarely make much sense business-wise: if you have resources to boost the residuals, you prolly have resources to use something instead of expo smoothing;
- It also concerns the fashion of using optimizers to pick smoothing parameters; honestly, if you use this approach, you have to retrain on each datapoint, which is crazy in a streaming context. If you're not in a streaming context, why expo smoothing? What makes more sense is either picking smoothing parameters once, guided by exogenous info, or using dynamic ones calculated in a minimalistic and elegant way (more on that in further drops).
2) No matter how 'right' you choose the smoothing parameters, all the resulting components (level, trend, seasonal) are not pure; each of them contains a bit of info from the other components, this is just how non-sequential expo smoothing works. You gotta know this if you wanna use expo smoothing to decompose your time series into separate components. The only pure component there, lol, is the residuals;
3) Given what I've just said, treating the level (that does contain trend and seasonal components partially) as the resulting fit is a mistake. The resulting fit is level (l) + trend (b) + seasonal (s). And from this fit, you calculate residuals;
4) The residuals component is not some kind of bad thing; it is simply the component that contains info you consciously decide not to include in your model for whatever reason;
5) Forecasting Errors and Residuals from fitted values are 2 different things. The former are deltas between the forecasts you've made and actual values you've observed, the latter are simply differences between actual datapoints and in-sample fitted values;
6) Residuals are used for in-sample prediction intervals, errors for out-of-sample forecasting intervals;
7) Choosing between single, double, or triple expo smoothing should not be based exclusively on the nature of your data, but on what you need to do as well. For example:
- If you have trending seasonal data and you wanna do forecasting exclusively within the expo smoothing framework, then yes, you need Triple Exponential Smoothing;
- If you wanna use prediction intervals for generating trend-trading signals and you disregard seasonality, then you need single (simple) expo smoothing, even on trending data. Otherwise, the trend component will be included in your model's fitted values → prediction intervals.
8) Kind of not non-obvious, but when you put one smoothing parameter to zero, you basically disregard this component. E.g., in triple expo smoothing, when you put gamma and beta to zero, you basically end up with single exponential smoothing.
^^ data smoothing, beta and gamma zeroed out, forecasting steps = 0
About the implementation
* I use a simple power transform that results in a log transform with lambda = 0 instead of the mainstream-used transformers (if you put lambda on 2 in Box-Cox, you won't get a power of 2 transform)
* Separate set of smoothing parameters for data, residuals, and errors smoothing
* Separate band multipliers for residuals and errors
* Both typical error and typical residuals get multiplied by math.sqrt(math.pi / 2) in order to approach standard deviation so you can ~use Z values and get more or less corresponding probabilities
* In script settings → style, you can switch on/off plotting of many things that get calculated internally:
- You can visualize separate components (just remember they are not pure);
- You can switch off fit and switch on OPF plotting;
- You can plot residuals and their exponentially smoothed typical value to pick the smoothing parameters for both data and residuals;
- Or you might plot errors and play with data smoothing parameters to minimize them (consult SAE aka Sum of Absolute Errors plot);
^^ nuff said
More ideas on how to use the thing
1) Use Double Exponential Smoothing (data gamma = 0) to detrend your time series for further processing (Fourier likes at least weakly stationary data);
2) Put single expo smoothing on your strategy/subaccount equity chart (data alpha = data beta = 0), set prediction interval deviation multiplier to 1, run your strat live on simulator, start executing on real market when equity on simulator hits upper deviation (prediction interval), stop trading if equity hits lower deviation on simulator. Basically, let the strat always run on simulator, but send real orders to a real market when the strat is successful on your simulator;
3) Set up the model to minimize one-point forecasting errors, put error forecasting steps to 1, now you're doing nowcasting;
4) Forecast noisy trending sine waves for fun.
^^ nuff said 2
All Good TV ∞
Multi Poles Zero-Lag Exponential Moving AverageIntroduction
Based on the exponential averaging method with lag reduction, this filter allow for smoother results thanks to a multi-poles approach. Translated and modified from the Non-Linear Kalman Filter from Mladen Rakic 01/07/19 www.mql5.com
The Indicator
length control the amount of smoothing, the poles can be from 1 to 3, higher values create smoother results.
Difference With Classic Exponential Smoothing
A classic 1 depth recursion (Single smoothing) exponential moving average is defined as y = αx + (1 - α)y which can be derived into y = y + α(x - y )
2 depth recursion (Double smoothing) exponential moving average sum y with b in order to reduce the error with x , this method is calculated as follow :
y = αx + (1 - α)(y + b)
b = β(y - y ) + (1-β)b
The initial value for y is x while its 0 for b with α generally equal to 2/(length + 1)
The filter use a different approach, from the estimation of α/β/γ to the filter construction.The formula is similar to the one used in the double exponential smoothing method with a difference in y and b
y = αx + (1 - α)y
d = x - y
b = (1-β)b + d
output = y + b
instead of updating y with b the two components are directly added in a separated variable. Poles help the transition band of the frequency response to get closer to the cutoff point, the cutoff of an exponential moving average is defined as :
Cf = F/2π acos(1 - α*α/(2(1 - α)))
Also in order to minimize the overshoot of the filter a correction has been added to the output now being output = y + 1/poles * b
While this information is far being helpful to you it simply say that poles help you filter a great amount of noise thus removing irregularities of the filter.
Conclusion
The filter is interesting and while being similar to multi-depth recursion smoothing allow for more varied results thanks to its 3 poles.
Feel free to send suggestions :)
Thanks for reading
Relative Strength Volume Adjusted Exponential Moving Avg [CC]The Relative Strength Volume Adjusted Exponential Moving Average was created by Vitali Apirine (Stocks and Commodities Feb 2022 pgs 14-18) and this is very similar of course to the last Relative Strength Exponential Moving Average . It works under the same concept with using overbought and oversold methods to adjust the moving average and with this particular version you will notice that sudden drops or increases won't follow super closely so this can be useful along with the other as a good complementary indicator to use with each other to determine the short and medium term trend and to give good entry and exit points. I have strong buy and sell signals in addition to normal ones so darker colors are strong and lighter colors are normal. Buy when the indicator line turns green and sell when it turns red.
Let me know if there are any other indicators or scripts you would like to see me publish!
Dual Exponential Moving AveragesJust like the regular "Moving Average Exponential" indicator except this allows you to show 2 with custom time intervals, saving non-subscribers to Trading View an indicator slot. Enjoy.
RSI Exponential Smoothing (Expo)█ Background information
The Relative Strength Index (RSI) and the Exponential Moving Average (EMA) are two popular indicators. Traders use these indicators to understand market trends and predict future price changes. However, traders often wonder which indicator is better: RSI or EMA.
What if these indicators give similar results? To find out, we wanted to study the relationship between RSI and EMA. We focused on a hypothesis: when the RSI goes above 50, it might be similar to the price crossing above a certain length of EMA. Similarly, when the RSI goes below 50, it might be similar to the price crossing below a certain length of EMA.
Our goal was simple: to figure out if there is any connection between RSI and EMA.
Conclusion: Yes, it seems that there is a correlation between RSI and EMA, and this indicator clearly displays that relationship. Read more about the study here:
█ Overview of the indicator
The RSI Exponential Smoothing indicator displays RSI levels with clear overbought and oversold zones, shown as easy-to-understand moving averages, and the RSI 50 line as an EMA. Another excellent feature is the added FIB levels. To activate, open the settings and click on "FIB Bands." These levels act as short-term support and resistance levels which can be used for scalping.
█ Benefits of using this indicator instead of regular RSI
The findings about the Relative Strength Index (RSI) and the Exponential Moving Average (EMA) highlight that both indicators are equally accurate (when it comes to crossings), meaning traders can choose either one without compromising accuracy. This empowers traders to pick the indicator that suits their personal preferences and trading style.
█ How it works
Crossings over/under the value of 50
The EMA line in the indicator acts as the corresponding 50 line in the RSI. When the RSI crosses the value 50 equals when Close crosses the EMA line.
Bouncess from the value 50
In this example, we can see that the EMA line on the chart acts as support/resistance equals when RSI rejects the 50 level.
Overbought and Oversold
The indicator comes with overbought and oversold bands equal when RSI becomes overbought or oversold.
█ How to use
This visual representation helps traders to apply RSI strategies directly on the price chart, potentially making RSI trading easier for traders.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Forward-Backward Exponential Oscillator [LuxAlgo]The Forward-Backward Exponential Oscillator is a normalized oscillator able to estimate directional shifts by making use of a unique "Forward-Backward Filtering" calculation method for Exponential Moving Averages (EMAs).
This unique method provides a smooth normalized representation of the price with reduced lag.
🔶 USAGE
The oscillator consists of 2 series of values derived from normalizing the sum of each EMA's change across the selected user lookback window (length), one less reactive computed forward (in grey), and the other re-calculated backward for each bar (in blue).
Given this "Forward-Backwards" calculation method, we are able to produce a more reactive oscillator compared to the same operation done on a simple double-smoothed EMA.
The interaction between these 2 values (Forward Value and Backward Value) can highlight shifts in market momentum over time.
When the Forward Value is above the Backward Value, the price is seen moving up, and likewise, when the Forward EMA is below, the Backward EMA price is seen moving down.
The indicator specifically displays the difference between values through a histogram located at the 50 mark on the oscillator.
🔹 Projection
We project the approximated future values of the forward value in front of the current line. This helps show the data that is being used for the creation of the Forward Value.
🔹 Length & Smoothing
The Smoothing Input controls the length of the EMAs which are analyzed.
The Length Input controls the lookback for the sum of changes from the EMAs.
Displayed below is a comparison of varying input sizes and their results.
As seen above:
A larger length input will result in slower, gradual movement by the oscillator since the summed values are from a larger lookback.
A higher smoothing setting will result in smoother EMAs, leading to a smoother oscillator output that is less contaminated by noisy variations.
Note: The length of the projection is tied to the "length" input, to get a longer projection, a larger length is required.
🔶 DETAILS
Forward-backward filtering is a method applied to LTI (linear time-invariant) filters to provide a filter response with zero-phase shift, this has the visible effect of shifting a regular causal filter response to the right, making it appear has have effectively 0 lag.
The name of this operation indicates that the filter is first calculated forward over a series of values (like regular moving averages), then calculated backward, using the previous output as input for the filter, effectively applying the filter twice.
While this operation effectively allows us to obtain a zero-lag response when applied to an EMA, it is subject to repainting, as this indicator only returns the normalized sum of changes of the forward-backward EMA, which does not introduce any repainting behaviors in the final output of the oscillator.
🔶 SETTINGS
Length: Change the calculation lookback length for the oscillator.
Smoothing: Alter the smoothness of the back-end EMA calculations.
Source: Change the source input used for the indicator.
Meister Shredder - Exponential Moving Averages x4 ForecastShows the 21, 50, 100, 200 Exponential Moving Average + 6 bar forecast