HTFMAs█ OVERVIEW
Contains a type HTFMA used to return data on six moving averages from a higher timeframe.
Several types of MA's are supported.
█ HOW TO USE
Please see instructions in the code (in library description). (Important: first fold all sections of the script: press Cmd + K then Cmd + - (for Windows Ctrl + K then Ctrl + -)
█ FULL LIST OF FUNCTIONS AND PARAMETERS
method getMaType(this)
Enumerator function, given a key returns `enum MaTypes` value
Namespace types: series string, simple string, input string, const string
Parameters:
this (string)
method init(this, enableAll, ma1Enabled, ma1MaType, ma1Src, ma1Prd, ma2Enabled, ma2MaType, ma2Src, ma2Prd, ma3Enabled, ma3MaType, ma3Src, ma3Prd, ma4Enabled, ma4MaType, ma4Src, ma4Prd, ma5Enabled, ma5MaType, ma5Src, ma5Prd, ma6Enabled, ma6MaType, ma6Src, ma6Prd)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
enableAll (simple MaEnable)
ma1Enabled (bool)
ma1MaType (series MaTypes)
ma1Src (string)
ma1Prd (int)
ma2Enabled (bool)
ma2MaType (series MaTypes)
ma2Src (string)
ma2Prd (int)
ma3Enabled (bool)
ma3MaType (series MaTypes)
ma3Src (string)
ma3Prd (int)
ma4Enabled (bool)
ma4MaType (series MaTypes)
ma4Src (string)
ma4Prd (int)
ma5Enabled (bool)
ma5MaType (series MaTypes)
ma5Src (string)
ma5Prd (int)
ma6Enabled (bool)
ma6MaType (series MaTypes)
ma6Src (string)
ma6Prd (int)
method init(this, enableAll, tf, rngAtrQ, showRecentBars, lblsOffset, lblsShow, lnOffset, lblSize, lblStyle, smoothen, ma1lnClr, ma1lnWidth, ma1lnStyle, ma2lnClr, ma2lnWidth, ma2lnStyle, ma3lnClr, ma3lnWidth, ma3lnStyle, ma4lnClr, ma4lnWidth, ma4lnStyle, ma5lnClr, ma5lnWidth, ma5lnStyle, ma6lnClr, ma6lnWidth, ma6lnStyle, ma1ShowHistory, ma2ShowHistory, ma3ShowHistory, ma4ShowHistory, ma5ShowHistory, ma6ShowHistory, ma1ShowLabel, ma2ShowLabel, ma3ShowLabel, ma4ShowLabel, ma5ShowLabel, ma6ShowLabel)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
enableAll (series MaEnable)
tf (string)
rngAtrQ (int)
showRecentBars (int)
lblsOffset (int)
lblsShow (bool)
lnOffset (int)
lblSize (string)
lblStyle (string)
smoothen (bool)
ma1lnClr (color)
ma1lnWidth (int)
ma1lnStyle (string)
ma2lnClr (color)
ma2lnWidth (int)
ma2lnStyle (string)
ma3lnClr (color)
ma3lnWidth (int)
ma3lnStyle (string)
ma4lnClr (color)
ma4lnWidth (int)
ma4lnStyle (string)
ma5lnClr (color)
ma5lnWidth (int)
ma5lnStyle (string)
ma6lnClr (color)
ma6lnWidth (int)
ma6lnStyle (string)
ma1ShowHistory (bool)
ma2ShowHistory (bool)
ma3ShowHistory (bool)
ma4ShowHistory (bool)
ma5ShowHistory (bool)
ma6ShowHistory (bool)
ma1ShowLabel (bool)
ma2ShowLabel (bool)
ma3ShowLabel (bool)
ma4ShowLabel (bool)
ma5ShowLabel (bool)
ma6ShowLabel (bool)
method get(this, id)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
id (int)
method set(this, id, prop, val)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
id (int)
prop (string)
val (string)
method set(this, id, prop, val)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
id (int)
prop (string)
val (string)
method htfUpdateTuple(rsParams, repaint)
Namespace types: RsParamsMAs
Parameters:
rsParams (RsParamsMAs)
repaint (bool)
method clear(this)
Namespace types: MaDrawing
Parameters:
this (MaDrawing)
method importRsRetTuple(this, htfBi, ma1, ma2, ma3, ma4, ma5, ma6)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
htfBi (int)
ma1 (float)
ma2 (float)
ma3 (float)
ma4 (float)
ma5 (float)
ma6 (float)
method getDrw(this, id)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
id (int)
method setDrwProp(this, id, prop, val)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
id (int)
prop (string)
val (string)
method initDrawings(this, rsPrms, dispBandWidth)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
rsPrms (RsParamsMAs)
dispBandWidth (float)
method updateDrawings(this, rsPrms, dispBandWidth)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
rsPrms (RsParamsMAs)
dispBandWidth (float)
method update(this)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps0 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps1 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps2 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps3 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps4 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps5 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps6 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
oCfg (objProps7 type from moebius1977/CSVParser/1)
maCount (int)
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps8 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps0 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps1 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps2 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps3 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps4 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps5 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps6 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
oCfg (objProps7 type from moebius1977/CSVParser/1)
maCount (int)
method importConfig(this, oCfg, maCount)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
oCfg (objProps8 type from moebius1977/CSVParser/1)
maCount (int)
method newRsParamsMAs(this)
Namespace types: LO
Parameters:
this (LO)
method newHTFMAs(this)
Namespace types: LO
Parameters:
this (LO)
RsMaCalcParams
Parameters of one MA (only calculation params needed within req.sec(), visual parameters are within htfMAs type)
Fields:
enabled (series bool)
maType (series MaTypes) : MA type options: SMA / EMA / WMA / ...
src (series string)
prd (series int) : MA period
RsParamsMAs
Collection of parameters of 6 MAs. Used to pass params to req.sec()
Fields:
ma1CalcParams (RsMaCalcParams)
ma2CalcParams (RsMaCalcParams)
ma3CalcParams (RsMaCalcParams)
ma4CalcParams (RsMaCalcParams)
ma5CalcParams (RsMaCalcParams)
ma6CalcParams (RsMaCalcParams)
RsReturnMAs
Used to return data from req.sec().
Fields:
htfBi (series int)
ma1 (series float)
ma2 (series float)
ma3 (series float)
ma4 (series float)
ma5 (series float)
ma6 (series float)
MaDrawing
MA's plot parameters plus drawing objects for MA's current level (line and label).
Fields:
lnClr (series color) : (color) MA plot line color (like in plot())
lnWidth (series int) : (int) MA plot line width (like in plot())
lnStyle (series string) : (string) MA plot line style (like in plot())
showHistory (series bool) : (bool) Whether to plot the MA on historical bars or only show current level to the right of the latest bar.
showLabel (series bool) : (bool) Whether to show the name of the MA to the right of the MA's level
ln (series line) : (line) line to show MA"s current level
lbl (series label) : (label) label showing MA's name
HTFMAs
Contains data and drawing parameters for MA's of one timeframe (MA calculation parameters for MA's of one timeframe are in a separate object RsParamsMAs)
Fields:
rsRet (RsReturnMAs) : (RsReturnMAs) Contains data returned from req.sec(). Is set to na in between HTF bar changes if smoothing is enabled.
rsRetLast (RsReturnMAs) : (RsReturnMAs) Contains a copy of data returned from req.sec() in case rsRet is set to na for smoothing.
rsRetNaObj (RsReturnMAs) : (RsReturnMAs) An empty object as `na` placeholder
ma1Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma2Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma3Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma4Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma5Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma6Drawing (MaDrawing) : (MaDrawing) MA drawing properties
enabled (series bool) : (bool ) Enables/disables all of the MAs of one timeframe.
tf (series string) : (string) Timeframe
showHistory (series bool) : (bool ) Plot MA line on historical bars
rngAtrQ (series int) : (int ) A multiplier for atr(14). Determines a range within which the MA's will be plotted. MA's too far away will not be plotted.
showRecentBars (series int) : (int ) Only plot MA on these recent bars
smoothen (series bool) : (bool ) Smoothen MA plot. If false the same HTF value is returned on all chart bars within a HTF bar (intrabars), so the plot looks like steps.
lblsOffset (series int) : (int ) Show MA name this number of bars to the right off last bar.
lblsShow (series bool) : (bool ) Show MA name
lnOffset (series int) : (int ) Start line showing current level of the MA this number of bars to the right off the last bar.
lblSize (series string) : (string) Label size
lblStyle (series string) : (string) Label style
lblTxtAlign (series string) : (string) Label text align
bPopupLabel (series bool) : (bool ) Show current MA value as a tooltip to MA's name.
LO
LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
Fields:
dummy (series string)
Moving_average
Multi-Scale Adaptive MAs (Hurst, CVaR, Fractal) // AlgoFyreThe Multi-Scale Adaptive MAs (Hurst, CVaR, Fractal) indicator adjusts moving averages based on market conditions, using Hurst Exponent for trend persistence, CVaR for extreme risk assessment, and Fractal Dimension for market complexity. It enhances trend detection and risk management across various timeframes.
TABLE OF CONTENTS
🔶 ORIGINALITY 🔸Adaptive Mechanisms
🔸Multi-Faceted Analysis
🔸Versatility Across Timeframes
🔸Multi-Scale Combination
🔶 FUNCTIONALITY 🔸Hurst Exponent (H)
🞘 How it works
🞘 How to calculate
🞘 Code extract
🔸Conditional Value at Risk (CVaR)
🞘 How it works
🞘 How to calculate
🞘 Code extract
🔸Fractal Dimension (FD)
🞘 How it works
🞘 How to calculate
🞘 Code extract
🔶 INSTRUCTIONS 🔸Step-by-Step Guidelines
🞘 Setting Up the Indicator
🞘 Understanding What to Look For on the Chart
🞘 Possible Entry Signals
🞘 Possible Take Profit Strategies
🞘 Possible Stop-Loss Levels
🞘 Additional Tips
🔸Customize settings
🔶 CONCLUSION
▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅
🔶 ORIGINALITY The Multi-Scale Adaptive MAs (Hurst, CVaR, Fractal) indicator stands out due to its unique approach of dynamically adjusting moving averages based on advanced statistical measures, making it highly responsive to varying market conditions. Unlike traditional moving averages that rely on static periods, this indicator adapts in real-time using three distinct adaptive methods: Hurst Exponent, CVaR, and Fractal Dimension.
🔸Adaptive Mechanisms
Traditional MA indicators use fixed lengths, which can lead to lagging signals or over-sensitivity in volatile markets. The Multi-Scale Adaptive MAs employ adaptive methods to adjust the MA length dynamically, providing a more accurate reflection of current market conditions.
🔸Multi-Faceted Analysis
By integrating Hurst Exponent, CVaR, and Fractal Dimension, the indicator offers a comprehensive market analysis. It captures different aspects of market behavior, including trend persistence, risk of extreme movements, and complexity, which are often missed by standard MAs.
🔸Versatility Across Timeframes
The indicator’s ability to switch between different adaptive methods based on market conditions allows traders to analyze short-term, medium-term, and long-term trends with enhanced precision.
🔸Multi-Scale Combination
Utilizing multiple adaptive MAs in combination provides a more nuanced view of the market, allowing traders to see how short, medium, and long-term trends interact. This layered approach helps in identifying the strength and consistency of trends across different scales, offering more reliable signals and aiding in complex decision-making processes. When combined, these MAs can also signal key market shifts when they converge or diverge, offering deeper insights than a single MA could provide.
🔶 FUNCTIONALITY The indicator adjusts moving averages based on a variety of different choosable adaptives. The Hurst Exponent to identify trend persistence or mean reversion, adapting to market conditions for both short-term and long-term trends. Using CVaR, it evaluates the risk of extreme price movements, ensuring the moving average is more conservative during high-risk periods, protecting against potential large losses. By incorporating the Fractal Dimension, the indicator adapts to market complexity, adjusting to varying levels of price roughness and volatility, which allows it to respond more accurately to different market structures and patterns.
Let's dive into the details:
🔸Hurst Exponent (H)
Measures the degree of trend persistence or mean reversion.
By using the Hurst Exponent, the indicator adjusts to capture the strength and duration of trends, helping traders to stay in profitable trades longer and avoid false reversals in ranging markets.
It enhances the detection of trends, making it suitable for both short-term scalping and identifying long-term trends.
🞘 How it works Rescaled Range (R/S) Analysis Calculate the mean of the closing prices over a set window.
Determine the deviation of each price from the mean.
Compute the cumulative sum of these deviations over the window.
Calculate the range (R) of the cumulative deviations (maximum minus minimum).
Compute the standard deviation (S) of the price series over the window.
Obtain the R/S ratio as R/S.
Linear Regression for Hurst Exponent Calculate the logarithm of multiple window sizes and their corresponding R/S values.
Use linear regression to determine the slope of the line fitting the log(R/S) against log(window size).
The slope of this line is an estimate of the Hurst Exponent.
🞘 How to calculate Range (R)
Calculate the maximum cumulative deviation:
R=max(sum(deviation))−min(sum(deviation))
Where deviation is the difference between each price and the mean.
Standard Deviation (S)
Calculate the standard deviation of the price series:
S=sqrt((1/(n−1))∗sum((Xi−mean)2))
Rescaled Range (R/S)
Divide the range by the standard deviation:
R/S=R/S
Hurst Exponent
Perform linear regression to estimate the slope of:
log(R/S) versus log(windowsize)
The slope of this line is the Hurst Exponent.
🞘 Code extract // Hurst Exponent
calc_hurst(source_, adaptive_window_) =>
window_sizes = array.from(adaptive_window_/10, adaptive_window_/5, adaptive_window_/2, adaptive_window_)
float hurst_exp = 0.5
// Calculate Hurst Exponent proxy
rs_list = array.new_float()
log_length_list = array.new_float()
for i = 0 to array.size(window_sizes) - 1
len = array.get(window_sizes, i)
// Ensure we have enough data
if bar_index >= len * 2
mean = adaptive_sma(source_, len)
dev = source_ - mean
// Calculate cumulative deviations over the window
cum_dev = ta.cum(dev) - ta.cum(dev )
r = ta.highest(cum_dev, len) - ta.lowest(cum_dev, len)
s = ta.stdev(source_, len)
if s != 0
rs = r / s
array.push(rs_list, math.log(rs))
array.push(log_length_list, math.log(len))
// Linear regression to estimate Hurst Exponent
n = array.size(log_length_list)
if n > 1
mean_x = array.sum(log_length_list) / n
mean_y = array.sum(rs_list) / n
sum_num = 0.0
sum_den = 0.0
for i = 0 to n - 1
x = array.get(log_length_list, i)
y = array.get(rs_list, i)
sum_num += (x - mean_x) * (y - mean_y)
sum_den += (x - mean_x) * (x - mean_x)
hurst_exp := sum_den != 0 ? sum_num / sum_den : 0.5
else
hurst_exp := 0.5 // Default to 0.5 if not enough data
hurst_exp
🔸Conditional Value at Risk (CVaR)
Assesses the risk of extreme losses by focusing on tail risk.
This method adjusts the moving average to account for market conditions where extreme price movements are likely, providing a more conservative approach during periods of high risk.
Traders benefit by better managing risk and avoiding major losses during volatile market conditions.
🞘 How it works Calculate Returns Determine the returns as the percentage change between consecutive closing prices over a specified window.
Percentile Calculation Identify the percentile threshold (e.g., the 5th percentile) for the worst returns in the dataset.
Average of Extreme Losses Calculate the average of all returns that are less than or equal to this percentile, representing the CVaR.
🞘 How to calculate Return Calculation
Calculate the return as the percentage change between consecutive prices:
Return = (Pt − Pt−1) / Pt−1
Where Pt is the price at time t.
Percentile Threshold
Identify the return value at the specified percentile (e.g., 5th percentile):
PercentileValue=percentile(returns,percentile_threshold)
CVaR Calculation
Compute the average of all returns below the percentile threshold:
CVaR = (1/n)∗sum(Return) for all Return≤PercentileValue
Where n is the total number of returns.
🞘 Code extract // Percentile
calc_percentile(data, percentile, window) =>
arr = array.new_float(0)
for i = 0 to window - 1
array.push(arr, data )
array.sort(arr)
index = math.floor(percentile / 100 * (window - 1))
array.get(arr, index)
// Conditional Value at Risk
calc_cvar(percentile_value, returns, window) =>
// Collect returns worse than the threshold
cvar_sum = 0.0
cvar_count = 0
for i = 0 to window - 1
ret = returns
if ret <= percentile_value
cvar_sum += ret
cvar_count += 1
// Calculate CVaR
cvar = cvar_count > 0 ? cvar_sum / cvar_count : 0.0
cvar
🔸Fractal Dimension (FD)
Evaluates market complexity and roughness by analyzing how price movements behave across different scales.
It enables the moving average to adapt based on the level of market noise or structure, allowing for smoother MAs during complex, volatile periods and more sensitive MAs during clear trends.
This adaptability is crucial for traders dealing with varying market states, improving the indicator's responsiveness to price changes.
🞘 How it works Total Distance (L) Calculation Sum the absolute price movements between consecutive periods over a given window.
Maximum Distance (D) Calculation Calculate the maximum displacement from the first to the last price point within the window.
Calculate Fractal Dimension Use Katz's method to estimate the Fractal Dimension as the ratio of the logarithms of L and D, divided by the logarithm of the number of steps (N).
🞘 How to calculate Total Distance (L)
Sum the absolute price changes over the window:
L=sum(abs(Pt−Pt−1)) for t from 2 to n
Where Pt is the price at time t.
Maximum Distance (D)
Find the maximum absolute displacement from the first to the last price in the window:
D=max(abs(Pn-P1))
Fractal Dimension Calculation
Use Katz's method to estimate fractal dimension:
FD=log(L/D)/log(N)
Where N is the number of steps in the window.
🞘 Code extract // Fractal Dimension
calc_fractal(source_, adaptive_window_) =>
// Calculate the total distance (L) traveled by the price
L = 0.0
for i = 1 to adaptive_window_
L += math.abs(source_ - source_ )
// Calculate the maximum distance between first and last price
D = math.max(math.abs(source_ - source_ ), 1e-10) // Avoid division by zero
// Calculate the number of steps (N)
N = adaptive_window_
// Estimate the Fractal Dimension using Katz's formula
math.log(L / D) / math.log(N)
🔶 INSTRUCTIONS The Multi-Scale Adaptive MAs indicator can be set up by adding it to your TradingView chart and configuring the adaptive method (Hurst, CVaR, or Fractal) to match current market conditions. Look for price crossovers and changes in the slope for potential entry signals. Set take profit and stop-loss levels based on dynamic changes in the moving average, and consider combining it with other indicators for confirmation. Adjust settings and use adaptive strategies for enhanced trend detection and risk management.
🔸Step-by-Step Guidelines 🞘 Setting Up the Indicator Adding the Indicator to the Chart: Go to your TradingView chart.
Click on the "Indicators" button at the top.
Search for "Multi-Scale Adaptive MAs (Hurst, CVaR, Fractal)" in the indicators list.
Click on the indicator to add it to your chart.
Configuring the Indicator: Open the indicator settings by clicking on the gear icon next to its name on the chart.
Adaptive Method: Choose between "Hurst," "CVaR," and "Fractal" depending on the market condition and your trading style.
Length: Set the base length for the moving average (e.g., 20, 50, or 100). This length will be adjusted dynamically based on the selected adaptive method.
Other Parameters: Adjust any other parameters as needed, such as window sizes or scaling factors specific to each adaptive method.
Chart Setup: Ensure you have an appropriate timeframe selected (e.g., 1-hour, 4-hour, daily) based on your trading strategy.
Consider using additional indicators like volume or RSI to confirm signals.
🞘 Understanding What to Look For on the Chart Indicator Behavior: Observe how the adaptive moving average (AMA) behaves compared to standard moving averages, e.g. notice how it might change direction with strength (Hurst).
For example, the AMA may become smoother during high market volatility (CVaR) or more responsive during strong trends (Hurst).
Crossovers: Look for crossovers between the price and the adaptive moving average.
A bullish crossover occurs when the price crosses above the AMA, suggesting a potential uptrend.
A bearish crossover occurs when the price crosses below the AMA, indicating a possible downtrend.
Slope and Direction: Pay attention to the slope of the AMA. A rising slope suggests a bullish trend, while a declining slope indicates a bearish trend.
The slope’s steepness can give you clues about the trend's strength.
🞘 Possible Entry Signals Bullish Entry: Crossover Entry: Enter a long position when the price crosses above the AMA and the AMA has a positive slope.
Confirmation Entry: Combine the crossover with other indicators like RSI (above 50) or increasing volume for confirmation.
Bearish Entry: Crossover Entry: Enter a short position when the price crosses below the AMA and the AMA has a negative slope.
Confirmation Entry: Use additional indicators like RSI (below 50) or decreasing volume to confirm the bearish trend.
Adaptive Method Confirmation: Hurst: Enter when the AMA indicates a strong trend (steeper slope). Suitable for trend-following strategies.
CVaR: Be cautious during high-risk periods. Enter only if confirmed by other indicators, as the AMA may become more conservative.
Fractal: Ideal for capturing reversals in complex markets. Look for crossovers in volatile markets.
🞘 Possible Take Profit Strategies Static Take Profit Levels: Set take profit levels based on predefined ratios (e.g., 1:2 or 1:3 risk-reward ratio).
Place take profit orders at recent swing highs (for long positions) or swing lows (for short positions).
Trailing Stop Loss: Use a trailing stop based on a percentage of the AMA value to lock in profits as the trend progresses.
Adjust the trailing stop dynamically to follow the AMA, allowing profits to run while protecting gains.
Adaptive Method Based Exits: Hurst: Exit when the AMA begins to flatten or turn in the opposite direction, signaling a potential trend reversal.
CVaR: Consider taking profits earlier during high-risk periods when the AMA suggests caution.
Fractal: Use the AMA to exit in complex markets when it smooths out, indicating reduced volatility.
🞘 Possible Stop-Loss Levels Initial Stop Loss: Place an initial stop loss below the AMA (for long positions) or above the AMA (for short positions) to protect against adverse movements.
Use a buffer (e.g., ATR value) to avoid being stopped out by normal price fluctuations.
Adaptive Stop Loss: Adjust the stop loss dynamically based on the AMA. Move the stop loss along the AMA as the trend progresses to minimize risk.
This helps in adapting to changing market conditions and avoiding premature exits.
Adaptive Method-Specific Stop Loss: Hurst: Use wider stops during trending markets to allow for minor pullbacks.
CVaR: Adjust stops in high-risk periods to avoid being stopped out prematurely during price fluctuations.
Fractal: Place stops at recent support/resistance levels in highly volatile markets.
🞘 Additional Tips Combine with Other Indicators: Enhance your strategy by combining the AMA with other technical indicators like MACD, RSI, or Bollinger Bands for better signal confirmation.
Backtesting and Practice: Backtest the indicator on historical data to understand how it performs in different market conditions.
Practice using the indicator on a demo account before applying it to live trading.
Market Awareness: Always be aware of market conditions and fundamental events that might impact price movements, as the AMA reacts to price action and may not account for sudden news-driven events.
🔸Customize settings 🞘 Time Override: Enables or disables the ability to override the default time frame for the moving averages. When enabled, you can specify a custom time frame for the calculations.
🞘 Time: Specifies the custom time frame to use when the Time Override setting is enabled.
🞘 Enable MA: Enables or disables the moving average. When disabled, MA will not be displayed on the chart.
🞘 Show Smoothing Line: Enables or disables the display of a smoothing line for the moving average. The smoothing line helps to reduce noise and provide a clearer trend.
🞘 Show as Horizontal Line: Displays the moving average as a horizontal line instead of a dynamic line that follows the price.
🞘 Source: Specifies the data source for the moving average calculation (e.g., close, open, high, low).
🞘 Length: Sets the period length for the moving average. A longer length will result in a smoother moving average, while a shorter length will make it more responsive to price changes.
🞘 Time: Specifies a custom time frame for the moving average, overriding the default time frame if Time Override is enabled.
🞘 Method: Selects the calculation method for the moving average (e.g., SMA, EMA, SMMA, WMA, VWMA).
🞘 Offset: Shifts the moving average forward or backward by the specified number of bars.
🞘 Color: Sets the color for the moving average line.
🞘 Adaptive Method: Selects the adaptive method to dynamically adjust the moving average based on market conditions (e.g., Hurst, CVaR, Fractal).
🞘 Window Size: Sets the window size for the adaptive method, determining how much historical data is used for the calculation.
🞘 CVaR Scaling Factor: Adjusts the influence of CVaR on the moving average length, controlling how much the length changes based on calculated risk.
🞘 CVaR Risk: Specifies the percentile cutoff for the worst-case returns used in the CVaR calculation to assess extreme losses.
🞘 Smoothing Method: Selects the method for smoothing the moving average (e.g., SMA, EMA, SMMA, WMA, VWMA).
🞘 Smoothing Length: Sets the period length for smoothing the moving average.
🞘 Fill Color to Smoothing Moving Average: Enables or disables the color fill between the moving average and its smoothing line.
🞘 Transparency: Sets the transparency level for the color fill between the moving average and its smoothing line.
🞘 Show Label: Enables or disables the display of a label for the moving average on the chart.
🞘 Show Label for Smoothing: Enables or disables the display of a label for the smoothing line of the moving average on the chart.
🔶 CONCLUSION The Multi-Scale Adaptive MAs indicator offers a sophisticated approach to trend analysis and risk management by dynamically adjusting moving averages based on Hurst Exponent, CVaR, and Fractal Dimension. This adaptability allows traders to respond more effectively to varying market conditions, capturing trends and managing risks with greater precision. By incorporating advanced statistical measures, the indicator goes beyond traditional moving averages, providing a nuanced and versatile tool for both short-term and long-term trading strategies. Its unique ability to reflect market complexity and extreme risks makes it an invaluable asset for traders seeking a deeper understanding of market dynamics.
EMA Volume [MacroGlide]EMA Volume is a versatile tool designed to track and analyze market volumes by calculating the Exponential Moving Averages (EMAs) of total, bullish, and bearish volumes. This indicator helps traders visualize volume dynamics, identify buying and selling pressure, and make informed trading decisions based on volume activity.
Key Features:
• Volume EMAs: The indicator calculates the EMAs of total, bullish, and bearish volumes, allowing users to observe how volume trends evolve over time. This helps identify shifts in market sentiment and potential reversals.
• Separation of Bullish and Bearish Volumes: By separating bullish and bearish volumes, the indicator provides a clear view of buying versus selling activity. This distinction is valuable for understanding the market's underlying momentum and direction.
• Customizable Visuals: Users can customize the line style and color for each volume type, allowing them to tailor the display of the indicator to their personal preferences and enhance the visual interpretation of the data.
How to Use:
• Add the indicator to your chart and adjust the EMA settings and display parameters according to your needs.
• Use the difference between bullish and bearish volumes to assess current market sentiment and analyze potential trend changes.
• Monitor the EMA of total volume to identify overall volume trends that can serve as additional signals for entering or exiting positions.
Methodology:
The indicator calculates the EMAs for total, bullish, and bearish volumes based on the trading volumes associated with price increases or decreases. This tool helps evaluate the strength of buying and selling at different times, making it especially useful for volume and market dynamics analysis.
Originality and Usefulness:
EMA Volume stands out for its ability to separate buying and selling volumes and present them in a clear visual format, significantly simplifying the analysis of market activity and decision-making in trading.
Charts:
The indicator displays clean and clear charts, where each type of volume is represented by its own line and color, making visual interpretation easier. The charts focus solely on key information for analysis: EMAs of total, bullish, and bearish volumes. These features make the charts highly useful for quick analysis and trading decision-making.
Enjoy the game!
Options Series - MTF 1 and 3 Minute
Objective:
The indicator is named "Options Series - MTF 1 and 3 Minute", suggesting it's designed to analyze options series with multiple time frames (MTF), particularly focusing on 1-minute and 3-minute intervals.
OHLC Values Of Candle:
The code fetches the Open, High, Low, and Close (OHLC) values of the current candle for the specified ticker and timeframes (current, 1 minute, and 3 minutes). Additionally, it calculates the 200-period Simple Moving Average (SMA) of the closing prices for each timeframe.
Bull vs. Bear Condition:
It defines conditions for Bullish and Bearish scenarios based on comparing the current close price with the previous 200-period SMA close price for both 1-minute and 3-minute timeframes. If the current close price is higher than the previous 200-period SMA close price, it's considered Bullish, and if it's lower, it's considered Bearish.
Final Color Condition and Plot:
It determines the color of the candlestick based on the Bullish or Bearish condition. If the conditions for a Bullish scenario are met, the candlestick color is set to green (GreenColorCandle). If the conditions for a Bearish scenario are met, the candlestick color is set to red (RedColorCandle). If neither condition is met (i.e., the candle is neither Bullish nor Bearish), the color remains gray.
The code then plots the 200-period SMA values for both 1-minute and 3-minute timeframes and colors them based on the candlestick color. It also colors the bars based on the candlestick color.
Insights:
This indicator focuses on comparing current close prices with the 200-period SMA close prices to determine market sentiment (Bullish or Bearish).
It utilizes multiple time frames (1 minute and 3 minutes) to provide a broader perspective on market movements.
The color-coded candlesticks and bars make it visually easy to identify Bullish and Bearish trends.
This indicator can be used as part trading based on the identified market sentiment.
MA OrderBlocks [AlgoAlpha]🟨 HMA OrderBlocks by AlgoAlpha is a powerful tool designed to help traders visualize key pivot zones and order blocks based on the Hull Moving Average (HMA). By dynamically identifying bullish and bearish pivot points, this script provides insights into potential price reversals and trend continuations. With customizable settings, it allows traders to tweak the behavior of the indicator to match their strategies. Plus, it comes packed with built-in alerts for trend changes, making it easier to spot potential trade opportunities.
Key Features :
📊 Trend Detection : Utilizes Hull Moving Average to detect the current trend.
🟢🔴 Bullish & Bearish Zones : Automatically plots bullish and bearish order blocks, using customizable colors for clear visual cues.
🎯 Pivot Points : Detects and marks pivot highs and lows, helping traders spot key price reversals.
🚨 Alerts : Built-in alert system for when the price approaches key bullish or bearish zones, or when the trend changes.
🔨 Customizable MA: Choose from various moving averages (SMA, HMA, EMA, etc.) to suit your strategy.
How to Use :
⭐ Add the Indicator : Add the indicators to favourites by pressing the star icon. Once added, configure settings like the Hull MA period and pivot detection period.
📈 Analyze the Chart : Watch for the plotted order blocks and pivot points to identify possible price action strategies.
🔔 Enable Alerts : Set up alerts to be notified of potential trend reversals or when the price nears a bullish/bearish block.
How It Works :
The script starts by calculating the Hull Moving Average (HMA) based on the user-defined length, which is used to determine the market trend direction. It compares the current HMA value with the previous one to confirm whether the price is trending upwards or downwards. Once a trend change is detected, it plots bullish or bearish order blocks based on recent pivot highs and lows. These zones are extended in real-time as long as they remain invalidated. Zones are invalidated are invalidated when price completely closes through them. If the price gets close to a zone in the opposing direction, a warning system alerts the user that the block may not hold. Additionally, customizable alerts trigger whenever the price trend shifts or the price gets near important bullish/bearish blocks. The script’s logic ensures that order blocks are cleared if price violates them, keeping the chart clean and updated.
Average True Range with Price MAATR with Price Moving Average Indicator
This custom indicator combines the Average True Range (ATR) with a Price Moving Average (MA) to help traders analyze market volatility in percent to the price.
Key Components:
Average True Range (ATR)
Price Moving Average (MA)
ATR/Price in Percent
ATR/Price in Percent
Purpose: This ratio helps traders understand the relative size of the ATR compared to the current price, providing a clearer sense of how significant the volatility is in proportion to the price level.
Calculation: ATR is divided by the current closing price and multiplied by 100 to express it as a percentage. This makes it easier to compare volatility across assets with different price ranges.
Plot: This is plotted as a percentage, making it easier to gauge whether the volatility is proportionally high or low compared to the asset's price.
Usage:
This indicator is designed to help identify the most volatile tokens, making it ideal for configuring a Grid Bot to maximize profit. By focusing on high-volatility assets, traders can capitalize on larger price swings within the grid, increasing the potential for more profitable trades.
Features:
Customizable Smoothing Method: Choose from RMA (Relative Moving Average), SMA (Simple Moving Average), EMA (Exponential Moving Average), or WMA (Weighted Moving Average) for both ATR and the Price Moving Average.
Dual Perspective: The indicator provides both volatility analysis (ATR) and trend analysis (Price MA) in a single view.
Proportional Volatility: The ATR/Price (%) ratio adds a layer of context by showing how volatile the asset is relative to its current price.
DP-OCR MTF & MA 2024This script developed is designed for multi-timeframe analysis of previous open, close, and range, with additional signal plots based on various percentage extension levels. It also incorporates EMA calculations for crossover strategies. Here's a quick breakdown of what the script does:
Key Features:
1. Timeframes:
o Two separate timeframes (TF1 and TF2), which can be set by the user (e.g., 15 mins, 30 mins, daily, etc.). The script computes price actions and extensions for both timeframes. For better analysis, use Daily in TF1 and Weekly in TF2
2. Extension Levels:
o Calculates and plots 10%, 21%, 31%, 51%, and 61% extensions (both positive and negative) for each timeframe.
o The most commonly used extension levels are 61%, 31%, -61%, and -21%.
o These extension levels can be turned on or off by the user.
3. Open/Close/Range:
o Tracks the high, low, open, and close for both timeframes.
o Highlights open/close gaps.
o Plots the previous high/low range for both timeframes with a fill and different colors based on price movement.
How to Use:
• You can toggle specific extension levels on or off in the script’s settings.
• For example, when price hits a +61% extension, it could signal a breakout, and when it hits a -61% extension, it may indicate a potential retracement.
• Use these levels in conjunction with your price action analysis to set entry/exit points or stop-loss levels.
4. Today’s Open:
o Plots today’s opening price for both timeframes.
How to Use:
• Use today’s open as a key reference point to determine the day’s price action.
• Compare today’s open with the previous high/low or extension levels to evaluate possible trends or reversals.
5. EMA Calculations:
o The script calculates 5, 15, and 20 period EMAs and plots them on the chart.
o Additional EMA crossover signals can be included for strategy optimization.
How to Use:
• Observe the EMAs for potential crossover signals. For example, a 5-period EMA crossing above a 15-period or 20-period EMA may signal a buy opportunity, while a crossover in the opposite direction may signal a sell.
• Combine the EMA crossovers with extension levels or previous price data to refine your entries and exits.
Customizations Available:
• Users can select whether to display extension levels for either timeframe.
• The script allows automatic adaptation to intraday, daily, weekly, or monthly timeframes based on the current chart settings.
Moreover, the extension levels are calculated based on the previous period’s range, with the most commonly usable extension levels being 61, 31, -61, and -21. These levels are often used for identifying potential price retracements, breakouts, or reversal points in technical analysis.
First Candle High Low LevelsDescription
The "First Candle High Low Levels" Pine Script indicator is designed to highlight the high and low levels of the first candle of the day on your TradingView chart. It works across different timeframes and specifically handles the Indian stock market trading hours (9:15 AM to 3:30 PM IST). The script draws a box from the start to the end of the trading session, visually marking the price range defined by the first candle of the day. Traders can customize the box's border color, fill color, and line width.
Features
Customizable Timeframe: Users can select the desired timeframe for the first candle (e.g., 5-minute, 15-minute, etc.).
Custom Box Appearance: Options to adjust the border color, fill color, and line width of the drawn box.
Auto Reset for Each New Day: The high and low of the first candle are reset daily to mark the start of the next trading day.
Accurate Market Session Handling: The box is drawn from the start of the first candle to the end of the trading session (3:30 PM IST).
Usage
Adding to Chart: Apply the script by copying it into the Pine Script editor in TradingView. Once added, the script will automatically draw a box representing the high and low of the first candle of the day.
Select Timeframe: You can adjust the First Candle Timeframe input to define which timeframe candle will be used for marking the high and low. For example, if you choose a 5-minute timeframe, the high and low of the first 5-minute candle will be used.
Customization:
Adjust the Border Color and Box Fill Color through the input settings to match your chart's style.
Modify the Box Line Width to make the box lines more or less prominent.
Multi Adaptive Moving Average (MAMA)The Multi Adaptive Moving Average (MAMA) indicator is an advanced tool for technical analysis, designed to provide traders with a detailed understanding of market trends and potential future price movements. This indicator utilizes multiple Simple Moving Averages (SMAs) and forecasting techniques to enhance decision-making processes.
Simple Moving Averages (SMAs):
Short MA (20-period): This moving average is highly responsive to price changes, making it ideal for capturing short-term trends. It helps traders identify quick market shifts and potential entry or exit points.
Mid MA (50-period): This average strikes a balance between short- and long-term trends, offering insights into the market's intermediate direction. It aids in confirming the sustainability of short-term trends.
Long MA (100-period): By smoothing out price data over a longer period, this moving average is useful for identifying long-term trends and filtering out short-term volatility.
Very Long MA (200-period): Often considered a critical indicator for determining the overall market trend, this average helps confirm the direction and strength of long-term movements.
Forecasting:
Flat Forecast: This approach assumes that prices will remain constant in the near future, which is particularly useful in markets trading sideways without a clear trend direction.
Linear Regression Forecast: This method uses historical data to project future price movements, offering a dynamic forecast based on existing trends. It helps traders anticipate potential price changes and plan their strategies accordingly.
Advantages:
Comprehensive Trend Analysis: By incorporating four different SMAs, the indicator provides a layered view of market trends across various timeframes. This enables traders to identify potential trend reversals and continuations with greater accuracy.
Predictive Insights: The forecasting feature offers traders a forward-looking perspective, enabling them to anticipate market movements and adjust their trading strategies proactively. This can be especially advantageous in volatile markets.
Customization: The MAMA indicator is highly customizable, allowing traders to adjust parameters such as the source of price data and the inclusion of the current unclosed candle. This flexibility ensures that the indicator can be tailored to fit different trading styles and market conditions.
Visual Clarity: The use of distinct colors for each SMA and their forecasts enhances visual interpretation, making it easier for traders to quickly assess market conditions and make informed decisions. The inclusion of a legend further aids in distinguishing between the different moving averages and their respective forecasts.
How to Use:
Trend Confirmation: Use the alignment of the SMAs to confirm market trends. For example, when the Short MA crosses above the Mid and Long MAs, it may indicate a bullish trend, while the opposite could suggest a bearish trend.
Entry and Exit Points: Look for crossovers between the SMAs as potential signals for entering or exiting trades. The forecasts can help in timing these decisions by providing an expectation of future price movements.
Risk Management: Utilize the Very Long MA to set stop-loss and take-profit levels, as it reflects the long-term trend and can help in avoiding trades against the prevailing market direction.
The MAMA indicator is intended to support technical analysis and should not be used as the sole basis for making trading decisions. Financial markets are inherently uncertain, and past performance does not guarantee future results. Traders should use this tool in conjunction with other analytical methods and consider their risk tolerance and investment objectives. It is advisable to conduct thorough research and consult with a financial advisor before making significant trading decisions. Always be aware of the risks involved in trading and invest only what you can afford to lose.
lib_no_delayLibrary "lib_no_delay"
This library contains modifications to standard functions that return na before reaching the bar of their 'length' parameter.
That is because they do not compromise speed at current time for correct results in the past. This is good for live trading in short timeframes but killing applications on Monthly / Weekly timeframes if instruments, like in crypto, do not have extensive history (why would you even trade the monthly on a meme coin ... not my decision).
Also, some functions rely on source (value at previous bar), which is not available on bar 1 and therefore cascading to a na value up to the last bar ... which in turn leads to a non displaying indicator and waste of time debugging this)
Anyway ... there you go, let me know if I should add more functions.
sma(source, length)
Parameters:
source (float) : Series of values to process.
length (simple int) : Number of bars (length).
Returns: Simple moving average of source for length bars back.
ema(source, length)
Parameters:
source (float) : Series of values to process.
length (simple int) : Number of bars (length).
Returns: (float) The exponentially weighted moving average of the source.
rma(source, length)
Parameters:
source (float) : Series of values to process.
length (simple int) : Number of bars (length).
Returns: Exponential moving average of source with alpha = 1 / length.
atr(length)
Function atr (average true range) returns the RMA of true range. True range is max(high - low, abs(high - close ), abs(low - close )). This adapted version extends ta.atr to start without delay at first bar and deliver usable data instead of na by averaging ta.tr(true) via manual SMA.
Parameters:
length (simple int) : Number of bars back (length).
Returns: Average true range.
rsi(source, length)
Relative strength index. It is calculated using the ta.rma() of upward and downward changes of source over the last length bars. This adapted version extends ta.rsi to start without delay at first bar and deliver usable data instead of na.
Parameters:
source (float) : Series of values to process.
length (simple int) : Number of bars back (length).
Returns: Relative Strength Index.
Kenji 2.0KenJi 2.0
Class : average analysis/trend following
Trading type : any
Time frame : any
Purpose : work in trend
Level of aggressiveness : any
About Kenji
The Kenji 2.0 indicator represents a fresh perspective on average analysis. Traditional trading strategies and indicators reliant on average analysis often generate a lot of false signals, particularly in flat market conditions characterized by frequent average crossovers and directional changes. Consequently, their efficacy and potency are compromised.
The "Kenji" Indicator overcomes these limitations through a unique algorithm (based on combination of correlation analysis and moving average analysis) designed to circumvent common pitfalls associated with average analysis. By accurately identifying the current market state—indicated by color (red for a downward trend, blue for an uptrend, and green for a flat market)—the Kenji indicator enhances signal quality, enabling traders to navigate local trends comfortably.
This indicator not only generates signals for entering positions at optimal times but also provides guidance on profit-taking. Additionally, it assists in assessing signal aggressiveness, making it a valuable tool for both novice and experienced traders.
Rules of Trading
The rules of trading with the indicator are very simple: when the price enters the buy/sell zone (depicted by a blue/red colored area between the fast and slow averages), a signal to enter a position is generated. This position remains valid until either the market state changes (e.g., a shift from a downtrend to a flat or an uptrend) or a signal to close it appears (indicated by a blue/red cross, signaling a significant divergence between the price and average values).
Structure of the Indicator
The indicator comprises colored zones and level lines:
- Colored zones (marked blue, red, or green) are utilized for identifying trading opportunities and detecting entry points.
- Level lines (marked red and blue depending on the current price direction) are employed to identify whether the current price direction is upward or downward.
To streamline the trading process, the indicator displays "buy" and "sell" signals on the chart.
These signals are categorized into two groups: standard (trading with the basic lot size) and aggressive (trading with double the basic lot size). Additionally, take-profit zones are visualized on the chart using blue/red x-crosses. Red x-crosses indicate zones where profits on "sell" positions should be taken, while blue x-crosses indicate zones where profits on "buy" positions should be taken.
Input Parameters of the Indicator
The indicator utilizes several input parameters for configuration:
Slow Average Period: This parameter determines the period of the slow average. A larger period results in a more conservative response of the average to price changes.
Fast Average Period: This parameter determines the period of the fast average. Similar to the slow average period, a larger period leads to a more conservative response of the average to price changes.
Correlation Period: This parameter is utilized in correlation analysis to calculate the level of interconnection between the averages.
Stop Sensitivity: This parameter determines the take-profit zones displayed on the chart in the form of red/blue x-crosses. A higher parameter value corresponds to a larger take-profit value.
Version 2.0 updates:
Alerts and Notifications are added ("sell" and "buy" signals are sent as Alerts and Notifications).
Improved vizualisation
Improved algorithm (mechanics of stop-loss marks in modified)
Access to the indicator
Please address all questions about this indicator (including access to it) in private messages.
Adjustable Percentage Range Moving AverageAdjustable Percentage Range Moving Average (APRMA)
The Adjustable Percentage Range Moving Average (APRMA) is a technical analysis tool designed for traders and market analysts who seek a dynamic approach to understanding market volatility and trend identification. Unlike traditional moving averages, the APRMA incorporates user-adjustable percentage bands around a central moving average line, offering a customizable view of price action relative to its recent history.
Key Features:
Central Moving Average: At its core, APRMA calculates a moving average (type of your choice) of the price over a specified number of periods, serving as the baseline for the indicator.
Percentage Bands: Surrounding the moving average are four bands, two above and two below, set at user-defined percentages away from the central line. These bands expand and contract based on the percentage input, not on standard deviation like Bollinger Bands, which allows for a consistent visual interpretation of how far the price has moved from its average.
Customizability: Users can adjust:
The length of the moving average period to suit short-term, medium-term, or long-term analysis.
The percentage offset for the bands, enabling traders to set the sensitivity of the indicator according to the asset's volatility or their trading strategy.
Visual Interpretation:
When the price moves towards or beyond the upper band, it might indicate that the asset is potentially overbought or that a strong upward trend is in place.
Conversely, price action near or below the lower band could suggest an oversold condition or a strong downward trend.
The space between the bands can be used to gauge volatility; narrower bands suggest lower current volatility relative to the average, while wider bands indicate higher volatility.
Usage in Trading:
Trend Confirmation: A price staying above the moving average and pushing the upper band might confirm an uptrend, while staying below and testing the lower band could confirm a downtrend.
Reversion Strategies: Traders might look for price to revert to the mean (moving average) when it touches or crosses the bands, setting up potential entry or exit points.
Breakout Signals: A price moving decisively through a band after a period of consolidation within the bands might signal a breakout.
The APRMA provides a clear, adaptable framework for traders to visualize where the price stands in relation to its recent average, offering insights into potential overbought/oversold conditions, trend strength, and volatility, all tailored by the trader's strategic preferences.
Gaussian Kernel Smoothing EMAGaussian Kernel Smoothing EMA
The Gaussian Kernel Smoothing EMA integrates the exponential moving average with kernel smoothing techniques to refine the trend tool. Kernel smoothing is a non-parametric technique used to estimate a smooth curve from a set of data points. It is particularly useful in reducing noise and capturing the underlying structure of data. The smoothed value at each point is calculated as a weighted average of neighboring points, with the weights determined by a kernel function.
The Gaussian kernel is a popular choice in kernel smoothing due to its properties of being smooth, symmetric, and having infinite support. This function gives higher weights to data points closer to the target point and lower weights to those further away, resulting in a smooth and continuous estimate. Since price isn't normally distributed a logarithmic transformation is performed to remove most of its skewness to be able to fit the Gaussian kernel.
This indicator also has a bandwidth, which in kernel smoothing controls the width of the window over which the smoothing is performed. It determines how much influence nearby data points have on the smoothed value. In this indicator, the bandwidth is dynamically adjusted based on the standard deviation of the log-transformed prices so that the smoothing adapts to the underlying variability and potential volatility.
Bandwidth Factor: The bandwidth factor in this indicator is used to adjust the degree of the smoothing applied to the MA. In kernel smoothing, Bandwidth controls the width of the window over which the smoothing is applied. It determines how many data points around a central point are considered when calculating a smooth value. A smaller bandwidth results in less smoothing, while a larger bandwidth smooths out more noise, leading to a broader, more general trend.
Sticky Moving AverageThe Sticky Moving Average is a custom indicator designed to provide a unique smoothing effect by combining different moving averages derived from a single base period. This indicator creates a single line on the chart, representing the average of the following three moving averages:
1. X-period Simple Moving Average (SMA): A traditional moving average that smooths the price data over the full period.
2. X/2-period Simple Moving Average (SMA): A faster-moving average that smooths the price data over half of the base period.
3. X/4-period Exponential Moving Average (EMA): An exponential moving average that gives more weight to recent prices, calculated over one-fourth of the base period.
The result is a moving average that "sticks" to price action by considering both short-term and long-term trends, offering a balanced view of market momentum.
This indicator is ideal for traders looking to gain a nuanced understanding of price movements by incorporating multiple smoothing periods into a single, easy-to-use line. Adjust the `X` value to suit your trading strategy and enjoy the clarity this composite moving average can bring to your charts.
Market Breadth - AsymmetrikMarket Breadth - Asymmetrik User Manual
Overview
The Market Breadth - Asymmetrik is a script designed to provide insights into the overall market condition by plotting three key indicators based on stocks within the S&P 500 index. It helps traders assess market momentum and strength through visual cues and is especially useful for understanding the proportion of stocks trading above their respective moving averages.
Features
1. Market Breadth Indicators:
- Breadth 20D (green line): Represents the percentage of stocks in the S&P 500 that are above their 20-day moving average.
- Breadth 50D (yellow line): Represents the percentage of stocks in the S&P 500 that are above their 50-day moving average.
- Breadth 100D (red line): Represents the percentage of stocks in the S&P 500 that are above their 100-day moving average.
2. Horizontal Lines for Context:
- Green line at 10%
- Lighter green line at 20%
- Grey line at 50%
- Light red line at 80%
- Dark red line at 90%
3. Background Color Alerts:
- Green background when all three indicators are under 20%, indicating a potential oversold market condition.
- Red background when all three indicators are over 80%, indicating a potential overbought market condition.
Interpreting the Indicator
- Market Breadth Lines: Observe the plotted lines to assess the percentage of stocks above their moving averages.
- Horizontal Lines: Use the horizontal lines to quickly identify important threshold levels.
- Background Colors: Pay attention to background colors for quick insights:
- Green: All indicators suggest a potentially oversold market condition (below 20).
- Red: All indicators suggest a potentially overbought market condition (above 80).
Troubleshooting
- If the indicator does not appear as expected, please contact me.
- This indicator works only on daily and weekly timeframes.
Conclusion
This Market Breadth Indicator offers a visual representation of market momentum and strength through three key indicators, helping you identify potential buying and selling zones.
TradeBuilderOverview
TradeBuilder is an ever-growing toolbox that lets you combine and compound any number of bundled indicators and algorithms to create a compound strategy. At launch, we're including two Moving Averages (SMA, EMA), RSI, and Stochastic Oscillator, with many more to come. You can use any combination of indicators, be it just one, two, or all.
Key Concepts
Indicator Integration: Tradebuilder allows the use of Moving Averages, RSI, and Stochastic Oscillators, with customizable parameters for each. More indicators to come.
Mode Selection : Choose between Confirm Trend Mode (using indicators to confirm trends) and Momentum Mode (using indicators to spot reversals).
Trade Flexibility : Offers options for both long and short trades, enabling diverse trading strategies.
Customizable Inputs : Easily toggle indicators on or off and adjust specific settings like periods and thresholds.
Signal Generation : Combines multiple conditions to generate entry and exit signals.
Input Parameters:
Moving Average (MA):
use_ma : Enable this to include the Moving Average in your strategy.
ma_cross_type : Choose between "Close/MA" (price crossing the MA) or "MA/MA" (one MA crossing another).
ma_length : Set the period for the primary MA.
ma_type : Choose between "SMA" (Simple Moving Average) or "EMA" (Exponential Moving Average).
ma_length2 : Set the period for the secondary MA if using the "MA/MA" cross type.
ma_type2 : Set the type for the secondary MA.
Relative Strength Index (RSI):
use_rsi : Enable this to include RSI in your strategy.
rsi_length : Set the period for RSI calculation.
rsi_overbought : Define the overbought level.
rsi_oversold : Define the oversold level.
Stochastic Oscillator:
use_stoch : Enable this to include the Stochastic Oscillator in your strategy.
stoch_k : Set the %K period.
stoch_d : Set the %D period.
stoch_smooth : Define the smoothing factor.
stoch_overbought : Set the overbought level.
stoch_oversold : Set the oversold level.
Confirmation or Momentum Mode:
confirm_trend : Set this to true to use RSI and Stochastic Oscillator to confirm trends (long when above overbought, short when below oversold). Set to false to trade on momentum (short when above overbought, long when below oversold).
Tip: When set to false and used with just momentum oscillators like Stochastic or RSI, it's geared toward scalping as it essentially becomes momentum trading.
Trade Directions:
trade_long : Enable to allow long trades.
trade_short : Enable to allow short trades.
Example Strategy on E-mini S&P 500 Index Futures ( CME_MINI:ES1! ), 1-minute Chart
Let’s say you want to create a strategy to go long when:
A 5-period SMA crosses above a 100-period EMA.
RSI is above 20.
The Stochastic Oscillator is above 95.
Trend Confirmation Mode is on.
For short:
A 5-period SMA crosses below a 100-period EMA.
RSI is below 45.
The Stochastic Oscillator is below 5.
Trend Confirmation Mode is on.
Here’s how you would set it up in Tradebuilder:
use_ma = true
ma_cross_type = "MA/MA"
ma_length = 5
ma_type = "SMA"
ma_length2 = 100
ma_type2 = "EMA"
use_rsi = true
rsi_length = 14
rsi_overbought = 20
rsi_oversold = 45
use_stoch = true
stoch_k = 8
stoch_d = 1
stoch_smooth = 1
stoch_overbought = 95
stoch_oversold = 5
confirm_trend = true
trade_long = true
trade_short = false
Alerts
Here is how to set TradeBuilder alerts: open a TradingView chart, attach TradeBuilder, right-click on chart -> Add Alert. Condition: Symbol (e.g. NQ) >> TradeBuilder >> Open-Ended Alert >> Once Per Bar Close.
Development Roadmap
We plan to add many more compoundable indicators to TradeBuilder over the coming months from all walks of technical analysis, including Volume, Volatility, Trend Detection/Validation, Momentum, Divergences, Chart Patterns, Support/Resistance Analysis. etc.
SOL & BTC EMA with BTC/SOL Price Difference % and BTC Dom EMAThis script is designed to provide traders with a comprehensive analysis of Solana (SOL) and Bitcoin (BTC) by incorporating Exponential Moving Averages (EMAs) and price difference percentages. It also includes the BTC Dominance EMA to offer insights into the overall market dominance of Bitcoin.
Features:
SOL EMA: Plots the Exponential Moving Average (EMA) for Solana (SOL) based on a customizable period length.
BTC EMA: Plots the Exponential Moving Average (EMA) for Bitcoin (BTC) based on a customizable period length.
BTC Dominance EMA: Plots the Exponential Moving Average (EMA) for BTC Dominance, which helps in understanding Bitcoin's market share relative to other cryptocurrencies.
BTC/SOL Price Difference %: Calculates and plots the percentage difference between BTC and SOL prices, adjusted for their respective EMAs. This helps in identifying relative strength or weakness between the two assets.
Background Highlight: Colors the background to visually indicate whether the BTC/SOL price difference percentage is positive (green) or negative (red), aiding in quick decision-making.
Inputs:
SOL Ticker: Symbol for Solana (default: BINANCE
).
BTC Ticker: Symbol for Bitcoin (default: BINANCE
).
BTC Dominance Ticker: Symbol for Bitcoin Dominance (default: CRYPTOCAP
.D).
EMA Length: The length of the EMA (default: 20 periods).
Usage:
This script is intended for traders looking to analyze the relationship between SOL and BTC, using EMAs to smooth out price data and highlight trends. The BTC/SOL price difference percentage can help traders identify potential trading opportunities based on the relative movements of SOL and BTC.
Note: Leverage trading involves significant risk and may not be suitable for all investors. Ensure you have a good understanding of the market conditions and employ proper risk management techniques.
Moving Average Z-Score Suite [BackQuant]Moving Average Z-Score Suite
1. What is this indicator
The Moving Average Z-Score Suite is a versatile indicator designed to help traders identify and capitalize on market trends by utilizing a variety of moving averages. This indicator transforms selected moving averages into a Z-Score oscillator, providing clear signals for potential buy and sell opportunities. The indicator includes options to choose from eleven different moving average types, each offering unique benefits and characteristics. It also provides additional features such as standard deviation levels, extreme levels, and divergence detection, enhancing its utility in various market conditions.
2. What is a Z-Score
A Z-Score is a statistical measurement that describes a value's relationship to the mean of a group of values. It is measured in terms of standard deviations from the mean. For instance, a Z-Score of 1.0 means the value is one standard deviation above the mean, while a Z-Score of -1.0 indicates it is one standard deviation below the mean. In the context of financial markets, Z-Scores can be used to identify overbought or oversold conditions by determining how far a particular value (such as a moving average) deviates from its historical mean.
3. What moving averages can be used
The Moving Average Z-Score Suite allows users to select from the following eleven moving averages:
Simple Moving Average (SMA)
Hull Moving Average (HMA)
Exponential Moving Average (EMA)
Weighted Moving Average (WMA)
Double Exponential Moving Average (DEMA)
Running Moving Average (RMA)
Linear Regression Curve (LINREG) (This script can be found standalone )
Triple Exponential Moving Average (TEMA)
Arnaud Legoux Moving Average (ALMA)
Kalman Hull Moving Average (KHMA)
T3 Moving Average
Each of these moving averages has distinct properties and reacts differently to price changes, allowing traders to select the one that best fits their trading style and market conditions.
4. Why Turning a Moving Average into a Z-Score is Innovative and Its Benefits
Transforming a moving average into a Z-Score is an innovative approach because it normalizes the moving average values, making them more comparable across different periods and instruments. This normalization process helps in identifying extreme price movements and mean-reversion opportunities more effectively. By converting the moving average into a Z-Score, traders can better gauge the relative strength or weakness of a trend and detect potential reversals. This method enhances the traditional moving average analysis by adding a statistical perspective, providing clearer and more objective trading signals.
5. How It Can Be Used in the Context of a Trading System
In a trading system, it can be used to generate buy and sell signals based on the Z-Score values. When the Z-Score crosses above zero, it indicates a potential buying opportunity, suggesting that the price is above its mean and possibly trending upward. Conversely, a Z-Score crossing below zero signals a potential selling opportunity, indicating that the price is below its mean and might be trending downward. Additionally, the indicator's ability to show standard deviation levels and extreme levels helps traders set profit targets and stop-loss levels, improving risk management and trade planning.
6. How It Can Be Used for Trend Following
For trend-following strategies, it can be particularly useful. The Z-Score oscillator helps traders identify the strength and direction of a trend. By monitoring the Z-Score and its rate of change, traders can confirm the persistence of a trend and make informed decisions to enter or exit trades. The indicator's divergence detection feature further enhances trend-following by identifying potential reversals before they occur, allowing traders to capitalize on trend shifts. By providing a clear and quantifiable measure of trend strength, this indicator supports disciplined and systematic trend-following strategies.
No backtests for this indicator due to the many options and ways it can be used,
Enjoy
Stochastic Biquad Band Pass FilterThis indicator combines the power of a biquad band pass filter with the popular stochastic oscillator to provide a unique tool for analyzing price movements.
The Filter Length parameter determines the center frequency of the biquad band pass filter, affecting which frequency band is isolated. Adjusting this parameter allows you to focus on different parts of the price movement spectrum.
The Bandwidth (BW) controls the width of the frequency band in octaves. It represents the bandwidth between -3 dB frequencies for the band pass filter. A narrower bandwidth results in a more focused filtering effect, isolating a tighter range of frequencies.
The %K Length parameter sets the period for the stochastic calculation, determining the range over which the stochastic values are calculated.
The %K Smoothing parameter applies a simple moving average to the %K values to smooth out the oscillator line.
The %D Length parameter sets the period for the %D line, which is a simple moving average of the %K line, providing a signal line for the oscillator.
Key Features of the Stochastic Biquad Band Pass Filter
Biquad filters are known for their smooth response and minimal phase distortion, making them ideal for technical analysis. In this implementation, the biquad filter is configured as a band pass filter, which allows frequencies within a specified band to pass while attenuating frequencies outside this band. This is particularly useful in trading to isolate specific price movements, making it easier to detect patterns and trends within a targeted frequency range.
The stochastic oscillator is a popular momentum indicator that shows the location of the close relative to the high-low range over a set number of periods. Combining it with a biquad band pass filter enhances its effectiveness by focusing on specific frequency bands of price movements.
By incorporating this stochastic biquad band pass filter into your trading toolkit, you can enhance your chart analysis with clearer insights into specific frequency bands of price movements, leading to more informed trading decisions.
Biquad High Pass FilterThis indicator utilizes a biquad high pass filter to filter out low-frequency components from price data, helping traders focus on high-frequency movements and detect rapid changes in trends.
The Length parameter determines the cutoff frequency of the filter, affecting how quickly the filter responds to changes in price. A shorter length allows the filter to react more quickly to high-frequency movements.
The Q Factor controls the sharpness of the filter. A higher Q value results in a more precise filtering effect by narrowing the frequency band. However, be cautious when setting the Q factor too high, as it can induce resonance, amplifying certain frequencies and potentially making the filter less effective by introducing unwanted noise.
Key Features of Biquad Filters
Biquad filters are a type of digital filter that provides a combination of low-pass, high-pass, band-pass, and notch filtering capabilities. In this implementation, the biquad filter is configured as a high pass filter, which allows high-frequency signals to pass while attenuating lower-frequency components. This is particularly useful in trading to highlight rapid price movements, making it easier to spot short-term trends and patterns.
Biquad filters are known for their smooth response and minimal phase distortion, making them ideal for technical analysis. The customizable length and Q factor allow for flexible adaptation to different trading strategies and market conditions. Designed for real-time charting, the biquad filter operates efficiently without significant lag, ensuring timely analysis.
By incorporating this biquad high pass filter into your trading toolkit, you can enhance your chart analysis with clearer insights into rapid price movements, leading to more informed trading decisions.
Biquad Low Pass FilterThis indicator utilizes a biquad low pass filter to smooth out price data, helping traders identify trends and reduce noise in their analysis.
The Length parameter acts as the length of the moving average, determining the smoothness and responsiveness of the filter. Adjusting this parameter changes how quickly the filter reacts to price changes.
The Q Factor controls the sharpness of the filter. A higher Q value results in a narrower frequency band, enhancing the precision of the filter. However, be cautious when setting the Q factor too high, as it can induce resonance, amplifying certain frequencies and potentially making the filter less effective by introducing noise.
Key Features of Biquad Filters
Biquad filters are a type of digital filter that provides a combination of low-pass, high-pass, band-pass, and notch filtering capabilities. In this implementation, the biquad filter is configured as a low pass filter, which allows low-frequency signals to pass while attenuating higher-frequency noise. This is particularly useful in trading to smooth out price data, making it easier to spot underlying trends and patterns.
Biquad filters are known for their smooth response and minimal phase distortion, making them ideal for technical analysis. The customizable length and Q factor allow for flexible adaptation to different trading strategies and market conditions. Designed for real-time charting, the biquad filter operates efficiently without significant lag, ensuring timely analysis.
By incorporating this biquad low pass filter into your trading toolkit, you can enhance your chart analysis with clearer insights into price movements, leading to more informed trading decisions.
GMMA Toolkit [QuantVue]The GMMA Toolkit is designed to leverage the principles of the Guppy Multiple Moving Average (GMMA). This indicator is equipped with multiple features to help traders identify trends, reversals, and periods of market compression.
The Guppy Multiple Moving Average (GMMA) is a technical analysis tool developed by Australian trader and author Daryl Guppy in the late 1990s.
It utilizes two sets of Exponential Moving Averages (EMAs) to capture both short-term and long-term market trends. The short-term EMAs represent the activity of traders, while the long-term EMAs reflect the behavior of investors.
By analyzing the interaction between these two groups of EMAs, traders can identify the strength and direction of trends, as well as potential reversals.
Due to the nature of GMMA, charts can become cluttered with numerous lines, making analysis challenging.
However, this indicator simplifies visualization by using clouds to represent the short-term and long-term EMA groups, determined by filling the area between the maximum and minimum EMAs in each group.
The GMMA Toolkit goes a step further and includes an oscillator that measures the difference between the average short-term and long-term EMAs, providing a clear visual representation of trend strength and direction.
The farther the oscillator is from the 0 level, the stronger the trend. It is plotted on a separate panel with values above zero indicating bullish conditions and values below zero indicating bearish conditions.
The inclusion of the oscillator in the GMMA Toolkit allows traders to identify earlier buy and sell signals based on the GMMA oscillator crossing the zero line compared to traditional crossover methods.
Lastly, the GMMA Toolkit features compression dots that indicate periods of market consolidation.
By measuring the spread between the maximum and minimum EMAs within both short-term and long-term groups, the indicator identifies when these spreads are significantly narrower than average by comparing the current spread to the average spread over a lookback period.
This visual cue helps traders anticipate potential breakout or breakdown scenarios, enhancing their ability to react to imminent trend changes.
By simplifying the visualization of the Guppy Multiple Moving Averages with clouds, providing earlier buy and sell signals through the oscillator, and highlighting periods of market consolidation with compression dots, this toolkit offers traders insightful tools for navigating market trends and potential reversals.
Give this indicator a BOOST and COMMENT your thoughts below!
We hope you enjoy.
Cheers!
NEXT Volatility-Momentum Moving Average (VolMo MA)Overview
Volatility-Momentum Moving Average (VolMo MA) incorporates two key market dynamics into its price averaging formula: volatility and momentum. Traditional MAs, like EMA, often lag in volatile markets or during strong price moves. By integrating volatility (price range variability) and momentum (rate of price change), we developed a more adaptive and responsive MA.
Key Concepts
Volatility Calculation: Average True Range (ATR) used to quantify market volatility. ATR measures the average price range over a specified period.
Momentum Calculation: Relative Strength Index (RSI) applied to assess market momentum. RSI evaluates the speed and magnitude of price movements.
Moving Average Adjustment: Dynamically weight EMA based on volatility and momentum metrics. When volatility is high, the MA's responsiveness increases. Similarly, strong momentum accelerates the MA adjustment.
Input Parameters:
Length - length of Volatility-Momentum Moving Average (VolMo MA). This input also affects how far back momentum and volatility are considered. Experimentation is highly encouraged.
Sensitivity - controls the Volatility-Momentum adjustment rate applied to the MA. Default is 50, but experimentation is highly encouraged.
Source - data used for calculating the MA, typically Close, but can be used with other price formats and data sources as well. A lot of potential here.
Note: The VolMo MA Indicator plots, both, the Volatility-Momentum Moving Average and EMA for base comparison. You can disable EMA by unticking it under Style tab.
NASDAQ 100 Futures ( CME_MINI:NQ1! ) 1-minute
The following example compares VolMo MA (blue) to EMA (green). Length set to 34, Sensitivity to 40. Notice the difference in responsiveness as price action consolidates and breaks out. The VolMo MA can be used for scalping at lower Length values and 40-60 Sensitivity or as a dynamic support/resistance line at higher Length values.
Alerts
Here is how to set price crossing VolMo MA alerts: open a TradingView chart, attach NEXT NEXT Volatility-Momentum Moving Average (VolMo MA), right-click on chart -> Add Alert. Condition: Symbol (e.g. NQ) >> Crossing >> NEXT Volatility-Momentum Moving Average (VolMo MA) >> VolMo MA >> Once Per Bar Close.
Development Roadmap
Our initial research shows plenty of edge potential for the VolMo MA when used, both, by itself, or interacting with other indicators. To that end, we'll be adding the following features over the next few months:
Visual signal generation via interaction with EMA, price action, and other MAs and indicators - you can already do alerts with TradingView's built-in Alert functionality
Addition of a second, fully configurable VolMo MA for a Double VolMo MA cross strategy
VolMo MA MACD
Automation and Backtesting via Strategy