MAC Spikes(Adam H Grimes)From Adam H Grimes: "Introducing a New Tool: The MAC Spike"
Mean Absolute Change Spikes (“MAC Spikes”).
Here are the steps to calculate it:
-Convert each day’s closing price to a change (difference) by subtracting it from the previous day’s closing price.
-Take the absolute value of that change.
-Average the past 20 days absolute values to create the baseline.
-Divide today’s change by yesterday’s baseline. (Still offsetting by one day.)
MAC Spikes- Indicator:
-Indicator Setup: The script defines an indicator with the name "MAC Spikes", not overlaying the main chart, and allows up to 99 lines to be plotted.
-User Inputs: It provides several user-configurable inputs, such as:
Length for standard deviation calculation (len).
-Type of spike to monitor (spikeType), with options for close, range, or open spikes.
-Option to filter spikes based on a threshold (filtered).
-The threshold value for spike significance (spike_thresh).
-Whether to display the spike histogram (disp_Spike).
-Line width for plotting (lw).
Volatilty
SOLANA Performance & Volatility Analysis BB%Overview:
The script provides an in-depth analysis of Solana's performance and volatility. It showcases Solana's price, its inverse relationship, its own volatility, and even juxtaposes it against Bitcoin's 24-hour historical volatility. All of these are presented using the Bollinger Bands Percentage (BB%) methodology to normalise the price and volatility values between 0 and 1.
Key Components:
Inputs:
SOLANA PRICE (SOLUSD): The price of Solana.
SOLANA INVERSE (SOLUSDT.3S): The inverse of Solana's price.
SOLANA VOLATILITY (SOLUSDSHORTS): Volatility for Solana.
BITCOIN 24 HOUR HISTORICAL VOLATILITY (BVOL24H): Bitcoin's volatility over the past 24 hours.
BB Calculations:
The script uses the Bollinger Bands methodology to calculate the mean (SMA) and the standard deviation of the prices and volatilities over a certain period (default is 20 periods). The calculated upper and lower bands help in normalising the values to the range of 0 to 1.
Normalised Metrics Plotting:
For better visualisation and comparative analysis, the normalised values for:
Solana Price
Solana Inverse
Solana Volatility
Bitcoin 24hr Volatility
are plotted with steplines.
Band Plotting:
Bands are plotted at 20%, 40%, 60%, and 80% levels to serve as reference points. The area between the 40% and 60% bands is shaded to highlight the median region.
Colour Coding:
Different colours are used for easy differentiation:
Solana Price: Blue
Solana Inverse: Red
Solana Volatility: Green
Bitcoin 24hr Volatility: White
Licence & Creator:
The script adheres to the Mozilla Public Licence 2.0 and is credited to the author, "Volatility_Vibes".
Works well with Breaks and Retests with Volatility Stop
Robust Bollinger Bands with Trend StrengthThe "Robust Bollinger Bands with Trend Strength" indicator is a technical analysis tool designed assess price volatility, identify potential trading opportunities, and gauge trend strength. It combines several robust statistical methods and percentile-based calculations to provide valuable information about price movements with Improved Resilience to Noise while mitigating the impact of outliers and non-normality in price data.
Here's a breakdown of how this indicator works and the information it provides:
Bollinger Bands Calculation: Similar to traditional Bollinger Bands, this indicator calculates the upper and lower bands that envelop the median (centerline) of the price data. These bands represent the potential upper and lower boundaries of price movements.
Robust Statistics: Instead of using standard deviation, this indicator employs robust statistical measures to calculate the bands (spread). Specifically, it uses the Interquartile Range (IQR), which is the range between the 25th percentile (low price) and the 75th percentile (high price). Robust statistics are less affected by extreme values (outliers) and data distributions that may not be perfectly normal. This makes the bands more resistant to unusual price spikes.
Median as Centerline: The indicator utilizes the median of the chosen price source (either HLC3 or VWMA) as the central reference point for the bands. The median is less affected by outliers than the mean (average), making it a robust choice. This can help identify the center of price action, which is useful for understanding whether prices are trending or ranging.
Trend Strength Assessment: The indicator goes beyond the standard Bollinger Bands by incorporating a measure of trend strength. It uses a robust rank-based correlation coefficient to assess the relationship between the price source and the bar index (time). This correlation coefficient, calculated over a specified length, helps determine whether a trend is strong, positive (uptrend), negative (down trend), or non-existent and weak. When the rank-based correlation coefficient shifts it indicates exhaustion of a prevailing trend. Trend Strength" indicator is designed to provide statistically valid information about trend strength while minimizing the impact of outliers and data distribution characteristics. The parameter choices, including a length of 14 and a correlation threshold of +/-0.7, considered to offer meaningful insights into market conditions and statistical validity (p-value ,0.05 statistically significant). The use of rank-based correlation is a robust alternative to traditional Pearson correlation, especially in the context of financial markets.
Trend Fill: Based on the robust rank-based correlation coefficient, the indicator fills the area between the upper and lower Bollinger Bands with different colors to visually represent the trend strength. For example, it may use green for an uptrend, red for a down trend, and a neutral color for a weak or ranging market. This visual representation can help traders quickly identify potential trend opportunities. In addition the middle line also informs about the overall trend direction of the median.
VWMA/SMA Delta Volatility (Statistical Anomaly Detector)The "VWMA/SMA Delta Volatility (Statistical Anomaly Detector)" indicator is a tool designed to detect and visualize volatility in a financial market's price data. The indicator calculates the difference (delta) between two moving averages (VWMA/SMA) and uses statistical analysis to identify anomalies or extreme price movements. Here's a breakdown of its components:
Hypothesis:
The hypothesis behind this indicator is that extreme price movements or anomalies in the market can be detected by analyzing the difference between two moving averages and comparing it to a statistically derived normal distribution. When the MA delta (the difference between two MAs: VWMA/SMA) exceeds a certain threshold based on standard deviation and the Z-score coefficient, it may indicate increased market volatility or potential trading opportunities.
Calculation of MA Delta:
The indicator calculates the MA delta by subtracting a simple moving average (SMA) from a volume-weighted moving average (VWMA) of a selected price source. This calculation represents the difference in the market's short-term and long-term trends.
Statistical Analysis:
To detect anomalies, the indicator performs statistical analysis on the MA delta. It calculates a moving average (MA) of the MA delta and its standard deviation over a specified sample size. This MA acts as a baseline, and the standard deviation is used to measure how much the MA delta deviates from the mean.
Delta Normalization:
The MA delta, lower filter, and upper filter are normalized using a function that scales them to a specific range, typically from -100 to 100. Normalization helps in comparing these values on a consistent scale and enhances their visual representation.
Visual Representation:
The indicator visualizes the results through histograms and channels:
The histogram bars represent the normalized MA delta. Red bars indicate negative and below-lower-filter values, green bars indicate positive and above-upper-filter values, and silver bars indicate values within the normal range.
It also displays a Z-score channel, which represents the upper and lower filters after normalization. This channel helps traders identify price levels that are statistically significant and potentially indicative of market volatility.
In summary, the "MA Delta Volatility (Statistical Anomaly Detector)" indicator aims to help traders identify abnormal price movements in the market by analyzing the difference between two moving averages and applying statistical measures. It can be a valuable tool for traders looking to spot potential opportunities during periods of increased volatility or to identify potential market anomalies.
ATR Adaptive RSI OscillatorThe " ATR Adaptive RSI Oscillator " is a versatile technical analysis tool designed to help traders make informed decisions in dynamic market conditions. It combines the Relative Strength Index (RSI) with the Average True Range (ATR) to provide adaptive and responsive insights into price trends.
Key Features :
Adaptive RSI Periods : The indicator introduces the concept of adaptive RSI periods based on the ATR (Average True Range) of the market. When enabled, it dynamically adjusts the RSI calculation period, offering longer periods during high volatility and shorter periods during low volatility. This adaptability enhances the accuracy of RSI signals across varying market conditions.
Volume-Based Smoothing : The indicator includes a smoothing feature that computes a time-decayed weighted moving average of RSI values over the last two bars, using volume-based weights. This approach offers a time-sensitive smoothing effect, reducing noise for a clearer view of trend strength compared to the standard RSI.
Divergence Detection : Traders can enable divergence detection to identify potential reversal points in the market. The indicator highlights regular bullish and bearish divergences, providing valuable insights into market sentiment shifts.
Customizable Parameters : Traders have the flexibility to customize various parameters, including RSI length, adaptive mode, ATR length, and divergence settings, to tailor the indicator to their trading strategy.
Overbought and Oversold Levels : The indicator includes overbought (OB) and oversold (OS) boundary lines that can be adjusted to suit individual preferences. These levels help traders identify potential reversal zones.
The "ATR Adaptive RSI Oscillator" is a powerful tool for traders seeking to adapt their trading strategies to changing market dynamics. Whether you're a trend follower or a contrarian trader, this indicator provides valuable insights to support your decision-making process.
Liquidity Heatmap [BigBeluga]The Liquidity Heatmap is an indicator designed to spot possible resting liquidity or potential stop loss using volume or Open interest.
The Open interest is the total number of outstanding derivative contracts for an asset—such as options or futures—that have not been settled. Open interest keeps track of every open position in a particular contract rather than tracking the total volume traded.
The Volume is the total quantity of shares or contracts traded for the current timeframe.
🔶 HOW IT WORKS
Based on the user choice between Volume or OI, the idea is the same for both.
On each candle, we add the data (volume or OI) below or above (long or short) that should be the hypothetical liquidation levels; More color of the liquidity level = more reaction when the price goes through it.
Gradient color is calculated between an average of 2 points that the user can select. For example: 500, and the script will take the average of the highest data between 500 and 250 (half of the user's choice), and the gradient will be based on that.
If we take volume as an example, a big volume spike will mean a lot of long or short activity in that candle. A liquidity level will be displayed below/above the set leverage (4.5 = 20x leverage as an example) so when the price revisits that zone, all the 20x leverage should be liquidated.
Huge volume = a lot of activity
Huge OI = a lot of positions opened
More volume / OI will result in a stronger color that will generate a stronger reaction.
🔶 ROUTE
Here's an example of a route for long liquidity:
Enable the filter = consider only green candles.
Set the leverage to 4.5 (20x).
Choose Data = Volume.
Process:
A green candle is formed.
A liquidity level is established.
The level is placed below to simulate the 20x leverage.
Color is applied, considering the average volume within the chosen area.
Route completed.
🔶 FEATURE
Possibility to change the color of both long and short liquidity
Manual opacity value
Manual opacity average
Leverage
Autopilot - set a good average automatically of the opacity value
Enable both long or short liquidity visualization
Filtering - grab only red/green candle of the corresponding side or grab every candle
Data - nzVolume - Volume - nzOI - OI
🔶 TIPS
Since the limit of the line is 500, it's best to plot 2 scripts: one with only long and another with only short.
🔶 CONCLUSION
The liquidity levels are an interesting way to think about possible levels, and those are not real levels.
Volume [Entoryx]
Certainly! Here's a more concise description for the "Entoryx Volume" indicator, with less focus on the specifics of the order block bar detection:
The "Entoryx Volume" is a versatile technical indicator that analyzes the relationship between price ranges and volume over a user-defined number of bars. By calculating a delta between the highest high and lowest low, it offers insights into market momentum and direction.
Key features of this indicator include:
1) Current Value Plotting: A dynamic line plotted on the chart represents the current value, which reflects market trends. The color of the line changes to green for bullish conditions and red for bearish conditions, depending on its relationship with the Exponential Moving Average (EMA) of the close.
2) Color-Coded Regions: The area between the current value plot and a baseline zero line is filled with a corresponding color, providing a visual representation of market sentiment.
3) Boundary Lines: Horizontal lines at +10 and -10 serve as reference points to highlight significant market movements.
4) Order Block Bar Detection (Optional): An optional feature that places visual markers on the chart to signal potential reversals. This can be enabled or disabled by the user, according to preference.
The "Entoryx Volume" indicator is tailored for traders aiming to understand market momentum with a clear and visually intuitive display. It is suitable across various trading strategies and market conditions, with customization options to fit individual needs.
The source code for this indicator is subject to the terms of the Mozilla Public License 2.0.
RSI Supreme Multi-Method [MyTradingCoder]Introducing the "RSI Supreme Multi-Method" indicator, a powerful tool that combines the Relative Strength Index (RSI) with selectable manipulation methods to identify overbought and oversold conditions in the market, along with the ability to detect divergences for enhanced trading insights.
The indicator features four distinct manipulation methods for the RSI, each providing valuable insights into market conditions:
1. Standard RSI Method: The indicator uses the traditional RSI calculation to identify overbought and oversold areas.
2. Volatility Weighted RSI Method: This method applies a volatility formula to the RSI calculation, allowing for a more responsive indication of market conditions during periods of heightened volatility. Users can adjust the length of the volatility formula to fine-tune this method.
3. Smoothed RSI Method: The smoothed RSI method utilizes a smoothing algorithm to reduce noise in the RSI values, presenting a clearer representation of overbought and oversold conditions. The length of the smoothing can be adjusted to match your trading preferences.
4. Session Weighted RSI Method: With this innovative method, users can specify multipliers for different time sessions throughout the day to manipulate the base RSI. Each session can be customized with start and end times, enabling or disabling specific sessions, and specifying the multiplier for each session. This feature allows traders to adapt the RSI to different market sessions dynamically.
Additionally, the "RSI Supreme Multi-Method" indicator draws divergences on the oscillator, providing an extra layer of analysis for traders. Divergences occur when the direction of the RSI differs from the direction of the price movement, potentially signaling trend reversals.
Key Settings:
RSI Length: Adjust the length of the base RSI before applying any manipulation.
RSI Source: Determine the data source for the base RSI calculation.
Overbought Value: Set the RSI value at which overbought conditions are indicated.
Oversold Value: Set the RSI value at which oversold conditions are indicated.
RSI Type: Choose from four options: Standard, Smoothed, Volatility Manipulated, or Session Manipulated.
Volatility Manipulated Settings: Adjust the length of the volatility formula (applicable to Volatility Manipulated method).
Smoothed Settings: Adjust the length of the smoothing (applicable to Smoothed method).
Session Manipulated Settings: Customize six different time sessions with start and end times, enable or disable specific sessions, and specify multipliers for each session.
Divergence Color: Adjust the color of the drawn divergences to suit your chart's aesthetics.
Divergence Tuning: Fine-tune the sensitivity of the divergence detection for more accurate signals.
The "RSI Supreme Multi-Method" indicator is a versatile and comprehensive tool that can be used to identify overbought and oversold areas, as well as to spot potential trend reversals through divergences. However, like all technical analysis tools, it should be used in conjunction with other indicators and analysis methods to make well-informed trading decisions.
Enhance your trading insights with the "RSI Supreme Multi-Method" indicator and gain an edge in identifying critical market conditions and divergences with precision.
Buyers & Sellers / RangeBuyers & Sellers / Range
Volatility oscillator that measures the relationship of Buying & Selling Pressure to True Range.
In other words, how much % Buyers and Sellers separately occupy the Bar
BSP is a part of Bar Range. Entire bar metrics will always have bigger value than its composite elements (body and wicks).
Since there will be NO chance of BP or SP being more than ATR, their ratio would serve crucial Volatility details.
Hence, we can relate each of them to the overall range.
As a result we have simultaneous measurements of proportions buyers and sellers to the bar.
Default mode shows BP/ATR and SP/ATR mirrored. When one rises, the other falls to compensate.
Buying Pressure / True Range ⬆️🟢 ⬇️🔵
Selling Pressure / True Range ⬆️🔴 ⬇️🟠
They are being averaged in 2 different ways:
Pre-average first, then relate as ratio
Related first, then Averaged
Enable "Preaveraged" to use already averaged BSP and Ranges in ratio instead of averaging the ratio of BSP to individual bar. For example, we're looking BP/ATR, in calculation of buyers / Range it will use "MA(Buying Pressure) / MA(True Range)" instead of "MA(Buying Pressure / True Range)".
Due such calculation, it is going to be more lagging than in off mode. Nevertheless, it reduces noise from the impact of individual bar change.
Second way of noise reduction is enabling "Body / Range"
BSP Body / Range where Bullish & Bearish Body = Buying & Selling Pressure - Relevant Wick
Buying Body = Buying Pressure - Lower Wick
Selling Body = Selling Pressure - Upper Wick
And only then it is divided to ATR.
Note that Balance line differs because body is less than it used to be with wicks. So change in wicks won't play any role in computing the ratio anymore. Thus, signals of their crossings will be more reliable than in default mode.
Developing Market Profile / TPO [Honestcowboy]The Developing Market Profile Indicator aims to broaden the horizon of Market Profile / TPO research and trading. While standard Market Profiles aim is to show where PRICE is in relation to TIME on a previous session (usually a day). Developing Market Profile will change bar by bar and display PRICE in relation to TIME for a user specified number of past bars.
What is a market profile?
"Market Profile is an intra-day charting technique (price vertical, time/activity horizontal) devised by J. Peter Steidlmayer. Steidlmayer was seeking a way to determine and to evaluate market value as it developed in the day time frame. The concept was to display price on a vertical axis against time on the horizontal, and the ensuing graphic generally is a bell shape--fatter at the middle prices, with activity trailing off and volume diminished at the extreme higher and lower prices."
For education on market profiles I recommend you search the net and study some profitable traders who use it.
Key Differences
Does not have a value area but distinguishes each column in relation to the biggest column in percentage terms.
Updates bar by bar
Does not take sessions into account
Shows historical values for each bar
While there is an entire education system build around Market Profiles they usually focus on a daily profile and in some cases how the value area develops during the day (there are indicators showing the developing value area).
The idea of trading based on a developing value area is what inspired me to build the Developing Market Profile.
🟦 CALCULATION
Think of this Developing Market Profile the same way as you would think of a moving average. On each bar it will lookback 200 bars (or as user specified) and calculate a Market Profile from those bars (range).
🔹Market Profile gets calculated using these steps:
Get the highest high and lowest low of the price range.
Separate that range into user specified amount of price zones (all spaced evenly)
Loop through the ranges bars and on each bar check in which price zones price was, then add +1 to the zones price was in (we do this using the OccurenceArray)
After it looped through all bars in the range it will draw columns for each price zone (using boxes) and make them as wide as the OccurenceArray dictates in number of bars
🔹Coloring each column:
The script will find the biggest column in the Profile and use that as a reference for all other columns. It will then decide for each column individually how big it is in % compared to the biggest column. It will use that percentage to decide which color to give it, top 20% will be red, top 40% purple, top 60% blue, top 80% green and all the rest yellow. The user is able to adjust these numbers for further customisation.
The historical display of the profiles uses plotchar() and will not only use the color of the column at that time but the % rating will also decide transparancy for further detail when analysing how the profiles developed over time. Each of those historical profiles is calculated using its own 200 past bars. This makes the script very heavy and that is why it includes optimisation settings, more info below.
🟦 USAGE
My general idea of the markets is that they are ever changing and that in studying that changing behaviour a good trader is able to distinguish new behaviour from old behaviour and adapt his approach before losing traders "weak hands" do.
A Market Profile can visually show a trader what kind of market environment we currently are in. In training this visual feedback helps traders remember past market environments and how the market behaved during these times.
Use the history shown using plotchars in colors to get an idea of how the Market Profile looked at each bar of the chart.
This history will help in studying how price moves at different stages of the Market Profile development.
I'm in no way an expert in trading Market Profiles so take this information with a grain of salt. Below an idea of how I would trade using this indicator:
🟦 SETTINGS
🔹MARKET PROFILING
Lookback: The amount of bars the Market Profile will look in the past to calculate where price has been the most in that range
Resolution: This is the amount of columns the Market Profile will have. These columns are calculated using the highest and lowest point price has been for the lookback period
Resolution is limited to a maximum of 32 because of pinescript plotting limits (64). Each plotchar() because of using variable colors takes up 2 of these slots
🔹VISUAL SETTINGS
Profile Distance From Chart: The amount of bars the market profile will be offset from the current bar
Border width (MP): The line thickness of the Market Profile column borders
Character: This is the character the history will use to show past profiles, default is a square.
Color theme: You can pick 5 colors from biggest column of the Profile to smallest column of the profile.
Numbers: these are for % to decide column color. So on default top 20% will be red, top 40% purple... Always use these in descending order
Show Market Profile: This setting will enable/disable the current Market Profile (columns on right side of current bar)
Show Profile History: This setting will enable/disable the Profile History which are the colored characters you see on each bar
🔹OPTIMISATION AND DEBUGGING
Calculate from here: The Market Profile will only start to calculate bar by bar from this point. Setting is needed to optimise loading time and quite frankly without it the script would probably exceed tradingview loading time limits.
Min Size: This setting is there to avoid visual bugs in the script. Scaling the chart there can be issues where the Market Profile extends all the way to 0. To avoid this use a minimum size bigger than the bugged bottom box
Moving Average - TREND POWER v1.1- (AS)0)NOTE:
This is first version of this indicator. It's way more complicated than it should be. Check out Moving Average-TREND POWER v2.1-(AS), its waaaaay less complicated and might be better.Enjoy...
1)INTRODUCTION/MAIN IDEA:
In simpliest form this script is a trend indicator that rises if Moving average if below price or falling if above and going back to zero if there is a crossover with a price. To use this indicator you will have to adjust settings of MAs and choose conditions for calculation.
While using the indicator we might have to define CROSS types or which MAs to use. List of what cross types are defined in the script and Conditiones to choose from.The list will be below.
2) COMPOSITION:
-MA1 can be defined by user in settings, possible types: SMA, EMA, RMA, HMA, TEMA, DEMA, LSMA, WMA.
-MA2 is always ALMA
3) OVERLAY:
Default is false but if you want to see MA1/2 on chart you can change code to true and then turn on overlay in settings. Most plot settings are avalible only in OV=false.
if OV=true possible plots ->MA1/2, plotshape when choosen cross type
if OV=false -> main indicator,TSHs,Cross counter
4)PRESETS :
Indicator has three modes that can be selected in settings. First two are presets and do not require selecting conditions as they set be default.
-SIMPLE - most basic
-ABSOLUTE - shows only positive values when market is trending or zero when in range
-CUSTOM - main and the most advanced form that will require setting conditions to use in calculating trend
4.1)SIMPLE – this is the most basic form of conditions that uses only First MA. If MA1 is below selected source (High/Low(High for Uptrend and Low for DNtrend or OHLC4) on every bar value rises by 0.02. if it above Low or OHLC4 it falls by 0.02 with every bar. If there is a cross of MA with price value is zero. This preset uses CROSS_1_ULT(list of all cross types below)
4.2) ABSOLUTE – does not show direction of the trend unlike others and uses both MA1 and MA2. Uses CROSS type 123_ULT
4.3) CUSTOM – here we define conditions manually. This mode is defined in parts (5-8 of description)
5)SETTINGS:
SOURCE/OVERLAY(line1) – select source of calculation form MA1/MA2, select for overlay true (look point 3)
TRESHOLDS(line2). – set upper and lower THS, turn TSHs on/off
MA1(line3) – Length/type of MA/Offset(only if MA type is LSM)
MA2(line4) – length/offset/sigma -(remember to set ma in the way that in Uptrend MA2MA1 in DNtrend)
Use faster MA types for short term trends and slower types / bigger periods for longer term trends, defval MA1/2 settings
are pretty much random so using them is not recomended.
CROSSshape(line5) – choose which cross type you want to plot on chart(only in OV=true) or what type you want to use in counting via for loops,
CROSScount(line6) – set lookback for type of cross choosen above
BOOLs in lines 5 and 6 - plotshape if OV=true/plot CROSScount histogram (if OV=false)
Lines 7 and 8 – PRESET we want to use /SRC for calculation of indicator/are conditions described below/which MAs to use/Condition for
reducing value t 0 - (if PRESET is ABSOLUTE or SIMPLE only SRC should be set(Line 8 does not matter if not CUSTOM))
5)SOURCE for CONDS:
Here you can choose between H/L and OHLC. If H/L value grow when MAlow. If OHLC MAOHLC. H/L is set by default and recommended. This can be selected for all presets not only CUSTOM
6)CROSS types LIST:
“1 means MA1, 2 is MA2 and 3 I cross of MA1/MA2. L stands for low and H for high so for example 2H means cross of MA2 and high”
NAME -DEFINITION Number of possible crosses
1L - cross of MA1 and low 1
1H - cross of MA1 and high 1
1HL - cross of MA1 and low or MA1 and high 2 -1L/1H
2L - cross of MA2 and low 1
2H - cross of MA2 and high 1
2HL - cross of MA2 and low or MA1 and high 2 -2L/2H
12L - cross of MA1 and low or MA2 and low 2 -1L/2L
12H - cross of MA1 and high or MA2 and high 2 -1H/2H
12HL - MA1/2 and high/low 4 -1H/1L/2H/2L
3 -cross of MA1 and MA2 1
123HL -crosses from 12HL or 3 5 -12HL/3
1_ULT - cross of MA1 with any of price sources(close,low,high,ohlc4 etc…)
2_ULT - cross of MA2 with any of price sources(close,low,high,ohlc4 etc…)
123_ULT – all crosses possible of MA1/2 (all of the above so a lot)
7)CRS CONDS:
“conditions to reduce value back to zero”
>/< - 0 if indicator shows Uptrend and there’s a cross with high of selected MA or 0 if in DNtrend and cross with low. Better for UP/DN trend detection
ALL – 0 if cross of MA with high or low no matter the trend, better for detecting consolidation
ULT – if any cross of selected MA, most crosses so goes to 0 most often
8)MA selection and CONDS:
-MA1: only MA1 is used,if MA1 below price value grows and the other way around
MA1price =-0.02
-MA2 – only MA2 is used, same conditions as MA1 but using MA2
MA2price =-0.02
-BOTH – MA1 and MA2 used, grows when MA1 if below, grows faster if MA1 and MA2 are below and fastest when MA1 and MA2 are below and MA2price=-0.02
-MA1 and MA2 >price=-0.03
-MA1 and MA2 ?price and MA2>MA1=-0.04
9)CONDITIONS SELECTION SUMMARRY:
So when CUSTOM we choose :
1)SOURCE – H/L or OHLC
2)MAs – MA1/MA2/BOTH
3)CRS CONDS (>/<,ALL,ULT)
So for example...
if we take MA1 and ALL value will go to zero if 1HL
if MA1 and >/< - 0 if 1L or 1H (depending if value is positive or negative).(1L or 1H)
If ALL and BOTH zero when 12HL
If BOTH and ULT value goes back to zero if Theres any cross of MA1/MA2 with price or cross of MA1 and MA2.(123_ULT)
If >/< and BOTH – 0 if 12L in DNtrend or 12H if UPtrend
10) OTHERS
-script was created on EURUSD 5M and wasn't tested on different markets
-default values of MA1/MA2 aren't optimalized so do not
-There might be a logical error in the script so let me know if you find it (most probably in 'BOTH')
-thanks to @AlifeToMake for help
-if you have any ideas to improve let me know
-there are also tooltips to help
VolatilityIndicatorsLibrary "VolatilityIndicators"
This is a library of Volatility Indicators .
It aims to facilitate the grouping of this category of indicators, and also offer the customized supply of
the parameters and sources, not being restricted to just the closing price.
@Thanks and credits:
1. Dynamic Zones: Leo Zamansky, Ph.D., and David Stendahl
2. Deviation: Karl Pearson (code by TradingView)
3. Variance: Ronald Fisher (code by TradingView)
4. Z-score: Veronique Valcu (code by HPotter)
5. Standard deviation: Ronald Fisher (code by TradingView)
6. ATR (Average True Range): J. Welles Wilder (code by TradingView)
7. ATRP (Average True Range Percent): millerrh
8. Historical Volatility: HPotter
9. Min-Max Scale Normalization: gorx1
10. Mean Normalization: gorx1
11. Standardization: gorx1
12. Scaling to unit length: gorx1
13. LS Volatility Index: Alexandre Wolwacz (Stormer), Fabrício Lorenz, Fábio Figueiredo (Vlad) (code by me)
14. Bollinger Bands: John Bollinger (code by TradingView)
15. Bollinger Bands %: John Bollinger (code by TradingView)
16. Bollinger Bands Width: John Bollinger (code by TradingView)
dev(source, length, anotherSource)
Deviation. Measure the difference between a source in relation to another source
Parameters:
source (float)
length (simple int) : (int) Sequential period to calculate the deviation
anotherSource (float) : (float) Source to compare
Returns: (float) Bollinger Bands Width
variance(src, mean, length, biased, degreesOfFreedom)
Variance. A statistical measurement of the spread between numbers in a data set. More specifically,
variance measures how far each number in the set is from the mean (average), and thus from every other number in the set.
Variance is often depicted by this symbol: σ2. It is used by both analysts and traders to determine volatility and market security.
Parameters:
src (float) : (float) Source to calculate variance
mean (float) : (float) Mean (Moving average)
length (simple int) : (int) The sequential period to calcule the variance (number of values in data set)
biased (simple bool) : (bool) Defines the type of standard deviation. If true, uses biased sample variance (n),
degreesOfFreedom (simple int) : (int) Degrees of freedom. The number of values in the final calculation of a statistic that are free to vary.
Default value is n-1, where n here is length. Only applies when biased parameter is defined as true.
Returns: (float) Standard deviation
stDev(src, length, mean, biased, degreesOfFreedom)
Measure the Standard deviation from a source in relation to it's moving average.
In this implementation, you pass the average as a parameter, allowing a more personalized calculation.
Parameters:
src (float) : (float) Source to calculate standard deviation
length (simple int) : (int) The sequential period to calcule the standard deviation
mean (float) : (float) Moving average.
biased (simple bool) : (bool) Defines the type of standard deviation. If true, uses biased sample variance (n),
else uses unbiased sample variance (n-1 or another value, as long as it is in the range between 1 and n-1), where n=length.
degreesOfFreedom (simple int) : (int) Degrees of freedom. The number of values in the final calculation of a statistic that are free to vary.
Default value is n-1, where n here is length.
Returns: (float) Standard deviation
zscore(src, mean, length, biased, degreesOfFreedom)
Z-Score. A z-score is a statistical measurement that indicates how many standard deviations a data point is from
the mean of a data set. It is also known as a standard score. The formula for calculating a z-score is (x - μ) / σ,
where x is the individual data point, μ is the mean of the data set, and σ is the standard deviation of the data set.
Z-scores are useful in identifying outliers or extreme values in a data set. A positive z-score indicates that the
data point is above the mean, while a negative z-score indicates that the data point is below the mean. A z-score of
0 indicates that the data point is equal to the mean.
Z-scores are often used in hypothesis testing and determining confidence intervals. They can also be used to compare
data sets with different units or scales, as the z-score standardizes the data. Overall, z-scores provide a way to
measure the relative position of a data point in a data
Parameters:
src (float) : (float) Source to calculate z-score
mean (float) : (float) Moving average.
length (simple int) : (int) The sequential period to calcule the standard deviation
biased (simple bool) : (bool) Defines the type of standard deviation. If true, uses biased sample variance (n),
else uses unbiased sample variance (n-1 or another value, as long as it is in the range between 1 and n-1), where n=length.
degreesOfFreedom (simple int) : (int) Degrees of freedom. The number of values in the final calculation of a statistic that are free to vary.
Default value is n-1, where n here is length.
Returns: (float) Z-score
atr(source, length)
ATR: Average True Range. Customized version with source parameter.
Parameters:
source (float) : (float) Source
length (simple int) : (int) Length (number of bars back)
Returns: (float) ATR
atrp(length, sourceP)
ATRP (Average True Range Percent)
Parameters:
length (simple int) : (int) Length (number of bars back) for ATR
sourceP (float) : (float) Source for calculating percentage relativity
Returns: (float) ATRP
atrp(source, length, sourceP)
ATRP (Average True Range Percent). Customized version with source parameter.
Parameters:
source (float) : (float) Source for ATR
length (simple int) : (int) Length (number of bars back) for ATR
sourceP (float) : (float) Source for calculating percentage relativity
Returns: (float) ATRP
historicalVolatility(lengthATR, lengthHist)
Historical Volatility
Parameters:
lengthATR (simple int) : (int) Length (number of bars back) for ATR
lengthHist (simple int) : (int) Length (number of bars back) for Historical Volatility
Returns: (float) Historical Volatility
historicalVolatility(source, lengthATR, lengthHist)
Historical Volatility
Parameters:
source (float) : (float) Source for ATR
lengthATR (simple int) : (int) Length (number of bars back) for ATR
lengthHist (simple int) : (int) Length (number of bars back) for Historical Volatility
Returns: (float) Historical Volatility
minMaxNormalization(src, numbars)
Min-Max Scale Normalization. Maximum and minimum values are taken from the sequential range of
numbars bars back, where numbars is a number defined by the user.
Parameters:
src (float) : (float) Source to normalize
numbars (simple int) : (int) Numbers of sequential bars back to seek for lowest and hightest values.
Returns: (float) Normalized value
minMaxNormalization(src, numbars, minimumLimit, maximumLimit)
Min-Max Scale Normalization. Maximum and minimum values are taken from the sequential range of
numbars bars back, where numbars is a number defined by the user.
In this implementation, the user explicitly provides the desired minimum (min) and maximum (max) values for the scale,
rather than using the minimum and maximum values from the data.
Parameters:
src (float) : (float) Source to normalize
numbars (simple int) : (int) Numbers of sequential bars back to seek for lowest and hightest values.
minimumLimit (simple float) : (float) Minimum value to scale
maximumLimit (simple float) : (float) Maximum value to scale
Returns: (float) Normalized value
meanNormalization(src, numbars, mean)
Mean Normalization
Parameters:
src (float) : (float) Source to normalize
numbars (simple int) : (int) Numbers of sequential bars back to seek for lowest and hightest values.
mean (float) : (float) Mean of source
Returns: (float) Normalized value
standardization(src, mean, stDev)
Standardization (Z-score Normalization). How "outside the mean" values relate to the standard deviation (ratio between first and second)
Parameters:
src (float) : (float) Source to normalize
mean (float) : (float) Mean of source
stDev (float) : (float) Standard Deviation
Returns: (float) Normalized value
scalingToUnitLength(src, numbars)
Scaling to unit length
Parameters:
src (float) : (float) Source to normalize
numbars (simple int) : (int) Numbers of sequential bars back to seek for lowest and hightest values.
Returns: (float) Normalized value
lsVolatilityIndex(movingAverage, sourceHvol, lengthATR, lengthHist, lenNormal, lowerLimit, upperLimit)
LS Volatility Index. Measures the volatility of price in relation to an average.
Parameters:
movingAverage (float) : (float) A moving average
sourceHvol (float) : (float) Source for calculating the historical volatility
lengthATR (simple int) : (float) Length for calculating the ATR (Average True Range)
lengthHist (simple int) : (float) Length for calculating the historical volatility
lenNormal (simple int) : (float) Length for normalization
lowerLimit (simple int)
upperLimit (simple int)
Returns: (float) LS Volatility Index
lsVolatilityIndex(sourcePrice, movingAverage, sourceHvol, lengthATR, lengthHist, lenNormal, lowerLimit, upperLimit)
LS Volatility Index. Measures the volatility of price in relation to an average.
Parameters:
sourcePrice (float) : (float) Source for measure the distance
movingAverage (float) : (float) A moving average
sourceHvol (float) : (float) Source for calculating the historical volatility
lengthATR (simple int) : (float) Length for calculating the ATR (Average True Range)
lengthHist (simple int) : (float) Length for calculating the historical volatility
lenNormal (simple int)
lowerLimit (simple int)
upperLimit (simple int)
Returns: (float) LS Volatility Index
bollingerBands(src, length, mult, basis)
Bollinger Bands. A Bollinger Band is a technical analysis tool defined by a set of lines plotted
two standard deviations (positively and negatively) away from a simple moving average (SMA) of the security's price,
but can be adjusted to user preferences. In this version you can pass a customized basis (moving average), not only SMA.
Parameters:
src (float) : (float) Source to calculate standard deviation used in Bollinger Bands
length (simple int) : (int) The time period to be used in calculating the standard deviation
mult (simple float) : (float) Multiplier used in standard deviation. Basically, the upper/lower bands are standard deviation multiplied by this.
basis (float) : (float) Basis of Bollinger Bands (a moving average)
Returns: (float) A tuple of Bollinger Bands, where index 1=basis; 2=basis+dev; 3=basis-dev; and dev=multiplier*stdev
bollingerBands(src, length, aMult, basis)
Bollinger Bands. A Bollinger Band is a technical analysis tool defined by a set of lines plotted
two standard deviations (positively and negatively) away from a simple moving average (SMA) of the security's price,
but can be adjusted to user preferences. In this version you can pass a customized basis (moving average), not only SMA.
Also, various multipliers can be passed, thus getting more bands (instead of just 2).
Parameters:
src (float) : (float) Source to calculate standard deviation used in Bollinger Bands
length (simple int) : (int) The time period to be used in calculating the standard deviation
aMult (float ) : (float ) An array of multiplies used in standard deviation. Basically, the upper/lower bands are standard deviation multiplied by this.
This array of multipliers permit the use of various bands, not only 2.
basis (float) : (float) Basis of Bollinger Bands (a moving average)
Returns: (float ) An array of Bollinger Bands, where:
index 1=basis; 2=basis+dev1; 3=basis-dev1; 4=basis+dev2, 5=basis-dev2, 6=basis+dev2, 7=basis-dev2, Nup=basis+devN, Nlow=basis-devN
and dev1, dev2, devN are ```multiplier N * stdev```
bollingerBandsB(src, length, mult, basis)
Bollinger Bands %B - or Percent Bandwidth (%B).
Quantify or display where price (or another source) is in relation to the bands.
%B can be useful in identifying trends and trading signals.
Calculation:
%B = (Current Price - Lower Band) / (Upper Band - Lower Band)
Parameters:
src (float) : (float) Source to calculate standard deviation used in Bollinger Bands
length (simple int) : (int) The time period to be used in calculating the standard deviation
mult (simple float) : (float) Multiplier used in standard deviation
basis (float) : (float) Basis of Bollinger Bands (a moving average)
Returns: (float) Bollinger Bands %B
bollingerBandsB(src, length, aMult, basis)
Bollinger Bands %B - or Percent Bandwidth (%B).
Quantify or display where price (or another source) is in relation to the bands.
%B can be useful in identifying trends and trading signals.
Calculation
%B = (Current Price - Lower Band) / (Upper Band - Lower Band)
Parameters:
src (float) : (float) Source to calculate standard deviation used in Bollinger Bands
length (simple int) : (int) The time period to be used in calculating the standard deviation
aMult (float ) : (float ) Array of multiplier used in standard deviation. Basically, the upper/lower bands are standard deviation multiplied by this.
This array of multipliers permit the use of various bands, not only 2.
basis (float) : (float) Basis of Bollinger Bands (a moving average)
Returns: (float ) An array of Bollinger Bands %B. The number of results in this array is equal the numbers of multipliers passed via parameter.
bollingerBandsW(src, length, mult, basis)
Bollinger Bands Width. Serve as a way to quantitatively measure the width between the Upper and Lower Bands
Calculation:
Bollinger Bands Width = (Upper Band - Lower Band) / Middle Band
Parameters:
src (float) : (float) Source to calculate standard deviation used in Bollinger Bands
length (simple int) : (int) Sequential period to calculate the standard deviation
mult (simple float) : (float) Multiplier used in standard deviation
basis (float) : (float) Basis of Bollinger Bands (a moving average)
Returns: (float) Bollinger Bands Width
bollingerBandsW(src, length, aMult, basis)
Bollinger Bands Width. Serve as a way to quantitatively measure the width between the Upper and Lower Bands
Calculation
Bollinger Bands Width = (Upper Band - Lower Band) / Middle Band
Parameters:
src (float) : (float) Source to calculate standard deviation used in Bollinger Bands
length (simple int) : (int) Sequential period to calculate the standard deviation
aMult (float ) : (float ) Array of multiplier used in standard deviation. Basically, the upper/lower bands are standard deviation multiplied by this.
This array of multipliers permit the use of various bands, not only 2.
basis (float) : (float) Basis of Bollinger Bands (a moving average)
Returns: (float ) An array of Bollinger Bands Width. The number of results in this array is equal the numbers of multipliers passed via parameter.
dinamicZone(source, sampleLength, pcntAbove, pcntBelow)
Get Dynamic Zones
Parameters:
source (float) : (float) Source
sampleLength (simple int) : (int) Sample Length
pcntAbove (simple float) : (float) Calculates the top of the dynamic zone, considering that the maximum values are above x% of the sample
pcntBelow (simple float) : (float) Calculates the bottom of the dynamic zone, considering that the minimum values are below x% of the sample
Returns: A tuple with 3 series of values: (1) Upper Line of Dynamic Zone;
(2) Lower Line of Dynamic Zone; (3) Center of Dynamic Zone (x = 50%)
Examples:
Risk ManagementLibrary "RiskManagement"
This library keeps your money in check, and is used for testing and later on webhook-applications too. It has four volatility functions and two of them can be used to calculate a Stop-Loss, like Average True Range. It also can calculate Position Size, and the Risk Reward Ratio. But those calculations don't take leverage into account.
position_size(portfolio, risk, entry, stop_loss, use_leverage, qty_as_integer)
This function calculates the definite amount of contracts/shares/units you should use to buy or sell. This value can used by `strategy.entry(qty)` for example.
Parameters:
portfolio (float) : This is the total amount of the currency you own, and is also used by strategy.initial_capital, for example. The amount is needed to calculate the maximum risk you are willing to take per trade.
risk (float) : This is the percentage of your Portfolio you willing to loose on a single trade. Possible values are between 0.1 and 100%. Same usecase with strategy(default_qty_type=strategy.percent_of_equity,default_qty_value=100), except its calculation the risk only.
entry (float) : This is the limit-/market-price for the investment. In other words: The price per contract/share/unit you willing to buy or sell.
stop_loss (float) : This is the limit-/market-price when to exit the trade, to minimize your losses.
use_leverage (bool) : This value is optional. When not used or when set to false then this function will let you invest your portfolio at max.
qty_as_integer (bool) : This value is optional. When set to true this function will return a value used with integers. The largest integer less than or equal to the given number. Because some Broker/Exchanges let you trade hole contracts/shares/units only.
Returns: float
position_size_currency(portfolio, risk, entry, stop_loss)
This function calculates the definite amount of currency you should use when going long or short.
Parameters:
portfolio (float) : This is the total amount of the currency you own, and is also used by strategy.initial_capital, for example. The amount is needed to calculate the maximum risk you are willing to take per trade.
risk (float) : This is the percentage of your Portfolio you willing to loose on a single trade. For example: 1 is 100% and 0,01 is 1%. Default amount is 0.02 (2%).
entry (float) : This is the limit-/market-price for the current investment. In other words: The price per contract/share/units you willing to buy or sell.
stop_loss (float) : This is the limit-/market-price when to exit the trade, to minimize your losses.
Returns: float
rrr(entry, stop_loss, take_profit)
This function calculates the Risk Reward Ratio. Common values are between 1.5 and 2.0 and you should not go lower except for very few special cases.
Parameters:
entry (float) : This is the limit-/market-price for the investment. In other words: The price per contract/share/unit you willing to buy or sell.
stop_loss (float) : This is the limit-/market-price when to exit the trade, to minimize your losses.
take_profit (float) : This is the limit-/market-price when to take profits.
Returns: float
change_in_price(length)
This function calculates the difference between price now and close price of the candle 'n' bars before that. If prices are very volatile but closed where they began, then this method would show zero volatility. Over many calculations, this method returns a reasonable measure of volatility, but will always be lower than those using the highs and lows.
Parameters:
length (int) : The length is needed to determine how many candles/bars back should take into account.
Returns: float
maximum_price_fluctuation(length)
This function measures volatility over most recent candles, which could be used as an estimate of risk. It may also be effective as the basis for a stop-loss or take-profit, like the ATR but it ignores the frequency of directional changes within the time interval. In other words: The difference between the highest high and lowest low over 'n' bars.
Parameters:
length (int) : The length is needed to determine how many candles/bars back should take into account.
Returns: float
absolute_price_changes(length)
This function measures volatility over most recent close prices. This is excellent for comparing volatility. It includes both frequency and magnitude. In other words: Sum of differences between second to last close price and last close price as absolute value for 'n' bars.
Parameters:
length (int) : The length is needed to determine how many candles/bars back should take into account.
Returns: float
annualized_volatility(length)
This function measures volatility over most recent close prices. Its the standard deviation of close over the past 'n' periods, times the square root of the number of periods in a year.
Parameters:
length (int) : The length is needed to determine how many candles/bars back should take into account.
Returns: float
Smoother Momentum Stops [Loxx]Smoother Momentum Stops (SMS) is a dynamic tool that combines the logic of momentum and moving averages to create an overlay of the market price and generate potential trade signals. The original idea for this indicator comes from the beloved and esteemed trading indicator guru Mladen Rakic.
Understanding the Framework
The SMS incorporates various aspects of technical analysis, including momentum calculation, several types of moving averages, and an intelligent stop-and-reverse system that determines when to enter and exit trades.
The indicator initiates by defining the color scheme for visualization, specifically green for bullish trends and red for bearish trends. It further utilizes the 'smmom' and 'fema' functions to calculate smoothed momentum and fast exponential moving averages, respectively. The values computed by these functions are central to the signal generation process.
Momentum Calculation
The 'smmom' function serves to calculate a smoother momentum by taking a source (such as the closing price) and a period as inputs. This function employs a complex algorithm involving exponential moving averages (EMA), wherein two EMAs are calculated with different smoothing factors, and the difference between the two results is returned as the output. This smooth momentum calculation assists in eliminating unnecessary noise from the market and delivers more reliable momentum readings.
Moving Averages Computation
One key feature of the SMS is the ability to select from five different moving average types: Exponential Moving Average (EMA), Fast Exponential Moving Average (FEMA), Linear Weighted Moving Average (LWMA), Simple Moving Average (SMA), and Smoothed Moving Average (SMMA). The 'variant' function assigns the chosen method to the '_avg' variable, which is then used in the trade signal logic.
Trade Signal Generation
SMS employs a complex yet robust mechanism for generating trade signals. A stop-and-reverse system is established, which works on the principle of momentum. If the smoothed momentum is positive, an upper stop is determined and if the momentum is negative, a lower stop is defined.
The process continues by defining long and short entry conditions. The indicator goes long when an upper stop exists, and the previous bar had a lower stop, signifying a shift in momentum. The short entry condition is the opposite: the indicator goes short when a lower stop exists, and the previous bar had an upper stop. Alerts are generated for each of these conditions, helping traders to take timely action.
Visual Representation and UI Options
In terms of visual representation, the indicator plots upper and lower stops, employing green color for upper and red for lower stops. If the option to color bars is chosen, the entire bar is colored green or red, based on whether an upper or lower stop exists. This feature allows traders to visually comprehend market conditions better. Support and reisstance levels are also provided for visual context.
Conclusion
The Smoother Momentum Stops indicator is a potent tool for traders seeking to optimize their trading strategies. It blends the fundamentals of momentum and moving averages, resulting in a robust system that provides clear, reliable, and timely trading signals. By adjusting the smoothing type and period parameters, traders can customize the indicator to fit various market conditions and asset types, thereby adding a layer of flexibility to their trading strategies.
The use of a stop-and-reverse system adds a layer of risk management by offering precise entry and exit points based on momentum shifts. These stops are not just mere levels of entries or exits, but they reflect the undercurrent of the market's momentum, thus providing a dynamic framework to make informed trading decisions.
Additionally, the SMS indicator offers visual simplicity. The color-coded bars and distinct symbols for long and short positions make it easier for traders to interpret the signals and market direction quickly. Combined with the alert system, it ensures that traders never miss an important trading opportunity.
Finally, the power of the SMS indicator lies in its adaptability and comprehensive approach. By providing a selection of moving averages and an intelligent momentum-based system, it encapsulates various aspects of market behavior. As such, it is a useful tool not just for momentum traders, but for any trader who understands the significance of moving averages and momentum in predicting market movements.
In conclusion, the Smoother Momentum Stops indicator stands as an innovative, adaptable, and powerful tool for the modern trader. Its blend of flexibility, dynamic risk management, and straightforward visualization offer a comprehensive solution for traders looking to navigate the complex world of financial markets. With a detailed understanding of its workings as presented in this essay, traders can harness its full potential to optimize their strategies, manage risk, and achieve their trading objectives.
custom Bollinger bands with filters - indicator (AS)-----------Description-------------
This indicator is basically Bollinger bands with many ways to customize. It uses highest and lowest values of upper and lower band for exits. I think something is wrong with the script but cant find any mistakes – most probably smoothing. The ATR filter is implemented but is working incorrectly. In code you can also turn it into strategy but I do not recommend it for now as it is not ready yet.
So this is my first script and I am looking for any advice, ideas to improve this script, sets of parameters, markets to apply, logical mistakes in code or any ideas that you may have. Indicator was initially designed for EURUSD 5MIN but I would be interested in other ideas.
-----------SETTINGS--------------
---START - In starting settings we can choose
Line 1: what parts to use BB/DC/ATR
Line 2: what parts to plot on chart
Line 3 Whether or not apply smoothing to BB or ATR filter
Line 4 Calculate deviation for BB from price or Moving average
Line 5 Fill colors and plot other parts for debug (overlay=false)
Line 6:( for strategy) – enable Long/Short Trades
---BB and DC – here we modify Bollinger bands and Donchian
Line 1: Length and type of BB middle line and also length of DC from BB
Line 2: Length and type of BB standard deviation and multiplier
Line 3: Length and type of BB smoothing and %width for BB filter
---ATR filter – (not ready fully yet)
Line 1: type and length of ATR
Line 2: threshold and smoothing value of ATR
---DATE and SESSION
Line 1: apply custom date or session?
Line 2: session hours settings
Line 3:Custom starting date
Line 4: Custom Ending date
-----------HOW TO USE--------------
We open Long if BB width is bigger than threshold and close when upper band is no longer highest in the period set. Exact opposite with Short
Fetch ATR + MA StrategyA trend following indicator that allows traders/investors to enter trades for the long term, as it is mainly tested on the daily chart. The indicator fires off buy and sell signals. The sell signals can be turned off as trader can decide to use this indicator for long term buy signals. The buy signals are indicated by the green diamonds, and the red diamonds show the points on then chart where the asset can be sold.
The indicator uses a couple indicators in order to generate the buy signals:
- ADX
- ATR
- Moving Average of ATR
- 50 SMA
- 200 SMA
The buy signal is generated at the cross overs of the 50 and 200 SMA's while the ATR is lower than then Moving Average of the ATR. The buy signal is fired when these conditions are met and if the ADX is lower than 30.
The thought process is as follows:
When the ATR is lower than its moving average, the price should be in a low volatilty environment. An ADX between 25 and 50 signals a Strong trend. Every value below 25 is an absent or weak trend. So entering a trade when the volatilty is still low but increasing, you'll be entering a trade at the start of a new uptrend. This mechanism also filters out lots of false signals of the simple cross overs.
The sell signals are fired every time the 50 SMA drops below the 200 SMA.
Days in rangeThis script is a little widget that I made to do some homework on the VIX.
As you can see in the chart I was analyzing the 2008 market crash and the stats that followed it after until the market started to recover.
You can see that theory in my "Ideas" tab.
This is an interactive set of lines that you can use to count the the bars inside and outside of your chosen range, and the percentage outside that range.
You should initially enter the price range of your product in the menu and set some arbitrary dates that you can easily see on your chart.
Drag and drop the lines around to suit what price and the dates you are analyzing.
The table will display the bar count inside and outside of the range, the total bars, and the percentage outside that range.
I personally used this as a tool to study the overall average of the product, compared with the behavior during major market events.
It is currently my opinion that post 2020 analysis needs to take into account the behavior of any given product prior to 2020 when the
VIX was in its comfort zone. Not to say that a price valuation hasn't been set, but that the movement to that price was outside of "Normal Market Conditions,"
and the time factor to return to that value might be skewed. Other factors would need to be considered at that point pertaining to your specific product or corelating indicator.
I could see this tool being useful to Forex and commodities traders. But that isn't my field so that that for what it is. I do think it would perform best on something that is more
pegged to a price range. I personally would use it on product's, like the VIX, that I use as an indicator product. That is what it was designed for.
But I suppose it could be used for Mean price and time related analysis, maybe with a Vwap, SMA or other breakout style indicators.
Volume analysis might be pretty sporty. Possibly time patterns... the possibilities could be endless. Or... limited.
I am publishing this for my trade group so that it can be tinkered with to find other helpful ways to use it.
If anyone finds something interesting with other indicators, please drop a comment below and I could consider creating a script to integrate with this tool.
Relative Strength Index w/ STARC Bands and PivotsThis is an old script that I use with some useful RSI strategies from "Technical Analysis for the Trading Professional" 2nd edition by Constance Brown.
The base RSI comes with the option for custom length, and has some pre-configured ranges for looking at exits and entrances. The idea is to be bullish when bounces happen in the red zone during an already bullish trend or when the indicator enters green without a rejection. Be bearish if the indicator falls through the red zone or fails to enter green during an already bearish trend.
I have added the formulas used for creating STARC bands (just think fancier volatility bands) with adjustable tolerances. The idea is to look out for when the RSI touches one of the bands and reverses. This is usually indicative of a strong reversal (though the timing will be up to the trader). Best use this on shorter time frames during a volatile time of a stock's price action.
Although a little messy, there is a small segment of the script which includes pivot points. I like to use these because they make indicating local highs/lows for finding divergences easier.
Finally, I have added a couple of customizable EMAS for the RSI itself. Useful when combined with the other features!
Volatility Gap TrackerThe Volatility Gap Tracker ( *VGT ) indicator calculates the historical volatility of an asset using the standard deviation of the natural logarithm of the closing price relative to the previous period's closing price. *VGT visualizes the HV with gap lines to highlight when the current HV has increased or decreased significantly compared to the previous period, and adds labels to show the HV value for each of those bars.
Low HV calculated by *VGT can potentially signify a potential move up or down in the price of an asset. When HV is low, it indicates that the price of the asset has been relatively stable or range-bound over the specified period of time. This can sometimes be a precursor to a significant move in either direction, as the price may be building up energy to break out of its range.
*VGT can be used for any market that TradingView supports, including stocks, forex, and cryptocurrencies. It is especially useful for traders who want to identify periods of high volatility or sudden changes in volatility , which can indicate potential trading opportunities or risks. However, it's important to note that HV is a historical measure and may not always accurately predict future volatility .
The indicator can be used under various market conditions, but is especially useful during periods of high volatility , such as market crashes or major news events. It can also be useful for traders who want to monitor the volatility of specific stocks or assets over a longer period of time.
*VGT is provided for informational purposes only and is not a guarantee of future performance or accuracy. Traders should use multiple indicators and analysis methods to make informed trading decisions. Trading involves risks and traders should always conduct their own research and analysis before making any investment decisions.
Flat Market and Low ADX Indicator [CHE]Why use the Flat Market and Low ADX Indicator ?
Flat markets, where prices remain within a narrow range for an extended period, can be both critical and dangerous for traders. In a flat market, the price action becomes less predictable, and traders may struggle to find profitable trading opportunities. As a result, many traders may decide to take a break from the market until a clear trend emerges.
However, flat markets can also be dangerous for traders who continue to trade despite the lack of clear trends. In the absence of a clear direction, traders may be tempted to take larger risks or make impulsive trades in an attempt to capture small profits. Such behavior can quickly lead to significant losses, especially if the market suddenly breaks out of its flat range, causing traders to experience large drawdowns.
Therefore, it is essential to approach flat markets with caution and to have a clear trading plan that incorporates strategies for both trending and flat markets. Traders may also use technical indicators, such as the Flat Market and Low ADX Indicator, to help identify flat markets and determine when it is appropriate to enter or exit a position.
The confluence between flat markets and low ADX readings can further increase the risk of trading during these periods. The ADX (Average Directional Index) is a technical indicator used to measure the strength of a trend. A low ADX reading indicates that the market is in a consolidation phase, which can coincide with a flat market. When a flat market occurs during a period of low ADX, traders should be even more cautious, as there is little to no directional bias in the market. In this situation, traders may want to consider waiting for a clear trend to emerge or using range-bound trading strategies to avoid taking excessive risks.
Introduction:
Pine Script is a programming language used for developing custom technical analysis indicators and trading strategies in TradingView. This particular script is an indicator designed to identify flat markets and low ADX conditions. In this description, we will delve deeper into the functionality of this script and how it can be used to improve trading decisions.
Description:
The first input in the script is the length of the moving average used for calculating the center line. This moving average is used to define the high and low range of the market. The script then calculates the middle value of the range by taking the double exponential moving average (EMA) of the high, low, and close prices.
The script then determines whether the market is flat by comparing the middle value of the range with the high and low values. If the middle value is greater than the high value or less than the low value, the market is not flat. If the middle value is within the high and low range, the script considers the market to be flat. The script also uses RSI filter settings to further confirm if the market is flat or not. If the RSI value is between the RSI min and max values, then the market is considered flat. If the RSI value is outside this range, the market is not considered flat.
The script also calculates the ADX (Average Directional Index) to determine whether it's in a low area. ADX is a technical indicator used to measure the strength of a trend. The script uses the ADX filter settings to define the ADX threshold value. If the ADX value is below the threshold value, the script considers the market to be in a low ADX area.
The script provides various input options to customize the display settings, including the option to show the flat market and low ADX areas. Users can choose their preferred colors for the flat market and low ADX areas and adjust the transparency levels to suit their needs.
Conclusion:
In conclusion, this Pine Script indicator is designed to identify flat market and low ADX conditions, which can help traders make informed trading decisions. The script uses a range of inputs and calculations to determine the market direction, RSI filter, and ADX filter. By customizing the display settings, users can adjust the indicator to suit their preferences and improve their trading strategies. Overall, this script can be a valuable tool for traders looking to gain an edge in the markets.
Acknowledgments:
Thanks to the Pine Script™ v5 User Manual www.tradingview.com
Rekt Edge Reversion BandRekt Edge Reversion band is a technical indicator that utilizes a combination of moving averages and standard deviations to determine optimal entry and exit points in the market. By comparing the current price to its moving average, the indicator identifies potential trends and determines how you can position around them by plotting buy/sell signals and two channels based on user input parameters. The user can choose between Simple Moving Average ( SMA ) or Exponential Moving Average ( EMA ) and select the moving average period, the unit of separation, the multiples of the unit, and other important parameters. The indicator's inputs can be adjusted to suit different trading styles, and it can be used on any time frame. The indicator can be used to identify potential trend reversals or breakouts (or breakdowns) when the price moves outside of the channels. The indicators potential use cases include identifying overbought or oversold conditions. With its ability to provide a clear signal on when to enter and exit a trade, this indicator is a popular tool among traders looking to make more informed and profitable trading decisions. This indicator can also be used in conjunction with other technical analysis tools to confirm or invalidate trading signals.
Fibonacci Step IndicatorThe Fibonacci Step Indicator assumes irregularity in calculating a moving average. It is measured as the mean of the previous lows and highs situated at Fibonacci past periods. For example, the mean of the lows from 2, 3, 5, 8, etc. periods ago form the Fibonacci step indicator.
The indicator uses the formula for the first twelve Fibonacci numbers on highs and lows so that it creates a moving support/resistance zone. Afterwards, the zone is stabilized by taking the highest highs of the upper indicator and the lowest lows of the lower indicator part.
The indicator is used as a trend following way. It can be compared to the Ichimoku Kinko Hyo cloud (without the future projection). The zone form a support and resistance area. During ranging periods, the market will fluctuate within the area which is a bad time to follow the trend (if any).
Trop BandsTrop Bands is a tool that uses an exponential moving average (EMA) as its central trendline and upper and lower bands to identify potential buying and selling opportunities in the market. The bands are calculated based on recent moves away from the EMA, and they are plotted around the central trendline to provide a visual representation of market trends and conditions. When the price moves outside of these bands, it can be seen as a signal that the security is overbought or oversold and may be ready for a reversal, just like Bollinger Bands.
In addition to providing signals when the price moves outside of the bands, the indicator can also show triangles outside/inside the bands. These triangles are based on the Demand Index developed by James Sibbet and are intended to provide additional confirmation of potential trading opportunities. They can be used in conjunction with other technical analysis tools to help identifying potential trading opportunities in the market.