Göstergeler ve stratejiler
Monthly Melodies by Bryan Ramirez Three months make up a quarter. My indicator highlights each month in a distinct color: the first month in green, the second in yellow, and the third in orange. Each month functions as its own time window, where the algorithm may lean toward one side of the market more than the other. I like pairing this with Steve Moore’s seasonal tendencies for added context. This approach applies across Futures, Forex, and Crypto.
Doji Buy Signal (3-min, Body ≤ 6%)Doji Buy Signal (3-min, Body ≤ 6%) will give a Buy Signal when Doji Candle is formed
Doji Buy Signal (3-min, Body ≤ 6%)Doji Buy Signal (3-min, Body ≤ 6%) will give a buy signal when dojo candle is formed
Natural Gas Intraday Strategy [15m] with Partial Profit & TrailBuy when:
1. Close > EMA 100 and EMA 20 > EMA 100
2. MACD (8,21,5) > Signal and histogram rising
3. RSI > 60
4. ATR > threshold (avoid flat market)
Sell when:
1. Close < EMA 100 and EMA 20 < EMA 100
2. MACD (8,21,5) < Signal and histogram falling
3. RSI < 40
4. ATR > threshold
Exit:
• SL = recent swing ± 0.5 ATR
• TP1 = 1 ATR, trail rest with EMA 20
Multi-Timeframe Trend Table - EMA Based Trend Analysis📊 Stay Aligned with Higher Timeframe Trends While Scalping
This powerful indicator displays real-time trend direction for 1-hour and 4-hour timeframes in a clean, easy-to-read table format. Perfect for traders who want to align their short-term trades with higher timeframe momentum.
🎯 Key Features
Multi-Timeframe Analysis: Monitor 1H and 4H trends while trading on any timeframe (3min, 5min, 15min, etc.)
EMA-Based Logic: Uses proven EMA 50 and EMA 100 crossover methodology
Visual Clarity: Color-coded table with green (uptrend) and red (downtrend) indicators
Customizable Display: Toggle EMA values and adjust table position
Real-Time Updates: Automatically refreshes with each bar close
Lightweight: Minimal resource usage with efficient data requests
📈 How It Works
The indicator determines trend direction using a simple but effective rule:
UPTREND: Price is above both EMA 50 AND EMA 100
DOWNTREND: Price is below either EMA 50 OR EMA 100
🔧 Settings
Show EMA Values: Display actual EMA 50/100 values in the table
Table Position: Choose from 4 corner positions (Top Right, Top Left, Bottom Right, Bottom Left)
Plot Current EMAs: Optional display of EMA lines on your current chart
💡 Trading Applications
✅ Trend Confirmation: Ensure your trades align with higher timeframe direction
✅ Risk Management: Avoid counter-trend trades in strong directional markets
✅ Entry Timing: Use lower timeframe for entries while respecting higher timeframe bias
✅ Scalping Enhancement: Perfect for 1-5 minute scalping with higher timeframe context
🎨 Visual Design
Clean, professional table design
Intuitive color coding (Green = Up, Red = Down)
Compact size that doesn't obstruct your chart
Clear typography for quick reading
📋 Perfect For
Day traders and scalpers
Swing traders seeking trend confirmation
Multi-timeframe analysis enthusiasts
Traders who want simple, effective trend identification
🚀 Easy Setup
Add to any chart (works on all timeframes)
Customize table position and settings
Start trading with higher timeframe awareness
Watch the table update automatically
No complex configurations needed - just add and trade!
This indicator is designed for educational and informational purposes. Always combine with proper risk management and your own analysis.
RWE (MASTER CƯỜNG BOSS)Tôi là một nhà giao dịch master, tôi muốn chia sẻ đến các bạn những chỉ báo tuyệt vời nhất
supertrendLibrary "supertrend"
supertrend : Library dedicated to different variations of supertrend
supertrend_atr(length, multiplier, atrMaType, source, highSource, lowSource, waitForClose, delayed)
supertrend_atr: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
length (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
delayed (simple bool) : : if set to true lags supertrend atr stop based on target levels.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_bands(bandType, maType, length, multiplier, source, highSource, lowSource, waitForClose, useTrueRange, useAlternateSource, alternateSource, sticky)
supertrend_bands: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
bandType (simple string) : : Type of band used - can be bb, kc or dc
maType (simple string) : : Moving Average type for Bands. This can be sma, ema, hma, rma, wma, vwma, swma
length (simple int) : : Band Length
multiplier (float) : : Std deviation or ATR multiplier for Bollinger Bands and Keltner Channel
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
useTrueRange (simple bool) : : Used for Keltner channel. If set to false, then high-low is used as range instead of true range
useAlternateSource (simple bool) : - Custom source is used for Donchian Chanbel only if useAlternateSource is set to true
alternateSource (float) : - Custom source for Donchian channel
sticky (simple bool) : : if set to true borders change only when price is beyond borders.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_zigzag(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
supertrend_zigzag: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zupertrend(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
zupertrend: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zsupertrend(zigzagpivots, history, source, highSource, lowSource, waitForClose, atrMaType, atrlength, multiplier)
zsupertrend: Same as zigzag supertrend. But, works on already calculated array rather than Calculating fresh zigzag
Parameters:
zigzagpivots (array) : : Precalculated zigzag pivots
history (simple int) : : number of historical pivots to consider
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
msupertrend(bandType, source, maType, length, useTrueRange, highSource, lowSource, waitForClose, numberOfBands, multiplierStart, multiplierStep, trailingDistance, trailStates)
msupertrend : Dynamic trailing supertrend based on multiple bands - either bollinger bands or keltener channel
Parameters:
bandType (simple string) : : Band type - can be either bb or kc
source (float) : : custom source if required
maType (simple string) : : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : : Oscillator length - not used for TSI
useTrueRange (simple bool) : : if set to false, uses high-low.
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
numberOfBands (simple int) : : Number of bands to generate
multiplierStart (simple float) : : Starting ATR or Standard deviation multiplier for first band
multiplierStep (simple float) : : Incremental value for multiplier for each band
trailingDistance (simple int) : : Number of band states to trail for trailing stop.
trailStates (simple bool) : : If selected trails the band states along with trailing price. If unselected only price is trailed.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zigzagLibrary "zigzag"
Library dedicated to zigzags and related indicators
zigzag(length, numberOfPivots, useAlternativeSource, source, oscillatorSource, oscillatorHighSource, oscillatorLowSource, directionBias, divergenceOption)
zigzag: Calculates zigzag pivots and generates an array
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
useAlternativeSource (simple bool) : : If set uses the source for genrating zigzag. Default is false
source (float) : : Alternative source used only if useAlternativeSource is set to true. Default is close
oscillatorSource (float) : : Oscillator source for calculating divergence
oscillatorHighSource (float)
oscillatorLowSource (float)
directionBias (int) : : Direction bias for calculating divergence
divergenceOption (int) : : 1 - hidden/regular, 2 - regular, 3 - hidden
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
newPivot : Returns true if new pivot created
doublePivot : Returns true if two new pivots are created on same bar (Happens in case of candles with long wicks and shorter zigzag lengths)
czigzag(length, numberOfPivots, highSource, lowSource, oscillatorHighSource, oscillatorLowSource, directionBias, divergenceOption)
czigzag: Calculates zigzag pivots and generates an array based on custom high and low source
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
highSource (float) : : High Source for prices to calculate zigzag.
lowSource (float) : : Low source for prices to calculate zigzag.
oscillatorHighSource (float) : : Oscillator high source for calculating divergence
oscillatorLowSource (float) : : Oscillator high source for calculating divergence
directionBias (int) : : Direction bias for calculating divergence
divergenceOption (int) : : 1 - hidden/regular, 2 - regular, 3 - hidden
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzagdoubledivergence : Array of double divergence sentiment at each pivot
newPivot : Returns true if new pivot created
doublePivot : Returns true if two new pivots are created on same bar (Happens in case of candles with long wicks and shorter zigzag lengths)
drawczigzag(length, numberOfPivots, highSource, lowSource, oscillatorHighSource, oscillatorLowSource, directionBias, showHighLow, showRatios, showDivergence, showDoubleDivergence, showIndicator, linecolor, linewidth, linestyle)
drawczigzag: Calculates and draws zigzag pivots and generates an array based on custom high and low source
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
highSource (float) : : High Source for prices to calculate zigzag.
lowSource (float) : : Low source for prices to calculate zigzag.
oscillatorHighSource (float) : : Oscillator high source for calculating divergence
oscillatorLowSource (float) : : Oscillator high source for calculating divergence
directionBias (int) : : Direction bias for calculating divergence
showHighLow (simple bool) : : show highlow label
showRatios (simple bool) : : show retracement ratios
showDivergence (simple bool) : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
showDoubleDivergence (simple bool) : : Show double divergence label
showIndicator (simple bool)
linecolor (color) : : zigzag line color
linewidth (int) : : zigzag line width
linestyle (string) : : zigzag line style
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzagdoubledivergence : Array of double divergence sentiment at each pivot
zigzaglines : Returns array of zigzag lines
zigzaglabels : Returns array of zigzag labels
drawczigzag2(length, numberOfPivots, highSource, lowSource, oscillatorHighSource, oscillatorLowSource, directionBias, showHighLow, showRatios, showDivergence, showDoubleDivergence, showIndicator, linecolor, linewidth, linestyle)
drawczigzag2: Same as drawczigzag. But, returns newPivot and doublePivot bools as well.
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
highSource (float) : : High Source for prices to calculate zigzag.
lowSource (float) : : Low source for prices to calculate zigzag.
oscillatorHighSource (float) : : Oscillator high source for calculating divergence
oscillatorLowSource (float) : : Oscillator high source for calculating divergence
directionBias (int) : : Direction bias for calculating divergence
showHighLow (simple bool) : : show highlow label
showRatios (simple bool) : : show retracement ratios
showDivergence (simple bool) : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
showDoubleDivergence (simple bool) : : Show double divergence label
showIndicator (simple bool)
linecolor (color) : : zigzag line color
linewidth (int) : : zigzag line width
linestyle (string) : : zigzag line style
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzagdoubledivergence : Array of double divergence sentiment at each pivot
zigzaglines : Returns array of zigzag lines
zigzaglabels : Returns array of zigzag labels
drawzigzag(length, numberOfPivots, useAlternativeSource, source, linecolor, linewidth, linestyle, oscillatorSource, oscillatorHighSource, oscillatorLowSource, directionBias, showHighLow, showRatios, showDivergence)
drawzigzag: Calculates and draws zigzag pivots
Parameters:
length (int) : : Zigzag Length
numberOfPivots (simple int) : : Max number of pivots to return in the array. Default is 20
useAlternativeSource (simple bool)
source (float) : : Alternative source used only if useAlternativeSource is set to true. Default is close
linecolor (color) : : zigzag line color
linewidth (int) : : zigzag line width
linestyle (string) : : zigzag line style
oscillatorSource (float) : : Oscillator source for calculating divergence
oscillatorHighSource (float)
oscillatorLowSource (float)
directionBias (int) : : Direction bias for calculating divergence
showHighLow (simple bool) : : show highlow label
showRatios (simple bool) : : show retracement ratios
showDivergence (simple bool) : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
Returns: zigzagpivots : Array containing zigzag pivots
zigzagpivotbars : Array containing zigzag pivot bars
zigzagpivotdirs : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios : Array containing zigzag retracement ratios for each pivot
zigzagoscillators : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence : Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzaglines : Returns array of zigzag lines
zigzaglabels : Returns array of zigzag labels
_matrixLibrary "_matrix"
Library helps visualize matrix as array of arrays and enables users to use array methods such as push, pop, shift, unshift etc along with cleanup activities on drawing objects wherever required
delete(mtx, rowNumber)
deletes row from a matrix
Parameters:
mtx (matrix) : matrix of objects
rowNumber (int) : row index to be deleted
Returns: void
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
delete(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
remove row from a matrix and returns them to caller
Parameters:
mtx (matrix) : matrix of objects
rowNumber (int) : row index to be deleted
Returns: type
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
remove(mtx, rowNumber)
Parameters:
mtx (matrix)
rowNumber (int)
unshift(mtx, row, maxItems)
unshift array of lines to first row of the matrix
Parameters:
mtx (matrix) : matrix of lines
row (array) : array of lines to be inserted in row
maxItems (simple int)
Returns: resulting matrix of type
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
unshift(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
push array of lines to end of the matrix row
Parameters:
mtx (matrix) : matrix of lines
row (array) : array of lines to be inserted in row
maxItems (simple int)
Returns: resulting matrix of lines
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
push(mtx, row, maxItems)
Parameters:
mtx (matrix)
row (array)
maxItems (simple int)
shift(mtx)
shift removes first row from matrix of lines
Parameters:
mtx (matrix) : matrix of lines from which the shift operation need to be performed
Returns: void
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
shift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
rshift removes first row from matrix of lines and returns them as array
Parameters:
mtx (matrix) : matrix of lines from which the rshift operation need to be performed
Returns: type
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
rshift(mtx)
Parameters:
mtx (matrix)
pop(mtx)
pop removes last row from matrix of lines
Parameters:
mtx (matrix) : matrix of lines from which the pop operation need to be performed
Returns: void
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
pop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
rpop removes last row from matrix of lines and reutnrs the array to caller
Parameters:
mtx (matrix) : matrix of lines from which the rpop operation need to be performed
Returns: void
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
rpop(mtx)
Parameters:
mtx (matrix)
clear(mtx)
clear clears the matrix
Parameters:
mtx (matrix) : matrix of lines which needs to be cleared
Returns: void
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
clear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
clear clears the matrix but retains the drawing objects
Parameters:
mtx (matrix) : matrix of lines which needs to be cleared
Returns: void
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
rclear(mtx)
Parameters:
mtx (matrix)
arraysLibrary "arrays"
Library contains utility functions using arrays. These are mostly customized for personal use. Hence, will not add documentation to it.
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (int)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
push(arr, val, maxItems)
Parameters:
arr (array)
val (int)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
enhanced_taLibrary "enhanced_ta"
ma(source, maType, length)
returns custom moving averages
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
Returns: moving average for the given type and length
atr(maType, length)
returns ATR with custom moving average
Parameters:
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
Returns: ATR for the given moving average type and length
atrpercent(maType, length)
returns ATR as percentage of close price
Parameters:
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
Returns: ATR as percentage of close price for the given moving average type and length
bb(source, maType, length, multiplier, sticky)
returns Bollinger band for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger band with custom moving average for given source, length and multiplier
bbw(source, maType, length, multiplier, sticky)
returns Bollinger bandwidth for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger Bandwidth for custom moving average for given source, length and multiplier
bpercentb(source, maType, length, multiplier, sticky)
returns Bollinger Percent B for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger Percent B for custom moving average for given source, length and multiplier
kc(source, maType, length, multiplier, useTrueRange, sticky)
returns Keltner Channel for custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Channel for custom moving average for given souce, length and multiplier
kcw(source, maType, length, multiplier, useTrueRange, sticky)
returns Keltner Channel Width with custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Channel Width for custom moving average
kpercentk(source, maType, length, multiplier, useTrueRange, sticky)
returns Keltner Channel Percent K Width with custom moving average
Parameters:
source (float) : Moving Average Source
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : Moving Average Length
multiplier (float) : Standard Deviation multiplier
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Percent K for given moving average, source, length and multiplier
dc(length, useAlternateSource, alternateSource, sticky)
returns Custom Donchian Channel
Parameters:
length (simple int) : - donchian channel length
useAlternateSource (simple bool) : - Custom source is used only if useAlternateSource is set to true
alternateSource (float) : - Custom source
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel
dcw(length, useAlternateSource, alternateSource, sticky)
returns Donchian Channel Width
Parameters:
length (simple int) : - donchian channel length
useAlternateSource (simple bool) : - Custom source is used only if useAlternateSource is set to true
alternateSource (float) : - Custom source
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel width
dpercentd(length, useAlternateSource, alternateSource, sticky)
returns Donchian Channel Percent of price
Parameters:
length (simple int) : - donchian channel length
useAlternateSource (simple bool) : - Custom source is used only if useAlternateSource is set to true
alternateSource (float) : - Custom source
sticky (simple bool) : - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel Percent D
oscillatorRange(source, method, highlowLength, rangeLength, sticky)
oscillatorRange - returns Custom overbought/oversold areas for an oscillator input
Parameters:
source (float) : - Osillator source such as RSI, COG etc.
method (simple string) : - Valid values for method are : sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
highlowLength (simple int) : - length on which highlow of the oscillator is calculated
rangeLength (simple int) : - length used for calculating oversold/overbought range - usually same as oscillator length
sticky (simple bool) : - overbought, oversold levels won't change unless crossed
Returns: Dynamic overbought and oversold range for oscillator input
oscillator(type, length, shortLength, longLength, source, highSource, lowSource, method, highlowLength, sticky)
oscillator - returns Choice of oscillator with custom overbought/oversold range
Parameters:
type (simple string) : - oscillator type. Valid values : cci, cmo, cog, mfi, roc, rsi, stoch, tsi, wpr
length (simple int) : - Oscillator length - not used for TSI
shortLength (simple int) : - shortLength only used for TSI
longLength (simple int) : - longLength only used for TSI
source (float) : - custom source if required
highSource (float) : - custom high source for stochastic oscillator
lowSource (float) : - custom low source for stochastic oscillator
method (simple string) : - Valid values for method are : sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
highlowLength (simple int) : - length on which highlow of the oscillator is calculated
sticky (simple bool) : - overbought, oversold levels won't change unless crossed
Returns: Oscillator value along with dynamic overbought and oversold range for oscillator input
multibands(bandType, source, maType, length, useTrueRange, sticky, numberOfBands, multiplierStart, multiplierStep)
multibands - returns Choice of oscillator with custom overbought/oversold range
Parameters:
bandType (simple string) : - Band type - can be either bb or kc
source (float) : - custom source if required
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : - Oscillator length - not used for TSI
useTrueRange (simple bool) : - if set to false, uses high-low.
sticky (simple bool) : - for sticky borders which only change upon source crossover/crossunder
numberOfBands (simple int) : - Number of bands to generate
multiplierStart (simple float) : - Starting ATR or Standard deviation multiplier for first band
multiplierStep (simple float) : - Incremental value for multiplier for each band
Returns: array of band values sorted in ascending order
mbandoscillator(bandType, source, maType, length, useTrueRange, stickyBands, numberOfBands, multiplierStart, multiplierStep)
mbandoscillator - Multiband oscillator created on the basis of bands
Parameters:
bandType (simple string) : - Band type - can be either bb or kc
source (float) : - custom source if required
maType (simple string) : Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
length (simple int) : - Oscillator length - not used for TSI
useTrueRange (simple bool) : - if set to false, uses high-low.
stickyBands (simple bool) : - for sticky borders which only change upon source crossover/crossunder for band detection
numberOfBands (simple int) : - Number of bands to generate
multiplierStart (simple float) : - Starting ATR or Standard deviation multiplier for first band
multiplierStep (simple float) : - Incremental value for multiplier for each band
Returns: oscillator currentStates - Array containing states for last n bars
timer(timeStart, timeEnd)
finds difference between two timestamps
Parameters:
timeStart (int) : - start timestamp
timeEnd (int)
arrayutilsLibrary "arrayutils"
delete(arr, index)
remove an item from array at specific index. Also deletes the item
Parameters:
arr (array) : - array from which the item needs to be deleted
index (int) : - index of item to be deleted
Returns: void
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
delete(arr, index)
Parameters:
arr (array)
index (int)
pop(arr)
remove the last item from array. Also deletes the item
Parameters:
arr (array) : - array from which the last item needs to be removed and deleted
Returns: void
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
pop(arr)
Parameters:
arr (array)
shift(arr)
remove an item from array at index 0. Also deletes the item
Parameters:
arr (array) : - array from which the first item needs to be removed and deleted
Returns: void
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
shift(arr)
Parameters:
arr (array)
unshift(arr, val, maxItems)
add an item to the beginning of an array with max items cap
Parameters:
arr (array) : - array to which the item needs to be added at the beginning
val (int) : - value of item which needs to be added
maxItems (simple int) : - max items array can hold. After that, items are removed from the other end
Returns: resulting array
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
unshift(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
clear(arr)
remove and delete all items in an array
Parameters:
arr (array) : - array which needs to be cleared
Returns: void
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
clear(arr)
Parameters:
arr (array)
push(arr, val, maxItems)
add an item to the end of an array with max items cap
Parameters:
arr (array) : - array to which the item needs to be added at the beginning
val (int) : - value of item which needs to be added
maxItems (simple int) : - max items array can hold. After that, items are removed from the starting index
Returns: resulting array
push(arr, val, maxItems)
Parameters:
arr (array)
val (float)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (bool)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (string)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (color)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (line)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (label)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (box)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (table)
maxItems (simple int)
push(arr, val, maxItems)
Parameters:
arr (array)
val (linefill)
maxItems (simple int)
check_overflow(a, b, c, pivots, barArray)
finds difference between two timestamps
Parameters:
a (float)
b (float)
c (float)
pivots (array) : pivots array
barArray (array) : pivot bar array
Returns: bool overflow
get_trend_series(pivots, length, highLow, trend)
finds series of pivots in particular trend
Parameters:
pivots (array) : pivots array
length (int) : length for which trend series need to be checked
highLow (int) : filter pivot high or low
trend (int) : Uptrend or Downtrend
Returns: int trendIndexes
get_trend_series(pivots, firstIndex, lastIndex)
finds series of pivots in particular trend
Parameters:
pivots (array) : pivots array
firstIndex (int) : First index of the series
lastIndex (int) : Last index of the series
Returns: int trendIndexes
sma(source)
calculates sma for elements in array
Parameters:
source (array) : source array
Returns: float sma
ema(source, length)
calculates ema for elements in array
Parameters:
source (array) : source array
length (simple int) : ema length
Returns: float ema
rma(source, length)
calculates rma for elements in array
Parameters:
source (array) : source array
length (simple int) : rma length
Returns: float rma
wma(source, length)
calculates wma for elements in array
Parameters:
source (array) : source array
length (simple int) : wma length
Returns: float wma
hma(source, length)
calculates hma for elements in array
Parameters:
source (array) : source array
length (simple int) : hma length
Returns: float hma
ma(source, matype, length)
wrapper for all moving averages based on array
Parameters:
source (array) : source array
matype (simple string) : moving average type. Valud values are: sma, ema, rma, wma, hma, high, low, median, medianHigh, medianLow
length (simple int) : moving average length length
Returns: float moving average
getFibSeries(numberOfFibs, start)
gets fib series in array
Parameters:
numberOfFibs (simple int) : number of fibs
start (simple int) : starting number
Returns: float fibArray
Custom Choppiness HistogramThe Custom Choppiness Histogram is a visually enhanced, multi-timeframe version of the traditional Choppiness Index , designed to make it easier to spot when the market is trending vs. ranging.
🔹 Key Features:
Histogram Visualization: Clear, color-coded bars for instant interpretation.
Two Coloring Modes:
1.Change Mode → Colors based on increase/decrease vs. previous CI value.
2.Absolute Levels → Uses common CI thresholds (e.g., >61.8 = choppy, <38.2 = trending).
Grey Bars / Neutral Zone: Bars turn grey when the market is neither strongly trending nor strongly choppy — signaling a neutral or indecisive market.
Multi-Timeframe Option: Analyze Choppiness from any higher timeframe while trading on a lower chart.
Custom Thresholds: Adjust high/low CI levels to fit your strategy.
🔹 How to Use:
Green bars → Market is becoming more trending.
Red bars → Market is becoming more choppy/ranging.
Grey bars → Market is in a neutral zone; use caution and combine with other signals.
Use the timeframe input to filter trades (e.g., check if the 1H is trending before entering on the 5M).
🔹 Best Practice:
Use as a context filter alongside your entry/exit strategy (e.g., MACD, ICT/Smart Money, Supply & Demand).
Helps reduce false entries by avoiding trades during sideways conditions.
⚠️ Disclaimer:
This script is provided for educational purposes only. It is not financial advice and should not be used as a sole basis for making trading decisions. Always do your own research and test thoroughly before applying to live markets. Trading carries risk, and you are solely responsible for your decisions.
Nth Candle by exp3rtsThis lightweight and versatile TradingView indicator highlights every Xth candle on your chart, making it easy to spot cyclical price behavior or track specific intervals in the market.
- Custom Interval – Choose how often candles should be highlighted (e.g., every 5th, 10th, or
20th bar).
- Color Coding – Highlighted candles are shaded green if bullish and red if bearish, giving you
quick visual insights into momentum at those intervals.
- Clean Overlay – The indicator draws directly on your main chart without clutter, so you can
combine it with your favorite setups and strategies.
Use this tool to:
1) Identify repeating patterns and cycles
2) Mark periodic reference candles
3) Support discretionary trading decisions with clear visual cues
RSI Prior DayLagged RSI indicator showing the prior day's RSI(14) value for easy divergence detection. Plot it alongside current RSI to spot bullish/bearish signals. Ideal for swing traders scanning for momentum shifts.
Atlantean Sideways / Range Regime DetectorPurpose
When using trend based indicators, you can skip the false signals when there is a sideways action, protecting you from the false signals.
Flags likely sideways/range phases using three checks:
Weak trend (ADX from DMI)
Price compression (Bollinger Band Width, normalized)
Low volatility (NATR = ATR/Price%)
Logic
isSideways = (ADX < adxThresh) AND (bbNorm < 0.25) AND (NATR < natrMax)
When true: bars + background turn teal and a provisional Range High/Low (rolling rangeWin) is drawn.
Key Inputs
DMI: diLen(22)
Optimized for 15 mins Bitcoin, could change it to 14 for more general approach
ADX: adxSmooth(14), adxThresh(18)
Volatility: lenATR(14), natrMax(1.8)
Visuals: rangeWin(20), bar/range toggles
Quick Tuning
More signals: raise adxThresh to 20–25, raise natrMax to 2.5–4.0, increase BB cutoff by editing bbNorm < 0.25 --> 0.35–0.50.
Smoother range lines: increase rangeWin to 30–40.
Use Cases
Mean reversion inside teal ranges.
Breakout prep when price closes outside the drawn range after teal ends. Could be used as a signal although not suggested.
Filter trend systems: skip trades when sidewaysCond is true. This is the main purpose, for it to be combined with trend based indicators, like Supertrend.
Alert
“Sideways Detected” triggers when isSideways is true.
Script could be expanded upon your requests.
EMA Crossoverx + ADX [Jamir] (Indicator)This indicator will avoid the signals during low volatility and will show the signals only when there is a volatility. Helps you to take profitable trades only and avoids noise. This script works good on 5 mins and 15 mins time frame.
Actually Engulfing CandlesticksThis thing attempts to find price reversals with actually engulfing candlesticks with volume spikes and RSI values as confirmation. It works well on mean reverting assets I guess.
Green dots below bars = bullish reversal
Fuchsia dots above bars = bearish reversal
Have fun!
Stoch + RSI DashboardIndicator Description
MTF Stochastic + RSI Dashboard FLEX with STRONG Alerts
A compact, multi-timeframe dashboard that shows Stochastic %K/%D, RSI and signal states across user-defined timeframes. Columns can be toggled on/off to keep the panel as small as you need. Signal texts and colors are fully customizable. The table can be placed in any chart corner, and the background color & opacity are adjustable for perfect readability.
What it shows
• For each selected timeframe: %K, %D, a signal cell (Bullish/Bearish/Strong), RSI value, and RSI state (Overbought/Oversold/Neutral).
• Timeframes are displayed as friendly labels (e.g., 60 → 1h, W → 1w, 3D → 3d).
Signals & logic
• Bullish/Bearish when %K and %D show a sufficient gap (or an optional confirmed cross).
• Strong Bullish when both %K and %D are below the “Strong Bullish max” threshold.
• Strong Bearish when both %K and %D are above the “Strong Bearish min” threshold.
• Optional confirmation: RSI < 30 for Strong Bullish, RSI > 70 for Strong Bearish.
Alerts
• Global alerts for any selected timeframes when a STRONG BULLISH or STRONG BEARISH event occurs.
Key options
• Column visibility toggles (TF, %K, %D, Signal, RSI, RSI Status).
• Custom signal texts & colors.
• Dashboard position: top-left / top-right / bottom-left / bottom-right.
• Table background color + opacity (0 = opaque, 100 = fully transparent).
• Sensitivity (minimum %K–%D gap) and optional “cross-only” mode.
• Customizable timeframes for display and for alerts.
Default settings
• Stochastic: K=5, D=3, SmoothK=3
• RSI length: 14
• Decimals: 1
• Strong Bullish max: 20
• Strong Bearish min: 80
• Default TFs & alerts: 3m, 15m, 1h, 3h, 6h, 12h, 1d, 3d, 1w
Anchored VWAP + Prev Session Levels by Avenoircustom vwap for weekly, monthly, quarterly and yearly vawp.
also highlighting previous vwaps.