Indicator

Minimum Variance SMAReturn the value of a simple moving average with a period within the range min to max such that the variance of the same period is the smallest available.
Since the smallest variance is often the one with the smallest period, a penalty setting is introduced, and allows the indicator to return moving averages values with higher periods more often, with higher penalty values returning moving averages values with higher periods.
Because variances with smaller periods are more reactive than ones with higher periods, it is common for the indicator to return the value of an SMA of a higher period during more volatile market, this can be seen on the image below:
here variances from period 10 to 15 are plotted, a blueish color represents a higher period, note how they are the smallest ones when fluctuations are more volatile.
Indicator with min = 50, max = 200 and penalty = 0.5
In blue the indicator with penalty = 0, in red with penalty = 1, with both min = 50 and max = 200.
On The Script
The script minimize Var(i)/p with i ∈ (min,max) and p = i^penalty , this is done by computing the variance for each period i and keeping the smallest one currently in the loop, if we get a variance value smaller than the previously one found we calculate the value of an SMA with period i , as such the script deal with brute force optimization.
For our use case it is not possible to use the built-in sma and variance functions within a loop, as such we use cumulative forms for both functions. Indicator

Indicator

SIMPLE MOVING AVG 10,20,50,100,200 with RESOLUTIONThis indicator is the best than all other sma indicators.Because in just one click you can change all the resolution /time frames for all the sma .
Multitime frame analysis can be done in just one click. just change the resolution to
15 min/30 min/1hr- if you intraday trader
1D- LONG TERM INVESTORS.
Multi-timeframe analysis (MTF) is a process in which traders can view the same ticker/indicator using a higher time frame than the chart’s, for example, displaying a daily moving average on a one-hour chart in just two clicks.
How to Use this to Buy Stocks ?
The technical indicator known as the Death cross occurs when the 50-day SMA crosses below the 200-day SMA => Bearish Signal.
An opposite indicator, known as the Golden cross, occurs when the 50-day SMA crosses above the 200-day SMA => Bullish Signal.
Crossovers are one of the main moving average strategies.
1st Strategy is the first type is a price crossover, which is when the price crosses above the sma => Buy signal
when the price crosses below the sma => Sell signal
2nd Strategy is to apply two moving averages to a chart: one longer and one shorter.
When the shorter-term MA (100) crosses above the longer-term MA (200), it's a buy signal, indicates trend is shifting up.
This is known as a "Golden cross."
Meanwhile, when the shorter-term MA (100) crosses below the longer-term MA (200), it's a sell signal, indicates trend is shifting down.
This is known as a "Dead/death cross."
The time frame or length you choose for a moving average, also called the "look back period," can play a big role in how effective it is.
An MA with a short time frame will react much quicker to price changes than an MA with a long look back period. In the figure below, the 20-day moving average more closely tracks the actual price than the 100-day moving average does.
A 20-day MA = more beneficial to a shorter-term trader, since it follows the price more closely.
A 100-day MA = more beneficial to a longer-term trader.
Moving averages work quite well in strong trending conditions but poorly in choppy or ranging conditions.
use this indicator along with Price action theory and not alone.
Moving average crossovers are a popular strategy for both entries and exits. MAs can also highlight areas of potential support or resistance
Happy Trading Indicator

Indicator

