Keltner Channel With User Selectable Moving AvgKeltner Channel with user options to calculate the moving average basis and envelopes from a variety of different moving averages.
The user selects their choice of moving average, and the envelopes automatically adjust. The user may select a MA that reacts faster to volatility or slower/smoother.
Added additional options to color the envelopes or basis based on the current trend and alternate candle colors for envelope touches. The script has a rainbow gradient by default based on RSI.
Options (generally from slower/smoother to faster/more responsive to volatility):
SMMA,
SMA,
Donchian, (Note: Selecting Donchian will just convert this indicator to a regular Donchian Channel)
Tillson T3,
EMA,
VWMA,
WMA,
EHMA,
ALMA,
LSMA,
HMA,
TEMA
Value Added:
Allows Keltner Channel to be calculated from a variety of moving averages other than EMA/SMA, including ones that are well liked by traders such as Tillson T3, ALMA, Hull MA, and TEMA.
Glossary:
The Hull Moving Average ( HMA ), developed by Alan Hull, is an extremely fast and smooth moving average . In fact, the HMA almost eliminates lag altogether and manages to improve smoothing at the same time.
The Exponential Hull Moving Average is similar to the standard Hull MA, but with superior smoothing. The standard Hull Moving Average is derived from the weighted moving average ( WMA ). As other moving average built from weighted moving averages it has a tendency to exaggerate price movement.
Weighted Moving Average: A Weighted Moving Average ( WMA ) is similar to the simple moving average ( SMA ), except the WMA adds significance to more recent data points.
Arnaud Legoux Moving Average: ALMA removes small price fluctuations and enhances the trend by applying a moving average twice, once from left to right, and once from right to left. At the end of this process the phase shift (price lag) commonly associated with moving averages is significantly reduced. Zero-phase digital filtering reduces noise in the signal. Conventional filtering reduces noise in the signal, but adds a delay.
Least Squares: Based on sum of least squares method to find a straight line that best fits data for the selected period. The end point of the line is plotted and the process is repeated on each succeeding period.
Triple EMA (TEMA) : The triple exponential moving average (TEMA) was designed to smooth price fluctuations, thereby making it easier to identify trends without the lag associated with traditional moving averages (MA). It does this by taking multiple exponential moving averages (EMA) of the original EMA and subtracting out some of the lag.
Running (SMoothed) Moving Average: A Modified Moving Average (MMA) (otherwise known as the Running Moving Average (RMA), or SMoothed Moving Average (SMMA)) is an indicator that shows the average value of a security's price over a period of time. It works very similar to the Exponential Moving Average, they are equivalent but for different periods (e.g., the MMA value for a 14-day period will be the same as EMA-value for a 27-days period).
Volume-Weighted Moving Average: The Volume-weighted Moving Average (VWMA) emphasizes volume by weighing prices based on the amount of trading activity in a given period of time. Users can set the length, the source and an offset. Prices with heavy trading activity get more weight than prices with light trading activity.
Tillson T3: The Tillson moving average a.k.a. the Tillson T3 indicator is one of the smoothest moving averages and is both composite and adaptive.
Cari dalam skrip untuk "Exponential"
Faster Bands [AstrideUnicorn]The Faster Bands indicator develops the idea of the famous Bollinger Bands . The classic Bollinger Bands indicator consists of a simple moving average of the price (called middle-line) and two bands, plotted at a two standard deviation level above and below the middle-line called upper- and lower-lines, respectively. We moved from simple averaging to exponential one to make our Faster Bands less lagging and more responsive to recent price changes. Simple averaging is used in Bollinger Bands twice - explicitly when calculating the middle-line and implicitly in the standard deviation calculation. In the first case moving to exponential averaging was very straightforward. We calculated the middle-line as an exponential average of the price. In the second case, instead of the standard deviation, we used a less common statistical metric, called Mean Absolute Deviation (MAD). We modified this metric by changing the simple averaging used in it to the exponential one.
HOW TO USE
You can use this indicator in the same way as the Bollinger Bands . The advantage of Faster Bands is that it responds faster to price changes and thus can give the signals earlier. You can also get a more stable price channel by changing the Uniformity parameter and using a higher timeframe to calculate the bands.
SETTINGS
Indicator Timeframe - defines a timeframe to be used for the indicator calculation. To make Faster Bands even more responsive, try to select a value lower than the timeframe of the opened chart.
Length - defines averaging window length for the indicator. Such a parameter is often called an indicator period.
Multiplier - defines upper- and lower-line levels. It is the number of deviations by which upper- and lower-band are away from the middle-line.
Uniformity - defines how uniform the bands' width will be. Higher values correspond to a uniformer width.
Source - defines a price time series to be used for the indicator calculation.
Multi-X by HamidBoxHello to All, introducing Multi Types Crossover strategy,
simply the best way of trading with Crossover and Crossunder Strategy, How it Works???
I added 5 types of Moving Averages,
1: Simple Moving Average ( SMA )
2: Exponential Moving Average ( EMA )
3: Weighted Moving Average ( WMA )
4: Volume Weighted Moving Average ( VWMA )
5: Relative Moving Average (RMA)
With this indicator, you can do scalping, You can trade not only with similar types of Moving Average indicators but also with different types of Moving Average indicators.
what is mean? like: Normal Condition is:
( Simple Moving Average ) Crossover to ( Simple Moving Average ), SMA x SMA
( Exponential Moving Average ) Crossover to ( Exponential Moving Average ), EMA x EMA
But we can Crossover with:
( Exponential Moving Average ) Crossover to ( Simple Moving Average ), EMA x SMA
( Simple Moving Average ) Crossover to ( Weighted Moving Average ), SMA x WMA
( Weighted Moving Average ) Crossover to ( Weighted Moving Average ), WMA x WMA
( Simple Moving Average ) Crossover to (Relative Moving Average), WMA x RMA
and also I added Moving Average ZONE in this tool, What does it work???
The zone will tell us what type of direction the market has, if the market is above the zone, it's mean we have a Bullish Trend, and if the market is below the zone, it means the market has a Bearish Trend,
so if you want to play on the safe side, never trade when the market is in Bearish Trend, and if you want to play on aggressive mood, you can skip Moving Average Zone section.
MACD ReLoaded STRATEGYSTRATEGY version of MACD ReLOADED Indicator:
A different approach to Gerald Appel's classical Moving Average Convergence Divergence.
Appel originaly set MACD with exponential moving averages.
In this version users can apply 11 different types of moving averages which they can benefit from their smoothness and vice versa sharpnesses...
Built in Moving Average type defaultly set as VAR but users can choose from 11 different Moving Average types like:
SMA : Simple Moving Average
EMA : Exponential Moving Average
WMA : Weighted Moving Average
DEMA : Double Exponential Moving Average
TMA : Triangular Moving Average
VAR : Variable Index Dynamic Moving Average a.k.a. VIDYA
WWMA : Welles Wilder's Moving Average
ZLEMA : Zero Lag Exponential Moving Average
TSF : True Strength Force
HULL : Hull Moving Average
TILL : Tillson T3 Moving Average
In shorter time frames backtest results shows us TILL, WWMA, VIDYA (VAR) could be used to overcome whipsaws because they have less numbers of signals.
In longer time frames like daily charts WMA, Volume Weighted MACD V2, and MACDAS and SMA are more accurate according to backtest results.
My interpretation of Buff Dormeier's Volume Weighted MACD V2:
Thomas Aspray's MACD: (MACDAS)
MACD ReLoadedA different approach to Gerald Appel's classical Moving Average Convergence Divergence.
Appel originaly set MACD with exponential moving averages.
In this version users can apply 11 different types of moving averages which they can benefit from their smoothness and vice versa sharpnesses...
Built in Moving Average type defaultly set as VAR but users can choose from 11 different Moving Average types like:
SMA : Simple Moving Average
EMA : Exponential Moving Average
WMA : Weighted Moving Average
DEMA : Double Exponential Moving Average
TMA : Triangular Moving Average
VAR : Variable Index Dynamic Moving Average a.k.a. VIDYA
WWMA : Welles Wilder's Moving Average
ZLEMA : Zero Lag Exponential Moving Average
TSF : True Strength Force
HULL : Hull Moving Average
TILL : Tillson T3 Moving Average
In shorter time frames backtest results shows us TILL, WWMA, VIDYA (VAR) could be used to overcome whipsaws because they have less numbers of signals.
In longer time frames like daily charts WMA, Volume Weighted MACD V2, and MACDAS and SMA are more accurate according to backtest results.
My interpretation of Buff Dormeier's Volume Weighted MACD V2:
Thomas Aspray's MACD: (MACDAS)
Grid Bot AutoThis script is an auto-adjusting grid bot simulator. This is an improved version of the original Grid Bot Simulator. The grid bot is best used for ranging/choppy markets. Prices are divided into grids, or trade zones, that will trigger signals each time a new zone is entered. During ranging markets, each transaction is followed by a “take profit.” As the market starts to trend, transactions are stacked (compare to DCA ), until the market consolidates. No signals are triggered above the Upper Limit or Below the Lower Limit. Unlike the previous version, the upper and lower limits are calculated automatically. Grid levels are determined by four factors: Smoothing, Laziness, Elasticity, and Grid Intervals.
Smoothing:
A moving average (or linear regression) is applied to each close price as a basis. Options for smoothing are Linear Regression, Simple Moving Average, Exponential Moving Average, Volume-Weighted Moving Average, Triple-Exponential Moving Average.
Laziness:
Laziness is the percentage change required to reach the next level. If laziness is 1.5, the price must move up or down by 1.5% before the grid will change. This concept is based on Alex Grover’s Efficient Trend Step. This allows the grids to be based on even price levels, as opposed to jagged moving averages.
Elasticity:
Elasticity is the degree of “stickiness” to the current price trend. If the smoothing line remains above (or below) the current grid center without reverting but still not enough to reach the next grid level, the grid line will start to curve toward the next grid level. Elasticity is added to (or subtracted from) the gridline by a factor of minimum system ticks for the current pair. Elasticity of zero will keep the gridlines horizontal. If elasticity is too high, the grid will distort.
Grid Intervals:
Grid intervals are the percentage of space between each grid.
Laziness = 4%, Elasticity = 0. Price must move at least 4% before reaching the next level. With zero elasticity, gridlines are straight.
Laziness = 5%, Elasticity = 100. For each bar at a new grid level, the grid will start “curve” toward the next price level (up if price is greater than the middle grid, down if less than middle grid). Elasticity is calculated by the user-inputted “Elasticity” multiplied by the minimum tick for the current pair (ELSTX = syminfo.mintick * iELSTX)
Try experimenting with different combinations of the Smoothing Length, Smoothing Type, Laziness, Elasticity, and Grid Intervals to find the optimum settings for each chart. Lower-priced pairs (e.g. XRP/ADA/DODGE) will require lower Elasticity. Also note that different exchanges may have different minimum tick values. For example, minimum tick for BITMEX:XBTUSD and BYBIT:BTCUSD is .5, but BINANCE:BTCUSDT and COINBASE:BTCUSD is .01.
s3.tradingview.com
DODGEUSDT, 5min. Laziness: 4%, Elasticity 2.5
Number of Grids: 2. Laziness: 3.75%. Elasticity: 150. Grid Interval 2%.
Settings Overview
Smoothing Length : Smoothing period
Smoothing Type : Linear Regression, Simple Moving Average, Exponential Moving Average, Volume-Weighted Moving Average, Triple-Exponential Moving Average
Laziness : Percentage required for price to move until it reaches the next level. If price does not reach the next level (up or down), the grid will remain the same as previous grid (because it’s lazy).
Elasticity : Amount of curvature toward the next grid, based on the current price trend. As elasticity increases, gridlines will curve up or down by a factor of the number of ticks since the last grid change.
Grid Interval : Percent between grid levels.
Number of Grids : Number of grids to show.
Cooldown : Number of bars to wait to prevent consecutive signals.
Grid Line Transparency : Lower transparencies brighten the gridlines; higher transparencies dim the gridlines. To hide the gridlines completely, enter 100.
Fill Transparency: Lower transparencies brighten the fill box; higher transparencies dim the fill box. To hide the fill box completely, enter 100.
Signal Size : Make signal triangles large or small.
Reset Buy/Sell Index When Grids Change : When a new grid is formed, resetting the index may prevent false signals (experimental)
Use Highs/Lows for Signals : If enabled, signals are triggered as soon as the price touches the next zone. If disabled, signals are triggered after bar closes. Enable this for “Once Per Bar alerts. Disable for “Once Per Bar Close” alerts.
Show Min Tick : If checked, syminfo.mintick is displayed in upper-righthand corner. Useful for estimating Laziness.
Reverse Fill Colors : Default fill for fill boxes is green after buy and red after sell. Check this box to reverse.
Note: The Grid Bot Simulator scripts are experimental and works in progress. Please feel free to comment or contact me if you have suggestions/complaints.
Pull Back Strategy SignalPull back strategy based on moving averages. The scripts will show buy or sell signal based on moving averages - exponential.
Momentum Strategy (BTC/USDT; 30m) - STOCH RSI (with source code)Here's a strategy for low time frames (30min suggested) for BTC , based on momentum Analysis using Stochastic RSI
By default the strategy will use the 50% of the specified capital for each trade; if "Gamble Sizing" is enabled, it will add the specified amount of capital (25% by default, until reaching the 100% limit or lower) for the next trade after having detected a loss in the previous trade; if the next trade is successful, the size for the next trade comes back to 50%
• Trend Filter LONG: If the fast exponential moving average is UNDER the slow exponential moving average , it won't open LONG positions
• Trend Filter SHORT: If the fast exponential moving average is ABOVE the slow exponential moving average , it won't open SHORT positions
• Bars delay: the strategy will wait the specified amount of bars before closing the current position; the counter is triggered as soon as the closing trade condition is verified
BY MAKING USE OF THIS STRATEGY, YOU ACKNOWLEDGE AND AGREE THAT: (1) YOU ARE AWARE OF THE RISKS ASSOCIATED WITH TRANSACTIONS OF DIGITAL CURRENCIES AND THEIR DERIVATIVES; (2) YOU SHALL ASSUME ALL RISKS RELATED TO THE USE OF THIS STRATEGY AND TRANSACTIONS OF DIGITAL CURRENCIES AND THEIR DERIVATIVES; AND (3) I SHALL NOT BE LIABLE FOR ANY SUCH RISKS OR ADVERSE OUTCOMES.
SOURCE CODE BELOW
Moving Average Compilation by CryptonerdsThis script contains all commonly used types of moving averages in a single script. To our surprise, it turned out that there was no script available yet that contains multiple types of moving averages.
The following types of moving averages are included:
Simple Moving Averages (SMA)
Exponential Moving Averages (EMA)
Double Exponential Moving Averages (DEMA)
Display Triple Exponential Moving Averages (TEMA)
Display Weighted Moving Averages (WMA)
Display Hull Moving Averages (HMA)
Wilder's exponential moving averages (RMA)
Volume-Weighted Moving Averages (VWMA)
The user can configure what type of moving averages are displayed, including the length and up to five multiple moving averages per type. If you have any other request related to adding moving averages, please leave a comment in the section below.
If you've learned something new and found value, leave us a message to show your support!
[blackcat] L2 Ehlers Cyber Cycle Trading StrategyLevel: 2
Background
John F. Ehlers introuced Cyber Cycle Trading Strategy in his "Cybernetic Analysis for Stocks and Futures" chapter 4 on 2004.
Function
With cyber cycle alone, the Trigger lags the Cycle by one bar, so that their crossing introduces at least another bar of lag. Finally, Dr Ehler concluded that we can’t execute the trade until the bar after the signal is observed. In total, that means our trade execution will be at least four bars late. If we are working with an eight-bar cycle, that means the signal will be exactly wrong. We could do better to buy when the signal says sell, and vice versa.
The difficulties arising from the lag suggest a way to build an automatic trading strategy. Suppose we choose to use the trading signal in the opposite direction of the signal. That will work if we can introduce lag so the correct signal will be given in the more general case, not just the case of an eight-bar cycle. Therefore, the Cyber Cycle trading strategy was introduced by Dr. Ehlers. It starts exactly the same as the Cyber Cycle Indicator. Dr. Ehlers then introduce the variable Signal, which is an exponential moving average of the Cycle variable. The exponential moving average generates the desired lag in the trading signal. The relationship between the alpha of an exponential moving average and lag is alpha2 = 1/ (Lag+1). This relationship is used to create the variable alpha2 in the code and the variable Signal using the exponential moving average. The trading signals using the variable Signal crossing itself delayed by one bar are exactly the opposite of the trading signals I would have used if there were no delay. But, since the variable Signal is delayed such that the net delay is less than half a cycle, the trading signals are correct to catch the next cyclic reversal. The idea of betting against the correct direction by waiting for the next cycle reversal can be pretty scary because that reversal may “never” happen because the market takes off in a trend. For this reason Dr. Ehlers included two lines of code that are escape mechanisms if we were wrong in our entry signal. These last two Signal lines of code reverse the trading position if we have been in the trade for more than eight bars and the trade has an open position loss.
Key Signal
Cycle ---> Cyber Cycle fast line
Cycle (2) ---> Cyber Cycle slow line
Signal ---> Trading signal fast line
Signal(1) ---> Trading signal slow line
Pros and Cons
100% John F. Ehlers definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
Remarks
The 25th script for Blackcat1402 John F. Ehlers Week publication.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
@theCF StochasticStochastic with Bullish , Bearish and Neutral Ranges as well as a modification to check the %D line with a Exponential Moving Average .
Since Exponential Moving Averages put more weight onto recent values, they react differently than the Standard Simple Moving Average .
On Stochastic I have observed, that there can often occur false crossover signals. While this also happens with an Exponential Moving Average as %D indeed, the amount is more limited, therefore giving less false signals.
I prefer to display both at the same time, for more information.
The ranges act as general support and resistance zones on Stochastic . Whenever Stochastic oscillates within one of the ranges, one can interpret it as either bullish , neutral or bearish for price.
A Stochastic that oscillates mainly within the bullish range can be interpreted rather bullish , the opposite goes for the bearish range which is interpreted bearish .
I have coded these ranges into the Standard Stochastic Script, as well as the option to display the %D line as a Exponential Moving Average .
For more information about the indicator, feel free to leave a comment and ask.
Bollinger Bands Strategy with Intraday Intensity IndexFor Educational Purposes. Results can differ on different markets and can fail at any time. Profit is not guaranteed.
This only works in a few markets and in certain situations. Changing the settings can give better or worse results for other markets.
This is a mean reversion strategy based on Bollinger Bands and the Intraday Intensity Index (a volume indicator). John Bollinger mentions that the Intraday Intensity Index can be used with Bollinger Bands and is one of the top indicators he recommends in his book. It seems he prefers it over the other volume indicators that he compares to for some reason. III looks a lot like Chaikin Money Flow but without the denominator in that calculation. On the default settings of the BBs, the III helps give off better entry signals. John Bollinger however is vague on how to use the BBs and it's hard to say if one should enter when it is below/above the bands or when the price crosses them. I find that with many indicators and strategies it's best to wait for a confirmation of some sort, in this case by waiting for some crossover of a band. Like most mean reversion strategies, the exit is very loose if using BBs alone. Usually the plan to exit is when the price finally reverts back to the mean or in this case the middle band. This can potentially lead to huge drawdowns and/or losses. Mean reversion strategies can have high win/loss ratios but can still end up unprofitable because of the huge losses that can occur. These drawdowns/losses that mean reversion strategies suffer from can potentially eat away at a large chunk of all that was previously made or perhaps up to all of it in the worst cases, can occur weeks or perhaps up to months after being profitable trading such a strategy, and will take a while and several trades to make it all back or keep a profitable track record. It is important to have a stop loss, trailing stop, or some sort of stop plan with these types of strategies. For this one, in addition to exiting the trade when price reverts to the middle band, I included a time-based stop plan that exits with a gain or with a loss to avoid potentially large losses, and to exit after only a few periods after taking the trade if in profit instead of waiting for the price to revert back to the mean.
MultiType Shifting Predictive Moving Averages (MA) CrossoverJust 2 Moving Averages with adjustable settings and shifting capability, plus signals and predicting continuations.
At the time of publish these different types of MAs are supported:
- SMA (Simple)
- EMA (Exponential)
- DEMA (Double Exponential)
- TEMA (Triple Exponential)
- RMA (Adjusted Exponential)
- WMA (Weighted)
- VWMA (Volume Weighted)
- SWMA (Symmetrically Weighted)
- HMA (Hull)
I'm looking forward to any idea about filtering the signals. Thanks.
RV-Scalping 34EAV ChannelWorks well with 1/3/5/15 min & above
//34 Exponential Moving Average of the Close
//34 Exponential Moving Average of the High
//34 Exponential Moving Average of the Low
//https://www.forexstrategiesresources.com/scalping-forex-strategies/106-1-min-scalping-with-34-exponential-moving-average-channel/
// When price is above the MAs (Moving Averages) we are only looking to buy as price comes back to the MAs.
// And when price is below the MAs, we are only looking to sell when price comes back to the MAs
// What we’re looking for when price pulls back to the MAs is for it to hold and then show that it is going to continue.
// We look for this continuation signal in terms of a strong, momentumdriven bar.
// 1) – Wait for pullback
// 2) – Enter when momentum comes into market
// 3) – Exit when momentum slows
// When the market has already moved a significant amount that day – Lets not enter in the same direct expecting a further move.
Schaff Trend Cycle + Double MAThis strategy uses two different moving averages to determine a trend. It opens a position on a pullback from a trend.
Conditions for buy signal are:
►Crossover out of Shaff Trend Cycle's extreme levels
►The price is above its short period exponential moving average.
►A short period exponential moving average is above a long period exponential moving average.
*Conditions for sell are the opposite.
All in all, I don't think it needs to be on your chart but it can be optimized and even successful on some timeframes.
Shaff Trend Cycle solution was provided by @everget, I converted his script to Pine v.4, added exponential averages and created an algorithm for backtesting.
Moving Average Compendium===========
Moving Average Compendium (16 MA Types)
===========
A selection of the most popular, widely used, interesting and most powerful Moving Averages we can think of. We've compiled 16 MA's into this script, and allowed full access to the source code so you can use what you need, as you need it.
-----------
From very simple moving averages using built-in functions, all the way through to Fractal Adaptive Averages, we've tried to cover as much as we can think of! BUT, if you would like to make a suggestion or recommendation to be added to this compendium of MA's please let us know! Together we can get a complete list of many dozens of types of Moving Average.
Full List (so far)
---
SMA - Simple Moving Average
EMA - Exponential Moving Average
WMA - Weighted Moving Average
VWMA - Volume Weighted Moving Average
DEMA - Double Exponential Moving Average
TEMA - Triple Exponential Moving Average
SMMA - Smoothed Moving Average
HMA - Hull Moving Average
ZLEMA - Zero-Lag Exponential Moving Average
KAMA - Kaufman Adaptive Moving Average
JMA - Jurik Moving Average
SWMA - Sine-Weighted Moving Average
TriMA - Triangular Moving Average
MedMA - Moving Median Average
GeoMA - Geometric Mean Moving Average
FRAMA - Fractal Adaptive Moving Average
Line color changes from green (upward) to red (downward) - some of the MA types will "linger" without moving up or down and when they are in this state they should appear gray in color.
Thanks to all involved -
Good Luck and Happy Trading!
Trade System Crypto InvestidorTrade System created to facilitate the visualization of crossing and extensions of the movements with Bollinger bands.
Composed by:
Moving Averages of 21, 50, 100 and 200.
Exponential Moving Averages: 17,34,72,144, 200 and 610.
Bollinger bands with standard deviation 2 and 3.
How it works?
The indicators work together, however there are some important cross-averages that need to be identified.
- Crossing the MA21 with 50, 100 and 200 up or down will dictate an up or down trend.
- MA200 and EMA200 are excellent indicators of resistance and support zone, if the price is above these averages it will be a great support, if the price is below these averages it will indicate strong resistance.
- Another important crossover refers to exponential moving averages of 17 to 72 indicates a possible start of a trend
- The crossing of the exponential moving average of 34 with 144 will confirm the crossing mentioned above.
- In addition, the exponential moving average of 610 used by Bo Williams is an excellent reference for dictating an upward or downward trend, if the price is above it it will possibly confirm an upward trend and the downside.
- To conclude we have bollinger bands with standard deviation 2 and 3, they help to identify the maximum movements.
HEMA - A Fast And Efficient Estimate Of The Hull Moving AverageIntroduction
The Hull moving average (HMA) developed by Alan Hull is one of the many moving averages that aim to reduce lag while providing effective smoothing. The HMA make use of 3 linearly weighted (WMA) moving averages, with respective periods p/2 , p and √p , this involve three convolutions, which affect computation time, a more efficient version exist under the name of exponential Hull moving average (EHMA), this version make use of exponential moving averages instead of linearly weighted ones, which dramatically decrease the computation time, however the difference with the original version is clearly noticeable.
In this post an efficient and simple estimate is proposed, the estimation process will be fully described and some comparison with the original HMA will be presented.
This post and indicator is dedicated to LucF
Estimation Process
Estimating a moving average is easier when we look at its weights (represented by the impulse response), we basically want to find a similar set of weights via more efficient calculations, the estimation process is therefore based on fully understanding the weighting architecture of the moving average we want to estimate.
The impulse response of an HMA of period 20 is as follows :
We can see that the first weights increases a bit before decaying, the weights then decay, cross under 0 and increase again. More recent closing price values benefits of the highest weights, while the oldest values have negatives ones, negative weighting is what allow to drastically reduce the lag of the HMA. Based on this information we know that our estimate will be a linear combination of two moving averages with unknown coefficients :
a × MA1 + b × MA2
With a > 0 and b < 0 , the lag of MA1 is lower than the lag of MA2 . We first need to capture the general envelope of the weights, which has an overall non-linearly decaying shape, therefore the use of an exponential moving average might seem appropriate.
In orange the impulse response of an exponential moving average of period p/2 , that is 10. We can see that such impulse response is not a bad estimate of the overall shape of the HMA impulse response, based on this information we might perform our linear combination with a simple moving average :
2EMA(p/2) + -1SMA(p)
this gives the following impulse response :
As we can see there is a clear lack of accuracy, but because the impulse response of a simple moving is a constant we can't have the short increasing weights of the HMA, we therefore need a non-constant impulse response for our linear combination, a WMA might be appropriate. Therefore we will use :
2WMA(p/2) + -1EMA(p/2)
Note that the lag a WMA is inferior to the lag of an EMA of same period, this is why the period of the WMA is p/2 . We obtain :
The shape has improved, but the fit is poor, which mean we should change our coefficients, more precisely increasing the coefficient of the WMA (thus decreasing the one of the EMA). We will try :
3WMA(p/2) + -2EMA(p/2)
We then obtain :
This estimate seems to have a decent fit, and this linear combination is therefore used.
Comparison
HMA in blue and the estimate in fuchsia with both period 50, the difference can be noted, however the estimate is relatively accurate.
In the image above the period has been set to 200.
Conclusion
In this post an efficient estimate of the HMA has been proposed, we have seen that the HMA can be estimated via the linear combinations of a WMA and an EMA of each period p/2 , this isn't important for the EMA who is based on recursion but is however a big deal for the WMA who use recursion, and therefore p indicate the number of data points to be used in the convolution, knowing that we use only convolution and that this convolution use twice less data points then one of the WMA used in the HMA is a pretty great thing.
Subtle tweaking of the coefficients/moving averages length's might help have an even more accurate estimate, the fact that the WMA make use of a period of √p is certainly the most disturbing aspect when it comes to estimating the HMA. I also described more in depth the process of estimating a moving average.
I hope you learned something in this post, it took me quite a lot of time to prepare, maybe 2 hours, some pinescripters pass an enormous amount of time providing content and helping the community, one of them being LucF, without him i don't think you'll be seeing this indicator as well as many ones i previously posted, I encourage you to thank him and check his work for Pinecoders as well as following him.
Thanks for reading !
Many Moving AveragesThis script allows you to add two moving averages to a chart, where the type of moving average can be chosen from a collection of 15 different moving average algorithms. Each moving average can also have different lengths and crossovers/unders can be displayed and alerted on.
The supported moving average types are:
Simple Moving Average ( SMA )
Exponential Moving Average ( EMA )
Double Exponential Moving Average ( DEMA )
Triple Exponential Moving Average ( TEMA )
Weighted Moving Average ( WMA )
Volume Weighted Moving Average ( VWMA )
Smoothed Moving Average ( SMMA )
Hull Moving Average ( HMA )
Least Square Moving Average/Linear Regression ( LSMA )
Arnaud Legoux Moving Average ( ALMA )
Jurik Moving Average ( JMA )
Volatility Adjusted Moving Average ( VAMA )
Fractal Adaptive Moving Average ( FRAMA )
Zero-Lag Exponential Moving Average ( ZLEMA )
Kauman Adaptive Moving Average ( KAMA )
Many of the moving average algorithms were taken from other peoples' scripts. I'd like to thank the authors for making their code available.
JayRogers
Alex Orekhov (everget)
Alex Orekhov (everget)
Joris Duyck (JD)
nemozny
Shizaru
KobySK
Jurik Research and Consulting for inventing the JMA.
Well Rounded Moving AverageIntroduction
There are tons of filters, way to many, and some of them are redundant in the sense they produce the same results as others. The task to find an optimal filter is still a big challenge among technical analysis and engineering, a good filter is the Kalman filter who is one of the more precise filters out there. The optimal filter theorem state that : The optimal estimator has the form of a linear observer , this in short mean that an optimal filter must use measurements of the inputs and outputs, and this is what does the Kalman filter. I have tried myself to Kalman filters with more or less success as well as understanding optimality by studying Linear–quadratic–Gaussian control, i failed to get a complete understanding of those subjects but today i present a moving average filter (WRMA) constructed with all the knowledge i have in control theory and who aim to provide a very well response to market price, this mean low lag for fast decision timing and low overshoots for better precision.
Construction
An good filter must use information about its output, this is what exponential smoothing is about, simple exponential smoothing (EMA) is close to a simple moving average and can be defined as :
output = output(1) + α(input - output(1))
where α (alpha) is a smoothing constant, typically equal to 2/(Period+1) for the EMA.
This approach can be further developed by introducing more smoothing constants and output control (See double/triple exponential smoothing - alpha-beta filter) .
The moving average i propose will use only one smoothing constant, and is described as follow :
a = nz(a ) + alpha*nz(A )
b = nz(b ) + alpha*nz(B )
y = ema(a + b,p1)
A = src - y
B = src - ema(y,p2)
The filter is divided into two components a and b (more terms can add more control/effects if chosen well) , a adjust itself to the output error and is responsive while b is independent of the output and is mainly smoother, adding those components together create an output y , A is the output error and B is the error of an exponential moving average.
Comparison
There are a lot of low-lag filters out there, but the overshoots they induce in order to reduce lag is not a great effect. The first comparison is with a least square moving average, a moving average who fit a line in a price window of period length .
Lsma in blue and WRMA in red with both length = 100 . The lsma is a bit smoother but induce terrible overshoots
ZLMA in blue and WRMA in red with both length = 100 . The lag difference between each moving average is really low while VWRMA is way more precise.
Hull MA in blue and WRMA in red with both length = 100 . The Hull MA have similar overshoots than the LSMA.
Reduced overshoots moving average (ROMA) in blue and WRMA in red with both length = 100 . ROMA is an indicator i have made to reduce the overshoots of a LSMA, but at the end WRMA still reduce way more the overshoots while being smoother and having similar lag.
I have added a smoother version, just activate the extra smooth option in the indicator settings window. Here the result with length = 200 :
This result is a little bit similar to a 2 order Butterworth filter. Our filter have more overshoots which in this case could be useful to reduce the error with edges since other low pass filters tend to smooth their amplitude thus reducing edge estimation precision.
Conclusions
I have presented a well rounded filter in term of smoothness/stability and reactivity. Try to add more terms to have different results, you could maybe end up with interesting results, if its the case share them with the community :)
As for control theory i have seen neural networks integrated to Kalman flters which leaded to great accuracy, AI is everywhere and promise to be a game a changer in real time data smoothing. So i asked myself if it was possible for a neural networks to develop pinescript indicators, if yes then i could be replaced by AI ? Brrr how frightening.
Thanks for reading :)
Coding ema in pinescriptWhat is EMA ?
Ema is known as exponential moving average, it comes from the class of weighted moving average. It gives more weightage to the recent price changes, thus making it much more relevant to the current market analysis. Also it provides a dynamic way of calculating support and resistances in a trend following setup.
The most common way to mint profit out from the market is to use trend following setups which can be easily achieved by using a group of EMA’s
So how’s this EMA calculated ?
Before understanding the calculation of EMA let’s look into a much wider topic:
“The Law of Averages”
It states : If you do something often enough a ratio will appear, simply put, any time series data, tend to deviate from its average.
EMA provides a way to statistically calculate the exponential moving average for a provided time series data giving much more emphasis on the most recent data in the series.
So in the 17th century, when the people were playing with numbers in their free time, they came up with a statistical strategy to envelop any time series data to detect the direction of the data flow , they called it exponential moving average.
Later in 1940’s with the increase in signal processing requirements in the field of electronic devices scientists started using Exponential moving average onto the electronic signal followers, just to classify the signals as above or below a moving/dynamic threshold.
So EMA is a smoothed time-series data.
The simplest form of EMA Smoothing can be given by the formula:
S(t) = alpha * X(t) + (1 - alpha) * X(t - 1).
The value of alpha must lie between 0 and 1
Where
alpha , is the smoothing factor
X(t) , is the current observation data point
X(t - 1), is the past observational data point.
t , is the current time
Generally,
In current day trading setups for EMA the alpha is calculated by
alpha = 2 / (time period window + 1)
Things to note here is that the alpha calculated above is the most generally used factor calculation method for EMA ,
You can tweak the alpha function above until it gives value between 0 and 1 for example alpha can also be written as
alpha = ln ( current price / past price )
Note it’s just a weighing scheme,
But for Our Case of EMA
We will be using
alpha = 2 / (time period window + 1)
Please refer to the script code below
Moving Average Trend IndicatorThis Indicator shows you the major moving averages, both in simple and exponential.
[ALERTS] MA Cross ElevenThis script is a crossing of eleven different MA, with alerts and SL and TP.
The simplest is what works best.
SMA --> Simple
EMA --> Exponential
WMA --> Weighted
VWMA --> Volume Weighted
SMMA --> Smoothed
DEMA --> Double Exponential
TEMA --> Triple Exponential
HMA --> Hull
TMA --> Triangular
SSMA --> SuperSmoother filter
ZEMA --> Zero Lag Exponential
Using "once per bar close" repaint is 0%, but if you like risk can choose "once per bar", better profit.
Thanks to JustUncleL and his amazing sripts.