Hurst Future Lines of Demarcation StrategyJ. M. Hurst introduced a concept in technical analysis known as the Future Line of Demarcation (FLD), which serves as a forward-looking tool by incorporating a simple yet profound line into future projections on a financial chart. Specifically, the FLD is constructed by offsetting the price half a cycle ahead into the future on the time axis, relative to the Hurst Cycle of interest. For instance, in the context of a 40 Day Cycle, the FLD would be represented by shifting the current price data 20 days forward on the chart, offering an idea of future price movement anticipations.
The utility of FLDs extends into three critical areas of insight, which form the backbone of the FLD Trading Strategy:
A price crossing the FLD signifies the confirmation of either a peak or trough formation, indicating pivotal moments in price action.
Such crossings also help determine precise price targets for the upcoming peak or trough, aligned with the cycle of examination.
Additionally, the occurrence of a peak in the FLD itself signals a probable zone where the price might experience a trough, helping to anticipate of future price movements.
These insights by Hurst in his "Cycles Trading Course" during the 1970s, are instrumental for traders aiming to determine entry and exit points, and to forecast potential price movements within the market.
To use the FLD Trading Strategy, for example when focusing on the 40 Day Cycle, a trader should primarily concentrate on the interplay between three Hurst Cycles:
The 20 Day FLD (Signal) - Half the length of the Trade Cycle
The 40 Day FLD (Trade) - The Cycle you want to trade
The 80 Day FLD (Trend) - Twice the length of the Trade Cycle
Traders can gauge trend or consolidation by watching for two critical patterns:
Cascading patterns, characterized by several FLDs running parallel with a consistent separation, typically emerge during pronounced market trends, indicating strong directional momentum.
Consolidation patterns, on the other hand, occur when multiple FLDs intersect and navigate within the same price bandwidth, often reversing direction to traverse this range multiple times. This tangled scenario results in the formation of Pause Zones, areas where price momentum is likely to temporarily stall or where the emergence of a significant trend might be delayed.
This simple FLD indicator provides 3 FLDs with optional source input and smoothing, A-through-H FLD interaction background, adjustable “Close the Trade” triggers, and a simple strategy for backtesting it all.
The A-through-H FLD interactions are a framework designed to classify the different types of price movements as they intersect with or diverge from the Future Line of Demarcation (FLD). Each interaction (designated A through H by color) represents a specific phase or characteristic within the cycle, and understanding these can help traders anticipate future price movements and make informed decisions.
The adjustable “Close the Trade” triggers are for setting the crossover/under that determines the trade exits. The options include: Price, Signal FLD, Trade FLD, or Trend FLD. For example, a trader may want to exit trades only when price finally crosses the Trade FLD line.
Shoutouts & Credits for all the raw code, helpful information, ideas & collaboration, conversations together, introductions, indicator feedback, and genuine/selfless help:
🏆 @TerryPascoe
🏅 @Hpotter
👏 @parisboy
Cerca negli script per "20蒙古币兑换人民币"
Momentum spotter(FogWalkerTrader) This a trend following indicator using simple moving averages and price close,high and low of recent candles to plot a buy or sell signal.
IMPORTANT - this indicator does not repaint.Traders need to wait untill the the closing of the candle though as the signal is dependant of the close of the period.
Buy Signal: Price closes above the 20, 50, and 200 simple moving averages (SMAs), with the 50 SMA above the 200 SMA, indicating a strong uptrend. The last 4 prices had their lows below the 5 SMA and highs above it.Plus, the current close is higher than the high from 4 periods ago, further suggesting a bullish move.
BUY = blue labelup plotted below candlestick
Sell Signal: Price closes below the 20, 50, and 200 SMAs, with the 50 SMA below the 200 SMA, signaling a strong downtrend. The last 4 prices had their highs above the 5 SMA and lows below it Plus, the current close is lower than the low from 4 periods ago, further suggesting a bearish move.
SELL = red labeldown plotted above candlestick.
IMPORTANT
It’s important to note that, like any trading tool, this isn't foolproof. The market can be unpredictable, leading to false signals. The logic behind these signals is sound, but due to the complexity and volatility of the market, there are times when the signals may not lead to the expected outcome. It's a useful tool, but it's wise to use it alongside other analyses to make more informed decisions.
Statistics • Chi Square • P-value • SignificanceThe Statistics • Chi Square • P-value • Significance publication aims to provide a tool for combining different conditions and checking whether the outcome is significant using the Chi-Square Test and P-value.
🔶 USAGE
The basic principle is to compare two or more groups and check the results of a query test, such as asking men and women whether they want to see a romantic or non-romantic movie.
–––––––––––––––––––––––––––––––––––––––––––––
| | ROMANTIC | NON-ROMANTIC | ⬅︎ MOVIE |
–––––––––––––––––––––––––––––––––––––––––––––
| MEN | 2 | 8 | 10 |
–––––––––––––––––––––––––––––––––––––––––––––
| WOMEN | 7 | 3 | 10 |
–––––––––––––––––––––––––––––––––––––––––––––
|⬆︎ SEX | 10 | 10 | 20 |
–––––––––––––––––––––––––––––––––––––––––––––
We calculate the Chi-Square Formula, which is:
Χ² = Σ ( (Observed Value − Expected Value)² / Expected Value )
In this publication, this is:
chiSquare = 0.
for i = 0 to rows -1
for j = 0 to colums -1
observedValue = aBin.get(i).aFloat.get(j)
expectedValue = math.max(1e-12, aBin.get(i).aFloat.get(colums) * aBin.get(rows).aFloat.get(j) / sumT) //Division by 0 protection
chiSquare += math.pow(observedValue - expectedValue, 2) / expectedValue
Together with the 'Degree of Freedom', which is (rows − 1) × (columns − 1) , the P-value can be calculated.
In this case it is P-value: 0.02462
A P-value lower than 0.05 is considered to be significant. Statistically, women tend to choose a romantic movie more, while men prefer a non-romantic one.
Users have the option to choose a P-value, calculated from a standard table or through a math.ucla.edu - Javascript-based function (see references below).
Note that the population (10 men + 10 women = 20) is small, something to consider.
Either way, this principle is applied in the script, where conditions can be chosen like rsi, close, high, ...
🔹 CONDITION
Conditions are added to the left column ('CONDITION')
For example, previous rsi values (rsi ) between 0-100, divided in separate groups
🔹 CLOSE
Then, the movement of the last close is evaluated
UP when close is higher then previous close (close )
DOWN when close is lower then previous close
EQUAL when close is equal then previous close
It is also possible to use only 2 columns by adding EQUAL to UP or DOWN
UP
DOWN/EQUAL
or
UP/EQUAL
DOWN
In other words, when previous rsi value was between 80 and 90, this resulted in:
19 times a current close higher than previous close
14 times a current close lower than previous close
0 times a current close equal than previous close
However, the P-value tells us it is not statistical significant.
NOTE: Always keep in mind that past behaviour gives no certainty about future behaviour.
A vertical line is drawn at the beginning of the chosen population (max 4990)
Here, the results seem significant.
🔹 GROUPS
It is important to ensure that the groups are formed correctly. All possibilities should be present, and conditions should only be part of 1 group.
In the example above, the two top situations are acceptable; close against close can only be higher, lower or equal.
The two examples at the bottom, however, are very poorly constructed.
Several conditions can be placed in more than 1 group, and some conditions are not integrated into a group. Even if the results are significant, they are useless because of the group formation.
A population count is added as an aid to spot errors in group formation.
In this example, there is a discrepancy between the population and total count due to the absence of a condition.
The results when rsi was between 5-25 are not included, resulting in unreliable results.
🔹 PRACTICAL EXAMPLES
In this example, we have specific groups where the condition only applies to that group.
For example, the condition rsi > 55 and rsi <= 65 isn't true in another group.
Also, every possible rsi value (0 - 100) is present in 1 of the groups.
rsi > 15 and rsi <= 25 28 times UP, 19 times DOWN and 2 times EQUAL. P-value: 0.01171
When looking in detail and examining the area 15-25 RSI, we see this:
The population is now not representative (only checking for RSI between 15-25; all other RSI values are not included), so we can ignore the P-value in this case. It is merely to check in detail. In this case, the RSI values 23 and 24 seem promising.
NOTE: We should check what the close price did without any condition.
If, for example, the close price had risen 100 times out of 100, this would make things very relative.
In this case (at least two conditions need to be present), we set 1 condition at 'always true' and another at 'always false' so we'll get only the close values without any condition:
Changing the population or the conditions will change the P-value.
In the following example, the outcome is evaluated when:
close value from 1 bar back is higher than the close value from 2 bars back
close value from 1 bar back is lower/equal than the close value from 2 bars back
Or:
close value from 1 bar back is higher than the close value from 2 bars back
close value from 1 bar back is equal than the close value from 2 bars back
close value from 1 bar back is lower than the close value from 2 bars back
In both examples, all possibilities of close against close are included in the calculations. close can only by higher, equal or lower than close
Both examples have the results without a condition included (5 = 5 and 5 < 5) so one can compare the direction of current close.
🔶 NOTES
• Always keep in mind that:
Past behaviour gives no certainty about future behaviour.
Everything depends on time, cycles, events, fundamentals, technicals, ...
• This test only works for categorical data (data in categories), such as Gender {Men, Women} or color {Red, Yellow, Green, Blue} etc., but not numerical data such as height or weight. One might argue that such tests shouldn't use rsi, close, ... values.
• Consider what you're measuring
For example rsi of the current bar will always lead to a close higher than the previous close, since this is inherent to the rsi calculations.
• Be careful; often, there are na -values at the beginning of the series, which are not included in the calculations!
• Always keep in mind considering what the close price did without any condition
• The numbers must be large enough. Each entry must be five or more. In other words, it is vital to make the 'population' large enough.
• The code can be developed further, for example, by splitting UP, DOWN in close UP 1-2%, close UP 2-3%, close UP 3-4%, ...
• rsi can be supplemented with stochRSI, MFI, sma, ema, ...
🔶 SETTINGS
🔹 Population
• Choose the population size; in other words, how many bars you want to go back to. If fewer bars are available than set, this will be automatically adjusted.
🔹 Inputs
At least two conditions need to be chosen.
• Users can add up to 11 conditions, where each condition can contain two different conditions.
🔹 RSI
• Length
🔹 Levels
• Set the used levels as desired.
🔹 Levels
• P-value: P-value retrieved using a standard table method or a function.
• Used function, derived from Chi-Square Distribution Function; JavaScript
LogGamma(Z) =>
S = 1
+ 76.18009173 / Z
- 86.50532033 / (Z+1)
+ 24.01409822 / (Z+2)
- 1.231739516 / (Z+3)
+ 0.00120858003 / (Z+4)
- 0.00000536382 / (Z+5)
(Z-.5) * math.log(Z+4.5) - (Z+4.5) + math.log(S * 2.50662827465)
Gcf(float X, A) => // Good for X > A +1
A0=0., B0=1., A1=1., B1=X, AOLD=0., N=0
while (math.abs((A1-AOLD)/A1) > .00001)
AOLD := A1
N += 1
A0 := A1+(N-A)*A0
B0 := B1+(N-A)*B0
A1 := X*A0+N*A1
B1 := X*B0+N*B1
A0 := A0/B1
B0 := B0/B1
A1 := A1/B1
B1 := 1
Prob = math.exp(A * math.log(X) - X - LogGamma(A)) * A1
1 - Prob
Gser(X, A) => // Good for X < A +1
T9 = 1. / A
G = T9
I = 1
while (T9 > G* 0.00001)
T9 := T9 * X / (A + I)
G := G + T9
I += 1
G *= math.exp(A * math.log(X) - X - LogGamma(A))
Gammacdf(x, a) =>
GI = 0.
if (x<=0)
GI := 0
else if (x
Chisqcdf = Gammacdf(Z/2, DF/2)
Chisqcdf := math.round(Chisqcdf * 100000) / 100000
pValue = 1 - Chisqcdf
🔶 REFERENCES
mathsisfun.com, Chi-Square Test
Chi-Square Distribution Function
STY-Divergencedraws a blue line representing the divergence between a 3-period moving average (3MA) close and the current candle high, and a red line representing the divergence between a 20-period moving average (20MA) close and the 3MA close
This script calculates the moving averages for both 3-period and 20-period and then computes the divergences as described. It plots the lines with blue color if the divergence is positive and red if negative. Adjust the length of moving averages or other parameters according to your preference.
AWR_WaveTrend Multitimeframe [adapted from LazyBear]I've adapted a script from Lazy Bear (WT trend oscillator)
WaveTrend Oscillator is a port of a famous TS/MT indicator.
When the oscillator (WT1 designed as a line) is above the overbought band (50 to 60) and crosses down the WT2 (dotted line), it is usually a good SELL signal. Similarly, when the oscillator crosses above the signal when below the Oversold band ( (-50 to -60)), it is a good BUY signal.
In this indicator, you can display at the same time, different time frames.
Choice possible are 1 mn, 15 mn, 30 mn, 60 mn, 120 mn, 240 mn, 1D, Week, Month.
Small time frames (1 to 30 mn) are represented by a blue lines (light to dark)
1H is in grey
2H & 4H are in purple (light to dark)
1D is in green
1W is in orange
1M is in black
You can choose which timeframes you want to display for the current period or for the last period closed.
In a few seconds, you perfectly see the selected timeframes trends.
There is also at the bottom right a table summing up all the different values of WT1, WT2 and difference between them.
Positive difference means an upside trend
Negative difference means a downside trend.
Another way of using this indicator is displaying only the difference between WT1 & WT2. It's giving the speed & the direction of all trends. Trends are our friends ...
You can observe the significent times frames and look if they are all positives or negatives or if the speed of lower timeframe cross a longer timeframe of if the speed is decreasing or increasing...
Difference values goes generaly from -20 to 20 (it can exceed a bit but really rare). 12 is already high level of speed.
Many uses possible.
In the exemple posted, I've selected WT1 and WT2 for timeframes 4H, Daily & Weekly.
Marker 1:
Orange lines (WT1) are far below - 50 (-67 here) and cross WT2 pointed lines : weekly buy signal
But this buy signal is balanced by 4H & Daily sell signal = it's marking start of hesitations of main trend !!!!
Marker 2 :
Next buy signal in 4H or daily would normaly confirm the start
Marker 3 :
Sell signal in 4H and daily but weekly has an upside trend ! Start of a counter trend in the trend. To find the perfect timing of that you have to look to lower time frames, because 4H and daily are giving many hesitations signals crossing down & crossing up many times in an overbought zone.
Marker 4 :
End of the counter trend. Most of the time, the countertrend don't go in the "over" zone. That's why if you trading in an counter trend, you have to keep it in mind.
Then a few days later you can see the sell signal. And what a sell signal ! 4H & daily are smashed down really fastly ! Trends change warning !
Marker 5
Long hesitation/change of the trend. Daily WT and 4H are below the weekly trends. Weekly start to go down.
Start of a counter trend inside the trend giving us the best selling signal at her end !
Marker 6 :
Long hesitation/change of the trend.
You have to look in lower time frames to identify the short trend. Difficult to find the best timing to get in. ....
I've add many alerts. When a time frame become positive or negative. When many time frames are positive or negative or above or below 47 level...
Please feel free to explore.
Hope it will help you.
Thanks to Lazybear ! Thousands thanks to Lazybear !
Exemple with difference
SPX IB Intraday Real TimeThis indicator was designed for traders doing Iron Butterflies intradays with the SPX.
Draw and assemble the picture of an IB with the call and put wings chosen according to the selected configuration. Additionally, it shows both breakevens according to the credit obtained.
The indicator shows the distance, in real time, between the current price of the SPX and the breakevens (calls and puts) that have been selected. This result is shown in percentages and points. In the upper right corner (for calls) and lower right (for puts). The label will change color as the price moves closer or further away from the breakevens.
Setting:
Open Time (Hour): IB opening time.
Open Time (Minute): IB opening minutes.
Open Price: Strike to which the center or body of the IB was opened.
Auto Price Open: If enabled, it will take the strike at the price closest to the SPX.
Wings Width: width of the IB wings.
Credit: Refers to the credit obtained according to the IB that was opened.
Shows Breakeven: Shows breakeven points at expiration based on credit earned.
Add SMAs: Adds the SMAs 8, 20 and 50 to the chart.
Note 1: It is recommended to use TradingView's Dark Theme Color.
Note 2: this indicator will only work in intraday times of less than 30 minutes (1m,2m,5m,10m,15m,30m) and will only show results while the market is open, that is, in real time.
************************************
Spanish Version:
Este indicador fue diseñado para los traders que hacen intradías de Iron Butterflies con el SPX.
Dibuja y arma el cuadro de un IB con las alas call y puts elegidas de acuerdo a la configuración seleccionada. Además, muestra ambos breakevens según el crédito obtenido.
El indicador muestra la distancia, en tiempo real, entre el actual precio del SPX y los breakevens (calls y puts) que se hayan seleccionado. Este resultado se muestra en porcentajes y en puntos. En la esquina superior derecha (para los calls) e inferior derecha (para los puts). El label cambiará de color a medida que el precio se acerque o aleje de los breakevens.
Configuración:
Open Time (Hour): Hora de apertura del IB.
Open Time (Minute): Minutos de apertura del IB.
Open Price: Strike al que se abrió el centro o cuerpo del IB.
Auto Price Open: Si se encuentra habilitado tomará el strike al precio más cercano al SPX.
Wings Width: ancho de las alas del IB.
Credit: Se refiere al crédito obtenido según el IB que se abrió.
Shows Breakeven: Muestra los puntos de breakeven en la expiración según el crédito obtenido.
Add SMAs: Agrega al cuadro las SMA 8, 20 y 50.
Nota 1: se recomienda usar el Dark Theme Color de TradingView.
Nota 2: este indicador solo funcionará en temporalidades intradías menores a 30 minutos (1m,2m,5m,10m,15m,30m) y solo mostrará resultados mientras el mercado esté abierto, o sea en tiempo real.
Donchian Channel Trend MeterInspired by the Chande Trend Meter (this is not the Chande Trend Meter), this indicator aims to show the trend so you can make trading decisions accordingly. This is calculated by looking at Donchian Channels over a number of lengths (20, 40, 60 periods, etc.), converting them to percent, and then applying a weighting and smoothing similar to the Know Sure Thing Indicator. This results in smooth trend line that is not disturbed by large fluctuations in price action.
When the line is below 20%, you have a strong down trend. Values between 20 - 40% are a weak down trend. Values between 40 - 60% are no trend (slightly bullish or bearish if above or below 50%). Similarly, 60 - 80% is a weak uptrend, and above 80% is a strong uptrend. Trade signals can be turned on or off that correspond to crosses over 50%. It can be useful in spotting divergence.
Vo-S-Di-T-I - Volatility Scaled Directional Trend IndicatorThis code represents just the foundation for what's to come. It lays the groundwork for a more sophisticated quant trading model, offering a glimpse into the potential of future developments. I hope my contribution to this community will be valued. I'm here for idea exchanges and coding together, with the key emphasis on ensuring everything we do is grounded on a solid statistical basis.
----------------------------------------------------------------------------------------------------------------------
The developed code is based on a rigorous quantitative approach for analyzing price trends in the equity sector, utilizing advanced statistical methodology to scale returns based on the volatility observed over predefined periods of 20 and 50 days. This technique for normalizing returns allows us to eliminate distortions due to the intrinsic variability of prices and focus on the underlying structure of price behavior. The primary goal of the code is not to speculatively predict future market movements but rather to identify potential reversal trend signals through price dynamics analysis, within an optimized risk and return context.
Our approach is distinguished by the use of statistical decomposition techniques and time series analysis to interpret price variations as indicators of possible shifts in market behavior. This allows distinguishing between random or short-term price movements and true trend changes, providing a solid foundation for more informed investment decisions.
The current code represents the initial phase of a broader project that envisages the integration of machine learning algorithms to further refine the ability to detect significant changes in price trends. Through the application of predictive models and machine learning techniques, we intend to explore complex patterns in historical price data that may precede trend reversals, always respecting the principles of rigorous statistical analysis and risk management. This development and learning path will allow us to continuously improve investment strategies, leveraging the analytical capabilities of modern data science algorithms applied to the financial sector.
HOW TO READ
Simply put, Z values above 0 indicate an uptrend, while values below indicate a downtrend. IMPORTANT: It is not necessary to consider any crosses between Z-Short and Z-Long, but only potential crosses with 0.
The initial values are set at 20 and 50, but everyone is free to choose the most suitable periods, as long as all choices have valid statistical significance. My advice is to use R or MatLab to explore the best correlation between N and price movements. The reason I have set two values for N (Short and Long) is because it's interesting to assess short-term and medium-to-long-term trends to understand if price movements can lead to reversals only in the short term or also in the medium to long term. This idea came to me because I believe all other trend determination systems have too much lag and unpredictability.
ATE_Common_Functions_LibraryLibrary "ATE_Common_Functions_Library"
- ATE_Common_Functions_Library was created to assist in constructing CCOMET Scanners
RCI(_rciLength, _source, _interval)
You will see me using this a lot. DEFINITELY my favorite oscillator to utilize for SO many different things from
timing entries/exits to determining trends.Calculation of this indicator based on Spearmans Correlation.
Parameters:
_rciLength (int) : (int)
Amount of bars back to use in RCI calculations.
_source (float) : (float)
Source to use in RCI calculations (can use ANY source series. Ie, open,close,high,low,etc).
_interval (int) : (int)
Optional (if parameter not included, it defaults to 3). RCI calculation groups bars by this amount and then will.
rank these groups of bars.
Returns: (float)
Returns a single RCI value that will oscillates between -100 and +100.
RCIAVG(_rciSMAlen, _source, _interval, firstLength, lastLength)
20 RCI's are averaged together to get this RCI Avg (Rank Correlation Index Average). Each RCI (of the 20 total RCI)
has a progressively LARGER Lookback Length. Rather than having ALL of the RCI Lengths be individually adjustable (because of too many inputs),
I have made the FIRST Length used (smallest Length value in the set) and the LAST Length used (largest length value in the set) be adjustable
and all other 18 Lengths are equally spread out between the 'firstLength' and the 'lastLength'.
Parameters:
_rciSMAlen (int) : (int)
Unlike the Single RCI Function, this function smooths out the end result using an SMA with a length value that is this parameter.
_source (float) : (float)
Source to use in RCI calculations (can use ANY source series. Ie, open,close,high,low,etc).
_interval (int) : (int)
Optional (if parameter not included, it defaults to 3). Within the RCI calculation, bars next to each other are grouped together
and then these groups are Ranked against each other. This parameter is the number of adjacent bars that are grouped together.
firstLength (int) : (int)
Optional (if parameter is not included when the function is called on in the script, then it defaults to 200).
This parameter is the Lookback Length for the 1st RCI used (so the SMALLEST Length used) in the RCI Avg.
lastLength (int) : (int)
Optional (if parameter is not included when the function is called on in the script, then it defaults to 2500).
This parameter is the Lookback Length for the 20th(the LAST) RCI used (so the LARGEST Length used) in the RCI Avg.
***** BEWARE ***** The 'lastLength' must be less than (or possibly equal to) 5000 because Tradingview has capped it at 5000, causing an error.
***** BEWARE ***** If the script gives a compiler "time out" error then the 'lastLength' must be lowered until it no longer times out when compiling.
Returns: (float)
Returns a single RCI value that is the Avg of many RCI values that will oscillate between -100 and +100.
PercentChange(_startingValue, _endingValue)
This is a quick function to calculate how much % change has occurred between the '_startingValue' and the '_endingValue'
that you input into the function.
Parameters:
_startingValue (float) : (float)
The source value to START the % change calculation from.
_endingValue (float) : (float)
The source value to END the % change caluclation from.
Returns: Returns a single output being the % value between 0-100 (with trailing numbers behind a decimal). If you want only
a certain amount of numbers behind the decimal, this function needs to be put within a formatting function to do so.
Rescale(_source, _oldMin, _oldMax, _newMin, _newMax)
Rescales series with a known '_oldMin' & '_oldMax'. Use this when the scale of the '_source' to
rescale is known (bounded).
Parameters:
_source (float) : (float)
Source to be normalized.
_oldMin (int) : (float)
The known minimum of the '_source'.
_oldMax (int) : (float)
The known maximum of the '_source'.
_newMin (int) : (float)
What you want the NEW minimum of the '_source' to be.
_newMax (int) : (float)
What you want the NEW maximum of the '_source' to be.
Returns: Outputs your previously bounded '_source', but now the value will only move between the '_newMin' and '_newMax'
values you set in the variables.
Normalize_Historical(_source, _minimumLvl, _maximumLvl)
Normalizes '_source' that has a previously unknown min/max(unbounded) determining the max & min of the '_source'
FROM THE ENTIRE CHARTS HISTORY. ]
Parameters:
_source (float) : (float)
Source to be normalized.
_minimumLvl (int) : (float)
The Lower Boundary Level.
_maximumLvl (int) : (float)
The Upper Boundary Level.
Returns: Returns your same '_source', but now the value will MOSTLY stay between the minimum and maximum values you set in the
'_minimumLvl' and '_maximumLvl' variables (ie. if the source you input is an RSI...the output is the same RSI value but
instead of moving between 0-100 it will move between the maxand min you set).
Normailize_Local(_source, _length, _minimumLvl, _maximumLvl)
Normalizes series with previously unknown min/max(unbounded). Much like the Normalize_Historical function above this one,
but rather than using the Highest/Lowest Values within the ENTIRE charts history, this on looks for the Highest/Lowest
values of '_source' within the last ___ bars (set by user as/in the '_length' parameter. ]
Parameters:
_source (float) : (float)
Source to be normalized.
_length (int) : (float)
The amount of bars to look back to determine the highest/lowest '_source' value.
_minimumLvl (int) : (float)
The Lower Boundary Level.
_maximumLvl (int) : (float)
The Upper Boundary Level.
Returns: Returns a single output variable being the previously unbounded '_source' that is now normalized and bound between
the values used for '_minimumLvl'/'_maximumLvl' of the '_source' within the user defined lookback period.
Cast ForwardThis indicator will not forecast price action. It will not predict price movement nor will it in any way predict the outcome of any trade you may take. This is not a signal for buying or selling. You must do your own back testing and analysis for trading.
Time and price are the two most important components of market data. Where was price at what time? To help visualize this question I created this indicator. It allows for the previous session data to be overlayed onto the chart offset forward 24 hours. What this means is that you have the high, (high/low)/2, and low of each candle plotted on top of your chart for the time frame of the current chart, but offset so that the data from the current candle has the data from the corresponding candle 24 hours prior lined up on the x-axis.
SMA Logic: I used the SMA (Simple Moving Average) function with a length of 1 to plot the data points without any smoothing to give the true values of the data.
For Intraday Charting
For Electronic Trading Hours:
In order to line up the data correctly, for intraday charts, I used the current chart timeframe and divided it into 1380 (number of minutes in the 23 hour futures market trading day) to set the data offset. Using the same math logic, this indicator also gives the correct correlated data on the 30 second time frame. If the chart time frame that is currently being used does not allow for correct data correlation (not a factor of 1380) it will not plot the data.
For Regular Trading Hours:
In order to line up the data correctly, for intraday charts, I used the current chart timeframe and divided it into 405 (number of minutes in the 6 hour 45 minutes New York regular session trading day, including the 15 minute settlement time) to set the data offset. This indicator also gives the correct correlated data on the 30 second time frame. If the chart time frame that is currently being used does not allow for correct data correlation (not a factor of 405) it will not plot the data.
For the Daily Chart:
This indicator plots a visualization of the 20-40-60 day IPDA data range; (The IPDA data range helps traders identify liquidity, price gaps, and equilibrium points in the market, providing insights for optimal trade entries and market structure shifts). It does this using the same SMA logic as the intraday plot. What this means is it offsets the historical data of the daily chart 20, 40, or 60 bars forward. You can plot any combination of the three on the chart at one time, but these will not show on the intraday chart. This allows for visualization of where the market will possibly seek liquidity, seek to rebalance, or seek equilibrium in the future.
Envelope and Moving Average**Description:**
- This script creates an indicator that combines an envelope and a simple moving average (MA).
- The envelope is constructed using a specified length, percentage deviation, and source price (close by default).
- The moving average is calculated based on a specified length and source price.
**Inputs:**
1. Envelope:
- Length: Number of periods used for the envelope calculation (default is 20).
- Percentage Deviation: Percentage above and below the envelope basis (default is 10%).
- Source: The price used for the envelope calculation (default is close).
- Exponential MA: Option to use exponential moving average for the envelope basis (default is false).
2. Moving Average:
- Length: Number of periods used for the moving average calculation (default is 20).
- Source: The price used for the moving average calculation (default is close).
**Plotting:**
- The script plots the envelope basis, upper envelope line, and lower envelope line.
- The area between the upper and lower envelope lines is filled with a semi-transparent color for better visualization.
- The moving average is plotted on the chart with a specified color and line width.
**How to Use in a Strategy:**
1. **Envelope Crossovers:**
- Go Long (Buy): When the close price crosses above the upper envelope line.
- Go Short (Sell): When the close price crosses below the lower envelope line.
2. **Moving Average Crossovers:**
- Go Long (Buy): When the close price crosses above the moving average.
- Go Short (Sell): When the close price crosses below the moving average.
3. **Confirmation:**
- Consider additional confirmation signals or filters to improve the robustness of your strategy.
- For example, you might require a certain amount of price momentum or use other technical indicators in conjunction with envelope and moving average signals.
4. **Optimization:**
- Experiment with different parameter values (e.g., envelope length, percentage deviation, moving average length) to optimize the strategy for specific market conditions.
5. **Risk Management:**
- Implement proper risk management techniques, such as setting stop-loss orders and position sizing, to control risk.
Remember to thoroughly backtest any strategy before deploying it in a live trading environment. Additionally, consider the current market conditions and adapt your strategy accordingly.
Leveraged Share Decay Tracker [SS]Releasing this utility tool for leveraged share traders and investors.
It is very difficult to track the amount of decay and efficiency that is associated with leveraged shares and since not all leveraged shares are created equally, I developed this tool to help investors/traders ascertain:
1. The general risk, in $$, per share associated with investing in a particular leveraged ETF
2. The ability of a leveraged share to match what it purports to do (i.e. if it is a 3X Bull share, is it actually returning consistently 3X the underlying or is there a large variance?)
3. The general decay at various timepoints expressed in $$$
How to use:
You need to be opened on the chart of the underlying. In the example above, the chart is on DIA, the leveraged share being tracked is UDOW (3X bull share of the DOW).
Once you are on the chart of the underlying, you then put in the leveraged share of interest. The indicator will perform two major assessments:
1. An analysis of the standard error between the underlying and the leveraged share. This is accomplished through linear regression, but instead of creating a linreg equation, it simply uses the results to ascertain the degree of error associated at various time points (the time points are 10, 20, 30, 40, 50, 100, 252).
2. An analysis of the variance of returns. The indicator requires you to put in the leverage amount. So if the leverage amount is 3% (i.e. SPXL or UPRO is 3 X SPY), be sure that you are putting that factor in the settings. It will then modify the underlying to match the leverage amount, and perform an assessment of variance over 10, 20, 30, 40, 50, 100, 252 days to ensure stability. This will verify whether the leveraged ETF is actually consistently performing how it purports to perform.
Here are some examples, and some tales of caution so you can see, for yourself, how not all leveraged shares are created equal.
SPY and SPXL:
SPY and UPRO:
XBI and LABU (3 x bull share):
XBI and LABD (3 x bear share):
SOX and SOXL:
AAPL and AAPU:
It is VERY pivotal you remember to check and adjust the Leveraged % factor.
For example, AAPU is leveraged 1.5%. You can see above it tracks this well. However, if you accidently leave it at 3%, you will get an erroneous result:
You can also see how some can fail to track the quoted leveraged amount, but still produce relatively lower risk decay.
And, as a final example, let's take a look at the worst leveraged share of life, BOIL:
Trainwreck that one. Stay far away from it!
The chart:
The chart will show you the drift (money value over time) and the variance (% variance between the expected and actual returns) over time. From here, you can ascertain the general length you feel comfortable holding a leveraged share. In general, for most stable shares, <= 50 trading days tends to be the sweet spot, but always check the chart.
There are also options to plot the variances and the drifts so you can see them visually.
And that is the indicator! Kind of boring, but there are absolutely 0 resources out there for doing this job, so hopefully you see the use for it!
Safe trades everyone!
Doda StochasticThe Doda Stochastic Indicator is an oscillator designed to identify primary trends in asset price movements, operating on a scale from 0 to 100. It offers potential buying signals when it fluctuates between 0 and 20, and potential selling signals when it trends between 80 and 100. To reinforce the reliability of these signals, traders often complement them with price action indicators.
The indicator aims to display a modified version of the Stochastic Oscillator, highlighting filtered stochastic values along with related signals.
Traders often use Stochastic indicators to identify potential reversal points or overbought/oversold conditions in the market. The modified version might aim to reduce noise or improve signals compared to the standard Stochastic oscillator. Adjusting the input parameters can alter the sensitivity of the indicator to market movements.
It can also be used to identify trend by considering Doda Stochatic's Moving Average crossing the midline level. If it is above it is uptrend and if below midline then it is downtrend. It does not repaint. It is a lagging indicator because it heavily depends on Moving Averages.
What makes the Doda Stochastic Indicator unique is its attempt to eliminate false or misleading signals commonly found in standard stochastic tools. Instead of relying solely on the 20 and 80 markings for overbought and oversold conditions, it uses the crossing of the green and red lines within these segments to identify signals. However, fully grasping its functionality is pivotal to maximising its utility.
The indicator strategically analyses price movements by scrutinising key price levels, market momentum, and unexpected shifts in trends. By default, it operates with a bar count of 2000 and a PDS value of 13.0, parameters that have undergone extensive testing. It's important to note that tweaking these settings might not always be necessary, as they are well-calibrated.
How to Use the Doda Stochastic Indicator:
Setting up the Indicator:
- Begin incorporating the Doda Stochastic Indicator into your trading strategy once you're confident in identifying significant support and resistance levels.
Strategy with Doda Stochastic:
- Buy Signal Criteria:
- Asset displaying an upward trend.
- Green line crossing above the red line on the indicator.
- Confirm entry with bullish candlestick patterns.
- Set stop loss below the nearest swing low.
- Set take profit at the nearest resistance zone or exit when the green line crosses below the red line.
- Implement risk management with a risk-to-reward ratio of at least 1:2.
- Sell Signal Criteria:
- Asset demonstrating a downtrend.
- Green line crossing below the red line on the indicator.
- Confirm entry with bearish candlestick patterns.
- Set stop loss above the nearest swing high.
- Set take profit at the nearest support zone or exit when the green line crosses above the red line.
- Implement risk management with a risk-to-reward ratio of at least 1:2.
Advantages and Disadvantages:
Pros:
- Analyses crucial price levels, market momentum, and unexpected trend changes.
- Identifies overbought and oversold levels.
Cons:
- Overbought and oversold levels may not always lead to immediate price reversals.
- Signals might occasionally misinterpret a trend reversal as a correction, and vice versa.
The strength of the indicator lies in its intricate approach to price analysis and its effort to minimize false signals. However, traders should exercise caution and consider supplementary confirmation signals for more robust trade decisions.
Relative Strength Trend Indicator (RSTI)This indicator is called the "Relative Strength Trend Indicator" (RSTI), designed to assess the relative strength of a trend.
Here is a detailed explanation of how it works and how traders can interpret it:
Indicator Operation:
1. Data Source (src): The indicator considers a data source, typically the closing price (close), but this can be adjusted according to the trader's preferences.
2. Period Length (Length): This determines the period used to calculate the simple moving average (SMA) of the data source. A longer period smoothes the indicator, while a shorter period makes it more responsive.
3. Multiplier (Multiplier): This is a multiplication factor applied to the Average True Range (ATR), adjusting the width of the bands.
4. Signal Length (Signal Length): This period is used to calculate the simple moving average of the relative strength (l_strength). It determines the sensitivity of the signal to changes in relative strength.
Interpretation of the Indicator:
1. Upper Strength Band (Upper Level): This line is drawn at 80 and represents a high strength level. When relative strength exceeds this value, it may indicate a potential overbought market.
2. Lower Strength Band (Lower Level): This line is drawn at 20 and represents a low strength level. When relative strength is below this value, it may indicate a potential oversold market.
3. RSTI Strength: The main line of the indicator, representing the calculated relative strength. When this line exceeds 50, it may indicate an uptrend, while a value below 50 may indicate a downtrend.
4. Filling Zones: These colored zones between levels 80 and 50, and between 50 and 20, can help quickly visualize relative strength. A colored zone above 50 indicates positive strength, while a colored zone below 50 indicates negative strength.
Qualities of the Indicator:
1. Adaptability: The use of ATR and the flexibility of parameters (length, multiplier, signal_length) allow the indicator to adapt to different market conditions.
2. Visual Clarity: Colored filling zones and horizontal lines make it easy to visualize relative strength levels.
3. Strength Signal: The signal line (RSTI Strength) allows traders to quickly spot changes in relative strength, facilitating decision-making.
4. Responsiveness: The combination of smoothed moving averages and relative strength indicators allows responsiveness to trend changes while reducing false signals.
It is essential to note that while this indicator can provide valuable insights, it is always recommended to use it in conjunction with other technical analysis tools for informed decision-making.
Megabar Breakout (Range & Volume & RSI)Hey there,
This strategy is based on the idea that certain events lead to what are called Megabars. Megabars are bars that have a very large range and volume. I wanted to verify whether these bars indicate the start of a trend and whether one should follow the trend.
Summary of the Code:
The code is based on three indicators: the range of the bar, the volume of the bar, and the RSI. When certain values of these indicators are met, a Megabar is identified. The direction of the Megabar indicates the direction in which we should trade.
Why do I combine these indicators?
I want to identify special bars that have the potential to mark the beginning of a breakout. Therefore, a bar needs to exhibit high volume, have a large range (huge price movement), and we also use the Relative Strength Index (RSI) to assess potential momentum. Only if all three criteria are met within one candle, do we use this as an identifier for a megabar.
Explanation of Drawings on the Chart:
As you can see, there is a green background on my chart. The green background symbolizes the time when I'm entering a trade. Only if a Megabar happens during that time, I'm ready to enter a trade. The time is between 6 AM and 4 PM CET. It's just because I prefer that time. Also, the strategy draws an error every time a Megabar happens based on VOL and Range only (not on the RSI). That makes it pretty easy to go through your chart and check the biggest bars manually. You can activate or deactivate these settings via the input data of the strategy.
When Do We Enter a Trade?
We wait for a Megabar to happen during our trading session. If the Megabar is bullish, we open a LONG trade at the opening price of the next candle. If the Megabar is bearish, we open a SHORT trade at the opening price of the next candle.
Where Do We Put Our Take Profit & Stop Loss?
The default setting is TP = 40 Pips and SL = 30 Pips. In that case, we are always trading with a risk-reward ratio of 1.33 by default. You can easily change these settings via the input data of the strategy.
Strategy Results
The criteria for Megabars were chosen by me in a way that makes Megabars something special. They are not intended to occur too frequently, as the fundamental idea of this strategy would otherwise not hold. This results in only 37 closed trades within the last 12 months. If you change the criterias for a megabar to a milder one, you will create more Megabars and therefore more trades. It's up to you. I have adapted this strategy to the 30-minute chart of the EURUSD. In the evaluation, we consider a period of 12 months, which I believe is sufficient.
My default settings for the indicators look like this:
Avg Length Vol 20
Avg Multiplier Vol 3
Avg Length Range 20
Avg Multiplier Range 4
Value SMA RSI for Long Trades 50
Value SMA RSI for Short Trades 70
IMPORTANT: The current performance overview does not display the results of these settings. Please change the settings to my default ones so that you can see how I use this strategy.
I do not recommend trading this strategy without further testing. The script is meant to reflect a basic idea and be used as a tool to identify Megabars. I have made this strategy completely public so that it can be further developed. One can take this framework and test it on different timeframes and different markets.
Market Average TrendThis indicator aims to be complimentary to SPDR Tracker , but I've adjusted the name as I've been able to utilize the "INDEX" data provider to support essentially every US market.
This is a breadth market internal indicator that allows quick review of strength given the 5, 20, 50, 100, 150 and 200 simple moving averages. Each can be toggled to build whatever combinations are desired, I recommend reviewing classic combinations such as 5 & 20 as well as 50 & 200.
It's entirely possible that I've missed some markets that "INDEX" provides data for, if you find any feel free to drop a comment and I'll add support for them in an update.
Markets currently supported:
S&P 100
S&P 500
S&P ENERGIES
S&P INFO TECH
S&P MATERIALS
S&P UTILITIES
S&P FINANCIALS
S&P REAL ESTATE
S&P CON STAPLES
S&P HEALTH CARE
S&P INDUSTRIALS
S&P TELECOM SRVS
S&P CONSUMER DISC
S&P GROWTH
NAS 100
NAS COMP
DOW INDUSTRIAL
DOW COMP
DOW UTILITIES
DOW TRANSPORTATION
RUSSELL 1000
RUSSELL 2000
RUSSELL 3000
You can utilize this to watch stocks for dip buys or potential trend continuation entries, short entries, swing exits or numerous other portfolio management strategies.
If using it with stocks, it's advisable to ensure the stock often follows the index, otherwise obviously it's great to use with major indexes and determine holdings sentiment.
Important!
The "INDEX" data provider only supplies updates to all of the various data feeds at the end of day, I've noticed quite some delays even after market close and not taken time to review their actual update schedule (if even published). Therefore, it's strongly recommended to mostly ignore the last value in the series until it's the day after.
Only works on daily timeframes and above, please don't comment that it's not working if on other timeframes lower than daily :)
Feedback and suggestions are always welcome, enjoy!
SMA Direction Cross Currency SummaryThis script shows the average SMA direction of each of the majors and crosses when compared to each other. The more blocks to the right the stronger the currency on that timeframe. The more blocks to the left the weaker the currency.
I'm finding it useful to quickly know the average flow of movement for each currency on the higher timeframes and then focus on that for a daily trade. I also like how i dont have to keep jumping between instruments to stay upto date. I'm not a 'real' trader so I have very limited time and attention for this so this does the job as a crude replacement for trawling all the chart each day.
The currencies compared are:
-NZD
-AUD
-JPY
-CHF
-EUR
-GBP
-CAD
-USD
The way it is calculated is that its based on the 20 SMA. For each currency vs the other crosses:
if the SMA is pointing up and price is higher = +2
if the SMA is pointing up and price is lower = +1
if the SMA is pointing down and price is higher = -2
if the SMA is pointing down and price is lower = -1
So if we where considering GBP. We would do that for GBPNZD, GBPAUD, GBPPJY, GBPCHF, GBPEUR, GBPCAD, GBPUSD. We would then consider this sum against all the currencies to understand the relative strength.
Due to the limit on how many instruments can be called in a single indicated you need to load it for each currencies so 8 currencies = 8 indicators.
Its a bit of a frankinstien script - it just throw it togeather so its probably got redundant code etc. Its built around 20 SMA - no idea what would happens when you change that.
NAS100 - 5 Minute Opening Range with EMAsThis indicator is designed for traders who focus on the opening range breakout strategy and use EMAs as part of their trading decisions. The script markes the first 5 min opening candle and generates Buy and Sell signals calculating EMA.
Basic features are :
User Inputs: Allows users to enable/disable alerts and choose to display Exponential Moving Averages (EMAs) for 5, 20, and 50 periods.
Opening Range Calculation: It calculates the first five minutes of the trading day, adjusting for different chart timeframes.
New Day Detection: Determines if the current bar is the first bar of a new day.
Data Storage: Utilizes arrays to store opening range highs, lows, start bars, and last bars for the last five days.
Daily Updates: Updates the stored data at the start of each new day, maintaining data for only the last five days.
Opening Range Plotting: Plots the opening ranges (high and low) for the past five days, with special plotting and filling for the current day.
EMA Calculation and Plotting: Calculates and plots EMAs (5, 20, and 50 periods) if enabled.
Alert Conditions: Sets up conditions for alerts when the price crosses above or below the current day's opening range.
Signal Generation: Generates buy and sell signals based on the relationship of the closing price to the opening range and the position of EMA5 relative to EMA50.
Signal Plotting: Plots buy and sell signals as triangles on the chart.
Adaptiv Trend Projection with Dynamic Length RegressionThe Adaptive Trend Projection indicator is a robust tool designed to provide an optimal trend projection calculated in a highly sophisticated manner. By utilizing linear regression lengths ranging from 20 to 200, this indicator estimates the duration of the trend by dynamically adjusting the projection length based on the calculated trend's strength.
Key Features:
1. Dynamic Length Adjustment: The indicator intelligently adapts the projection length between 20 and 200 using linear regression, ensuring adaptability to market conditions.
2. Trend Strength Calculation: Through linear regression analysis, the indicator calculates the slope, average, and intercept for each selected length, providing insights into the strength and direction of the trend.
3. Deviation Analysis: Beyond traditional trend analysis, the indicator calculates standard deviation, Pearson's correlation coefficient, and deviation values, offering a comprehensive view of market dynamics.
4. Confidence Levels: A unique feature of the Adaptive Trend Projection is its ability to determine confidence levels based on the highest Pearson's R value. Reliability is categorized into levels such as Neutral, Moderate, High, Very High, and Ultra High, providing users with a quick assessment of the projection's robustness.
5. Dynamic Forecasting: The indicator not only analyzes historical data but extends its functionality by dynamically forecasting future trend points. The projection adjusts in length based on the strength of the trend, allowing for more accurate predictions.
6. Visual Clarity: Enhancing visual clarity, the Adaptive Trend Projection indicator uses different line styles, widths, and colors to highlight crucial points, making it easier for traders to interpret and act upon the information.
In conclusion, the Adaptive Trend Projection indicator offers a nuanced understanding of market trends by combining advanced linear regression techniques, deviation analysis, and confidence level assessments. This enables traders to make informed decisions.
Monthly Performance Table by Dr. MauryaWhat is this ?
This Strategy script is not aim to produce strategy results but It aim to produce monthly PnL performance Calendar table which is useful for TradingView community to generate a monthly performance table for Own strategy.
So make sure to read the disclaimer below.
Why it is required to publish?:
I am not satisfied with the monthly performance available on TV community script. Sometimes it is very lengthy in code and sometimes it showing the wrong PNL for current month.
So I have decided to develop new Monthly performance or return in value as well as in percentage with highly flexible to adjust row automatically.
Features :
Accuracy increased for current month PnL.
There are 14 columns and automatically adjusted rows according to available trade years/month.
First Column reflect the YEAR, from second column to 13 column reflect the month and 14 column reflect the yearly PnL.
In tabulated data reflects the monthly PnL (value and (%)) in month column and Yearly PnL (value and (%)) in Yearly column.
Various color input also added to change the table look like background color, text color, heading text color, border color.
In tabulated data, background color turn green for profit and red for loss.
Copy from line 54 to last line as it is in your strategy script.
Credit: This code is modified and top up of the open-source code originally written by QuantNomad. Thanks for their contribution towards to give base and lead to other developers. I have changed the way of determining past PnL to array form and keep separated current month and year PnL from array. Which avoid the false pnl in current month.
Strategy description:
As in first line I said This strategy is aim to provide monthly performance table not focused on the strategy. But it is necessary to explain strategy which I have used here. Strategy is simply based on ADX available on TV community script. Long entry is based on when the difference between DIPlus and ADX is reached on certain value (Set value in Long difference in Input Tab) while Short entry is based on when the difference between DIMinus and ADX is reached on certain value (Set value in Short difference in Input Tab).
Default Strategy Properties used on chart(Important)
This script backtest is done on 1 hour timeframe of NSE:Reliance Inds Future cahrt, using the following backtesting properties:
Balance (default): 500 000 (default base currency)
Order Size: 1 contract
Comission: 20 INR per Order
Slippage: 5 tick
Default setting in Input tab
Len (ADX length) : 14
Th (ADX Threshhold): 20
Long Difference (DIPlus - ADX) = 5
Short Difference (DIMinus - ADX) = 5
We use these properties to ensure a realistic preview of the backtesting system, do note that default properties can be different for various reasons described below:
Order Size: 1 contract by default, this is to allow the strategy to run properly on most instruments such as futures.
Comission: Comission can vary depending on the market and instrument, there is no default value that might return realistic results.
We strongly recommend all users to ensure they adjust the Properties within the script settings to be in line with their accounts & trading platforms of choice to ensure results from the strategies built are realistic.
Disclaimer:
This script not provide indicative of any future results.
This script don’t provide any financial advice.
This strategy is only for the readymade snippet code for monthly PnL performance calender table for any own strategy.
Bull Flag DetectionThe FuturesGod bull flag indicator aims to identify the occurrence of bull flags.
Bull flags are a popular trading pattern that allows users to gauge long entries into a given market. Flags consist of a pole that is followed by either a downward or sideways consolidation period.
This script can be used on any market but was intended for futures (NQ, ES) trading on the intraday timeframe.
The script does the following:
1. Identifies the occurrence of a flag pole. This is based on a lookback period and percentage threshold decided by the user.
2. Marks the consolidation area after the pole occurrence using swing highs and swing lows.
3. Visually the above is represented by a shaded green area.
4. When a pole is detected, it is marked by a downward off-white triangle. Note that if the percentage threshold is reached several times on the same upward climb, the script will continue to identify points where the threshold for pole detection is met.
5. Also visualized are the 20, 50 and 200 period exponential moving averages. The area between the 20 and 50 EMAs are shaded to provide traders a visual of a possible support area.
Trendinator LiteThe Trendinator Lite indicator detects whether the crypto price is trending up or down. It is based on a set of rules developed by Scott Phillips.
According to the rules, trending is a two stage process (bollinger bands are 20 bar, 2 std):
1) Touch of the upper bollinger band for uptrend or touch of lower bollinger band for downtrend.
2) Look for a subsequent candle that makes both a higher high and a higher close since the upper bollinger touch in 1). When this happends, uptrend is confirmed. The reverse is true for down trend - look for a subsequent candle that makes both a lower low and a lower close since the lower bollinger touch in 1).
Trending stops when one of two things happens:
1) When we touch the lower bollinger band (in case of uptrend), or we touch the upper bollinger band (in case of downtrend).
2) When we continue for 20 bars without making a higher high (lower low for downtrend) than any of the preceding candles since we started trending.
The indicator is overlaid on top of the main chart - green for trending up, red for trending down, yellow for no trend.
Note, the upper bollinger and lower bollinger values are available as upper_bb and lower_bb respectively. Alerts can be set using these values if required.
Bollinger Bands (Nadaraya Smoothed) | Flux ChartsTicker: AMEX:SPY , Timeframe: 1m, Indicator settings: default
General Purpose
This script is an upgrade to the classic Bollinger Bands. The idea behind Bollinger bands is the detection of price movements outside of a stock's typical fluctuations. Bollinger Bands use a moving average over period n plus/minus the standard deviation over period n times a multiplier. When price closes above or below either band this can be considered an abnormal movement. This script allows for the classic Bollinger Band interpretation while de-noising or "smoothing" the bands.
Efficacy
Ticker: AMEX:SPY , Timeframe: 1m, Indicator settings: Standard Dev: 2; Level 1 : off; Level 2: off; labels: off
Upper Band Key:
Blue: Bollinger No smoothing
Orange: Bollinger SMA smoothing period of 10
Purple: Bollinger EMA smoothing period of 10
Red: Nadaraya Smoothed Bollinger bandwidth of 6
Here we chose periods so that each would have a similar offset from the original Bollinger's. Notice that the Red Band has a much smoother result while on average having a similar fit to the other smoothing techniques. Increasing the EMA's or SMA's period would result in them being smoother however the offset would increase making them less accurate to the original data.
Ticker: AMEX:SPY , Timeframe: 1m, Indicator settings: Standard Dev: 2; Level 1: off; Level 2: off; labels: off
Upper Band Key:
Blue: Bollinger No smoothing
Orange: Bollinger SMA smoothing period of 20
Purple: Bollinger EMA smoothing period of 20
Red: Nadaraya Smoothed Bollinger bandwidth of 6
This makes the Nadaraya estimator a particularly efficacious technique in this use case as it achieves a superior smoothness to fit ratio.
How to Use
This indicator is not intended to be used on its own. Its use case is to identify outlier movements and periods of consolidation. The Smoothing Factor when lowered results in a more reactive but noisy graph. This setting is also known as the "bandwidth" ; it essentially raises the amplitude of the kernel function causing a greater weighting to recent data similar to lowering the period of a SMA or EMA. The repaint smoothing simply draws on the Bollinger's each chart update. Typically repaint would be used for processing and displaying discrete data however currently it's simply another way to display the Bollinger Bands.
What makes this script unique.
Since Bollinger bands use standard deviation they have excess noise. By noise we mean minute fluctuations which most traders will not find useful in their strategies. The Nadaraya-Watson estimator, as used, is essentially a weighted average akin to an ema. A gaussian kernel is placed at the candlestick of interest. That candlestick's value will have the highest weight. From that point the other candlesticks' values effect on the average will decrease with the slope of the kernel function. This creates a localized mean of the Bollinger Bands allowing for reduced noise with minimal distortion of the original Bollinger data.