Percentage Of Rising MA'sReturn the percentage of rising moving averages with periods in a custom range from min to max , with the possibility of using different types of moving averages.
Settings
Minimum MA Length Value : minimum period of the moving average.
Maximum MA Length Value : maximum period of the moving average.
Smooth : determine the period of an EMA using the indicator as input, 1 (no smoothing) by default.
Src : source input for the moving averages.
Type : type of the moving averages to be analyzed, available options are "SMA", "WMA" and "TMA", by default "SMA".
Usages
The indicator can return information about the main direction of a trend as well as its overall strength. A value of the indicator above 50 implies that more than 50% of the moving averages from period min to max are rising, this would suggest an uptrend, while a value inferior to 50 would suggest a down-trend.
On the chart, a ribbon consisting of simple moving averages from period 14 to 19, with a color indicating their direction, below the indicator with min = 14 and max = 19
The strength of a trend can be determined by how close the indicator is to 0 or 100, a value of 100 would imply that 100% percent of the moving averages are rising, this indicates a strong up-trend, while a value of 0 would suggest a strong down-trend.
Using different types of moving averages can allow to have more reactive or on the contrary, less noisy results.
Here the type of moving average used by both the ribbon and the indicator is the WMA, the WMA is more reactive than the SMA at the cost of providing less amount of filtering. On the other hand, using a triangular moving average (TMA) provide more filtering at the cost of being less reactive.
Finally, irregularities in the indicator output can be removed by using the smooth setting.
Above smooth = 50.
Details
The indicator is based upon a for loop, this implies that both the sma, wma or change functions are not directly usable, fortunately for us, it is possible to get the first difference of both the SMA, WMA and TMA without relying on a loop by using simple calculations.
The first difference of an SMA of period p is simply a momentum oscillator of period p divided by p , there are two ways to explain why this is the case, first, simple math can prove this, the first difference of an SMA is given by:
(x + x + ... + x )/p - (x + x + ... + x )/p
The repeating terms cancel each other out, as such, we end up with
(x - x )/p
which is simply a momentum oscillator divided by p , since this division doesn't change the sign of the output we can leave it out. We can also use impulses responses to prove this, the impulse response of a simple moving average is rectangular, taking the first difference of this impulse response will give the impulse response of a momentum oscillator, with the only difference being that the non-zero values of the result will be equal to 1/p instead of 1.
The same thing applies to the WMA
above the impulse response of the first difference of a WMA, we can see it is extremely similar to the one of a high pass SMA, only 1 bar longer, as such we can have the first difference of a WMA quite easily. The TMA is simply a 2 pass SMA (the SMA of an SMA), as such the solution is also simple.
Indicator

Strategy

Indicator

SMA's AverageReturn the average of simple moving averages with periods starting from min to max that is:
avg(sma(src,min),sma(src,min+1),...,sma(src,max))
The user can choose three types of weightings for the average, "simple", "linear", and "least squares".
Settings
Min : minimum period of the sma
Max : maximum period of the man, must be higher than "Min"
Src : input data of the indicator
Type : type of weighting, available options are "Simple", "Linear" or "Least Squares", by default "Simple"
Usage
The moving average can be used like any other classical moving average. The different types of weightings change the behavior of the moving average, the simple weighting will weight all the moving averages equally, a linear weighting will use the weighting function of a WMA, as such moving averages with lower periods will receive higher weights, this decrease the lag of the moving average. Finally, the least-squares weighting uses the weighting function of a least-squares moving average, this allows to drastically reduce the lag of the moving average.
in red the moving average using simple weighting, in blue linear weighting, and in orange least squares weighting, with all using min = 14 and max = 28.
In red the moving average with min = 50 and max = 200, in blue a LSMA of period 200, notice how the moving average has less overshoots.
Details
Computing the average of various simple moving averages is simple, remember that a simple moving average can be computed using a cumulative sum:
Sma = change(cum(src),length)/length
we can't compute various "sma" functions with changing length argument within a for loop, but we can still differentiate within it, as such the cumulative sum method is super efficient and convenient.
The impulse response of this moving average is rectangular for the first "min" values, then the impulse is tailed, with the weighting method defining the shape of the tail.
in red the simple weighting method, in blue the linear method, and in orange the least-squares method.
Our moving average is an FIR moving average, as such the output lag is a linear characteristic of the moving average, which imply that:
Lag = Avg(lag(Sma(min)),lag(Sma(min+1))...,lag(max))
where lag is the lag of the moving average, in the case of a simple weighting we have:
Lag = Avg((min-1)/2,(min+1-1)/2,...,(max-1)/2) = Avg((min-1)/2,(max-1)/2)
a linear weighting gives a lag of:
Lag = Avg((min-1)/3,(min+1-1)/3,...,(max-1)/3) = Avg((min-1)/3,(max-1)/3)
Summary
A script computing the average of various moving averages has been presented, this MA might not be super useful to the everyday analyst but it stills have some great potential. Thx for reading.
This indicator is dedicated to my sister Lea, happy birthday kokoro Indicator

