MFI + Realtime DivergencesMoney Flow Index (MFI) + Realtime Divergences + Alerts
This version of the MFI indicator adds the following 5 additional features to the stock MFI:
- Optional divergence lines drawn directly onto the oscillator in realtime.
- Configurable alerts to notify you when divergences occur.
- Configurable lookback periods to fine tune the divergences drawn in order to suit different trading styles and timeframes, including the ability to enable automatic adjustment of pivot period per chart timeframe.
- Background colouring option to indicate when the MFI oscillator has crossed above or below its centerline, or optionally when both the MFI has crossed its centerline and an external oscillator, which can be linked via the settings, has also crossed its centerline.
- Alternate timeframe feature allows you to configure the oscillator to use data from a different timeframe than the chart it is loaded on.
This indicator adds additional features onto the standard MFI , whose core calculations remain unchanged. Namely the configurable option to automatically, quickly and clearly draw divergence lines onto the oscillator for you as they occur in realtime. It also has the addition of unique alerts, so you can be notified when divergences occur without spending all day watching the charts. Furthermore, this version of the TSI comes with configurable lookback periods, which can be configured in order to adjust the sensitivity of the divergences, in order to suit shorter or higher timeframe trading approaches.
What is the Money Flow Index ( MFI )?
Investopedia describes the True Strength Indicator as follows:
“The Money Flow Index ( MFI ) is a technical oscillator that uses price and volume data for identifying overbought or oversold signals in an asset. It can also be used to spot divergences which warn of a trend change in price. The oscillator moves between 0 and 100.
Unlike conventional oscillators such as the Relative Strength Index ( RSI ), the Money Flow Index incorporates both price and volume data, as opposed to just price. For this reason, some analysts call MFI the volume-weighted RSI .”
What are divergences?
Divergence is when the price of an asset is moving in the opposite direction of a technical indicator, such as an oscillator, or is moving contrary to other data. Divergence warns that the current price trend may be weakening, and in some cases may lead to the price changing direction.
There are 4 main types of divergence, which are split into 2 categories;
regular divergences and hidden divergences. Regular divergences indicate possible trend reversals, and hidden divergences indicate possible trend continuation.
Regular bullish divergence: An indication of a potential trend reversal, from the current downtrend, to an uptrend.
Regular bearish divergence: An indication of a potential trend reversal, from the current uptrend, to a downtrend.
Hidden bullish divergence: An indication of a potential uptrend continuation.
Hidden bearish divergence: An indication of a potential downtrend continuation.
Setting alerts.
With this indicator you can set alerts to notify you when any/all of the above types of divergences occur, on any chart timeframe you choose.
Configurable pivot periods.
You can adjust the default pivot periods to suit your prefered trading style and timeframe. If you like to trade a shorter time frame, lowering the default lookback values will make the divergences drawn more sensitive to short term price action.
How do traders use divergences in their trading?
A divergence is considered a leading indicator in technical analysis , meaning it has the ability to indicate a potential price move in the short term future.
Hidden bullish and hidden bearish divergences, which indicate a potential continuation of the current trend are sometimes considered a good place for traders to begin, since trend continuation occurs more frequently than reversals, or trend changes.
When trading regular bullish divergences and regular bearish divergences, which are indications of a trend reversal, the probability of it doing so may increase when these occur at a strong support or resistance level . A common mistake new traders make is to get into a regular divergence trade too early, assuming it will immediately reverse, but these can continue to form for some time before the trend eventually changes, by using forms of support or resistance as an added confluence, such as when price reaches a moving average, the success rate when trading these patterns may increase.
Typically, traders will manually draw lines across the swing highs and swing lows of both the price chart and the oscillator to see whether they appear to present a divergence, this indicator will draw them for you, quickly and clearly, and can notify you when they occur.
Disclaimer: This script includes code from the stock MFI by Tradingview as well as the Divergence for Many Indicators v4 by LonesomeTheBlue.
Buscar en scripts para "ha溢价率"
Percentile Rank of Moving Average Convergence DivergenceThis simple indicator provides you three useful information of the Moving Average Convergence Divergence (MACD) indicator:
The percentile rank of the current value of the MACD line, displayed by the bright blue line.
The percentile rank of the current value of the Signal line, displayed by the dark blue line.
The percentile rank of the current value of the Histogram line, displayed by the olive histogram.
This indicator can be useful to identify the strength of trend. This indicator makes the assumption that market tends to revert into the opposite direction. If the market has been trending a lot, it should consolidate for a while later. If the market has been consolidating for a long time, it would begin trending real soon.
When we see a low percentile rank, no matter which line it is, this tells that the market hasn't been moving much, or there is little momentum. If the percentile rank stays below the median or even below the first quartile for a long time, this could suggest that the market is ready for the next trend since it has stored quite some energy.
When we see a high percentile rank, no matter which line it is, this tells that the market has been trending a lot, or there is much momentum. If the percentile rank stays above the median or even above the third quartile for a long time, it is probable that the market has used up much of its energy and is going to take a rest (consolidate).
Stochastic of Two-Pole SuperSmoother [Loxx]Stochastic of Two-Pole SuperSmoother is a Stochastic Indicator that takes as input Two-Pole SuperSmoother of price. Includes gradient coloring and Discontinued Signal Lines signals with alerts.
What is Ehlers ; Two-Pole Super Smoother?
From "Cycle Analytics for Traders Advanced Technical Trading Concepts" by John F. Ehlers
A SuperSmoother filter is used anytime a moving average of any type would otherwise be used, with the result that the SuperSmoother filter output would have substantially less lag for an equivalent amount of smoothing produced by the moving average. For example, a five-bar SMA has a cutoff period of approximately 10 bars and has two bars of lag. A SuperSmoother filter with a cutoff period of 10 bars has a lag a half bar larger than the two-pole modified Butterworth filter.Therefore, such a SuperSmoother filter has a maximum lag of approximately 1.5 bars and even less lag into the attenuation band of the filter. The differential in lag between moving average and SuperSmoother filter outputs becomes even larger when the cutoff periods are larger.
Market data contain noise, and removal of noise is the reason for using smoothing filters. In fact, market data contain several kinds of noise. I’ll group one kind of noise as systemic, caused by the random events of trades being exercised. A second kind of noise is aliasing noise, caused by the use of sampled data. Aliasing noise is the dominant term in the data for shorter cycle periods.
It is easy to think of market data as being a continuous waveform, but it is not. Using the closing price as representative for that bar constitutes one sample point. It doesn’t matter if you are using an average of the high and low instead of the close, you are still getting one sample per bar. Since sampled data is being used, there are some dSP aspects that must be considered. For example, the shortest analysis period that is possible (without aliasing)2 is a two-bar cycle.This is called the Nyquist frequency, 0.5 cycles per sample.A perfect two-bar sine wave cycle sampled at the peaks becomes a square wave due to sampling. However, sampling at the cycle peaks can- not be guaranteed, and the interference between the sampling frequency and the data frequency creates the aliasing noise.The noise is reduced as the data period is longer. For example, a four-bar cycle means there are four samples per cycle. Because there are more samples, the sampled data are a better replica of the sine wave component. The replica is better yet for an eight-bar data component.The improved fidelity of the sampled data means the aliasing noise is reduced at longer and longer cycle periods.The rate of reduction is 6 dB per octave. My experience is that the systemic noise rarely is more than 10 dB below the level of cyclic information, so that we create two conditions for effective smoothing of aliasing noise:
1. It is difficult to use cycle periods shorter that two octaves below the Nyquist frequency.That is, an eight-bar cycle component has a quantization noise level 12 dB below the noise level at the Nyquist frequency. longer cycle components therefore have a systemic noise level that exceeds the aliasing noise level.
2. A smoothing filter should have sufficient selectivity to reduce aliasing noise below the systemic noise level. Since aliasing noise increases at the rate of 6 dB per octave above a selected filter cutoff frequency and since the SuperSmoother attenuation rate is 12 dB per octave, the Super- Smoother filter is an effective tool to virtually eliminate aliasing noise in the output signal.
What are DSL Discontinued Signal Line?
A lot of indicators are using signal lines in order to determine the trend (or some desired state of the indicator) easier. The idea of the signal line is easy : comparing the value to it's smoothed (slightly lagging) state, the idea of current momentum/state is made.
Discontinued signal line is inheriting that simple signal line idea and it is extending it : instead of having one signal line, more lines depending on the current value of the indicator.
"Signal" line is calculated the following way :
When a certain level is crossed into the desired direction, the EMA of that value is calculated for the desired signal line
When that level is crossed into the opposite direction, the previous "signal" line value is simply "inherited" and it becomes a kind of a level
This way it becomes a combination of signal lines and levels that are trying to combine both the good from both methods.
In simple terms, DSL uses the concept of a signal line and betters it by inheriting the previous signal line's value & makes it a level.
Included:
Bar coloring
Alerts
Signals
Loxx's Expanded Source Types
Adaptive Two-Pole Super Smoother Entropy MACD [Loxx]Adaptive Two-Pole Super Smoother Entropy (Math) MACD is an Ehlers Two-Pole Super Smoother that is transformed into an MACD oscillator using entropy mathematics. Signals are generated using Discontinued Signal Lines.
What is Ehlers; Two-Pole Super Smoother?
From "Cycle Analytics for Traders Advanced Technical Trading Concepts" by John F. Ehlers
A SuperSmoother filter is used anytime a moving average of any type would otherwise be used, with the result that the SuperSmoother filter output would have substantially less lag for an equivalent amount of smoothing produced by the moving average. For example, a five-bar SMA has a cutoff period of approximately 10 bars and has two bars of lag. A SuperSmoother filter with a cutoff period of 10 bars has a lag a half bar larger than the two-pole modified Butterworth filter.Therefore, such a SuperSmoother filter has a maximum lag of approximately 1.5 bars and even less lag into the attenuation band of the filter. The differential in lag between moving average and SuperSmoother filter outputs becomes even larger when the cutoff periods are larger.
Market data contain noise, and removal of noise is the reason for using smoothing filters. In fact, market data contain several kinds of noise. I’ll group one kind of noise as systemic, caused by the random events of trades being exercised. A second kind of noise is aliasing noise, caused by the use of sampled data. Aliasing noise is the dominant term in the data for shorter cycle periods.
It is easy to think of market data as being a continuous waveform, but it is not. Using the closing price as representative for that bar constitutes one sample point. It doesn’t matter if you are using an average of the high and low instead of the close, you are still getting one sample per bar. Since sampled data is being used, there are some dSP aspects that must be considered. For example, the shortest analysis period that is possible (without aliasing)2 is a two-bar cycle.This is called the Nyquist frequency, 0.5 cycles per sample.A perfect two-bar sine wave cycle sampled at the peaks becomes a square wave due to sampling. However, sampling at the cycle peaks can- not be guaranteed, and the interference between the sampling frequency and the data frequency creates the aliasing noise.The noise is reduced as the data period is longer. For example, a four-bar cycle means there are four samples per cycle. Because there are more samples, the sampled data are a better replica of the sine wave component. The replica is better yet for an eight-bar data component.The improved fidelity of the sampled data means the aliasing noise is reduced at longer and longer cycle periods.The rate of reduction is 6 dB per octave. My experience is that the systemic noise rarely is more than 10 dB below the level of cyclic information, so that we create two conditions for effective smoothing of aliasing noise:
1. It is difficult to use cycle periods shorter that two octaves below the Nyquist frequency.That is, an eight-bar cycle component has a quantization noise level 12 dB below the noise level at the Nyquist frequency. longer cycle components therefore have a systemic noise level that exceeds the aliasing noise level.
2. A smoothing filter should have sufficient selectivity to reduce aliasing noise below the systemic noise level. Since aliasing noise increases at the rate of 6 dB per octave above a selected filter cutoff frequency and since the SuperSmoother attenuation rate is 12 dB per octave, the Super- Smoother filter is an effective tool to virtually eliminate aliasing noise in the output signal.
What are DSL Discontinued Signal Line?
A lot of indicators are using signal lines in order to determine the trend (or some desired state of the indicator) easier. The idea of the signal line is easy : comparing the value to it's smoothed (slightly lagging) state, the idea of current momentum/state is made.
Discontinued signal line is inheriting that simple signal line idea and it is extending it : instead of having one signal line, more lines depending on the current value of the indicator.
"Signal" line is calculated the following way :
When a certain level is crossed into the desired direction, the EMA of that value is calculated for the desired signal line
When that level is crossed into the opposite direction, the previous "signal" line value is simply "inherited" and it becomes a kind of a level
This way it becomes a combination of signal lines and levels that are trying to combine both the good from both methods.
In simple terms, DSL uses the concept of a signal line and betters it by inheriting the previous signal line's value & makes it a level.
Included:
Bar coloring
Alerts
Signals
Loxx's Expanded Source Types
Heiken Ashi Lower PaneNot one of my more challenging scripts, never the less I was requested to publish this open source indicator.
Heiken Ashi (HA) candles indicate strength usually when the candles have wicks in the direction of the movement, ie. top wicks on green candles w/NO wicks on bottom and vice versa for bearish behavior (bottom wicks on red candles). Weakness in the movement CAN be spotted by watching for wicks opposite the movement appearing.
This indicator can be used in a lower pane to show heiken ashi candles concurrently with above main chart regular candles.
Nothing special about it other than displaying bull/bear ha candles with a twist of third color candle (orange default) which is shown when HA candle gets a wick in opposite direction of movement which usually indicates potential directional weakness.
It also provides various moving average line types based upon the HA high, low, close, open values (HLC4) that can used if you are into watching for a cross over of the HA candle to a MA line.
Note: You can also display this over the main chart as an overlay just by selecting the three dots on the indicator and "Move to" option. Be advised doing so will probably cause too much overlapping onto the regular candles.
Ehlers Two-Pole Predictor [Loxx]Ehlers Two-Pole Predictor is a new indicator by John Ehlers . The translation of this indicator into PineScript™ is a collaborative effort between @cheatcountry and I.
The following is an excerpt from "PREDICTION" , by John Ehlers
Niels Bohr said “Prediction is very difficult, especially if it’s about the future.”. Actually, prediction is pretty easy in the context of technical analysis . All you have to do is to assume the market will behave in the immediate future just as it has behaved in the immediate past. In this article we will explore several different techniques that put the philosophy into practice.
LINEAR EXTRAPOLATION
Linear extrapolation takes the philosophical approach quite literally. Linear extrapolation simply takes the difference of the last two bars and adds that difference to the value of the last bar to form the prediction for the next bar. The prediction is extended further into the future by taking the last predicted value as real data and repeating the process of adding the most recent difference to it. The process can be repeated over and over to extend the prediction even further.
Linear extrapolation is an FIR filter, meaning it depends only on the data input rather than on a previously computed value. Since the output of an FIR filter depends only on delayed input data, the resulting lag is somewhat like the delay of water coming out the end of a hose after it supplied at the input. Linear extrapolation has a negative group delay at the longer cycle periods of the spectrum, which means water comes out the end of the hose before it is applied at the input. Of course the analogy breaks down, but it is fun to think of it that way. As shown in Figure 1, the actual group delay varies across the spectrum. For frequency components less than .167 (i.e. a period of 6 bars) the group delay is negative, meaning the filter is predictive. However, the filter has a positive group delay for cycle components whose periods are shorter than 6 bars.
Figure 1
Here’s the practical ramification of the group delay: Suppose we are projecting the prediction 5 bars into the future. This is fine as long as the market is continued to trend up in the same direction. But, when we get a reversal, the prediction continues upward for 5 bars after the reversal. That is, the prediction fails just when you need it the most. An interesting phenomenon is that, regardless of how far the extrapolation extends into the future, the prediction will always cross the signal at the same spot along the time axis. The result is that the prediction will have an overshoot. The amplitude of the overshoot is a function of how far the extrapolation has been carried into the future.
But the overshoot gives us an opportunity to make a useful prediction at the cyclic turning point of band limited signals (i.e. oscillators having a zero mean). If we reduce the overshoot by reducing the gain of the prediction, we then also move the crossing of the prediction and the original signal into the future. Since the group delay varies across the spectrum, the effect will be less effective for the shorter cycles in the data. Nonetheless, the technique is effective for both discretionary trading and automated trading in the majority of cases.
EXPLORING THE CODE
Before we predict, we need to create a band limited indicator from which to make the prediction. I have selected a “roofing filter” consisting of a High Pass Filter followed by a Low Pass Filter. The tunable parameter of the High Pass Filter is HPPeriod. Think of it as a “stone wall filter” where cycle period components longer than HPPeriod are completely rejected and cycle period components shorter than HPPeriod are passed without attenuation. If HPPeriod is set to be a large number (e.g. 250) the indicator will tend to look more like a trending indicator. If HPPeriod is set to be a smaller number (e.g. 20) the indicator will look more like a cycling indicator. The Low Pass Filter is a Hann Windowed FIR filter whose tunable parameter is LPPeriod. Think of it as a “stone wall filter” where cycle period components shorter than LPPeriod are completely rejected and cycle period components longer than LPPeriod are passed without attenuation. The purpose of the Low Pass filter is to smooth the signal. Thus, the combination of these two filters forms a “roofing filter”, named Filt, that passes spectrum components between LPPeriod and HPPeriod.
Since working into the future is not allowed in EasyLanguage variables, we need to convert the Filt variable to the data array XX. The data array is first filled with real data out to “Length”. I selected Length = 10 simply to have a convenient starting point for the prediction. The next block of code is the prediction into the future. It is easiest to understand if we consider the case where count = 0. Then, in English, the next value of the data array is equal to the current value of the data array plus the difference between the current value and the previous value. That makes the prediction one bar into the future. The process is repeated for each value of count until predictions up to 10 bars in the future are contained in the data array. Next, the selected prediction is converted from the data array to the variable “Prediction”. Filt is plotted in Red and Prediction is plotted in yellow.
The Predict Extrapolation indicator is shown below for the Emini S&P Futures contract using the default input parameters. Filt is plotted in red and Predict is plotted in yellow. The crossings of the Predict and Filt lines provide reliable buy and sell timing signals. There is some overshoot for the shorter cycle periods, for example in February and March 2021, but the only effect is a late timing signal. Further reducing the gain and/or reducing the BarsFwd inputs would provide better timing signals during this period.
Figure 2. Predict Extrapolation Provides Reliable Timing Signals
I have experimented with other FIR filters for predictions, but found none that had a significant advantage over linear extrapolation.
MESA
MESA is an acronym for Maximum Entropy Spectral Analysis. Conceptually, it removes spectral components until the residual is left with maximum entropy. It does this by forming an all-pole filter whose order is determined by the selected number of coefficients. It maximally addresses the data within the selected window and ignores all other data. Its resolution is determined only by the number of filter coefficients selected. Since the resulting filter is an IIR filter, a prediction can be formed simply by convolving the filter coefficients with the data. MESA is one of the few, if not the only way to practically determine the coefficients of a higher order IIR filter. Discussion of MESA is beyond the scope of this article.
TWO POLE IIR FILTER
While the coefficients of a higher order IIR filter are difficult to compute without MESA, it is a relatively simple matter to compute the coefficients of a two pole IIR filter.
(Skip this paragraph if you don’t care about DSP) We can locate the conjugate pole positions parametrically in the Z plane in polar coordinates. Let the radius be QQ and the principal angle be 360 / P2Period. The first order component is 2*QQ*Cosine(360 / P2Period) and the second order component is just QQ2. Therefore, the transfer response becomes:
H(z) = 1 / (1 - 2*QQ*Cosine(360 / P2Period)*Z-1 + QQ2*Z-2)
By mixing notation we can easily convert the transfer response to code.
Output / Input = 1 / (1 - 2*QQ*Cosine(360 / P2Period)* + QQ2* )
Output - 2*QQ*Cosine(360 / P2Period)*Output + QQ2*Output = Input
Output = Input + 2*QQ*Cosine(360 / P2Period)*Output - QQ2*Output
The Two Pole Predictor starts by computing the same “roofing filter” design as described for the Linear Extrapolation Predictor. The HPPeriod and LPPeriod inputs adjust the roofing filter to obtain the desired appearance of an indicator. Since EasyLanguage variables cannot be extended into the future, the prediction process starts by loading the XX data array with indicator data up to the value of Length. I selected Length = 10 simply to have a convenient place from which to start the prediction. The coefficients are computed parametrically from the conjugate pole positions and are normalized to their sum so the IIR filter will have unity gain at zero frequency.
The prediction is formed by convolving the IIR filter coefficients with the historical data. It is easiest to see for the case where count = 0. This is the initial prediction. In this case the new value of the XX array is formed by successively summing the product of each filter coefficient with its respective historical data sample. This process is significantly different from linear extrapolation because second order curvature is introduced into the prediction rather than being strictly linear. Further, the prediction is adaptive to market conditions because the degree of curvature depends on recent historical data. The prediction in the data array is converted to a variable by selecting the BarsFwd value. The prediction is then plotted in yellow, and is compared to the indicator plotted in red.
The Predict 2 Pole indicator is shown above being applied to the Emini S&P Futures contract for most of 2021. The default parameters for the roofing filter and predictor were used. By comparison to the Linear Extrapolation prediction of Figure 2, the Predict 2 Pole indicator has a more consistent prediction. For example, there is little or no overshoot in February or March while still giving good predictions in April and May.
Input parameters can be varied to adjust the appearance of the prediction. You will find that the indicator is relatively insensitive to the BarsFwd input. The P2Period parameter primarily controls the gain of the prediction and the QQ parameter primarily controls the amount of prediction lead during trending sections of the indicator.
TAKEAWAYS
1. A more or less universal band limited “roofing filter” indicator was used to demonstrate the predictors. The HPPeriod input parameter is used to control whether the indicator looks more like a trend indicator or more like a cycle indicator. The LPPeriod input parameter is used to control the smoothness of the indicator.
2. A linear extrapolation predictor is formed by adding the difference of the two most recent data bars to the value of the last data bar. The result is considered to be a real data point and the process is repeated to extend the prediction into the future. This is an FIR filter having a one bar negative group delay at zero frequency, but the group delay is not constant across the spectrum. This variable group delay causes the linear extrapolation prediction to be inconsistent across a range of market conditions.
3. The degree of prediction by linear extrapolation can be controlled by varying the gain of the prediction to reduce the overshoot to be about the same amplitude as the peak swing of the indicator.
4. I was unable to experimentally derive a higher order FIR filter predictor that had advantages over the simple linear extrapolation predictor.
5. A Two Pole IIR predictor can be created by parametrically locating the conjugate pole positions.
6. The Two Pole predictor is a second order filter, which allows curvature into the prediction, thus mitigating overshoot. Further, the curvature is adaptive because the prediction depends on previously computed prediction values.
7. The Two Pole predictor is more consistent over a range of market conditions.
ADDITIONS
Loxx's Expanded source types:
Library for expanded source types:
Explanation for expanded source types:
Three different signal types: 1) Prediction/Filter crosses; 2) Prediction middle crosses; and, 3) Filter middle crosses.
Bar coloring to color trend.
Signals, both Long and Short.
Alerts, both Long and Short.
Normalized, Variety, Fast Fourier Transform Explorer [Loxx]Normalized, Variety, Fast Fourier Transform Explorer demonstrates Real, Cosine, and Sine Fast Fourier Transform algorithms. This indicator can be used as a rule of thumb but shouldn't be used in trading.
What is the Discrete Fourier Transform?
In mathematics, the discrete Fourier transform (DFT) converts a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a complex-valued function of frequency. The interval at which the DTFT is sampled is the reciprocal of the duration of the input sequence. An inverse DFT is a Fourier series, using the DTFT samples as coefficients of complex sinusoids at the corresponding DTFT frequencies. It has the same sample-values as the original input sequence. The DFT is therefore said to be a frequency domain representation of the original input sequence. If the original sequence spans all the non-zero values of a function, its DTFT is continuous (and periodic), and the DFT provides discrete samples of one cycle. If the original sequence is one cycle of a periodic function, the DFT provides all the non-zero values of one DTFT cycle.
What is the Complex Fast Fourier Transform?
The complex Fast Fourier Transform algorithm transforms N real or complex numbers into another N complex numbers. The complex FFT transforms a real or complex signal x in the time domain into a complex two-sided spectrum X in the frequency domain. You must remember that zero frequency corresponds to n = 0, positive frequencies 0 < f < f_c correspond to values 1 ≤ n ≤ N/2 −1, while negative frequencies −fc < f < 0 correspond to N/2 +1 ≤ n ≤ N −1. The value n = N/2 corresponds to both f = f_c and f = −f_c. f_c is the critical or Nyquist frequency with f_c = 1/(2*T) or half the sampling frequency. The first harmonic X corresponds to the frequency 1/(N*T).
The complex FFT requires the list of values (resolution, or N) to be a power 2. If the input size if not a power of 2, then the input data will be padded with zeros to fit the size of the closest power of 2 upward.
What is Real-Fast Fourier Transform?
Has conditions similar to the complex Fast Fourier Transform value, except that the input data must be purely real. If the time series data has the basic type complex64, only the real parts of the complex numbers are used for the calculation. The imaginary parts are silently discarded.
What is the Real-Fast Fourier Transform?
In many applications, the input data for the DFT are purely real, in which case the outputs satisfy the symmetry
X(N-k)=X(k)
and efficient FFT algorithms have been designed for this situation (see e.g. Sorensen, 1987). One approach consists of taking an ordinary algorithm (e.g. Cooley–Tukey) and removing the redundant parts of the computation, saving roughly a factor of two in time and memory. Alternatively, it is possible to express an even-length real-input DFT as a complex DFT of half the length (whose real and imaginary parts are the even/odd elements of the original real data), followed by O(N) post-processing operations.
It was once believed that real-input DFTs could be more efficiently computed by means of the discrete Hartley transform (DHT), but it was subsequently argued that a specialized real-input DFT algorithm (FFT) can typically be found that requires fewer operations than the corresponding DHT algorithm (FHT) for the same number of inputs. Bruun's algorithm (above) is another method that was initially proposed to take advantage of real inputs, but it has not proved popular.
There are further FFT specializations for the cases of real data that have even/odd symmetry, in which case one can gain another factor of roughly two in time and memory and the DFT becomes the discrete cosine/sine transform(s) (DCT/DST). Instead of directly modifying an FFT algorithm for these cases, DCTs/DSTs can also be computed via FFTs of real data combined with O(N) pre- and post-processing.
What is the Discrete Cosine Transform?
A discrete cosine transform ( DCT ) expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. The DCT , first proposed by Nasir Ahmed in 1972, is a widely used transformation technique in signal processing and data compression. It is used in most digital media, including digital images (such as JPEG and HEIF, where small high-frequency components can be discarded), digital video (such as MPEG and H.26x), digital audio (such as Dolby Digital, MP3 and AAC ), digital television (such as SDTV, HDTV and VOD ), digital radio (such as AAC+ and DAB+), and speech coding (such as AAC-LD, Siren and Opus). DCTs are also important to numerous other applications in science and engineering, such as digital signal processing, telecommunication devices, reducing network bandwidth usage, and spectral methods for the numerical solution of partial differential equations.
The use of cosine rather than sine functions is critical for compression, since it turns out (as described below) that fewer cosine functions are needed to approximate a typical signal, whereas for differential equations the cosines express a particular choice of boundary conditions. In particular, a DCT is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using only real numbers. The DCTs are generally related to Fourier Series coefficients of a periodically and symmetrically extended sequence whereas DFTs are related to Fourier Series coefficients of only periodically extended sequences. DCTs are equivalent to DFTs of roughly twice the length, operating on real data with even symmetry (since the Fourier transform of a real and even function is real and even), whereas in some variants the input and/or output data are shifted by half a sample. There are eight standard DCT variants, of which four are common.
The most common variant of discrete cosine transform is the type-II DCT , which is often called simply "the DCT". This was the original DCT as first proposed by Ahmed. Its inverse, the type-III DCT , is correspondingly often called simply "the inverse DCT" or "the IDCT". Two related transforms are the discrete sine transform ( DST ), which is equivalent to a DFT of real and odd functions, and the modified discrete cosine transform (MDCT), which is based on a DCT of overlapping data. Multidimensional DCTs ( MD DCTs) are developed to extend the concept of DCT to MD signals. There are several algorithms to compute MD DCT . A variety of fast algorithms have been developed to reduce the computational complexity of implementing DCT . One of these is the integer DCT (IntDCT), an integer approximation of the standard DCT ,: ix, xiii, 1, 141–304 used in several ISO /IEC and ITU-T international standards.
What is the Discrete Sine Transform?
In mathematics, the discrete sine transform (DST) is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using a purely real matrix. It is equivalent to the imaginary parts of a DFT of roughly twice the length, operating on real data with odd symmetry (since the Fourier transform of a real and odd function is imaginary and odd), where in some variants the input and/or output data are shifted by half a sample.
A family of transforms composed of sine and sine hyperbolic functions exists. These transforms are made based on the natural vibration of thin square plates with different boundary conditions.
The DST is related to the discrete cosine transform (DCT), which is equivalent to a DFT of real and even functions. See the DCT article for a general discussion of how the boundary conditions relate the various DCT and DST types. Generally, the DST is derived from the DCT by replacing the Neumann condition at x=0 with a Dirichlet condition. Both the DCT and the DST were described by Nasir Ahmed T. Natarajan and K.R. Rao in 1974. The type-I DST (DST-I) was later described by Anil K. Jain in 1976, and the type-II DST (DST-II) was then described by H.B. Kekra and J.K. Solanka in 1978.
Notable settings
windowper = period for calculation, restricted to powers of 2: "16", "32", "64", "128", "256", "512", "1024", "2048", this reason for this is FFT is an algorithm that computes DFT (Discrete Fourier Transform) in a fast way, generally in 𝑂(𝑁⋅log2(𝑁)) instead of 𝑂(𝑁2). To achieve this the input matrix has to be a power of 2 but many FFT algorithm can handle any size of input since the matrix can be zero-padded. For our purposes here, we stick to powers of 2 to keep this fast and neat. read more about this here: Cooley–Tukey FFT algorithm
SS = smoothing count, this smoothing happens after the first FCT regular pass. this zeros out frequencies from the previously calculated values above SS count. the lower this number, the smoother the output, it works opposite from other smoothing periods
Fmin1 = zeroes out frequencies not passing this test for min value
Fmax1 = zeroes out frequencies not passing this test for max value
barsback = moves the window backward
Inverse = whether or not you wish to invert the FFT after first pass calculation
Related indicators
Real-Fast Fourier Transform of Price Oscillator
STD-Stepped Fast Cosine Transform Moving Average
Real-Fast Fourier Transform of Price w/ Linear Regression
Variety RSI of Fast Discrete Cosine Transform
Additional reading
A Fast Computational Algorithm for the Discrete Cosine Transform by Chen et al.
Practical Fast 1-D DCT Algorithms With 11 Multiplications by Loeffler et al.
Cooley–Tukey FFT algorithm
Ahmed, Nasir (January 1991). "How I Came Up With the Discrete Cosine Transform". Digital Signal Processing. 1 (1): 4–5. doi:10.1016/1051-2004(91)90086-Z.
DCT-History - How I Came Up With The Discrete Cosine Transform
Comparative Analysis for Discrete Sine Transform as a suitable method for noise estimation
Heiken Ashi All TFI have always fighted to understand the market direction because it looks different on different timeframes.
I wanted an indicator where I can see all the different timeframes at once.
This indicator shows the Heiken Ashi candle colors for different time frames at once.
Use it on the 5 Minute timeframe.
4 colors:
dark green: bullis green HA candle with no low shadow.
green: green HA candle.
red: red HA candle
datk red: bearish red HA candle with non existing upper shadow.
the timeframes are by default:
5m 15m 30m 1H 4H 1D
can be adjusted if needed.
signals:
in the top line the Buy / Shell Signals are shown when the selected timeframes are all changed.
for example after a buy signal a sell signal will be printend when all the selected timeframes are turned into red or dark red.
Do not use it as a tranding signal, us it for confirmation.
It doesn't predict. it shows the market's current state.
Don't forget that the latest candles are based on the current value. The higher timeframe candle color depends on the current price.
If the higher timeframe close price so different that the HA candle color changes it reprins for all the affected 5m dots.
Buy/Sell on the levelsThis script is generally
My describe is:
There are a lot of levels we would like to buy some crypto.
When the price has crossed the level-line - we buy, but only if we have the permission in array(2)
When we have bought the crypto - we lose the permission for buy for now(till we will sell it on the next higher level)
When we sell some crypto(on the buying level + 1) we have the permission again.
There also are 2 protect indicators. We can buy if these indicators both green only(super trend and PIVOT )
Jun 12
Release Notes: Hello there,
Uncomment this section before use for real trade:
if array.get(price_to_sellBue, i) >= open and array.get(price_to_sellBue, i) <= close// and
//direction < 0 and permission_for_buy != 0
Here is my script.
In general - this is incredible simple script to use and understand.
First of all You can see this script working with only long orders, it means we going to get money if crypto grows only. Short orders we need to close the position on time.
In this script we buy crypto and sell with step 1% upper.
You can simply change the step by changing the price arrays.
Please note, if You want to see where the levels of this script is You Have to copy the next my indicator called LEVEL 1%
In general - if the price has across the price-level we buy some crypto and loose permission for buying for this level till we sell some crypto. There is ''count_of_orders" array field with value 2. When we bought some crypto the value turns to 0. 0 means not allowed to by on this level!!! The script buy if the bar is green only(last tick).
The script check every level(those we can see in "price_to_sellBue" array).
If the price across one of them - full script runs. After buying(if it possible) we check is there any crypto for sell on the level.
We check all levels below actual level( of actual level - ''i'' than we check all levels from 0 to i-1).
If there is any order that has value 0 in count of orders and index <= i-1 - we count it to var SELL amount and in the end of loop sell all of it.
Pay attention - it sells only if price across the level with red bar AND HAS ORDERS TO SELL WHICH WAS BOUGHT BELOW!!!
In Strategy tester it shows not-profitables orders sometimes, because if You have old Long position - it sells it first. First in - first out.
If the price goes down for a long time and You sell after 5 buys You sell the first of it with the highest value.
There is 2 protection from horrible buying in this strategy. The first one - Supertrend. If the supertrend is red - there is no permission for buy.
The second one - something between PIVOT and supertrend but with switcher.
If the price across last minimum - switcher is red - no permission for buy and the actual price becomes last minimum . The last maximum calculated for last 100 bars.
When the price across last maximum - switcher is green, we can buy. The last minimum calculation for last 100 bars, last maximum is actual price.
This two protections will save You from buying if price get crash down.
Enjoy my script.
Should You need the code or explanation, You have any ideas how to improve this crypt, contact me.
Vladyslav.
Jun 12
Release Notes: Here has been uncommented the protection for buy in case of price get down.
5 hours ago
Release Notes: Changed rages up to actual price to make it work
V/T Ratio: Onchain BTC MetricThis is a New Onchain metric that is designed for bitcoin by myself Mjshahsavar (Ghoddusifar), and it is published for the first time in this trading view in this post.
I think this metric has a very high capability to determine the ATH and bottom of the market. This metric can solve a problem that channels are unable to solve. this could be the equivalent of what is known in the stock market as P/E
Calculations:
V/T RATIO = MA (7) of Log ((THE TOTAL VOLUME OF BITCOIN TRANSFERRED ONCHAIN IN USD)/(THE TOTAL AMOUNT OF TRANSACTIONS))
INTERPRETATION:
What is the long-term price channel of Bitcoin? Have you ever thought that maybe drawing a price channel is not right and maybe we should look for something else?
Channel drawing for the price is a subjective and interpretive subject. Look at the charts below, they are all correct in terms of drawing, but no one can say which one will happen. There is no certainty because drawing them is objective.
But who can say which one will definitely work?
We need something more objective. I think V/T Ratio does that.
Just draw the channel. There is only one channel for it. And it has worked historically well to this day.
Compare the drawn channel with the price chart. It works right. When the metric reaches the top line of the channel, it indicates the new ATH and the end of the cycle.
When it reaches the bottom line of the channel, it indicates that the price has reached the bottom.
A Market Cycle:
According to this metric, the bitcoin cycle has 5 stages:
1- Bottom Price: which V/T Ratio touches the bottom line of the channel: In this case, we expect the price to reach the bottom.
2- Semi-high price: that the metric reaches the middle line of the channel: In this case, Bitcoin creates a local top in the MID-Term and Long-Term timeframes
3- Semi-low price: which has a metric return to the lower part of the channel (but the price can still increase)
4- ATH: that Bitcoin reaches its highest historical price
5- It starts after the ATH until the metric reaches the bottom part of the channel again.
seasonThis script is meant to help verify the existence of a seasonal effect in asset returns, using a Z-test. There are three steps:
1. Think of a way to identify a season. The available methods are: by month, by week of the year, by day of the month, by day of the week, by hour of the day, and by minute of the hour.
2. Set the chart to the unit of your season. For example, if you want to check whether a crop commodity's harvest season has a seasonal implication, select "month". If you want to investigate the exchange's opening or close, select "hour".
3. Using the inputs, select the unit (e.g. "month", "dayofweek", "hour", etc.) and the range that identifies the season. The example natural gas chart has set "start" to 8 and "end" to 12 for September through December.
The test logic is as follows:
The "season" you select has a fixed length; for example, months eight through twelve has a length of four. This length is used to compute a sample mean, which is the mean return of all September-December periods in the chart. It is also used to calculate the mean/stdev of every other four-month period in the chart history. The latter is considered the "population." Using a Z-test, the script scores the difference between the sample returns and the population returns, and displays the results at two levels of significance (P = 0.05 and P = 0.01). The null hypothesis is "there is no difference between the seasonal periods and the population of ordinary periods". If the Z-score is sufficiently large or small, we can reject the null hypothesis and say that there is a seasonal effect at the given level of confidence. The output table will show green for a rejection of the null hypothesis (meaning there is a seasonal effect) or red of acceptance (there is no seasonal effect).
The seasonal periods that you have defined will be highlighted on the chart, so you can make sure they are correct. Additionally, the output table shows the mean, median, standard deviation, and top and bottom percentiles for both the seasonal and population samples.
Many news sites, twitter feeds, influences, etc. enjoy posting statistics about past returns, like "the stock market has gone up on this day 85 out of the past 100 years" and so on. Unfortunately, these posts don't tell you that many of these statistics are meaningless, as even totally random price fluctuations will cause many such interesting figures to occur. This script provides a limited means of testing some such seasonal effects so you can see if they are probably just random, or if they may have some meaning.
Note that Tradingview seems to use 1-based indexing for daily or higher timeframes, and 0-based indexing for intraday timeframes:
Months: 1-12
Weeks: 1-52
Days (of month): 1-31
Days (of week): 1-7
Hours (of day): 0-23
Minutes (of hour): 0-59
S&P 500 Earnings Yield SpreadThis indicator compares the attractiveness of equities relative to the risk-free rate of return, by comparing the earnings yields of S&P 500 companies to the 10Y treasury yields. "Earnings yield" refers to the net income attributable to shareholders divided by the stock's price - effectively the inverse of the PE ratio. The tangible meaning of this metric is "the annual income received by (attributable to) shareholders as a percent of the price paid to receive said income." Therefore, earnings yield is comparable to bond yields, which are "the annual income received by bond holders as a percent of the price paid to receive said income."
This indicator subtracts the earnings yield of S&P 500 companies from the current 10-year treasury bond yield, creating a "spread" between the yields that determines whether equities are currently an attractive investment relative to bonds. That is, if the S&P 500 earnings yield exceeds the 10Y treasury yield, then equity investors are receiving more attributable income per dollar paid than bondholders, which could be an indication that equities are an attractive purchase relative to the risk-free rate. The same applies vice-versa; if the 10Y treasury yield exceeds that of the S&P 500 earnings yield, then equities may not be an attractive investment relative to the risk-free rate.
Since data on S&P 500 companies' earnings yields are pulled on a monthly basis, this indicator should be used on a monthly timeframe or longer. Historical data has shown that the critical zones for the indicator are at -4% and +3%, i.e. when equities are trading with a 4% greater yield than 10Y T-bonds and when equities are trading with a 3% lower yield than 10Y T-bonds, respectively. In the "Oversold" case (-4%), equities are trading at a steep discount to the risk-free rate and has often represented a strong buying opportunity. In the "Overbought" case (+3%), equities are trading at a premium to the risk-free rate, which may be an indication that caution should be exercised within the stock market. When the indicator first crosses into "Oversold" territory, this has historically been near a the bottom of a crash on the S&P 500. When the indicator first crosses into the "Overbought" territory, this has often precipitated a correction of 15% on the S&P 500.
Some notable "misses," crashes that this indicator missed, include the 1973 stock market crash and the 2008 global recession. However, both of these cases were largely precipitated by unprecedented economic events, as opposed to stocks simply being "Overbought" relative to treasury yields. Nonetheless, this indicator should form only a small portion of your fundamental analysis, as there are many macroeconomic factors that could lead to major corrections besides the impact of treasury yields. Furthermore, it should also be noted that since markets are "forward looking," future earnings growth or interest rate hikes may become "priced into" both the stock and bond markets, affecting the outputs of this indicator. However, since both the stock and bond markets should account for these factors simultaneously, the impact has historically been minimized.
I hope you find this indicator to be beneficial to your strategies. Stay safe, and happy trading.
PSv5 Color Magic and Chart Theme SimulatorKEEP YOUR COINS FOLKS! I DON'T NEED THEM, DON'T WANT THEM. Many other talented authors on TV deserve them.
INTRODUCTION:
This is my "PSv5 Color Magic and Chart Theme Simulator" displayed using Pine Script version 5.0. The purpose of this PSv5 colorcator is to show vivid colors that are most suitable in my opinion for modifying or developing Pine scripts. Whether you are new to Pine or an experienced Pine poet, this should aid you in developing indicators with stunning color from the provided color list that is easily copied and pasted into any novel script you should possess. Whichever colors you choose, and how, is up to your imagination's capacity.
COMMENTARY:
I have a thesis. Pine essentially is a gigantor calculator with a lot of programmable bells and whistles to perform intense analytics. Zillions of numbers per day are blended up into another cornucopia of numbers to analyze. The thing is, ALL of those numbers are moot unless we can informatively portray them in various colorized forms with unique methods to point out significant numeric events. By graphically displaying them with specific modes of operation, only then do these numbers truly make any sense to us and become quantitatively beneficial.
I have to admit... I hate numbers. I never really liked them, even before I knew what an ema() was. Some days I almost can't stand them, and on occasion I feel they deserve to be flushed down the toilet at times. However, I'm a stickler for a proper gauge of measurements. Numbers are a mental burden, but they do have "purpose and meaning". That's where COLOR comes in! By applying color in specific ways in varying dynamic forms, we can generate smarter visual aids from these numerics. Numbers can be "transformed" into something colorful it wasn't before, into a tool, like a hammer. But we don't need a hammer, we need an impressive jack hammer for BIG problem solving that we could never achieve in the not to distant past.
As time goes on, we analytically measure more, and more, and more each year. It's necessary to our continual evolution. That's one significant difference between us and cave men, and the pertinent reason why we are quickly evolving as a species, while animals haven't. Humankind is gifted to enumerate very well AND blessed to see in color. We use it for innumerable things in the technological present for purpose and pleasure. Day in and day out, we take color for granted, because it's every where we can look. The fact is, color is the most important apparatus in humankind's existence EVER. We wouldn't have survived this far without it.
By utilizing color to it's grand potential, greater advancements can be attained while simultaneously being enjoyed visually. Once color is transformed from it's numeric origins into applicable tools, we can enjoy the style, elegance, and QUALITATIVE nature of the indication that can be forged. Quantities can't reveal all. Color on the other hand has a handy "quality" factor to it, often revealing things we can't ordinarily recognize. When high quality tools provide us with obtained goals, that's when we will realize how magical color truly is, always has been, and shall always be.
The future emerging economies and future financial vessels of people around the globe are going to be dependent on the secured construction of intelligent applications with a rock solid color foundation, not just math alone. I have no doubt about that. I can envision that with my eyes closed. To make an informed choice, it should be charted or graphed somehow prior to a final executive decision to trade. Going back to abysmal black and white with double decimal points placed next to cartoons within extinction doomed newspapers is not a viable option any more.
OBSERVATIONS AND UTILITY:
One thing you will notice is the code is very dense. Looks almost hideous right? Well, the variable naming is lengthy, but it's purpose is to be self explanatory, even for those who don't know how to program, YET. I'm simply not a notation enthusiast. My main intention was to provide clearly identifiable variables from their origin of assignment to their intended destination of use, clearly visible for anyone visiting. The empowerment of well versed words that are easier to understand, is a close rival to the prominent influence color has.
Secondly, I'm displaying hline() and label.new() as prime candidates to exemplify by demonstration how the "Power of Color" can be embraced with the "Power of Pine". Color in Pine has been extensively upgraded to serve novel purposes to accomplish next generation indicators that do and WILL come to exist. New functions included with PSv5 are color.rgb(), color.from_gradient(), color.r(), color.g(), color.b(), and color.t() to accompany color.new() in our mutual TV adventures. Keep in mind, the extreme agility of color also extends to line.new(), the "entirely new" linefill.new(), table.new(), bgcolor() and every other function that may utilize color.
There's a wide range of adjustability in Settings to make selections to see how they perform on different backgrounds, with their size and form. As you curiously toy with those, you're going to notice how some jump out like laser beams while others don't. Things that aren't visually appealing, still have very viable purposes, even if they don't stand out in the crowd. Often, that's preferable. The important thing is that when pertinent information relative to indication is crucial, you can program it with distinction from an assortment of a potential 1.67 million colors that can be created in Pine. "These" are my chosen favorite few, and I hope you adopt them.
PURPOSES:
For those of you who are new to Pine Script, this also may help you understand color hex/rgb and how it is utilized in Pine in a most effective manner. The most skilled of programmers can garner perks as well. There is countless examples of code diversity present here that are applicable in other scripts with adequate mutation. Any member has the freedom use any of this code in this script any way they see fit. It's specifically intended for all. There is absolutely no need for accreditation for any of this code reuse ever, in the present case. Don't worry about, I'm not.
The color_tostring() will be most valuable in troubleshooting color when using color.rgb() and becoming adept with it. I'm not going to be able to use color.rgb() without it. Chameleon indicators of the polychromatic variety are most likely going to be fine tuned with color_tostring() divulging it's results to label.new() or even table.new() maybe. One the best virtues of this script in chart, is when you hover over the generated labels, there's a hidden gift for those who truly wish to learn the intricate mechanics of diverse color in Pine. Settings has informative tooltips too.
AFTERTHOUGHTS:
Colors are most vibrant on the "Black Chart" which is the default, but it doesn't currently exist as a chart theme. With the extreme luminous intensity of LCDs in millicandela( mcd ), you may notice "Light" charts may saturate the colors making charts challenging to analyze. Because of this, I personally use "Dark Charts" and design my indicators specifically for these. I hope this provides inspiration for the future developers who are contemplating the creation of next generation indicators and how color may enhance their usefulness.
When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members , I may implement more ideas when they present themselves as worthy additions. Have a profitable future everyone!
Reverse Cutlers Relative Strength Index On ChartIntroduction
The Reverse Cutlers Relative Strength Index (RCRSI) OC is an indicator which tells the user what price is required to give a particular Cutlers Relative Strength Index ( RSI ) value, or cross its Moving Average (MA) signal line.
Overview
Background & Credits:
The relative strength index ( RSI ) is a momentum indicator used in technical analysis that was originally developed by J. Welles Wilder Jr. and introduced in his seminal 1978 book, “New Concepts in Technical Trading Systems.”.
Cutler created a variation of the RSI known as “Cutlers RSI” using a different formulation to avoid an inherent accuracy problem which arises when using Wilders method of smoothing.
Further developments in the use, and more nuanced interpretations of the RSI have been developed by Cardwell, and also by well-known chartered market technician, Constance Brown C.M.T., in her acclaimed book "Technical Analysis for the Trading Professional” 1999 where she described the idea of bull and bear market ranges for RSI , and while she did not actually reveal the formulas, she introduced the concept of “reverse engineering” the RSI to give price level outputs.
Renowned financial software developer, co-author of academic books on finance, and scientific fellow to the Department of Finance and Insurance at the Technological Educational Institute of Crete, Giorgos Siligardos PHD . brought a new perspective to Wilder’s RSI when he published his excellent and well-received articles "Reverse Engineering RSI " and "Reverse Engineering RSI II " in the June 2003, and August 2003 issues of Stocks & Commodities magazine, where he described his methods of reverse engineering Wilders RSI .
Several excellent Implementations of the Reverse Wilders Relative Strength Index have been published here on Tradingview and elsewhere.
My utmost respect, and all due credits to authors of related prior works.
Introduction
It is worth noting that while the general RSI formula, and the logic dictating the UpMove and DownMove data series has remained the same as the Wilders original formulation, it has been interpreted in a different way by using a different method of averaging the upward, and downward moves.
Cutler recognized the issue of data length dependency when using wilders smoothing method of calculating RSI which means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until enough calculation iterations have occurred for convergence.
Hence Cutler proposed using Simple Moving Averaging for gain and loss data which this Indicator is based on.
Having "Reverse engineered" prices for any oscillator makes the planning, and execution of strategies around that oscillator far simpler, more timely and effective.
Introducing the Reverse Cutlers RSI which consists of plotted lines on a scale of 0 to 100, and an optional infobox.
The RSI scale is divided into zones:
• Scale high (100)
• Bull critical zone (80 - 100)
• Bull control zone (62 - 80)
• Scale midline (50)
• Bear control zone (20 - 38)
• Bear critical zone (0 - 20)
• Scale low (0)
The RSI plots which graphically display output closing price levels where Cutlers RSI value will crossover:
• RSI (eq) (previous RSI value)
• RSI MA signal line
• RSI Test price
• Alert level high
• Alert level low
The info box displays output closing price levels where Cutlers RSI value will crossover:
• Its previous value. ( RSI )
• Bull critical zone.
• Bull control zone.
• Mid-Line.
• Bear control zone.
• Bear critical zone.
• RSI MA signal line
• Alert level High
• Alert level low
And also displays the resultant RSI for a user defined closing price:
• Test price RSI
The infobox outputs can be shown for the current bar close, or the next bar close.
The user can easily select which information they want in the infobox from the setttings
Importantly:
All info box price levels for the current bar are calculated immediately upon the current bar closing and a new bar opening, they will not change until the current bar closes.
All info box price levels for the next bar are projections which are continually recalculated as the current price changes, and therefore fluctuate as the current price changes.
Understanding the Relative Strength Index
At its simplest the RSI is a measure of how quickly traders are bidding the price of an asset up or down.
It does this by calculating the difference in magnitude of price gains and losses over a specific lookback period to evaluate market conditions.
The RSI is displayed as an oscillator (a line graph that can move between two extremes) and outputs a value limited between 0 and 100.
It is typically accompanied by a moving average signal line.
Traditional interpretations
Overbought and oversold:
An RSI value of 70 or above indicates that an asset is becoming overbought (overvalued condition), and may be may be ready for a trend reversal or corrective pullback in price.
An RSI value of 30 or below indicates that an asset is becoming oversold (undervalued condition), and may be may be primed for a trend reversal or corrective pullback in price.
Midline Crossovers:
When the RSI crosses above its midline ( RSI > 50%) a bullish bias signal is generated. (only take long trades)
When the RSI crosses below its midline ( RSI < 50%) a bearish bias signal is generated. (only take short trades)
Bullish and bearish moving average signal Line crossovers:
When the RSI line crosses above its signal line, a bullish buy signal is generated
When the RSI line crosses below its signal line, a bearish sell signal is generated.
Swing Failures and classic rejection patterns:
If the RSI makes a lower high, and then follows with a downside move below the previous low, a Top Swing Failure has occurred.
If the RSI makes a higher low, and then follows with an upside move above the previous high, a Bottom Swing Failure has occurred.
Examples of classic swing rejection patterns
Bullish swing rejection pattern:
The RSI moves into oversold zone (below 30%).
The RSI rejects back out of the oversold zone (above 30%)
The RSI forms another dip without crossing back into oversold zone.
The RSI then continues the bounce to break up above the previous high.
Bearish swing rejection pattern:
The RSI moves into overbought zone (above 70%).
The RSI rejects back out of the overbought zone (below 70%)
The RSI forms another peak without crossing back into overbought zone.
The RSI then continues to break down below the previous low.
Divergences:
A regular bullish RSI divergence is when the price makes lower lows in a downtrend and the RSI indicator makes higher lows.
A regular bearish RSI divergence is when the price makes higher highs in an uptrend and the RSI indicator makes lower highs.
A hidden bullish RSI divergence is when the price makes higher lows in an uptrend and the RSI indicator makes lower lows.
A hidden bearish RSI divergence is when the price makes lower highs in a downtrend and the RSI indicator makes higher highs.
Regular divergences can signal a reversal of the trending direction.
Hidden divergences can signal a continuation in the direction of the trend.
Chart Patterns:
RSI regularly forms classic chart patterns that may not show on the underlying price chart, such as ascending and descending triangles & wedges , double tops, bottoms and trend lines etc.
Support and Resistance:
It is very often easier to define support or resistance levels on the RSI itself rather than the price chart.
Modern interpretations in trending markets:
Modern interpretations of the RSI stress the context of the greater trend when using RSI signals such as crossovers, overbought/oversold conditions, divergences and patterns.
Constance Brown, CMT , was one of the first who promoted the idea that an oversold reading on the RSI in an uptrend is likely much higher than 30%, and that an overbought reading on the RSI during a downtrend is much lower than the 70% level.
In an uptrend or bull market, the RSI tends to remain in the 40 to 90 range, with the 40-50 zone acting as support.
During a downtrend or bear market, the RSI tends to stay between the 10 to 60 range, with the 50-60 zone acting as resistance.
For ease of executing more modern and nuanced interpretations of RSI it is very useful to break the RSI scale into bull and bear control and critical zones.
These ranges will vary depending on the RSI settings and the strength of the specific market’s underlying trend.
Limitations of the RSI
Like most technical indicators, its signals are most reliable when they conform to the long-term trend.
True trend reversal signals are rare, and can be difficult to separate from false signals.
False signals or “fake-outs”, e.g. a bullish crossover, followed by a sudden decline in price, are common.
Since the indicator displays momentum, it can stay overbought or oversold for a long time when an asset has significant sustained momentum in either direction.
Data Length Dependency when using wilders smoothing method of calculating RSI means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until calculation iterations have occurred for convergence.
Reverse Cutlers Relative Strength IndexIntroduction
The Reverse Cutlers Relative Strength Index (RCRSI) is an indicator which tells the user what price is required to give a particular Cutlers Relative Strength Index (RSI) value, or cross its Moving Average (MA) signal line.
Overview
Background & Credits:
The relative strength index (RSI) is a momentum indicator used in technical analysis that was originally developed by J. Welles Wilder Jr. and introduced in his seminal 1978 book, “New Concepts in Technical Trading Systems.”.
Cutler created a variation of the RSI known as “Cutlers RSI” using a different formulation to avoid an inherent accuracy problem which arises when using Wilders method of smoothing.
Further developments in the use, and more nuanced interpretations of the RSI have been developed by Cardwell, and also by well-known chartered market technician, Constance Brown C.M.T., in her acclaimed book "Technical Analysis for the Trading Professional” 1999 where she described the idea of bull and bear market ranges for RSI, and while she did not actually reveal the formulas, she introduced the concept of “reverse engineering” the RSI to give price level outputs.
Renowned financial software developer, co-author of academic books on finance, and scientific fellow to the Department of Finance and Insurance at the Technological Educational Institute of Crete, Giorgos Siligardos PHD. brought a new perspective to Wilder’s RSI when he published his excellent and well-received articles "Reverse Engineering RSI " and "Reverse Engineering RSI II " in the June 2003, and August 2003 issues of Stocks & Commodities magazine, where he described his methods of reverse engineering Wilders RSI.
Several excellent Implementations of the Reverse Wilders Relative Strength Index have been published here on Tradingview and elsewhere.
My utmost respect, and all due credits to authors of related prior works.
Introduction
It is worth noting that while the general RSI formula, and the logic dictating the UpMove and DownMove data series as described above has remained the same as the Wilders original formulation, it has been interpreted in a different way by using a different method of averaging the upward, and downward moves.
Cutler recognized the issue of data length dependency when using wilders smoothing method of calculating RSI which means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until enough calculation iterations have occurred for convergence.
Hence Cutler proposed using Simple Moving Averaging for gain and loss data which this Indicator is based on.
Having "Reverse engineered" prices for any oscillator makes the planning, and execution of strategies around that oscillator far simpler, more timely and effective.
Introducing the Reverse Cutlers RSI which consists of plotted lines on a scale of 0 to 100, and an optional infobox.
The RSI scale is divided into zones:
• Scale high (100)
• Bull critical zone (80 - 100)
• Bull control zone (62 - 80)
• Scale midline (50)
• Bear critical zone (20 - 38)
• Bear control zone (0 - 20)
• Scale low (0)
The RSI plots are:
• Cutlers RSI
• RSI MA signal line
• Test price RSI
• Alert level high
• Alert level low
The info box displays output closing price levels where Cutlers RSI value will crossover:
• Its previous value. (RSI )
• Bull critical zone.
• Bull control zone.
• Mid-Line.
• Bear control zone.
• Bear critical zone.
• RSI MA signal line
• Alert level High
• Alert level low
And also displays the resultant RSI for a user defined closing price:
• Test price RSI
The infobox outputs can be shown for the current bar close, or the next bar close.
The user can easily select which information they want in the infobox from the setttings
Importantly:
All info box price levels for the current bar are calculated immediately upon the current bar closing and a new bar opening, they will not change until the current bar closes.
All info box price levels for the next bar are projections which are continually recalculated as the current price changes, and therefore fluctuate as the current price changes.
Understanding the Relative Strength Index
At its simplest the RSI is a measure of how quickly traders are bidding the price of an asset up or down.
It does this by calculating the difference in magnitude of price gains and losses over a specific lookback period to evaluate market conditions.
The RSI is displayed as an oscillator (a line graph that can move between two extremes) and outputs a value limited between 0 and 100.
It is typically accompanied by a moving average signal line.
Traditional interpretations
Overbought and oversold:
An RSI value of 70 or above indicates that an asset is becoming overbought (overvalued condition), and may be may be ready for a trend reversal or corrective pullback in price.
An RSI value of 30 or below indicates that an asset is becoming oversold (undervalued condition), and may be may be primed for a trend reversal or corrective pullback in price.
Midline Crossovers:
When the RSI crosses above its midline (RSI > 50%) a bullish bias signal is generated. (only take long trades)
When the RSI crosses below its midline (RSI < 50%) a bearish bias signal is generated. (only take short trades)
Bullish and bearish moving average signal Line crossovers:
When the RSI line crosses above its signal line, a bullish buy signal is generated
When the RSI line crosses below its signal line, a bearish sell signal is generated.
Swing Failures and classic rejection patterns:
If the RSI makes a lower high, and then follows with a downside move below the previous low, a Top Swing Failure has occurred.
If the RSI makes a higher low, and then follows with an upside move above the previous high, a Bottom Swing Failure has occurred.
Examples of classic swing rejection patterns
Bullish swing rejection pattern:
The RSI moves into oversold zone (below 30%).
The RSI rejects back out of the oversold zone (above 30%)
The RSI forms another dip without crossing back into oversold zone.
The RSI then continues the bounce to break up above the previous high.
Bearish swing rejection pattern:
The RSI moves into overbought zone (above 70%).
The RSI rejects back out of the overbought zone (below 70%)
The RSI forms another peak without crossing back into overbought zone.
The RSI then continues to break down below the previous low.
Divergences:
A regular bullish RSI divergence is when the price makes lower lows in a downtrend and the RSI indicator makes higher lows.
A regular bearish RSI divergence is when the price makes higher highs in an uptrend and the RSI indicator makes lower highs.
A hidden bullish RSI divergence is when the price makes higher lows in an uptrend and the RSI indicator makes lower lows.
A hidden bearish RSI divergence is when the price makes lower highs in a downtrend and the RSI indicator makes higher highs.
Regular divergences can signal a reversal of the trending direction.
Hidden divergences can signal a continuation in the direction of the trend.
Chart Patterns:
RSI regularly forms classic chart patterns that may not show on the underlying price chart, such as ascending and descending triangles & wedges, double tops, bottoms and trend lines etc.
Support and Resistance:
It is very often easier to define support or resistance levels on the RSI itself rather than the price chart.
Modern interpretations in trending markets:
Modern interpretations of the RSI stress the context of the greater trend when using RSI signals such as crossovers, overbought/oversold conditions, divergences and patterns.
Constance Brown, CMT, was one of the first who promoted the idea that an oversold reading on the RSI in an uptrend is likely much higher than 30%, and that an overbought reading on the RSI during a downtrend is much lower than the 70% level.
In an uptrend or bull market, the RSI tends to remain in the 40 to 90 range, with the 40-50 zone acting as support.
During a downtrend or bear market, the RSI tends to stay between the 10 to 60 range, with the 50-60 zone acting as resistance.
For ease of executing more modern and nuanced interpretations of RSI it is very useful to break the RSI scale into bull and bear control and critical zones.
These ranges will vary depending on the RSI settings and the strength of the specific market’s underlying trend.
Limitations of the RSI
Like most technical indicators, its signals are most reliable when they conform to the long-term trend.
True trend reversal signals are rare, and can be difficult to separate from false signals.
False signals or “fake-outs”, e.g. a bullish crossover, followed by a sudden decline in price, are common.
Since the indicator displays momentum, it can stay overbought or oversold for a long time when an asset has significant sustained momentum in either direction.
Data Length Dependency when using wilders smoothing method of calculating RSI means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until calculation iterations have occurred for convergence.
[blackcat] L1 Buff AverageLevel: 1
Background
This indicator buffs up your moving averages using the volume-weighting method presented in Buff Dormeier's article in 2001, "Buff Up Your Moving Averages." The weighting formula has been created as a function in pine script so that it can be referenced from any analysis technique or strategy. In addition, a simple two-line volume-weighted average indicator that references the function has also been included.
Function
The name of the volume-weighted average function is "BuffAverage()." The function has two inputs, price and length. The price input represents the price value upon which the average calculation is based. The length input represents the number of bars that are used in the calculation of the average. The two-line volume-weighted average indicator is presented. This indicator has three inputs. The price input represents the price value upon which the average calculation is based. The FastAvg input represents the number of bars to use in the fast volume-weighted average calculation. The SlowAvg input represents the number of bars to use in the slow volume-weighted average calculation. A simple alert criteria has also been included to provide an alert when the two lines cross.
Key Signal
FastBuff Line --> fast line in yellow;
SlowBuff Line --> slow line in fuchsia.
Remarks
This is a Level 1 free and open source indicator.
Feedbacks are appreciated.
Doji Hunter█ OVERVIEW
This script is built to search for 8 different Doji candlestick patterns in markets and makes them appear on screen with bar coloring and creating color-coded labels/shapes. It will identify the following variants based upon user input for various rules to abide by:
Gapping Up
Gapping Down
Gravestone
Dragonfly
Long-Legged
Rickshaw Man
Northern (Doji in uptrend)
Southern (Doji in downtrend)
Note: for the remainder of this description, the types for inputs will be marked by italic text.
█ OPTIONS
This script features a wide range of options available to the user to modify how it functions. The first set of inputs dictate how the trend analysis is done with moving averages. The second and third sets of inputs dictate specific rules for how Doji candles are analyzed and the colors used for when they appear.
█ INPUTS (short)
1 — Moving Average Rules:
The Northern and Southern Doji variants require some trend analysis which will be done by Moving Averages. The inputs in this section change various things about the moving average(s) to be used. In the second section of inputs, there is one boolean option that will nullify the need for trend detection and consolidates the Northern and Southern Doji variants into one.
2/3 — Doji Rules and Colors:
The next two sections of inputs correspond to the various rules that dictate how various doji variants will be analyzed, as well as the colors that correspond to each variant. The colors will also apply to each of the labels/shapes used.
4 — Diagnostics:
The last boolean will allow the user to see extra detail with regards to how and when dojis are detected. Note: This is not a part of any prior section and is simply included as a last functional item to the list of all inputs.
An example of multiple labels being shown on screen for various types of Dojis (DJI 1D chart):
█ INPUTS (extended)
1 — Moving Average Rules:
This section consists of 10 different inputs specific to the rules on how the moving average functions for trend analysis.
"Trend Rule" ( string list) determines which Moving Average will be used for trend detection. It has 3 options: "MA 1", "MA 2", or "BOTH". The second input "Trend Source" determines which OHLC (or combination) value to use in comparison to either MA 1 or MA 2 (EX: Trend Rule -> "MA 1" and Trend Source -> "close": if close > MA 1 -> uptrend, downtrend otherwise). If "BOTH" is selected then "Trend Source" is ignored and added nuance in the script ensures that the shorter MA being above the longer MA yields an uptrend (downtrend otherwise).
The next 8 inputs focus on 4 different parts of both MA 1 and 2.
Length ( integer(s) )
Color
Switch between SMA/EMA ( boolean(s) )
Source for MA
Note: Additional attention to detail has been made here as trend direction is ignored if "BOTH" is selected for the MA Rules and the lengths of both Moving Averages are set to be the same.
2/3 — Doji Rules and Colors:
The next two sections include 19 inputs that are related to how this script will analyze and identify the different variants of Doji candles.
"Identify Pattern On Close" ( boolean ) modifies which candles are to be used for determining when Doji candles are recognized. This changes an offset used for historical reference on some global variables which will force the script to only identify patterns after the current candle has closed.
"Doji Body Tolerance" ( float ) tells the script the maximum % the candle body may be of the high-low range to be considered a Doji candle.
"Doji Wick Sample" ( integer ) defines how many prior candles to sample from in calculating the current average upper and lower wick sizes.
"Simplify Northern/Southern Dojis" ( boolean ) makes this script ignore trend direction for Doji detection and consolidates Northern and Southern Dojis into being recognized as the same. This has an added effect of removing the plotted moving averages from the screen.
"Northern/Southern Display" ( string list ) that has multiple options for how Northern and Southern Dojis will be displayed on screen. Because of how labels may be extremely taxing on TradingView's servers to display, the default setting is "shapes" where Northern and Southern (N/S) Dojis will be marked with a colored triangle at the top of the candle. If "Simplify Northern/Southern Dojis" is true, all N/S Dojis will be marked with an x-cross instead. Other options include "labels" which enables the use of labels accompanied by their respective tooltip and color, or "none" where N/S Dojis will be only noticeable by their changed barcolor.
"Allow Gravestone/Dragonfly Shadows" ( boolean ) allows a bit of additional nuance to the definition of Gravestone or Dragonfly Dojis with small shadows.
"Gravestone/Dragonfly Shadow Tolerance" ( float ) defines the maximum % that the lower wick/upper wick (respectively) may be relative to the high-low range for Gravestone or Dragonfly Dojis to still be considered valid.
"Doji Long Wick Setting" ( string list) is a list of settings for three different ways of confirming if a Doji is Long-Legged. The settings are "one", "two", and "average". These define how many wick lengths of a candle need to exceed the calculated average wick lengths (EX: "both" -> upper wick length > upper wick average and lower wick length > lower wick average). The "average" setting will combine the lengths of both wicks and both prior wick averages, divide both of these sums by 2 and compare them instead.
"Doji Long Wick Tolerance" ( float ) defines how large compared to the averages that wick lengths need to be in order for them to be considered "Long-Legged" (EX: 1.50 -> upper/lower wick needs to exceed 150% the average of previous upper/lower wicks).
"Rickshaw Man Body Placement Tolerance" ( float ) defines how close to the high-low range's midpoint the candle body's midpoint needs to be in order for it to be considered a Rickshaw Man Doji candle instead.
The remaining 9 inputs define the colors to use for differentiating between all Doji variants this script will recognize.
█ USAGE
My hope for this script is that users find this easy to use/understand and will tinker with the input values to better identify Doji candlesticks across a wide range of markets.
Suggestions for changes in the future are welcome.
Squeeze Momentum [Plus]The "Momentum" in this indicator is smoothed out using linear regression. The Momentum is what is displayed on the indicator as a histogram, its purpose is obvious (to show momentum).
What is a Squeeze? A squeeze occurs when Bollinger Bands tighten up enough to slip inside of Keltner Channels .
This is interpreted as price is compressing and building up energy before releasing it and making a big move.
Traditionally, John Carter's version uses 20 period SMAs as the basis lines on both the BB and the KC.
In this version, I've given the freedom to change this and try out different types of moving averages.
The original squeeze indicator had only one Squeeze setting, though this new one has three.
The gray dot Squeeze, call it a "low squeeze" or an "early squeeze" - this is the easiest Squeeze to form based on its settings.
The orange dot Squeeze is the original from the first Squeeze indicator.
And finally, the yellow dot squeeze, call it a "high squeeze" or "power squeeze" - is the most difficult to form and suggests price is under extreme levels of compression.
Now to explain the parameters:
Squeeze Input - This is just the source for the Squeeze to use, default value is closing price.
Length - This is the length of time used to calculate the Bollinger Bands and Keltner Channels .
Bollinger Bands Calculation Type - Selects the type of moving average used to create the Bollinger Bands .
Keltner Channel Calculation Type - Selects the type of moving average used to create the Keltner Channel.
Color Format - you to choose one of 5 different color schemes.
Draw Divergence - Self explanatory here, this will auto-draw divergence on the indicator.
Gray Background for Dark Mode - to make them more visually appealing.
Added ADX (Average Directional Index) that measure a trend’s strength. The higher the ADX value, the stronger the trend. The ADX line is white when it has a positive slope, otherwise it is gray. When the ADX has a very large dispersion with respect to the momentum histogram, increase the scale number.
Added "H (Hull Moving Average) Signal". Hull is a extremely responsive and smooth moving average created by Alan Hull in 2005. Have option to chose between 3 Hull variations.
Added "Williams Vix Fix" signal. The Vix is one of the most reliable indicators in history for finding market bottoms. The Williams Vix Fix is simply a code from Larry Williams creating almost identical results for creating the same ability the Vix has to all assets.
The VIX has always been much better at signaling bottoms than tops. Simple reason is when market falls retail traders panic and increase volatility, and professionals come in and capitalize on the situation. At market tops there is no one panicking... just liquidity drying up.
The FE green triangles are "Filtered Entries"
The AE green triangles are "Aggressive Filtered Entries"
WaveTrend MultiEMAThis is a modification of LazyBear's WaveTrend. The SMA trend has been removed and a shorter time frame EMA has been added in black. The idea is to buy when the shorter time frame starts to curl up and the longer time frame, green, has started to either flatten out or curl up too. Sell when the shorter time frame has started down and green has either flattened or bottomed out as well. The black line will generate some noise so the key is to use the two in combination. My final goal would be to have the green line looking at daily candles and the black line looking at a 2 or 4 hour candle, but I haven't figured out how to do that.
Tenkansen&Kijunsen LinesYou can see 2 sections on this script
1. Kijunsen Lines Section
Basicly calculated by adding the highest high and the lowest low over the past 26 periods and dividing the result by two.
Kijunsen Lines section has 4 lines
a. 60 Minutes Kijunsen
b. 240 Minutes Kijunsen
c. 1 Day Kijunsen
d. 1 Week Kijunsen
You can see all 4 kijunsen at all periods.
2. Tenkansen Lines Section
Basicly calculated by adding the highest high and the highest low over the past nine periods and then dividing the result by two
Tenkansen Lines section has 4 lines
a. 60 Minutes Tenkansen
b. 240 Minutes Tenkansen
c. 1 Day Tenkansen
d. 1 Week Tenkansen
You can see all 4 tenkansen at all periods.
With this you can see 4 kijunsen and 4 tenkansen lines without changing periods. (May have some calculating problems. Because of different candle systems.)
This indicator has 2 functions
A. Support Function
All kijunsen and all tenkansen lines has support function.
B. Resistance Function
All kijunsen and all tenkansen lines has resistance function.
RSI-VWAP Indicator %█ OVERALL
Simple and effective script that, as you already know, uses vwap as source of the rsi, and with good results as long as the market has no long-term downtrend.
RsiVwap = rsi (vwap (close), Length)
The default settings are for BTC in a 30 minute time frame. For other pairs and time frames you just have to play with the settings.
█ FEATURES
• The option to start trading from a certain date has been added.
• To make the profit more progressive, a percentage of your equity is used for entries and a percentage of your position is used for closings.
• The option to trade in Spot mode has been added, since, for the TradingView backtest, the money is infinite and if you do not limit it somehow,
it would offer you much better profits than the live trading.
QuantityOnLong = Spot ? (EquityPercent / 100) * ((strategy.equity / close) - strategy.position_size) : (EquityPercent / 100) * (strategy.equity / close)
• The option to stop the system when the drawdown exceeds the fixed limit has been added.
Drawdown, as you already know, is a very important measure of risk in trading systems.
The maximum drawdown will tell us what the maximum loss of a trading system has been during a period. This maximum loss is determined by:
strategy.risk.max_drawdown(Risk, strategy.percent_of_equity)
• Leverage plotted on labels added.
█ ALERTS
To enjoy the benefits of automatic trading, TradingView alerts can be used as direct buy-sell orders on spot, or long-close orders with leverage.
Currently there are Chrome extensions that act as a bridge between TradingView and your Exchange or Broker.
This is an example of syntax for this type of extensions. Copy and paste a message like this into the alert window:
{{strategy.order.action}} @ {{strategy.order.price}} | e = {{exchange}} a = account s = {{ticker}} b = {{strategy.order.action}} {{strategy.order.alert_message}}
█ NOTE
Certain Risks of Live Algorithmic Trading You Should Know:
• Backtesting cannot assure actual results.
• The relevant market might fail or behave unexpectedly.
• Your broker may experience failures in its infrastructure, fail to execute your orders in a correct or timely fashion or reject your orders.
• The system you use for generating trading orders, communicating those orders to your broker, and receiving queries and trading results from your broker may fail.
• Time lag at various point in live trading might cause unexpected behavior.
• The systems of third parties in addition to those of the provider from which we obtain various services, your broker, and the applicable securities market may fail or malfunction.
█ THANKS
Thanks to TradingView, its Pine code, its community and especially those Pine wizards who post their ideas that helps us to learn.
If the world is heading toward a equitable new world economic order, let's get rich first ...
Happy trading!
Price Action - Support & Resistance by DGTSᴜᴘᴘᴏʀᴛ ᴀɴᴅ Rᴇꜱɪꜱᴛᴀɴᴄᴇ , is undoubtedly one of the key concepts of technical analysis
█ Sᴜᴘᴘᴏʀᴛ ᴀɴᴅ Rᴇꜱɪꜱᴛᴀɴᴄᴇ Dᴇꜰɪɴɪᴛɪᴏɴ
Support and Resistance terms are used by traders to refer to price levels on charts that tend to act as barriers, preventing the price of an financial instrument from getting pushed in a certain direction.
A support level is a price level where buyers are more aggressive than sellers. This means that the price is more likely to "bounce" off this level rather than break through it. However, once the price has breached this level it is likely to continue falling until meeting another support level.
A resistance level is the opposite of a support level. It is where the price tends to find resistance as it rises. Again, this means that the price is more likely to "bounce" off this level rather than break through it. However, once the price has breached this level it is likely to continue rising until meeting another resistance level.
A previous support level will sometimes become a resistance level when the price attempts to move back up, and conversely, a resistance level will become a support level as the price temporarily falls back.
█ Iᴅᴇɴᴛɪꜰʏɪɴɢ Sᴜᴘᴘᴏʀᴛ ᴀɴᴅ Rᴇꜱɪꜱᴛᴀɴᴄᴇ
Support and resistance can come in various forms, and the concept is more difficult to master than it first appears. Identification of key support and resistance levels is an essential ingredient to successful technical analysis.
If the price stalls and reverses in the same price area on minimum of two different occasions, then a horizontal line is drawn to show that the market is struggling to move past that area. Those areas are static barriers, one of the most popular forms of support/resistance and are highlighted with horizontal lines.
Repeated test , the more often a support/resistance level is "tested" over an extended period of time (touched and bounced off by price), the more significance is given to that specific level
High volume , the more buying and selling that has occurred at a particular price level, the stronger the support or resistance level is likely to be
Market psychology , plays a major role as traders and investors remember the past and react to changing conditions to anticipate future market movement.
Psychological levels , is a price level that significantly affects the price of an underlying financial instrument. Typically, near round numbers often serve as support and resistance
The following support and resistance related topics are beyond the scope of this study, so they will be mentioned roughly only as a reference for support and resistance concept
Trendlines , Support and resistance levels in trends are dynamic. Throughout an uptrend, levels of support tend to look like a trendline, usually clustering around higher lows. As the price rises, the price where buyers consider the stock to be “too cheap” also changes, which creates new support levels on the way up. The same is also true for resistance levels. In an uptrend, a stock is continuously breaking through perceived resistance levels and making new highs
Moving Averages , is a constantly changing line that smooths out past price data while also allowing the trader to identify support and resistance. In the example Notice how the price of the asset finds support at the moving average when the trend is up, and how it acts as resistance when the trend is down
The Fibonacci Retracement/Extension tool , is a favorite among many short-term traders because it clearly identifies levels of potential support and resistance
Pivot Point Calculations , is another common technical analysis technique, where pivot point is calculated based on the high, low, and closing prices of previous trading session/day and support & resistance levels are projected based on the pivot point, different calculation techniques are available, as presented in this example of an pivot point indicator : PVTvX by DGT
█ Tʀᴀᴅɪɴɢ Bᴀꜱᴇᴅ ᴏɴ Sᴜᴘᴘᴏʀᴛ ᴀɴᴅ Rᴇꜱɪꜱᴛᴀɴᴄᴇ
Once an area or "zone" of support or resistance has been identified, those price levels can serve as potential entry or exit points because, as a price reaches a point of support or resistance, it will do one of two things—bounce back away from the support or resistance level (trading ranges), or violate the price level and continue in its direction (trading breakouts) —until it hits the next support or resistance level
The basic trading method for using support and resistance is to buy near support in uptrends or the parts of ranges or chart patterns where prices are moving up and to sell/sell short near resistance in downtrends or the parts of ranges and chart patterns where prices are moving down. Buying near support or selling near resistance can pay off, but there is no assurance that the support or resistance will hold. Therefore, consider waiting for some confirmation that the market is still respecting that area
Trading breakouts, a breakout is a potential trading opportunity that occurs when an asset's price moves above a resistance level or moves below a support level on increasing volume. The first step in trading breakouts is to identify current price trend patterns along with support and resistance levels in order to plan possible entry and exit points. Once the asset trades beyond the price barrier, volatility tends to increase and prices usually trend in the breakout's direction. Breakouts are such an important trading strategy since these setups are the starting point for future volatility increases, large price swings and, in many circumstances, major price trends. When trading breakouts, it is important to consider the underlying asset's support and resistance levels. The more times an asset price has touched these areas, the more valid these levels are and the more important they become. At the same time, the longer these support and resistance levels have been in play, the better the outcome when the asset price finally breaks out. Asset prices will often move slightly further than we expect them to. This doesn't happen all the time, but when it does it is called a false breakout. Therefore it is important to consider waiting for some confirmation while trading breakouts. It’s also popular for traders to sell 50% of their positions at the resistance level, and hold the rest in anticipation of a breakout above resistance
█ Pʀɪᴄᴇ Aᴄᴛɪᴏɴ - Sᴜᴘᴘᴏʀᴛ & Rᴇꜱɪꜱᴛᴀɴᴄᴇ ʙʏ DGT Sᴛᴜᴅʏ
This experimental study attempts to identify the support and resistance levels. Assumes a simple logic to discover moments where the price is rising or falling consecutively for minimum 3 bars with the condition volume increases on each bar and the last bar’s volume should be bigger than the long term volume moving average. A line will be drawn at the end of the move (highest or lowest, depending on the move direction), the line will be drawn at minimum on the 3rd bar and if condition holds for other consecutive bars the line will switch to 4th, 5th etc bar.
Lines will not be deleted so the historical ones will remain and will emphasis the levels significance when they overlap in feature. Strong levels are more likely to hold and cause the price to move in the other direction, whereas the minor levels may only cause the price to pause and keep moving in the same direction. Determining future levels of support and resistance can drastically improve the returns of a short-term investing strategy
Bar colors will be painted based on the volume of the specific bar to its long term volume moving average. This will help identifying the support and resistance levels significance and emphasis the sings of breakouts
Finally, Volume spikes will be marked on top of the price chart. A high volume usually indicates more interest in the security and the presence of institutional traders. However, a rapidly rising price in an uptrend accompanied by a huge volume may be a sign of exhaustion. Traders usually look for breaks of support and resistance to enter positions. When security break critical levels without volume , you should consider the breakout suspect and prime for a reversal off the highs/lows. Volume spikes are often the result of news-driven events. Volume spike will often lead to sharp reversals since the moves are unsustainable due to the imbalance of supply and demand
A good example with many support and resistance concepts observed on a stock chart and detected by the study
Settings:
Length of volume moving average, where volume moving average is used to detect support and resistance levels, is used as reference to compare with threshold values for volume spikes and colors of the bars
Hint, to get more historical lines scrolling chart to left will enable visualization of them. Please note they may appear to much all 500 line limit is used 😉
Special thanks to @HEMANT Telegram user, for his observations and suggestions
Disclaimer:
Trading success is all about following your trading strategy and the indicators should fit within your trading strategy, and not to be traded upon solely
The script is for informational and educational purposes only. Use of the script does not constitute professional and/or financial advice. You alone have the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold dgtrd TradingView user liable for any possible claim for damages arising from any decision you make based on use of the script
MrBS:Directional Movement Index [Trend Friend Strategy]This goes with my MrBS:DMI+ indicator. I originally combined them into one, but then you cannot set alerts based on what the ADX and DMI is doing, only strategy alerts, so separate ones have more flexibility and uses.
Indicator Version is found under "MrBS:Directional Movement Index " ()
//// THE IDEA
The majority of profits made in the market come from trending markets. Of course there are strategies that would say otherwise but for the majority of people, THE TREND IS YOUR FRIEND (until the end). The idea is to follow the trend, entering once it has established its self and exiting positions when the trend weakens. This strategy gives a rough idea of the returns produced from following purely the ADX signals. At first Heikin Ashi values were used for the calculation but the results show it's not that effective. The functionality to switch between calculation types has been left in, so we can uses HA candle data to generate signals from while looking at an OHLC chart, if we want to experiment. Due to the way strategies work, we are unable to get reliable results when running the strategy on the HA chart even if we are calculating the signals from the real OHLC values. It is best to always run strategies on standard charts.
When using this strategy, I look for confirmation of the signal based on stochastic (14:3:6) direction, reversal level of stochastic, and divergance, to add confidence and adjust position size accordingly. I am going to try and code some version of that in future updates, if anyone can help or has suggestions please drop me a message.
//// INDICATOR DETAILS
- The default settings are for optimized Daily charts, for 4 hour I would suggest a smoothing of 2.
- The default values used for calculation are the Real OHLC, we can change this to Heikin Ashi in the menu.
- The strategy enters a position when ADX crosses the threshold level, and closes the position when ADX starts to fall.
- There is a signal filter in the form of a 377 period Hull Moving Average, which the price must be above or bellow for long and short positions respectively.
- The strategy closes the position when a cross-under of the ADX and its 4 period EMA. This is an attempt to stay into positions longer as sometimes the ADX will fall for 1 bar and then keep rising, while the overall trend is strong. The downside to this is that we exit trades later and this affects our max drawdown.