Strategy

Indicator

Indicator

Strategy

Indicator

Indicator

Computing The Linear Regression Using The WMA And SMAPlot a linear regression channel through the last length closing prices, with the possibility to use another source as input. The line is fit by using linear combinations between the WMA and SMA thus providing both an interesting and efficient method. The results are the same as the one provided by the built-in linear regression, only the computation differ.
Settings
length : Number of inputs to be used.
src : Source input of the indicator.
mult : Multiplication factor for the RMSE, determine the distance between the upper and lower level.
Usage
In technical analysis a linear regression can provide an estimate of the underlying trend in the price, this result can be extrapolated to have an estimate of the future evolution of the trend, while the upper and lower level can be used as support and resistance levels.
The slope of the fitted line indicates both the direction and strength of the trend, with a positive slope indicating an up-trending market while a negative slope indicates a down-trending market, a steeper line indicates a stronger trend.
We can see that the trend of the S&P500 in this chart is approximately linear, the upper and lower levels were previously tested and might return accurate support and resistance points in the future.
By using a linear regression we are making the following assumptions:
The trend is linear or approximately linear.
The cycle component has an approximately constant amplitude (this allows the upper and lower level to be more effective)
The underlying trend will have the same evolution in the future
In the case where the growth of a trend is non-linear, we can use a logarithmic scale to have a linear representation of the trend.
Details
In a simple linear regression, we want to the slope and intercept parameters that minimize the sum of squared residuals between the data points and the fitted line
intercept + x*slope
Both the intercept and slope have a simple solution, you can find both in the calculations of the lsma, in fact, the last point of the lsma with period length is equal to the last point of a linear regression fitted through the same length data points. We have seen many times that the lsma is an FIR filter with a series of coefficients representing a linearly decaying function with the last coefficients having a negative value, as such we can calculate the lsma more easily by using a linear combination between a WMA and SMA: 3WMA - 2SMA , this linear combination gives us the last point of our linear regression, denoted point B .
Now we need the first point of our linear regression, by using the calculations of the lsma we get this point by using:
intercept + (x-length+1)*slope
If we get the impulse response of such lsma we get
In blue the impulse response of a standard lsma, in red the impulse response of the lsma using the previous calculation, we can see that both are the same with the exception that the red one appears as being time inverted, the first coefficients are negative values and as such we also have a linear operation involving the WMA and SMA but with inverted terms and different coefficients, therefore the first point of our linear regression, denoted point A , is given by 4SMA - 3WMA , we then only need to join these two points thanks to "line.new".
The levels are simply equal to the fitted line plus/minus the root mean squared error between the fitted line and the data points, right now we only have two points, we need to find all the points of the fitted line, as such we first need to find the slope, which can be calculated by diving the vertical distance between B and A (the rise) with the horizontal distance between B and A (the run), that is
(A - B)/(length-1)
Once done we can find each point of our line by using
B + slope*i
where i is the position of the point starting from B, i=0 give B since B + slope*0 = B , then we continue for every i , we then only need to sum the squared distance between each closing prices at position i and the point found at that same position, we divide by length-1 and take the square root of the result in order to have the RMSE.
In Summary
The following post as shown that it was possible to compute a linear regression by using a linear combination between the WMA and SMA, since both had extremely efficient computations (see link at the end of the post) we could have a calculation for the linear regression where the number of operations is independent of length .
This post took me eons to make because it's related to the lsma, and I am rarely short on words when it comes to anything related to the lsma. Thx to LucF for the feedback and everything.
Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator

Indicator
