ADX +- DiThis Adx +-Di is just a complete version of what the ADX is supposed to signal.
So you have:
15 (contraction), 20 (threshold), 30 (expansion), 40 (resistance) levels.
Below 20 the price is not trending
Above 30 the price is trending
Below 15 price has been in contraction for too long
Between 20 and 30 price is in a "transition zone".
I finally added a "Resistance" level (40), which has to be adapted to best represent the historical levels where price usually encounters resistance, and where the price can be declared "overtrending", which means a return to lower levels is likely to happen.
I've chosen mild colors, and set the Adx Color to White, because I use black background, you can easily change that.
Enjoy
-Maurice
Cerca negli script per "信达股份40周年"
RSI|The Wave PrincipleThe Wave Principle | Modified RSI
30 green | 70 red = Strong Movement (Possible Impulse)
20 cyan | 80 Yellow = Strongest Movement
Support and Resistance Level (Trend Continuation)
Uptrend= 40
Downtrend = 60
Break+Retest = BR
Div = Divergence (Change in trend)
--------------------------------------------
This indicator has been modified from original RSI to fit Wave Principle characteristics:
Uptrend Impulsive Wave over 70 RSI it changes color to red, and > 80 yellow stronger impulse | Usually means continuation, at least once more.
Downtrend Impulsive Wave under 30 RSI it changes color to green, and < 20 cyan stronger impulse | Usually means continuation, at least once more.
Once RSI reached these levels, it doesn't mean trend reversal but a correction is expected. If it shows divergence along with an Ending Diagonal, it's a confirmation for trend reversal.
In a corrective wave, levels 40-60 represents support and resistance levels where price won't go further. Indicating Corrective Waves, not as strong as Impulsives.
Prices can breakout RSI trend lines and retest from the other side before continue the new trend as also described in the Wave Principle.
--------------------------------------------
breakout and swingA Price Action system that use swing point and breakout
above the black line (breakout) is long, below short
swing/support/resistance points (blue circles) are displayed after a top or botton, breaking it means an inversion
red circles try to guest a target after a top/bottom or after a swing break.
the main trend is made by the black line that is set on Day period suitable for 1h to 15m time frame , for small TF you can set a smaller period from setting command
By default a set a 40 period channel high/low (the highest and lowest 40 bar back) that is ok for 1 h or smaller tf , but look to long for daily tf, adjust it yourself
Net XMR Margin PositionTotal XMR Longs minus XMR Shorts in order to give you the total outstanding XMR margin debt.
ie: If 50,000 XMR has been longed, and 40,000 XMR has been shorted, then 50,000 has been bought, and 40,000 sold, leaving us with 10,000 XMR (net) remaining to be sold to give us an overall neutral margin position.
That isn't to say that the net margin position must move towards zero, but it is a sensible reference point, and historical net values may provide useful insights into the current circumstances.
Net BTC Margin PositionTotal BTCUSDLONGS minus the BTCUSDSHORTS in order to give you the total outstanding BTC margin debt.
ie: If there are 50,000 BTC longs, and 40,000 BTC shorts, then 50,000 has been bought, and 40,000 sold, leaving us with 10,000 BTC net remaining to be sold to give us an overall neutral margin position.
That isn't to say that the net margin position must move towards zero, but it is a sensible reference point, and historical net values may provide useful insights into the current circumstances.
(Anyone know what category this script should be in?)
Accumulation/Distribution Percentage (ADP) [Cyrus c|:D]Accumulation/Distribution Percentage ( ADP ) is used to measure money flow similar to Chaikin Money Flow ( CMF ) and Money Flow. It is the range-bound version of my previous indicator ADMF. This indicator can be used for analyzing momentum, buy/sell pressure, and overbought/oversold conditions. I believe that this indicator is more accurate than CMF and MFI (I will publish a TA about it one day!).
What to look for:
- When this indicator moves up, it means buy pressure is increasing and the other way around for sell pressure. Crossing 0 means that trend has changed in the given period (it is best to look for confirmation of buy/sell pressure in larger TFs)
- Overbought above 40 and oversold below -40 (these numbers vary depending on the security. Look for historical levels to determine overbought and oversold conditions of each security)
- Regular divergence shows that momentum of a trend is declining. Hidden divergence implies continuation of a trend. The non-bound mode should be more accurate for identifying divergence.
- Failure swings can detect potential reversals.
Please read Relative Strength Index and Money Flow for more information and similar disclaimers.
Recommendations:
- hlc3 (AKA typical price) as input source might be better than "close" as it captures more information. If you use hlc3 as a source, then change the chart type to line and set hlc3 as the source for identifying divergence.
- Use hybrid tickers e.g.(BITFINEX:BTCUSD+COINBASE:BTCUSD+BITSTAMP:BTCUSD)/3. Volume-based indicators are susceptible to wash trading/volume printing and hybrid tickers mitigate this issue.
- In non-bound mode, small TFs with longer length should be more accurate than larger TFs with standard length (same is true for many other indicators)
Background:
I have developed 4 indicators based on a simple but elegant concept of A/D ratio. A/D ratio is equal to (current close - previous close)/True Range (when there are no price gaps, True Range = High - Low)
1) What you see on ADV indicator as darker green and red is equal to A/D ratio x volume.
2) ADL indicator shows the summation of ADV
3) ADMF (or ADP in non-bound mode) shows Moving Average of ADV
4) ADP shows relative accumulation strength which is calculated as RMA (accumulations)/RMA(accumulation + distribution). ADP equation is based on RSI equation which is RMA(gains)/RMA(gains + losses). That is why these two indicators look quite similar.
PS: Please leave a like if you find these indicators useful. I am working on improvements on these and other indicators. I am trying my best to keep them as simple as possible. Please let me know in the comments if you want me to make future indicators even simpler.
--------
Complementary indicators based on the same concept:
ADL: a replacement for Chaikin's Accum/Dist, On Balance Volume, and Price Volume Trend
ADV: a replacement for regular volume indicator
ADP also has a scaled RSI and ADMF built in (ie ADMF is obsolete).
Better RSI with bullish / bearish market cycle indicator This script improves the default RSI. First. it identifies regions of the RSI which are oversold and overbought by changing the color of RSI from white to red. Second, it adds additional reference lines at 20,40,50,60, and 80 to better gauge the RSI value. Finally, the coolest feature, the middle 50 line is used to indicate which cycle the price is currently at. A green color at the 50 line indicates a bullish cycle, a red color indicators a bearish cycle, and a white color indicates a neutral cycle.
The cycles are determined using the RSI as follows:
if RSI is overbought, cycle switches to bullish until RSI falls below 40, at which point it becomes neutral
if RSI is oversold, cycle switches bearish until RSI rises above 60, at which point it becomes neutral
a neutral cycle is exited at either overbought or oversold conditions
Very useful, please give it a try and let me know what you think
Volume Range EventsChanges in the feelings (positive, negative, neutral) in the market concerning the valuation of an instrument are often preceded with sudden outbursts of buying and selling frenzies. The aim of this indicator is to report such outbursts. We can see them as expansions of volume, sometimes 10 times more than usual. and as extensions of the trading range, also sometimes 10 times more than usual (e.g. usual range is 10 cent suddenly a whole dollar.) The changes are calculated in such a way that these fit between plus and minus 100 percent, the bars are scaled in some sort of logarithmic way. The Emoline is the same as the one in the True Balance of Power indicator, which I already published
ONLY RISES ARE EVENTS
Sometimes analysts are tempted to give meaning to low volume or small ranges. These simply mean that the market has little interest in trading this instrument. I believe that in such cases the trader needs to wait for expansion and extension events to happen, then he can make a better guess of where the market is heading. As events often mark the beginning or ending of a trend, this indicator provides an early and clear signal, because it doesn’t bother us about non-events.
WHAT IS USUAL?
If the algorithm would use an average as a normal to scale volume or range events, then previous peaks will act as spoilers by making the average so high that a following peak is scaled too small. I developed a function, usual() , that kicks out all extremes of a ‘population of values’ and which returns the average of the non-extreme values. It can be called with any serial. This function is called by both algorithms that report volume and range peaks, which guarantees that the results are really comparable. As this function has a fixed look back of 8 periods, we might state that ‘usual’ is a short lived relative value. I think this doesn’t matter for the practical use of the indicator.
COLORING AND INTERPRETATION
I follow the categories in the ‘Better Volume Indicator’, published by LeazyBear, these are:
1. Climactic Volumes, event >40 % (this means peak is 1.5 X usual)
LIME: Climax Buying Volume, direction up, range event also > 30 %
RED: Climax Selling Volume, direction down, range event also > 30 %
AQUA: Climax Churning Volume, both directions, range event < 30%
2. Smaller Volumes, event <40 %
GREEN: Supportive Volume, both directions, if combined with range event
BLUE: Churning Volume, both directions, if not combined with range event (Professional Trading)
3. Just Range Events
BLACK histogram bars (Amateurish Trading)
RSI in Bull and Bear Market V2.0RSI oversold at 60/40 in bullish market
And Overbought at 40/60 in Bearish market
for more info of this Strategy
Razzere Cloned! EzAlgo V.8.1showBuySell = input(true, "Show Buy & Sell", group="BUY & SELL SIGNALS")
hassasiyet = input.float(3, "Hassasiyet (1-6)", 0.1, 99999, group="BUY & SELL SIGNALS")
percentStop = input.float(1, "Stop Loss % (0 to Disable)", 0, group="BUY & SELL SIGNALS")
offsetSignal = input.float(5, "Signals Offset", 0, group="BUY & SELL SIGNALS")
showRibbon = input(true, "Show Trend Ribbon", group="TREND RIBBON")
smooth1 = input.int(5, "Smoothing 1", 1, group="TREND RIBBON")
smooth2 = input.int(8, "Smoothing 2", 1, group="TREND RIBBON")
showreversal = input(true, "Show Reversals", group="REVERSAL SIGNALS")
showPdHlc = input(false, "Show P.D H/L/C", group="PREVIOUS DAY HIGH LOW CLOSE")
lineColor = input.color(color.yellow, "Line Colors", group="PREVIOUS DAY HIGH LOW CLOSE")
lineWidth = input.int(1, "Width Lines", group="PREVIOUS DAY HIGH LOW CLOSE")
lineStyle = input.string("Solid", "Line Style", )
labelSize = input.string("normal", "Label Text Size", )
labelColor = input.color(color.yellow, "Label Text Colors")
showEmas = input(false, "Show EMAs", group="EMA")
srcEma1 = input(close, "Source EMA 1")
lenEma1 = input.int(7, "Length EMA 1", 1)
srcEma2 = input(close, "Source EMA 2")
lenEma2 = input.int(21, "Length EMA 2", 1)
srcEma3 = input(close, "Source EMA 3")
lenEma3 = input.int(144, "Length EMA 3", 1)
showSwing = input(false, "Show Swing Points", group="SWING POINTS")
prdSwing = input.int(10, "Swing Point Period", 2, group="SWING POINTS")
colorPos = input(color.new(color.green, 50), "Positive Swing Color")
colorNeg = input(color.new(color.red, 50), "Negative Swing Color")
showDashboard = input(true, "Show Dashboard", group="TREND DASHBOARD")
locationDashboard = input.string("Middle Right", "Table Location", , group="TREND DASHBOARD")
tableTextColor = input(color.white, "Table Text Color", group="TREND DASHBOARD")
tableBgColor = input(#2A2A2A, "Table Background Color", group="TREND DASHBOARD")
sizeDashboard = input.string("Normal", "Table Size", , group="TREND DASHBOARD")
showRevBands = input.bool(true, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
// Fonksiyonlar
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, hassasiyet) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(src) => src < src and src < src and src > src and src > src
f_bot_fractal(src) => src > src and src > src and src < src and src < src
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Bileşen...
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, hassasiyet)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt ? nz(up ) + 1 : filt < filt ? 0 : nz(up )
dn = 0.0, dn := filt < filt ? nz(dn ) + 1 : filt > filt ? 0 : nz(dn )
bullCond = bool(na), bullCond := source > filt and source > source and up > 0 or source > filt and source < source and up > 0
bearCond = bool(na), bearCond := source < filt and source < source and dn > 0 or source < filt and source > source and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond
bull = bullCond and lastCond == -1
bear = bearCond and lastCond == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
ribbon1 = ta.sma(close, smooth1)
ribbon2 = ta.sma(close, smooth2)
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema1 = ta.ema(srcEma1, lenEma1)
ema2 = ta.ema(srcEma2, lenEma2)
ema3 = ta.ema(srcEma3, lenEma3)
= swingPoints(prdSwing)
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
= f_kc(close, lenRevBands, 3)
= f_kc(close, lenRevBands, 4)
= f_kc(close, lenRevBands, 5)
= f_kc(close, lenRevBands, 6)
= wavetrend(hlc3, 9, 12)
= f_findDivs(wt2, 15, -40)
= f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
// Renkler
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #E91E63, pink30 = color.new(pink, 70)
red = #FF5252, red30 = color.new(red , 70)
// Plotlar
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Label" , shape.labelup , location.absolute, cyan, 0, "Buy" , color.white, size=size.normal)
plotshape(showBuySell and bear ? high + off : na, "Sell Label", shape.labeldown, location.absolute, pink, 0, "Sell", color.white, size=size.normal)
plotshape(ta.crossover(wt1, wt2) and wt2 <= -53, "Mild Buy" , shape.xcross, location.belowbar, cyan, size=size.tiny)
plotshape(ta.crossunder(wt1, wt2) and wt2 >= 53, "Mild Sell", shape.xcross, location.abovebar, pink, size=size.tiny)
plotshape(wtDivBull, "Divergence Buy ", shape.triangleup , location.belowbar, cyan, size=size.tiny)
plotshape(wtDivBear, "Divergence Sell", shape.triangledown, location.abovebar, pink, size=size.tiny)
barcolor(up > dn ? cyan : pink)
plotshape(showreversal and rsiOs, "Reversal Buy" , shape.diamond, location.belowbar, cyan30, size=size.tiny)
plotshape(showreversal and rsiOb, "Reversal Sell", shape.diamond, location.abovebar, pink30, size=size.tiny)
lStyle = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
lSize = labelSize == "small" ? size.small : labelSize == "normal" ? size.normal : size.large
dHighLine = showPdHlc ? line.new(bar_index, dHigh, bar_index + 1, dHigh , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dHighLine )
dLowLine = showPdHlc ? line.new(bar_index, dLow , bar_index + 1, dLow , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dLowLine )
dCloseLine = showPdHlc ? line.new(bar_index, dClose, bar_index + 1, dClose, xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dCloseLine )
dHighLabel = showPdHlc ? label.new(bar_index + 100, dHigh , "P.D.H", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dHighLabel )
dLowLabel = showPdHlc ? label.new(bar_index + 100, dLow , "P.D.L", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dLowLabel )
dCloseLabel = showPdHlc ? label.new(bar_index + 100, dClose, "P.D.C", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dCloseLabel )
plot(showEmas ? ema1 : na, "EMA 1", color.green , 2)
plot(showEmas ? ema2 : na, "EMA 2", color.purple, 2)
plot(showEmas ? ema3 : na, "EMA 3", color.yellow, 2)
plotshape(showSwing ? hh : na, "", shape.triangledown, location.abovebar, color.new(color.green, 50), -prdSwing, "HH", colorPos, false)
plotshape(showSwing ? hl : na, "", shape.triangleup , location.belowbar, color.new(color.green, 50), -prdSwing, "HL", colorPos, false)
plotshape(showSwing ? lh : na, "", shape.triangledown, location.abovebar, color.new(color.red , 50), -prdSwing, "LH", colorNeg, false)
plotshape(showSwing ? ll : na, "", shape.triangleup , location.belowbar, color.new(color.red , 50), -prdSwing, "LL", colorNeg, false)
srcStop = close
atrBand = srcStop * (percentStop / 100)
atrStop = trigger ? srcStop - atrBand : srcStop + atrBand
lastTrade(src) => ta.valuewhen(bull or bear, src, 0)
entry_y = lastTrade(srcStop)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y - lastTrade(atrStop)) * 1 + entry_y
tp2_y = (entry_y - lastTrade(atrStop)) * 2 + entry_y
tp3_y = (entry_y - lastTrade(atrStop)) * 3 + entry_y
labelTpSl(y, txt, color) =>
label labelTpSl = percentStop != 0 ? label.new(bar_index + 1, y, txt, xloc.bar_index, yloc.price, color, label.style_label_left, color.white, size.normal) : na
label.delete(labelTpSl )
labelTpSl(entry_y, "Entry: " + str.tostring(math.round_to_mintick(entry_y)), color.gray)
labelTpSl(stop_y , "Stop Loss: " + str.tostring(math.round_to_mintick(stop_y)), color.red)
labelTpSl(tp1_y, "Take Profit 1: " + str.tostring(math.round_to_mintick(tp1_y)), color.green)
labelTpSl(tp2_y, "Take Profit 2: " + str.tostring(math.round_to_mintick(tp2_y)), color.green)
labelTpSl(tp3_y, "Take Profit 3: " + str.tostring(math.round_to_mintick(tp3_y)), color.green)
lineTpSl(y, color) =>
line lineTpSl = percentStop != 0 ? line.new(bar_index - (trigger ? countBull : countBear) + 4, y, bar_index + 1, y, xloc.bar_index, extend.none, color, line.style_solid) : na
line.delete(lineTpSl )
lineTpSl(entry_y, color.gray)
lineTpSl(stop_y, color.red)
lineTpSl(tp1_y, color.green)
lineTpSl(tp2_y, color.green)
lineTpSl(tp3_y, color.green)
var dashboard_loc = locationDashboard == "Top Right" ? position.top_right : locationDashboard == "Middle Right" ? position.middle_right : locationDashboard == "Bottom Right" ? position.bottom_right : locationDashboard == "Top Center" ? position.top_center : locationDashboard == "Middle Center" ? position.middle_center : locationDashboard == "Bottom Center" ? position.bottom_center : locationDashboard == "Top Left" ? position.top_left : locationDashboard == "Middle Left" ? position.middle_left : position.bottom_left
var dashboard_size = sizeDashboard == "Large" ? size.large : sizeDashboard == "Normal" ? size.normal : sizeDashboard == "Small" ? size.small : size.tiny
var dashboard = showDashboard ? table.new(dashboard_loc, 2, 15, tableBgColor, #000000, 2, tableBgColor, 1) : na
dashboard_cell(column, row, txt, signal=false) => table.cell(dashboard, column, row, txt, 0, 0, signal ? #000000 : tableTextColor, text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column, row, col)
if barstate.islast and showDashboard
dashboard_cell(0, 0 , "EzAlgo")
dashboard_cell(0, 1 , "Current Position")
dashboard_cell(0, 2 , "Current Trend")
dashboard_cell(0, 3 , "Volume")
dashboard_cell(0, 4 , "Timeframe")
dashboard_cell(0, 5 , "1 min:")
dashboard_cell(0, 6 , "3 min:")
dashboard_cell(0, 7 , "5 min:")
dashboard_cell(0, 8 , "15 min:")
dashboard_cell(0, 9 , "30 min:")
dashboard_cell(0, 10, "1 H:")
dashboard_cell(0, 11, "2 H:")
dashboard_cell(0, 12, "4 H:")
dashboard_cell(0, 13, "8 H:")
dashboard_cell(0, 14, "Daily:")
dashboard_cell(1, 0 , "V.8.1")
dashboard_cell(1, 1 , trigger ? "Buy" : "Sell", true), dashboard_cell_bg(1, 1, trigger ? color.green : color.red)
dashboard_cell(1, 2 , emaBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 2, emaBull ? color.green : color.red)
dashboard_cell(1, 3 , str.tostring(volume))
dashboard_cell(1, 4 , "Trends")
dashboard_cell(1, 5 , TF1Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 5 , TF1Bull ? color.green : color.red)
dashboard_cell(1, 6 , TF3Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 6 , TF3Bull ? color.green : color.red)
dashboard_cell(1, 7 , TF5Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 7 , TF5Bull ? color.green : color.red)
dashboard_cell(1, 8 , TF15Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 8 , TF15Bull ? color.green : color.red)
dashboard_cell(1, 9 , TF30Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 9 , TF30Bull ? color.green : color.red)
dashboard_cell(1, 10, TF60Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 10, TF60Bull ? color.green : color.red)
dashboard_cell(1, 11, TF120Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 11, TF120Bull ? color.green : color.red)
dashboard_cell(1, 12, TF240Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 12, TF240Bull ? color.green : color.red)
dashboard_cell(1, 13, TF480Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 13, TF480Bull ? color.green : color.red)
dashboard_cell(1, 14, TFDBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 14, TFDBull ? color.green : color.red)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
fill(plot(showRibbon ? ribbon1 : na, "", na, editable=false), plot(showRibbon ? ribbon2 : na, "", na, editable=false), ribbon1 > ribbon2 ? cyan30 : pink30, "Ribbon Fill Color")
// Alarmlar
alert01 = ta.crossover(ribbon1, ribbon2)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert08 = ta.crossunder(ribbon1, ribbon2)
alert09 = rsiOb or rsiOs
alert10 = bear
alert11 = ta.cross(ribbon1, ribbon2)
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal EzAlgo" : alert03 ? "Strong Buy Signal EzAlgo" : alert04 ? "Strong Sell Signal EzAlgo" : alert06 ? "Mild Buy Signal EzAlgo" : alert07 ? "Mild Sell Signal EzAlgo" : "Sell Signal EzAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert01, "Blue Trend Ribbon Alert", "Blue Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert08, "Red Trend Ribbon Alert", "Red Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
alertcondition(alert11, "Trend Ribbon Color Change Alert", "Trend Ribbon Color Change, TimeFrame={{interval}}")
able FRVP Reversal# able FRVP Reversal - Complete User Guide
## 📌 Overview
**able FRVP Reversal** is a professional-grade Volume Profile indicator with an integrated reversal detection system. It combines Fixed Range Volume Profile (FRVP) analysis with a confluence-based reversal scoring system to identify high-probability turning points at key volume levels.
---
## ✨ Key Features
| Feature | Description |
|---------|-------------|
| **Session-Based Volume Profile** | Automatically resets at the beginning of each regular trading session |
| **POC (Point of Control)** | Highest volume price level - strongest support/resistance |
| **VAH (Value Area High)** | Upper boundary of the 70% value area - resistance zone |
| **VAL (Value Area Low)** | Lower boundary of the 70% value area - support zone |
| **Confluence Scoring System** | 5-point scoring system for reversal detection |
| **Smart Cooldown** | Prevents signal spam with customizable cooldown period |
| **Real-time Info Table** | Displays all key metrics in a retro-style dashboard |
---
## 🔧 Installation
1. Open TradingView and go to **Pine Editor**
2. Delete any existing code and paste the indicator code
3. Click **"Add to Chart"**
4. Configure settings as needed
---
## ⚙️ Settings Explained
### 📊 Volume Profile Settings
| Setting | Default | Description |
|---------|---------|-------------|
| **Number of Rows** | 50 | Resolution of the volume profile (more rows = finer detail) |
| **Value Area %** | 70 | Percentage of volume to include in Value Area (industry standard: 70%) |
| **Profile Width** | 40 | Visual width of the histogram on chart |
| **Show Histogram** | ✓ | Display volume histogram bars |
| **Show POC/VAH/VAL** | ✓ | Display the three key levels |
| **Show Labels** | ✓ | Display price labels for each level |
| **Extend Lines** | ✓ | Extend levels to the right of current price |
| **Extend Length** | 100 | How far to extend the lines (in bars) |
### 🔄 Reversal Detection Settings
| Setting | Default | Description |
|---------|---------|-------------|
| **Enable Reversal Detection** | ✓ | Turn reversal signals on/off |
| **Min Confluence Score** | 3 | Minimum score required to trigger signal (1-5) |
| **Cooldown Bars** | 10 | Minimum bars between signals to prevent spam |
#### Understanding Min Confluence Score:
- **Score 1-2**: Very sensitive, many signals (not recommended)
- **Score 3**: Balanced - good for most traders ⭐ Recommended
- **Score 4**: Conservative - fewer but higher quality signals
- **Score 5**: Very strict - only strongest reversals
### 🎨 Color Settings
All colors are fully customizable:
- **POC Line**: Default Gold (#FFD700)
- **VAH Line**: Default Coral Red (#FF6B6B)
- **VAL Line**: Default Teal (#4ECDC4)
- **Bullish Reversal**: Default Green (#00E676)
- **Bearish Reversal**: Default Red (#FF5252)
---
## 📖 How to Read the Indicator
### Volume Profile Histogram
```
█████████████ ← High volume = Strong S/R
████████ ← Medium volume
████ ← Low volume = Weak S/R
██
```
- **Darker/Longer bars** = More trading activity at that price
- **Inside Value Area** = Colored based on session direction (Bull/Bear)
- **Outside Value Area** = Muted gray color
### Key Levels
| Level | Color | Meaning |
|-------|-------|---------|
| **POC** | Yellow | Price with highest volume - Strongest magnet |
| **VAH** | Red | Upper resistance - Look for bearish reversals |
| **VAL** | Teal | Lower support - Look for bullish reversals |
---
## 🔄 Reversal Detection System
### How the Scoring System Works
The indicator uses a **5-point confluence scoring system**. Each condition adds 1 point:
#### 🟢 Bullish Reversal Score (at VAL)
| Condition | Points | Description |
|-----------|--------|-------------|
| Price at VAL Zone | +1 | Price is within VAL ± 0.2 ATR |
| Bullish Candle | +1 | Close > Open (green candle) |
| RSI Oversold | +1 | RSI < 35 |
| Rejection Wick | +1 | Lower wick > 1.5× body size |
| Failed Breakdown | +1 | Touched below VAL but closed above |
#### 🔴 Bearish Reversal Score (at VAH)
| Condition | Points | Description |
|-----------|--------|-------------|
| Price at VAH Zone | +1 | Price is within VAH ± 0.2 ATR |
| Bearish Candle | +1 | Close < Open (red candle) |
| RSI Overbought | +1 | RSI > 65 |
| Rejection Wick | +1 | Upper wick > 1.5× body size |
| Failed Breakout | +1 | Touched above VAH but closed below |
### Signal Quality Ratings
| Score | Rating | Meaning |
|-------|--------|---------|
| 5/5 | ★★★ | Excellent - Highest probability |
| 4/5 | ★★ | Good - High probability |
| 3/5 | ★ | Acceptable - Moderate probability |
| <3 | - | No signal triggered |
---
## 📋 Info Table Explained
```
╔═ able-REV ═╗ 15 ████████ SCR
─────────────────────────────────────
ZONE UPPER VA ▒▒▓▓████ ▲
POC 4272.680 ██████·· ▲
VAH 4322.745 ████···· ·
VAL 4264.977 ██████·· ·
═ SCORE ═════════════════════════════
BULL 0/5 ········ ·
BEAR 1/5 ░······· ·
RSI 49 ▒▒▓▓···· ·
◄SIGNAL► WAIT ········ ·
```
| Row | Description |
|-----|-------------|
| **ZONE** | Current price position relative to Value Area |
| **POC/VAH/VAL** | Price levels with distance indicators |
| **BULL Score** | Current bullish confluence score |
| **BEAR Score** | Current bearish confluence score |
| **RSI** | RSI value with OB/OS status |
| **SIGNAL** | Current signal status (BUY/SELL/WAIT) |
### Zone Types
| Zone | Meaning | Bias |
|------|---------|------|
| ABOVE VAH | Price broke above resistance | Bullish (but watch for rejection) |
| ⚠ AT VAH | Price testing resistance | Watch for bearish reversal |
| UPPER VA | Price in upper value area | Slight bullish bias |
| LOWER VA | Price in lower value area | Slight bearish bias |
| ⚠ AT VAL | Price testing support | Watch for bullish reversal |
| BELOW VAL | Price broke below support | Bearish (but watch for rejection) |
---
## 📈 Trading Strategies
### Strategy 1: VAH Rejection (Bearish Reversal)
**Setup:**
1. Price approaches or touches VAH (red dashed line)
2. BEAR score reaches 3+ (or your minimum setting)
3. REV signal appears above the candle
**Entry:**
- Enter SHORT on signal candle close
- Or wait for confirmation candle
**Stop Loss:**
- Above the signal candle high
- Or above VAH + 0.5 ATR
**Take Profit:**
- First target: POC (yellow line)
- Second target: VAL (teal line)
---
### Strategy 2: VAL Bounce (Bullish Reversal)
**Setup:**
1. Price approaches or touches VAL (teal dashed line)
2. BULL score reaches 3+ (or your minimum setting)
3. REV signal appears below the candle
**Entry:**
- Enter LONG on signal candle close
- Or wait for confirmation candle
**Stop Loss:**
- Below the signal candle low
- Or below VAL - 0.5 ATR
**Take Profit:**
- First target: POC (yellow line)
- Second target: VAH (red line)
---
### Strategy 3: POC Bounce
**Setup:**
1. Price pulls back to POC after trending
2. POC acts as support/resistance
3. Watch for reversal candle patterns
**Entry:**
- Long if bullish candle at POC from below
- Short if bearish candle at POC from above
**Stop Loss:**
- Other side of POC ± buffer
---
## ⚠️ Important Notes
### When Signals Work Best
✅ **High Probability Setups:**
- Score 4-5 with clear rejection wick
- RSI confirms (oversold for long, overbought for short)
- First test of VAH/VAL in the session
- Clear trend before reversal
❌ **Low Probability Setups:**
- Score barely meeting minimum (3/5)
- Multiple tests of same level (level weakening)
- Low volume/choppy market
- News events pending
### Risk Management Rules
1. **Never risk more than 1-2% per trade**
2. **Always use stop loss** - place beyond the level
3. **Wait for candle close** - don't enter on wick touches
4. **Respect the cooldown** - avoid overtrading
5. **Consider the trend** - counter-trend reversals are riskier
---
## 🔔 Alerts
The indicator includes built-in alerts:
| Alert | Trigger |
|-------|---------|
| VAL Bullish Reversal | BULL score meets minimum at VAL |
| VAH Bearish Reversal | BEAR score meets minimum at VAH |
### Setting Up Alerts:
1. Right-click on the chart
2. Select "Add Alert"
3. Choose "able FRVP Reversal" as condition
4. Select desired alert type
5. Configure notification method
---
## 💡 Pro Tips
1. **Combine with trend analysis** - Reversals in trend direction are more reliable
2. **Watch for confluence with other S/R** - If VAH/VAL aligns with round numbers, previous highs/lows, or fib levels, the level is stronger
3. **Volume confirmation** - Higher volume on reversal candle = stronger signal
4. **Time of day matters** - Reversals during active trading hours are more reliable
5. **Adjust sensitivity by market** - Volatile assets may need higher Min Confluence Score
6. **Use multiple timeframes** - Check if reversal level aligns with higher timeframe levels
---
## 🔧 Recommended Settings by Trading Style
| Style | Min Confluence | Cooldown | Best For |
|-------|----------------|----------|----------|
| Scalping | 3 | 5-7 | Quick trades, more signals |
| Day Trading | 3-4 | 10-15 | Balanced approach |
| Swing Trading | 4-5 | 20+ | Fewer, higher quality signals |
---
## ❓ Troubleshooting
| Issue | Solution |
|-------|----------|
| No signals appearing | Lower Min Confluence Score or check if market is ranging |
| Too many signals | Increase Min Confluence Score or Cooldown Bars |
| Levels not showing | Enable Show POC/VAH/VAL in settings |
| Histogram too wide/narrow | Adjust Profile Width setting |
---
## 📞 Support
For questions, suggestions, or bug reports, please contact the developer.
---
**Version:** 1.0
**Last Updated:** 2024
**Platform:** TradingView (Pine Script v6)
Resampling Reverse Engineering Bands XRREB X: Visual Oscillator Projection Bands
Based on the innovative "Resampling Reverse Engineering" concept pioneered by Donovan Wall, this enhanced script fixes the core mathematical symmetry and provides anchored, non-repainting bands for reliable analysis.
This indicator transforms any RSI, Stochastic, or CCI calculation directly onto your price chart as dynamic support/resistance bands. Instead of watching an oscillator below your chart, you see its overbought/oversold levels projected as price levels the market must reach.
RREB X reverses standard oscillator formulas to answer one question: "What price must the market reach for my chosen oscillator to hit an extreme level like RSI=70, Stoch=80, or CCI=100?" It then plots these levels as actionable bands.
Key Improvements
Adjustable Oscillator Values - While the original was hard coded the reverse engineered oscillator length which limited its usefulness, this script finally allows you to visualize any length oscillator as dynamic OB/OS regions directly on the chart.
Dynamic OB/OS levels: This version also lets you dynamically adjust the OB/OS levels location, making bands tighter or wider as your strategy demands.
Mathematical Symmetry: Outer bands are perfect mirrors, providing reliable projected levels.
Fixed Anchoring: Bands don't repaint historically, offering stable reference lines.
Direct Price Translation: Oscillator overbought/oversold conditions are visualized as clear price levels.
The Band Calculation Type switch lets you project different oscillator logics, each with unique characteristics for different market conditions.
RRSI - General trend & momentum. Change RSI Period (e.g., 7 for fast, 21 for slow). Adjust OB/OS (e.g., 80/20 for strong trends). The bands show the price needed to push your custom RSI into overbought/oversold territory.
RStoch - Ranging markets & short-term reversals. Focus on the Stochastic Period. The projected bands are highly sensitive to recent highs/lows. Excellent for spotting reversals at the edges of a range.
RCCI - Strong trends & volatile markets. Use a higher Outer Bands Multiplier. CCI's lack of upper/lower bounds means bands reflect extreme momentum shifts. Great for identifying explosive breakout or breakdown levels in trends.
Use Middle Band as Filter: Price above the white middle band suggests a bullish bias for long setups; below suggests bearish for shorts. Same as the 50 midline on the RSI or Stochastic or 0 for CCI.
Customizing the Calculation:
The power lies in changing the oscillator lengths that the bands reflect. Adjust these in the settings:
Change from 14 to 7 for faster, more reactive bands, or to 21 for slower, smoother bands.
Overbought/Oversold: Change from 70/30 to 80/20 for stronger-trend filters, or to 60/40 for more frequent signals.
Trading the Bands:
Bands as Dynamic S/R: The solid cyan (Upper 100) and magenta (Lower 0) bands act as dynamic support and resistance. A touch and reversal can signal a trade.
Gradient as Momentum: The colored fills between bands visually represent the "pressure" needed to reach the next oscillator level.
Middle Band as Trend Filter: Price above the white middle band suggests a bullish bias for long setups; below suggests bearish for short setups.
OPTIMISED FOR 15Min on certain FOREX Ichimoku & Friends Strategy
Timeframe
15-Minute Chart
Entry Rules
Required Conditions ALL Must Be True
For LONG Entries:
Trend: Price is above EMA 200 (purple line)
Ichimoku: Tenkan (blue) is above Kijun (red)
Price Position: Close is above BOTH Tenkan AND Kijun
ADX: Must be above 22 (shows strong trend)
RSI: Between 50 and 70 (has momentum, not overbought)
Cooldown: At least 12 bars since last trade closed
For SHORT Entries:
Trend: Price is below EMA 200 (purple line)
Ichimoku: Tenkan (blue) is below Kijun (red)
Price Position: Close is below BOTH Tenkan AND Kijun
ADX: Must be above 22 (shows strong trend)
RSI: Between 30 and 50 (has momentum, not oversold)
Cooldown: At least 12 bars since last trade closed
Entry Signals Any ONE of These
Signal Type 1: Cross (C)
Long: Tenkan crosses above Kijun AND price closes above Kijun
Short: Tenkan crosses below Kijun AND price closes below Kijun
Wait 1 bar to confirm the cross holds
Signal Type 2: Bounce (B) - Most Reliable
Long: Price touches/dips to Kijun, then bounces up with strong bullish candle
Short: Price touches/spikes to Kijun, then rejects down with strong bearish candle
Must occur within last 3 bars
Signal Type 3: Breakout (K)
Long: Price breaks above Kijun with strong bullish momentum candle
Short: Price breaks below Kijun with strong bearish momentum candle
Candle body must be at least 40% of ATR
Risk Management
Stop Loss Placement
Placed at the lower of:
Recent swing low (last 5 bars) for longs
Kijun minus 0.5 ATR for longs
Minimum distance: 2.5 x ATR
FOR SHORTS: Mirror logic using swing highs
Take Profit
2x the stop loss distance
Example: If stop is 20 pips away, target is 40 pips
Position Size
100% of equity per trade (as per current settings)
Adjust based on your risk tolerance
Trade Management
When to Enter
Only when ALL entry conditions are met
Check that background is shaded (green for long, red for short)
Small letter markers (C, B, K) show which signal type triggered
When to Exit
Take Profit hit (2x R:R ratio)
Stop Loss hit (smart placement protects capital)
Strategy closes position (conditions reverse)
Cooldown Period
Wait 12 bars (3 hours on 15m chart) after any trade closes
Prevents revenge trading and overtrading
Visual Indicators on Chart
Lines
Blue (Tenkan): 9-period conversion line
Red (Kijun): 26-period base line
Purple (EMA 200): Long-term trend line
Orange (EMA 50): Not used in current rules
Signals
Large Green Triangle Up: LONG entry
Large Red Triangle Down: SHORT entry
Small Letters (C/B/K): Which signal type triggered
Background Colors
Light Green: Conditions favorable for LONG (ADX good, uptrend)
Light Red: Conditions favorable for SHORT (ADX good, downtrend)
No Color: Not safe to trade
Top Right Display
ADX Value: Green = above threshold, Red = below
Win Rate: Shows current performance
Quick Checklist Before Entry
LONG Trade Checklist:
Price above purple EMA 200
Blue line above red line
Price above both blue AND red lines
ADX number is green (above 22)
RSI between 50-70
Background is light green
At least 12 bars since last trade
Signal marker appeared (triangle or letter)
SHORT Trade Checklist:
Price below purple EMA 200
Blue line below red line
Price below both blue AND red lines
ADX number is green (above 22)
RSI between 30-50
Background is light red
At least 12 bars since last trade
Signal marker appeared (triangle or letter)
Tips for Success
Best Signal Type: Bounce (B) signals typically have highest win rate
ADX is Critical: Do not trade when ADX is red - wait for trends
Be Patient: 2-3 trades per day on 15m is normal and healthy
Trust the System: Do not second-guess the signals
Respect Cooldown: Waiting prevents emotional trading
Monitor Win Rate: Keep above 50% for profitability with 2:1 R:R
Adjustable Settings
If you want to modify strategy performance:
For Higher Win Rate Fewer Trades:
Increase "Minimum ADX" to 25
Increase "Cooldown Bars" to 15
Turn OFF breakout signals
For More Trades Slightly Lower Win Rate:
Decrease "Minimum ADX" to 20
Decrease "Cooldown Bars" to 8
Keep all signal types enabled
For Better Risk:Reward:
Increase "Risk:Reward Ratio" to 2.5 or 3.0
This means bigger targets, letting winners run more
What NOT to Do
Do not trade without ADX confirmation (when number is red)
Do not enter during cooldown period
Do not trade when price is chopping around EMA 200
Do not override the stop loss - let it work
Do not take signals when Tenkan and Kijun are flat/parallel
Do not force trades - wait for all conditions
Do not trade if you see no background shading
Notes
Current Performance: 67% win rate (2/3 trades)
Timeframe: 15-minute (3 hours = 12 bars cooldown)
Profit Factor Target: Above 1.5 is excellent
Strategy works best during: European and US trading sessions when volatility is higher
DYOR NFA
Trend detection zero lag Trend Detection Zero-Lag (v6)
Trend Detection Zero-Lag is a high-performance trend identification indicator designed for intraday traders, scalpers, and swing traders who require fast trend recognition with minimal lag. It combines a zero-lag Hull Moving Average, slope analysis, swing structure logic, and adaptive volatility sensitivity to deliver early yet stable trend signals.
This indicator is optimized for real-time decision-making, particularly in fast markets where traditional moving averages react too slowly.
Core Features
🔹 Zero-Lag Trend Engine
Uses a Zero-Lag Hull Moving Average (HMA) to reduce lag by approximately 40–60% versus standard moving averages.
Provides earlier trend shifts while maintaining smoothness.
🔹 Multi-Factor Trend Detection
Trend direction is determined using a hybrid engine:
HMA slope (momentum direction)
Rising / falling confirmation
Swing structure detection (HH/HL vs LH/LL)
ATR-adjusted dynamic sensitivity
This approach allows fast flips when conditions change, without excessive noise.
Adaptive Volatility Sensitivity
Sensitivity dynamically adjusts based on ATR relative to price
In high volatility: faster reaction
In low volatility: smoother, more stable trend state
This ensures the indicator adapts across:
Trend days
Range days
Volatility expansion or contraction
Trend Duration Intelligence
The indicator tracks historical trend durations and maintains a rolling memory of recent bullish and bearish phases.
From this, it calculates:
Current trend duration
Average historical duration for the active trend direction
This helps traders gauge:
Whether a trend is early, mature, or extended
Probability of continuation vs exhaustion
Strength Scoring
A normalized Trend Strength Score (0–100) is calculated using:
Zero-lag slope magnitude
ATR normalization
This provides a quick read on:
Weak / choppy trends
Healthy trend continuation
Overextended momentum
Visual Design
Color-coded Zero-Lag HMA
Bullish trend → user-defined bullish color
Bearish trend → user-defined bearish color
Designed for dark mode / neon-style charts
Clean overlay with no clutter
Trend Detection Zero-Lag is built for traders who need:
Faster trend recognition
Adaptive behavior across market regimes
Structural confirmation beyond simple moving averages
Clear, actionable visual signals
ICT Breaker Blocks [Exponential-X]🔄 Breaker Blocks
Overview
Breaker Blocks automatically identifies failed order blocks that have reversed their polarity. When an order block gets broken, it often becomes a powerful support or resistance zone in the opposite direction. This indicator tracks these institutional "flips" based on ICT (Inner Circle Trader) concepts, helping identify where price is likely to find strong support or resistance after a structural break.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Detects Breaker Blocks:
• 🔵 Bullish Breaker Blocks (BB+) - Failed bearish order blocks that became support
• 🟣 Bearish Breaker Blocks (BB-) - Failed bullish order blocks that became resistance
• Tracks order blocks first, then monitors when they break
• Converts broken order blocks into breaker blocks automatically
• Shows when breakers get tested by price
How Breakers Form:
1. Order block forms (last opposite candle before strong move)
2. Price returns and breaks through the order block
3. Broken order block becomes a breaker block with flipped polarity
4. Old resistance becomes new support (or vice versa)
Visual Display: Smart Features:
• Auto-timeframe adjustment for optimal detection
• ATR-based strength filtering
• Active block highlighting
• Test tracking
• Distance calculator
• Duplicate prevention
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Understanding Breaker Blocks
What Are Breaker Blocks?
Breaker blocks are failed order blocks that price has broken through. In ICT methodology:
• When institutions place orders creating an order block
• If that level fails and price breaks through
• The zone often becomes strong support/resistance in the opposite direction
• This represents institutional position flipping
Why Breakers Form:
• Failed Defense: Institutions couldn't defend the original level
• Position Flip: Institutions reversed their position
• Stop Hunt Complete: After sweeping stops, new levels form
• Polarity Change: Old resistance becomes new support (or vice versa)
Key Difference From Order Blocks: [/b>
• Order Block: Original institutional level (unbroken)
• Breaker Block: Failed order block that flipped polarity
• Breakers often provide STRONGER reactions than original OBs
• Represents where institutions changed their strategy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔵 Bullish Breaker Blocks Explained
Formation Process:
1. Step 1: Bearish order block forms (last bullish candle before drop)
2. Step 2: Price breaks ABOVE this bearish OB
3. Step 3: The broken bearish OB becomes a bullish breaker
4. Step 4: Now acts as SUPPORT when price returns
What It Means:
• Old resistance level failed
• Institutions flipped from selling to buying
• When price returns, zone acts as strong support
• Higher probability long setup than regular support
Trading Bullish Breakers:
Entry Setup:
• Wait for price to retrace back to bullish breaker
• Look for rejection/bounce from the breaker zone
• Enter long when price respects the breaker as support
• Stop loss: Below the breaker block
• Target: Recent high or opposite breaker
Why It Works:
Failed resistance becoming support is a strong technical signal indicating structural change in market sentiment.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟣 Bearish Breaker Blocks Explained
Formation Process:
1. Step 1: Bullish order block forms (last bearish candle before rally)
2. Step 2: Price breaks BELOW this bullish OB
3. Step 3: The broken bullish OB becomes a bearish breaker
4. Step 4: Now acts as RESISTANCE when price returns
What It Means:
• Old support level failed
• Institutions flipped from buying to selling
• When price returns, zone acts as strong resistance
• Higher probability short setup than regular resistance
Trading Bearish Breakers:
Entry Setup:
• Wait for price to retrace back to bearish breaker
• Look for rejection/reversal from the breaker zone
• Enter short when price respects the breaker as resistance
• Stop loss: Above the breaker block
• Target: Recent low or opposite breaker
Why It Works:
Failed support becoming resistance indicates structural change and often leads to continuation moves.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Strategy 1: Breaker Block Retest
Timeframes: 15min, 1H, 4H
Style: [/b> Swing trading, reversal entries
Rules:
1. Identify active breaker block (bright color, not gray)
2. Wait for price to return to the breaker zone
3. Look for reversal confirmation (pin bar, engulfing, rejection)
4. Enter in the direction the breaker suggests
5. Stop: Beyond opposite side of breaker
6. Target: 2-3R or previous structure
Example - Bullish Breaker:
• Bullish breaker at $48,000-$48,500
• Price drops to $48,200 (enters breaker)
• Bullish pin bar forms
• Enter long at $48,600, stop at $47,800
• Target: $50,000+
Strategy 2: Multi-Timeframe Breakers
Timeframes: Combine 1H + 4H or 15min + 1H
Style: [/b> High-probability setups
Rules:
1. Identify breaker on higher timeframe (4H or Daily)
2. Switch to lower timeframe (1H or 15min)
3. Look for lower TF breaker WITHIN higher TF breaker
4. Trade the lower TF breaker in same direction as HTF
5. Stop: Below lower TF breaker
6. Target: Edge of higher TF breaker or beyond
Why It Works: Alignment across timeframes increases probability
Strategy 3: Breaker + Order Block Confluence
Timeframes: 1H, 4H
Style: High-conviction trades
Rules:
1. Find breaker block that overlaps with fresh order block
2. This creates double institutional zone
3. Wait for price to reach confluence area
4. Enter on first touch with confirmation
5. Stop: Beyond confluence zone
6. Target: 3-5R
Why It Works: Two ICT concepts aligned = maximum probability
Strategy 4: Breaker Breakout
Timeframes: [/b> 5min, 15min, 1H
Style: Trend continuation
Rules:
1. Price approaches breaker block
2. Instead of respecting it, price breaks THROUGH
3. This indicates very strong momentum
4. Enter breakout in direction of break
5. Stop: Back inside the breaker
6. Target: 2-3R
Why It Works: When breakers fail, momentum is extremely strong
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Core Settings
Auto-Adjust for Timeframe (Default: ON)
• Automatically optimizes detection for current chart
• 1min: 3 bars lookback
• 5min: 4 bars lookback
• 15min: 5 bars lookback
• 1H: 6 bars lookback
• 4H+: 8-12 bars lookback
• Recommended: Keep ON
Manual Detection Length (Default: 5)
• Only used when Auto-Adjust is OFF
• Lookback period for finding order blocks
• Lower = more sensitive
• Higher = more selective
Display Settings
Show Bullish/Bearish Breaker Blocks
• Toggle each type independently
• Customize colors (default: cyan and fuchsia)
• Tip: Use colors that stand out from order blocks
Max Breaker Blocks to Display (Default: 10) [/b>
• Limits visible breakers
• Lower (5-8): Cleaner chart
• Higher (15-30): More context
• Recommended: 10-15
Show Breaker Block Labels [/b>
• Displays BB+ and BB- text
• Shows 🎯 on active (nearest) breaker
• Turn OFF for minimal appearance
Extend Blocks (bars) (Default: 50)
• How far to extend boxes to the right
• Recommended: 40-60 bars
Filters
Block Strength Filter (Default: Medium)
• Low: 0.5x ATR - More breakers, more noise
• Medium: 1x ATR - Balanced
• High: 1.5x ATR - Only strongest breakers
• Note: Breakers are naturally less common than OBs
• For learning: Use Low to see more examples
• For trading: Use Medium or High
Min Block Size % (Default: 0.1)
• Minimum breaker size as % of price
• Filters tiny insignificant blocks
• Adjust based on instrument volatility
Advanced
Show Tested Blocks (Default: OFF) [/b>
• When ON: Shows gray boxes for tested breakers
• When OFF: Breakers disappear after test
• Use ON: For learning and analysis
• Use OFF: For clean active trading
Highlight Active Block (Default: ON)
• Highlights nearest breaker to current price
• Active block shown with brighter color and 🎯
• Recommended: Keep ON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Bullish BB Count Bearish BB Count
• Number of active (untested) bearish breaker blocks
• More bearish breakers = More resistance zones above
Bias Indicator [/b>
• ⬆ Bullish: More bullish breakers (support > resistance)
• ⬇ Bearish: More bearish breakers (resistance > support)
• ↔ Neutral: Equal breakers on both sides
Near Indicator
• Shows nearest active breaker and distance
• Example: "Bull BB -1.5%" = Bullish breaker 1.5% below price
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 2 alert types:
1. Price Entering Bullish Breaker [/b>
• Fires when price touches bullish breaker block
• Action: Watch for bounce/support
2. Price Entering Bearish Breaker
• Fires when price touches bearish breaker block
• Action: Watch for rejection/resistance
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Breaker Blocks"
3. Choose alert type
4. Configure notifications
5. Click "Create"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• Wait for confirmation before entering at breakers
• First touch of breaker has highest reliability
• Use breakers with trend direction for best results
• Combine with order blocks and FVGs for confluence
• Check multiple timeframes for breaker alignment
• Respect breakers - they're stronger than regular S/R
• Use proper stop placement beyond the breaker
⚠️ DON'T:
• Don't trade every breaker - quality over quantity
• Don't ignore breaker breaks - very strong momentum signal
• Don't use tight stops - allow room for wicks
• Don't expect all breakers to hold
• Don't trade against strong momentum through breakers
• Don't confuse breakers with regular order blocks
🎯 Best Timeframes:
• Scalping: 5min, 15min (quick breaker tests)
• Day Trading: 15min, 1H (balanced)
• Swing Trading: 1H, 4H, Daily (major breakers)
🔥 Best Markets:
• Excellent: BTC, ETH, Forex majors, ES, NQ
• Good: Gold, Oil, Major indices
• Note: Breakers need volatility to form
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Advanced Concepts
Breaker Strength Hierarchy
From weakest to strongest:
1. Support/Resistance lines
2. Order Blocks (unbroken)
3. Breaker Blocks (broken OBs) ← Often strongest
4. Multiple breakers stacked together
Breaker vs Order Block Priority
If breaker and order block overlap:
• Breaker takes precedence
• Failed levels are more significant
• Price respects breakers more reliably
Nested Breakers [/b>
When lower timeframe breaker exists within higher timeframe breaker:
• Trade lower TF breaker first
• Use higher TF breaker as final target
• Highest probability setups
Multiple Breaker Tests [/b>
• First test: Highest probability
• Second test: Still valid but weaker
• Third test: Likely to break through
Breaker Breakouts [/b>
When price breaks through breaker:
• Extremely strong momentum signal
• Old level completely invalidated
• Trade the breakout aggressively
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common Patterns [/b>
Pattern 1: The Perfect Flip
• Bearish OB forms
• Price breaks above it cleanly
• Becomes bullish breaker
• First retest bounces perfectly
• High-probability setup
Pattern 2: The Double Break
• Bullish OB breaks down (becomes bearish breaker)
• Price tests it and rejects
• Later breaks back up through breaker
• Very strong momentum signal
Pattern 3: The Breaker Ladder [/b>
• Multiple breakers stacked like stairs
• Price bounces from one to next
• Each breaker provides support/resistance
Pattern 4: The Failed Breaker
• Breaker forms but gets broken immediately
• Shows extreme momentum
• Don't fight it - trade the breakout
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 If You Find This Helpful
• ⭐ Leave your feedback
• 💬 Share your experience in the comments
• 🔔 Follow for updates and new tools
Questions about breaker blocks? Feel free to ask in the comments.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History [/b>
• v1.0 - Initial release with auto-timeframe detection and polarity flip tracking
Fractal Fade Pro IndicatorA revolutionary contrarian trading indicator that applies chaos theory, fractal mathematics, and market entropy to generate high-probability reverse signals. This indicator fades traditional technical signals, providing BUY signals when conventional indicators say SELL, and SELL signals when they say BUY.
Full Description:
Most traders follow the herd. QFCI does the opposite. It identifies when conventional technical analysis is about to fail by detecting mathematical patterns of exhaustion in market structure.
How It Works (Technical Overview):
The indicator combines three sophisticated mathematical approaches:
Fractal Dimension Analysis: Measures the "roughness" of price movements using fractal mathematics
Market Entropy Calculation: Quantifies the randomness and disorder in price returns using information theory
Phase Space Reconstruction: Analyzes price evolution in multi-dimensional state space from chaos theory
Signal Generation Process:
Step 1: Market Regime Detection
Chaotic Regime: High fractal complexity + rising entropy (avoid trading)
Trending Regime: Low fractal complexity + high phase space distance (fade breakouts)
Mean-Reverting Regime: Very low fractal complexity (fade extremes)
Step 2: Reverse Signal Logic
When traditional indicators would give:
BUY signal (breakout, oversold bounce, volatility spike) → QFCI shows SELL
SELL signal (breakdown, overbought rejection, volatility crash) → QFCI shows BUY
Step 3: Smart Signal Filtering
No consecutive same-direction signals
Adjustable minimum bars between signals
Multiple confirmation layers required
Unique Features:
1. Mathematical Innovation:
Original fractal dimension algorithm (not standard indicators)
Market entropy calculation from information theory
Phase space reconstruction from chaos theory
Multi-regime adaptive logic
2. Trading Psychology Advantage:
Contrarian by design - profits from market overreactions
Fades retail trader mistakes - enters when others are exiting
Reduces overtrading - strict signal frequency controls
3. Clean Visual Interface:
Only BUY/SELL labels - no chart clutter
Clear directional arrows - immediate signal recognition
Built-in alerts - never miss a trade
Recommended Settings:
Default (Balanced Approach):
Fractal Depth: 20
Entropy Period: 200
Min Bars Between Signals: 100
Aggressive Trading:
Fractal Depth: 10-15
Entropy Period: 100-150
Min Bars Between Signals: 50-75
Conservative Trading:
Fractal Depth: 30-40
Entropy Period: 300-400
Min Bars Between Signals: 150-200
Optimal Timeframes:
Primary: Daily, Weekly (best performance)
Secondary: 4-Hour, 12-Hour
Can work on: 1-Hour (with adjusted parameters)
How to Use:
For Beginners:
Apply indicator to chart
Use default settings
Wait for BUY/SELL labels
Enter on next candle open
Use 2:1 risk/reward ratio
Always use stop losses
For Advanced Traders:
Adjust parameters for your trading style
Combine with support/resistance levels
Use volume confirmation
Scale in/out of positions
Track performance by regime
Risk Management Guidelines:
Position Sizing:
Conservative: 1-2% risk per trade
Moderate: 2-3% risk per trade
Aggressive: 3-5% risk per trade (not recommended)
Stop Loss Placement:
BUY signals: Below recent swing low or -2x ATR
SELL signals: Above recent swing high or +2x ATR
Take Profit Targets:
Primary: 2x risk (minimum)
Secondary: Previous support/resistance
Tertiary: Trailing stops after 1.5x risk
IMPORTANT RISK DISCLOSURE
This indicator is for educational and informational purposes only. It is not financial advice. Past performance does not guarantee future results. Trading involves substantial risk of loss and is not suitable for every investor. The risk of loss in trading can be substantial. You should therefore carefully consider whether such trading is suitable for you in light of your financial condition.
Trinity ATR Real Move DetectorTrinity ATR Real Move Detector
This ATR Energy Table indicator is one of the simplest yet most powerful filters you can have on a chart when trading short-dated or 0DTE options or swing trades on any timeframe from 1-minute up to 4-hour. Its entire job is to answer the single most important question in intraday and swing trading: “Does the underlying actually have enough short-term explosive energy right now to make a directional position worth the theta and the spread, or is this just pretty candles that will die in ten minutes?”
Most losing 0DTE and short-dated option trades happen because people buy or sell direction on a “nice-looking” breakout or pullback while the underlying is actually in low-energy grind mode. The premium decays faster than the move develops, and you lose even when you’re “right” on direction. This little table stops that from ever happening again.
Here’s what it does in plain English:
Every bar it measures two things:
- The current ATR on whatever timeframe you are using (1 min, 3 min, 5 min, 10 min, etc.). This tells you how big the average true range of the last 14 bars has been — in other words, how violently the stock or index is actually moving right now.
- The daily ATR (14-period on the daily chart). This is your benchmark for “normal” daily movement over the last two–three weeks.
It then multiplies the daily ATR by a small number (the multiplier you set) and compares the two. If the short-term ATR is bigger than that percentage of the daily ATR, the table turns bright green and says “ENOUGH ENERGY”. If not, it stays red and says “NOT ENOUGH”.
Why this works so well:
- Real explosive moves that carry for 0DTE and 1–3 DTE options almost always show a short-term ATR spike well above the recent daily average. Quiet grind moves never do.
- The comparison is completely adaptive — on a high-vol day the threshold automatically rises, on a low-vol day it automatically drops. You never have to guess if “2 points on SPY is big today”.
- It removes emotion completely. You simply wait for green before you even think about clicking buy or sell on an option.
Key settings and what to do with them:
- Energy Multiplier — this is the only number you ever touch. It is expressed as a decimal (0.15 = 15 % of the daily ATR). Lower = more signals, higher = stricter and higher win rate. The tooltip gives you the exact sweet-spot numbers for every popular timeframe (0.09 for 1-minute scalping, 0.13 for 3-minute, 0.14–0.16 for 5-minute, 0.15–0.19 for 10-minute, etc.). Just pick your timeframe once and type the number — done forever.
- ATR Length — leave it at 14. That’s the standard and works perfectly.
- Table Position — move the table to wherever you want on the chart (top-right, bottom-right, bottom-left, top-left).
- Table Size — make the text Tiny, Small, Normal or Large depending on how much screen space you have.
How this helps you make money and stop losing it:
- On most days you will see red 80–90 % of the time — that’s good! It is forcing you to sit on your hands instead of overtrading low-energy chop that eats premium.
- When it finally flips green you know institutions are actually pushing size right now — follow-through probability jumps from ~40 % to 65–75 % depending on the stock and timeframe.
- You stop buying calls on every green candle and puts on every red candle. You only strike when the market is genuinely “awake”.
- Over a week you take dramatically fewer trades, but your win rate and average winner size go way up — which is exactly how consistent intraday option profits are made.
In short, this tiny table is the closest thing to an “edge on/off switch” that exists for short-dated options. Red = preserve capital and go do something else. Green = pull the trigger with confidence. Use it religiously and you’ll immediately feel the difference in your P&L.
RSI Swing Indicator (Win-Rate + Forecast Line + Range Row)What the script does:
It’s essentially an enhanced RSI tool that doesn’t just show the raw RSI line. Instead, it adds forecasting, trade statistics, and range detection so you can see how reliable RSI signals have been historically and what they might mean going forward.
The main components
RSI Calculation
- Uses your chosen source (close, hl2, etc.) and length (default 7).
- Plots the RSI line (orange).
Forecasting
- Projects RSI into the future using slope extrapolation.
- Plots a forecast line (blue) and shows whether RSI is likely to become overbought, oversold, or stay neutral.
Trade Statistics
- Tracks how many long and short trades would have been profitable based on RSI bias.
- Calculates Win‑Rate (percentage of profitable trades) and Average Return (average gain/loss per trade).
- This gives you a statistical edge: are longs or shorts historically working better?
Bias & Conflict Detection
- Defines current bias (Bullish, Bearish, Neutral).
- Flags Conflict when the forecast disagrees with the current bias (e.g., RSI bullish now but forecast bearish).
- Helps you avoid trading against weakening momentum.
Range Detection
- Checks if RSI slope is flat and values are between mid‑bounds (40–60).
- Calculates Range Probability (how often range conditions occur).
- Adds a Range row to the table so you know when the market is likely sideways instead of trending.
Table Display
- Summarizes everything in a neat table: Forecast, Win‑Rates, Avg Returns, Prob Bias, Conflict, Range Prob, and Range status.
- Color‑coded so you can instantly see what’s favorable (green), risky (red), or neutral (yellow/orange).
How to use it
- Trend trading: Look for Profitable Bias with forecast alignment.
- Range trading: When both win‑rates are weak and Range row says Range Likely, fade extremes (buy low RSI, sell high RSI).
- Risk management: Avoid trades when Conflict is flagged.
- Forecasting: Use the projected RSI to anticipate overbought/oversold zones before they happen.
In short:
The script is like a “smart RSI dashboard”. It takes the basic RSI, adds forecasting, tracks how well past trades worked, and tells you whether the market is trending or ranging. This way, you’re not just reacting to RSI — you’re trading with context, probabilities, and forward‑looking signals.
Multi-EMA Slope DashboardThis script provides a comprehensive dashboard displayed directly on the chart, allowing you to analyze the underlying trend using 8 Exponential Moving Averages (EMA) ranging from period 20 to 55.
Unlike classic indicators that simply check if the price is above or below the EMA, this tool analyzes the slope of each moving average to determine the true market dynamics.
The indicator calculates the status of 8 distinct EMAs (20, 25, 30, 35, 40, 45, 50, 55). For each EMA, the script determines the direction using the following logic:
Slope Calculation: It compares the current EMA value with its value 3 bars ago (variable nb_bougies).
Neutrality Threshold: To avoid false signals in ranging (flat) markets, a neutrality filter is applied (0.01% of the EMA value).
Dashboard Interpretation
The table is located at the top right of your screen and displays three columns:
EMA: The moving average period (e.g., 20, 55).
State:
H (Hausse / Up): The slope is positive and above the threshold.
B (Baisse / Down): The slope is negative and below the negative threshold.
N (Neutre / Neutral): The slope is weak, indicating no clear trend.
COL (Color): Quick visual indicator.
🔵 Blue: Bullish trend.
🟠 Orange: Bearish trend.
⚪ Gray: Neutral Trend / Ranging.
Trading Usage
Trend Confirmation: Use the "Totaux" (Totals) counter at the bottom of the table. If you see 8/8 H (Blue), the bullish trend is strong and aligned across all timeframes (short and medium term).
Reversal Detection: If fast EMAs (20, 25) turn Orange (B) while slow ones (50, 55) are still Blue (H), this may signal the beginning of a correction or a trend reversal.
Adaptive Genesis Engine [AGE]ADAPTIVE GENESIS ENGINE (AGE)
Pure Signal Evolution Through Genetic Algorithms
Where Darwin Meets Technical Analysis
🧬 WHAT YOU'RE GETTING - THE PURE INDICATOR
This is a technical analysis indicator - it generates signals, visualizes probability, and shows you the evolutionary process in real-time. This is NOT a strategy with automatic execution - it's a sophisticated signal generation system that you control .
What This Indicator Does:
Generates Long/Short entry signals with probability scores (35-88% range)
Evolves a population of up to 12 competing strategies using genetic algorithms
Validates strategies through walk-forward optimization (train/test cycles)
Visualizes signal quality through premium gradient clouds and confidence halos
Displays comprehensive metrics via enhanced dashboard
Provides alerts for entries and exits
Works on any timeframe, any instrument, any broker
What This Indicator Does NOT Do:
Execute trades automatically
Manage positions or calculate position sizes
Place orders on your behalf
Make trading decisions for you
This is pure signal intelligence. AGE tells you when and how confident it is. You decide whether and how much to trade.
🔬 THE SCIENCE: GENETIC ALGORITHMS MEET TECHNICAL ANALYSIS
What Makes This Different - The Evolutionary Foundation
Most indicators are static - they use the same parameters forever, regardless of market conditions. AGE is alive . It maintains a population of competing strategies that evolve, adapt, and improve through natural selection principles:
Birth: New strategies spawn through crossover breeding (combining DNA from fit parents) plus random mutation for exploration
Life: Each strategy trades virtually via shadow portfolios, accumulating wins/losses, tracking drawdown, and building performance history
Selection: Strategies are ranked by comprehensive fitness scoring (win rate, expectancy, drawdown control, signal efficiency)
Death: Weak strategies are culled periodically, with elite performers (top 2 by default) protected from removal
Evolution: The gene pool continuously improves as successful traits propagate and unsuccessful ones die out
This is not curve-fitting. Each new strategy must prove itself on out-of-sample data through walk-forward validation before being trusted for live signals.
🧪 THE DNA: WHAT EVOLVES
Every strategy carries a 10-gene chromosome controlling how it interprets market data:
Signal Sensitivity Genes
Entropy Sensitivity (0.5-2.0): Weight given to market order/disorder calculations. Low values = conservative, require strong directional clarity. High values = aggressive, act on weaker order signals.
Momentum Sensitivity (0.5-2.0): Weight given to RSI/ROC/MACD composite. Controls responsiveness to momentum shifts vs. mean-reversion setups.
Structure Sensitivity (0.5-2.0): Weight given to support/resistance positioning. Determines how much price location within swing range matters.
Probability Adjustment Genes
Probability Boost (-0.10 to +0.10): Inherent bias toward aggressive (+) or conservative (-) entries. Acts as personality trait - some strategies naturally optimistic, others pessimistic.
Trend Strength Requirement (0.3-0.8): Minimum trend conviction needed before signaling. Higher values = only trades strong trends, lower values = acts in weak/sideways markets.
Volume Filter (0.5-1.5): Strictness of volume confirmation. Higher values = requires strong volume, lower values = volume less important.
Risk Management Genes
ATR Multiplier (1.5-4.0): Base volatility scaling for all price levels. Controls whether strategy uses tight or wide stops/targets relative to ATR.
Stop Multiplier (1.0-2.5): Stop loss tightness. Lower values = aggressive profit protection, higher values = more breathing room.
Target Multiplier (1.5-4.0): Profit target ambition. Lower values = quick scalping exits, higher values = swing trading holds.
Adaptation Gene
Regime Adaptation (0.0-1.0): How much strategy adjusts behavior based on detected market regime (trending/volatile/choppy). Higher values = more reactive to regime changes.
The Magic: AGE doesn't just try random combinations. Through tournament selection and fitness-weighted crossover, successful gene combinations spread through the population while unsuccessful ones fade away. Over 50-100 bars, you'll see the population converge toward genes that work for YOUR instrument and timeframe.
📊 THE SIGNAL ENGINE: THREE-LAYER SYNTHESIS
Before any strategy generates a signal, AGE calculates probability through multi-indicator confluence:
Layer 1 - Market Entropy (Information Theory)
Measures whether price movements exhibit directional order or random walk characteristics:
The Math:
Shannon Entropy = -Σ(p × log(p))
Market Order = 1 - (Entropy / 0.693)
What It Means:
High entropy = choppy, random market → low confidence signals
Low entropy = directional market → high confidence signals
Direction determined by up-move vs down-move dominance over lookback period (default: 20 bars)
Signal Output: -1.0 to +1.0 (bearish order to bullish order)
Layer 2 - Momentum Synthesis
Combines three momentum indicators into single composite score:
Components:
RSI (40% weight): Normalized to -1/+1 scale using (RSI-50)/50
Rate of Change (30% weight): Percentage change over lookback (default: 14 bars), clamped to ±1
MACD Histogram (30% weight): Fast(12) - Slow(26), normalized by ATR
Why This Matters: RSI catches mean-reversion opportunities, ROC catches raw momentum, MACD catches momentum divergence. Weighting favors RSI for reliability while keeping other perspectives.
Signal Output: -1.0 to +1.0 (strong bearish to strong bullish)
Layer 3 - Structure Analysis
Evaluates price position within swing range (default: 50-bar lookback):
Position Classification:
Bottom 20% of range = Support Zone → bullish bounce potential
Top 20% of range = Resistance Zone → bearish rejection potential
Middle 60% = Neutral Zone → breakout/breakdown monitoring
Signal Logic:
At support + bullish candle = +0.7 (strong buy setup)
At resistance + bearish candle = -0.7 (strong sell setup)
Breaking above range highs = +0.5 (breakout confirmation)
Breaking below range lows = -0.5 (breakdown confirmation)
Consolidation within range = ±0.3 (weak directional bias)
Signal Output: -1.0 to +1.0 (bearish structure to bullish structure)
Confluence Voting System
Each layer casts a vote (Long/Short/Neutral). The system requires minimum 2-of-3 agreement (configurable 1-3) before generating a signal:
Examples:
Entropy: Bullish, Momentum: Bullish, Structure: Neutral → Signal generated (2 long votes)
Entropy: Bearish, Momentum: Neutral, Structure: Neutral → No signal (only 1 short vote)
All three bullish → Signal generated with +5% probability bonus
This is the key to quality. Single indicators give too many false signals. Triple confirmation dramatically improves accuracy.
📈 PROBABILITY CALCULATION: HOW CONFIDENCE IS MEASURED
Base Probability:
Raw_Prob = 50% + (Average_Signal_Strength × 25%)
Then AGE applies strategic adjustments:
Trend Alignment:
Signal with trend: +4%
Signal against strong trend: -8%
Weak/no trend: no adjustment
Regime Adaptation:
Trending market (efficiency >50%, moderate vol): +3%
Volatile market (vol ratio >1.5x): -5%
Choppy market (low efficiency): -2%
Volume Confirmation:
Volume > 70% of 20-bar SMA: no change
Volume below threshold: -3%
Volatility State (DVS Ratio):
High vol (>1.8x baseline): -4% (reduce confidence in chaos)
Low vol (<0.7x baseline): -2% (markets can whipsaw in compression)
Moderate elevated vol (1.0-1.3x): +2% (trending conditions emerging)
Confluence Bonus:
All 3 indicators agree: +5%
2 of 3 agree: +2%
Strategy Gene Adjustment:
Probability Boost gene: -10% to +10%
Regime Adaptation gene: scales regime adjustments by 0-100%
Final Probability: Clamped between 35% (minimum) and 88% (maximum)
Why These Ranges?
Below 35% = too uncertain, better not to signal
Above 88% = unrealistic, creates overconfidence
Sweet spot: 65-80% for quality entries
🔄 THE SHADOW PORTFOLIO SYSTEM: HOW STRATEGIES COMPETE
Each active strategy maintains a virtual trading account that executes in parallel with real-time data:
Shadow Trading Mechanics
Entry Logic:
Calculate signal direction, probability, and confluence using strategy's unique DNA
Check if signal meets quality gate:
Probability ≥ configured minimum threshold (default: 65%)
Confluence ≥ configured minimum (default: 2 of 3)
Direction is not zero (must be long or short, not neutral)
Verify signal persistence:
Base requirement: 2 bars (configurable 1-5)
Adapts based on probability: high-prob signals (75%+) enter 1 bar faster, low-prob signals need 1 bar more
Adjusts for regime: trending markets reduce persistence by 1, volatile markets add 1
Apply additional filters:
Trend strength must exceed strategy's requirement gene
Regime filter: if volatile market detected, probability must be 72%+ to override
Volume confirmation required (volume > 70% of average)
If all conditions met for required persistence bars, enter shadow position at current close price
Position Management:
Entry Price: Recorded at close of entry bar
Stop Loss: ATR-based distance = ATR × ATR_Mult (gene) × Stop_Mult (gene) × DVS_Ratio
Take Profit: ATR-based distance = ATR × ATR_Mult (gene) × Target_Mult (gene) × DVS_Ratio
Position: +1 (long) or -1 (short), only one at a time per strategy
Exit Logic:
Check if price hit stop (on low) or target (on high) on current bar
Record trade outcome in R-multiples (profit/loss normalized by ATR)
Update performance metrics:
Total trades counter incremented
Wins counter (if profit > 0)
Cumulative P&L updated
Peak equity tracked (for drawdown calculation)
Maximum drawdown from peak recorded
Enter cooldown period (default: 8 bars, configurable 3-20) before next entry allowed
Reset signal age counter to zero
Walk-Forward Tracking:
During position lifecycle, trades are categorized:
Training Phase (first 250 bars): Trade counted toward training metrics
Testing Phase (next 75 bars): Trade counted toward testing metrics (out-of-sample)
Live Phase (after WFO period): Trade counted toward overall metrics
Why Shadow Portfolios?
No lookahead bias (uses only data available at the bar)
Realistic execution simulation (entry on close, stop/target checks on high/low)
Independent performance tracking for true fitness comparison
Allows safe experimentation without risking capital
Each strategy learns from its own experience
🏆 FITNESS SCORING: HOW STRATEGIES ARE RANKED
Fitness is not just win rate. AGE uses a comprehensive multi-factor scoring system:
Core Metrics (Minimum 3 trades required)
Win Rate (30% of fitness):
WinRate = Wins / TotalTrades
Normalized directly (0.0-1.0 scale)
Total P&L (30% of fitness):
Normalized_PnL = (PnL + 300) / 600
Clamped 0.0-1.0. Assumes P&L range of -300R to +300R for normalization scale.
Expectancy (25% of fitness):
Expectancy = Total_PnL / Total_Trades
Normalized_Expectancy = (Expectancy + 30) / 60
Clamped 0.0-1.0. Rewards consistency of profit per trade.
Drawdown Control (15% of fitness):
Normalized_DD = 1 - (Max_Drawdown / 15)
Clamped 0.0-1.0. Penalizes strategies that suffer large equity retracements from peak.
Sample Size Adjustment
Quality Factor:
<50 trades: 1.0 (full weight, small sample)
50-100 trades: 0.95 (slight penalty for medium sample)
100 trades: 0.85 (larger penalty for large sample)
Why penalize more trades? Prevents strategies from gaming the system by taking hundreds of tiny trades to inflate statistics. Favors quality over quantity.
Bonus Adjustments
Walk-Forward Validation Bonus:
if (WFO_Validated):
Fitness += (WFO_Efficiency - 0.5) × 0.1
Strategies proven on out-of-sample data receive up to +10% fitness boost based on test/train efficiency ratio.
Signal Efficiency Bonus (if diagnostics enabled):
if (Signals_Evaluated > 10):
Pass_Rate = Signals_Passed / Signals_Evaluated
Fitness += (Pass_Rate - 0.1) × 0.05
Rewards strategies that generate high-quality signals passing the quality gate, not just profitable trades.
Final Fitness: Clamped at 0.0 minimum (prevents negative fitness values)
Result: Elite strategies typically achieve 0.50-0.75 fitness. Anything above 0.60 is excellent. Below 0.30 is prime candidate for culling.
🔬 WALK-FORWARD OPTIMIZATION: ANTI-OVERFITTING PROTECTION
This is what separates AGE from curve-fitted garbage indicators.
The Three-Phase Process
Every new strategy undergoes a rigorous validation lifecycle:
Phase 1 - Training Window (First 250 bars, configurable 100-500):
Strategy trades normally via shadow portfolio
All trades count toward training performance metrics
System learns which gene combinations produce profitable patterns
Tracks independently: Training_Trades, Training_Wins, Training_PnL
Phase 2 - Testing Window (Next 75 bars, configurable 30-200):
Strategy continues trading without any parameter changes
Trades now count toward testing performance metrics (separate tracking)
This is out-of-sample data - strategy has never seen these bars during "optimization"
Tracks independently: Testing_Trades, Testing_Wins, Testing_PnL
Phase 3 - Validation Check:
Minimum_Trades = 5 (configurable 3-15)
IF (Train_Trades >= Minimum AND Test_Trades >= Minimum):
WR_Efficiency = Test_WinRate / Train_WinRate
Expectancy_Efficiency = Test_Expectancy / Train_Expectancy
WFO_Efficiency = (WR_Efficiency + Expectancy_Efficiency) / 2
IF (WFO_Efficiency >= 0.55): // configurable 0.3-0.9
Strategy.Validated = TRUE
Strategy receives fitness bonus
ELSE:
Strategy receives 30% fitness penalty
ELSE:
Validation deferred (insufficient trades in one or both periods)
What Validation Means
Validated Strategy (Green "✓ VAL" in dashboard):
Performed at least 55% as well on unseen data compared to training data
Gets fitness bonus: +(efficiency - 0.5) × 0.1
Receives priority during tournament selection for breeding
More likely to be chosen as active trading strategy
Unvalidated Strategy (Orange "○ TRAIN" in dashboard):
Failed to maintain performance on test data (likely curve-fitted to training period)
Receives 30% fitness penalty (0.7x multiplier)
Makes strategy prime candidate for culling
Can still trade but with lower selection probability
Insufficient Data (continues collecting):
Hasn't completed both training and testing periods yet
OR hasn't achieved minimum trade count in both periods
Validation check deferred until requirements met
Why 55% Efficiency Threshold?
If a strategy earned 10R during training but only 5.5R during testing, it still proved an edge exists beyond random luck. Requiring 100% efficiency would be unrealistic - market conditions change between periods. But requiring >50% ensures the strategy didn't completely degrade on fresh data.
The Protection: Strategies that work great on historical data but fail on new data are automatically identified and penalized. This prevents the population from being polluted by overfitted strategies that would fail in live trading.
🌊 DYNAMIC VOLATILITY SCALING (DVS): ADAPTIVE STOP/TARGET PLACEMENT
AGE doesn't use fixed stop distances. It adapts to current volatility conditions in real-time.
Four Volatility Measurement Methods
1. ATR Ratio (Simple Method):
Current_Vol = ATR(14) / Close
Baseline_Vol = SMA(Current_Vol, 100)
Ratio = Current_Vol / Baseline_Vol
Basic comparison of current ATR to 100-bar moving average baseline.
2. Parkinson (High-Low Range Based):
For each bar: HL = log(High / Low)
Parkinson_Vol = sqrt(Σ(HL²) / (4 × Period × log(2)))
More stable than close-to-close volatility. Captures intraday range expansion without overnight gap noise.
3. Garman-Klass (OHLC Based):
HL_Term = 0.5 × ²
CO_Term = (2×log(2) - 1) × ²
GK_Vol = sqrt(Σ(HL_Term - CO_Term) / Period)
Most sophisticated estimator. Incorporates all four price points (open, high, low, close) plus gap information.
4. Ensemble Method (Default - Median of All Three):
Ratio_1 = ATR_Current / ATR_Baseline
Ratio_2 = Parkinson_Current / Parkinson_Baseline
Ratio_3 = GK_Current / GK_Baseline
DVS_Ratio = Median(Ratio_1, Ratio_2, Ratio_3)
Why Ensemble?
Takes median to avoid outliers and false spikes
If ATR jumps but range-based methods stay calm, median prevents overreaction
If one method fails, other two compensate
Most robust approach across different market conditions
Sensitivity Scaling
Scaled_Ratio = (Raw_Ratio) ^ Sensitivity
Sensitivity 0.3: Cube root - heavily dampens volatility impact
Sensitivity 0.5: Square root - moderate dampening
Sensitivity 0.7 (Default): Balanced response to volatility changes
Sensitivity 1.0: Linear - full 1:1 volatility impact
Sensitivity 1.5: Exponential - amplified response to volatility spikes
Safety Clamps: Final DVS Ratio always clamped between 0.5x and 2.5x baseline to prevent extreme position sizing or stop placement errors.
How DVS Affects Shadow Trading
Every strategy's stop and target distances are multiplied by the current DVS ratio:
Stop Loss Distance:
Stop_Distance = ATR × ATR_Mult (gene) × Stop_Mult (gene) × DVS_Ratio
Take Profit Distance:
Target_Distance = ATR × ATR_Mult (gene) × Target_Mult (gene) × DVS_Ratio
Example Scenario:
ATR = 10 points
Strategy's ATR_Mult gene = 2.5
Strategy's Stop_Mult gene = 1.5
Strategy's Target_Mult gene = 2.5
DVS_Ratio = 1.4 (40% above baseline volatility - market heating up)
Stop = 10 × 2.5 × 1.5 × 1.4 = 52.5 points (vs. 37.5 in normal vol)
Target = 10 × 2.5 × 2.5 × 1.4 = 87.5 points (vs. 62.5 in normal vol)
Result:
During volatility spikes: Stops automatically widen to avoid noise-based exits, targets extend for bigger moves
During calm periods: Stops tighten for better risk/reward, targets compress for realistic profit-taking
Strategies adapt risk management to match current market behavior
🧬 THE EVOLUTIONARY CYCLE: SPAWN, COMPETE, CULL
Initialization (Bar 1)
AGE begins with 4 seed strategies (if evolution enabled):
Seed Strategy #0 (Balanced):
All sensitivities at 1.0 (neutral)
Zero probability boost
Moderate trend requirement (0.4)
Standard ATR/stop/target multiples (2.5/1.5/2.5)
Mid-level regime adaptation (0.5)
Seed Strategy #1 (Momentum-Focused):
Lower entropy sensitivity (0.7), higher momentum (1.5)
Slight probability boost (+0.03)
Higher trend requirement (0.5)
Tighter stops (1.3), wider targets (3.0)
Seed Strategy #2 (Entropy-Driven):
Higher entropy sensitivity (1.5), lower momentum (0.8)
Slight probability penalty (-0.02)
More trend tolerant (0.6)
Wider stops (1.8), standard targets (2.5)
Seed Strategy #3 (Structure-Based):
Balanced entropy/momentum (0.8/0.9), high structure (1.4)
Slight probability boost (+0.02)
Lower trend requirement (0.35)
Moderate risk parameters (1.6/2.8)
All seeds start with WFO validation bypassed if WFO is disabled, or must validate if enabled.
Spawning New Strategies
Timing (Adaptive):
Historical phase: Every 30 bars (configurable 10-100)
Live phase: Every 200 bars (configurable 100-500)
Automatically switches to live timing when barstate.isrealtime triggers
Conditions:
Current population < max population limit (default: 8, configurable 4-12)
At least 2 active strategies exist (need parents)
Available slot in population array
Selection Process:
Run tournament selection 3 times with different seeds
Each tournament: randomly sample active strategies, pick highest fitness
Best from 3 tournaments becomes Parent 1
Repeat independently for Parent 2
Ensures fit parents but maintains diversity
Crossover Breeding:
For each of 10 genes:
Parent1_Fitness = fitness
Parent2_Fitness = fitness
Weight1 = Parent1_Fitness / (Parent1_Fitness + Parent2_Fitness)
Gene1 = parent1's value
Gene2 = parent2's value
Child_Gene = Weight1 × Gene1 + (1 - Weight1) × Gene2
Fitness-weighted crossover ensures fitter parent contributes more genetic material.
Mutation:
For each gene in child:
IF (random < mutation_rate):
Gene_Range = GENE_MAX - GENE_MIN
Noise = (random - 0.5) × 2 × mutation_strength × Gene_Range
Mutated_Gene = Clamp(Child_Gene + Noise, GENE_MIN, GENE_MAX)
Historical mutation rate: 20% (aggressive exploration)
Live mutation rate: 8% (conservative stability)
Mutation strength: 12% of gene range (configurable 5-25%)
Initialization of New Strategy:
Unique ID assigned (total_spawned counter)
Parent ID recorded
Generation = max(parent generations) + 1
Birth bar recorded (for age tracking)
All performance metrics zeroed
Shadow portfolio reset
WFO validation flag set to false (must prove itself)
Result: New strategy with hybrid DNA enters population, begins trading in next bar.
Competition (Every Bar)
All active strategies:
Calculate their signal based on unique DNA
Check quality gate with their thresholds
Manage shadow positions (entries/exits)
Update performance metrics
Recalculate fitness score
Track WFO validation progress
Strategies compete indirectly through fitness ranking - no direct interaction.
Culling Weak Strategies
Timing (Adaptive):
Historical phase: Every 60 bars (configurable 20-200, should be 2x spawn interval)
Live phase: Every 400 bars (configurable 200-1000, should be 2x spawn interval)
Minimum Adaptation Score (MAS):
Initial MAS = 0.10
MAS decays: MAS × 0.995 every cull cycle
Minimum MAS = 0.03 (floor)
MAS represents the "survival threshold" - strategies below this fitness level are vulnerable.
Culling Conditions (ALL must be true):
Population > minimum population (default: 3, configurable 2-4)
At least one strategy has fitness < MAS
Strategy's age > culling interval (prevents premature culling of new strategies)
Strategy is not in top N elite (default: 2, configurable 1-3)
Culling Process:
Find worst strategy:
For each active strategy:
IF (age > cull_interval):
Fitness = base_fitness
IF (not WFO_validated AND WFO_enabled):
Fitness × 0.7 // 30% penalty for unvalidated
IF (Fitness < MAS AND Fitness < worst_fitness_found):
worst_strategy = this_strategy
worst_fitness = Fitness
IF (worst_strategy found):
Count elite strategies with fitness > worst_fitness
IF (elite_count >= elite_preservation_count):
Deactivate worst_strategy (set active flag = false)
Increment total_culled counter
Elite Protection:
Even if a strategy's fitness falls below MAS, it survives if fewer than N strategies are better. This prevents culling when population is generally weak.
Result: Weak strategies removed from population, freeing slots for new spawns. Gene pool improves over time.
Selection for Display (Every Bar)
AGE chooses one strategy to display signals:
Best fitness = -1
Selected = none
For each active strategy:
Fitness = base_fitness
IF (WFO_validated):
Fitness × 1.3 // 30% bonus for validated strategies
IF (Fitness > best_fitness):
best_fitness = Fitness
selected_strategy = this_strategy
Display selected strategy's signals on chart
Result: Only the highest-fitness (optionally validated-boosted) strategy's signals appear as chart markers. Other strategies trade invisibly in shadow portfolios.
🎨 PREMIUM VISUALIZATION SYSTEM
AGE includes sophisticated visual feedback that standard indicators lack:
1. Gradient Probability Cloud (Optional, Default: ON)
Multi-layer gradient showing signal buildup 2-3 bars before entry:
Activation Conditions:
Signal persistence > 0 (same directional signal held for multiple bars)
Signal probability ≥ minimum threshold (65% by default)
Signal hasn't yet executed (still in "forming" state)
Visual Construction:
7 gradient layers by default (configurable 3-15)
Each layer is a line-fill pair (top line, bottom line, filled between)
Layer spacing: 0.3 to 1.0 × ATR above/below price
Outer layers = faint, inner layers = bright
Color transitions from base to intense based on layer position
Transparency scales with probability (high prob = more opaque)
Color Selection:
Long signals: Gradient from theme.gradient_bull_mid to theme.gradient_bull_strong
Short signals: Gradient from theme.gradient_bear_mid to theme.gradient_bear_strong
Base transparency: 92%, reduces by up to 8% for high-probability setups
Dynamic Behavior:
Cloud grows/shrinks as signal persistence increases/decreases
Redraws every bar while signal is forming
Disappears when signal executes or invalidates
Performance Note: Computationally expensive due to linefill objects. Disable or reduce layers if chart performance degrades.
2. Population Fitness Ribbon (Optional, Default: ON)
Histogram showing fitness distribution across active strategies:
Activation: Only draws on last bar (barstate.islast) to avoid historical clutter
Visual Construction:
10 histogram layers by default (configurable 5-20)
Plots 50 bars back from current bar
Positioned below price at: lowest_low(100) - 1.5×ATR (doesn't interfere with price action)
Each layer represents a fitness threshold (evenly spaced min to max fitness)
Layer Logic:
For layer_num from 0 to ribbon_layers:
Fitness_threshold = min_fitness + (max_fitness - min_fitness) × (layer / layers)
Count strategies with fitness ≥ threshold
Height = ATR × 0.15 × (count / total_active)
Y_position = base_level + ATR × 0.2 × layer
Color = Gradient from weak to strong based on layer position
Line_width = Scaled by height (taller = thicker)
Visual Feedback:
Tall, bright ribbon = healthy population, many fit strategies at high fitness levels
Short, dim ribbon = weak population, few strategies achieving good fitness
Ribbon compression (layers close together) = population converging to similar fitness
Ribbon spread = diverse fitness range, active selection pressure
Use Case: Quick visual health check without opening dashboard. Ribbon growing upward over time = population improving.
3. Confidence Halo (Optional, Default: ON)
Circular polyline around entry signals showing probability strength:
Activation: Draws when new position opens (shadow_position changes from 0 to ±1)
Visual Construction:
20-segment polyline forming approximate circle
Center: Low - 0.5×ATR (long) or High + 0.5×ATR (short)
Radius: 0.3×ATR (low confidence) to 1.0×ATR (elite confidence)
Scales with: (probability - min_probability) / (1.0 - min_probability)
Color Coding:
Elite (85%+): Cyan (theme.conf_elite), large radius, minimal transparency (40%)
Strong (75-85%): Strong green (theme.conf_strong), medium radius, moderate transparency (50%)
Good (65-75%): Good green (theme.conf_good), smaller radius, more transparent (60%)
Moderate (<65%): Moderate green (theme.conf_moderate), tiny radius, very transparent (70%)
Technical Detail:
Uses chart.point array with index-based positioning
5-bar horizontal spread for circular appearance (±5 bars from entry)
Curved=false (Pine Script polyline limitation)
Fill color matches line color but more transparent (88% vs line's transparency)
Purpose: Instant visual probability assessment. No need to check dashboard - halo size/brightness tells the story.
4. Evolution Event Markers (Optional, Default: ON)
Visual indicators of genetic algorithm activity:
Spawn Markers (Diamond, Cyan):
Plots when total_spawned increases on current bar
Location: bottom of chart (location.bottom)
Color: theme.spawn_marker (cyan/bright blue)
Size: tiny
Indicates new strategy just entered population
Cull Markers (X-Cross, Red):
Plots when total_culled increases on current bar
Location: bottom of chart (location.bottom)
Color: theme.cull_marker (red/pink)
Size: tiny
Indicates weak strategy just removed from population
What It Tells You:
Frequent spawning early = population building, active exploration
Frequent culling early = high selection pressure, weak strategies dying fast
Balanced spawn/cull = healthy evolutionary churn
No markers for long periods = stable population (evolution plateaued or optimal genes found)
5. Entry/Exit Markers
Clear visual signals for selected strategy's trades:
Long Entry (Triangle Up, Green):
Plots when selected strategy opens long position (position changes 0 → +1)
Location: below bar (location.belowbar)
Color: theme.long_primary (green/cyan depending on theme)
Transparency: Scales with probability:
Elite (85%+): 0% (fully opaque)
Strong (75-85%): 10%
Good (65-75%): 20%
Acceptable (55-65%): 35%
Size: small
Short Entry (Triangle Down, Red):
Plots when selected strategy opens short position (position changes 0 → -1)
Location: above bar (location.abovebar)
Color: theme.short_primary (red/pink depending on theme)
Transparency: Same scaling as long entries
Size: small
Exit (X-Cross, Orange):
Plots when selected strategy closes position (position changes ±1 → 0)
Location: absolute (at actual exit price if stop/target lines enabled)
Color: theme.exit_color (orange/yellow depending on theme)
Transparency: 0% (fully opaque)
Size: tiny
Result: Clean, probability-scaled markers that don't clutter chart but convey essential information.
6. Stop Loss & Take Profit Lines (Optional, Default: ON)
Visual representation of shadow portfolio risk levels:
Stop Loss Line:
Plots when selected strategy has active position
Level: shadow_stop value from selected strategy
Color: theme.short_primary with 60% transparency (red/pink, subtle)
Width: 2
Style: plot.style_linebr (breaks when no position)
Take Profit Line:
Plots when selected strategy has active position
Level: shadow_target value from selected strategy
Color: theme.long_primary with 60% transparency (green, subtle)
Width: 2
Style: plot.style_linebr (breaks when no position)
Purpose:
Shows where shadow portfolio would exit for stop/target
Helps visualize strategy's risk/reward ratio
Useful for manual traders to set similar levels
Disable for cleaner chart (recommended for presentations)
7. Dynamic Trend EMA
Gradient-colored trend line that visualizes trend strength:
Calculation:
EMA(close, trend_length) - default 50 period (configurable 20-100)
Slope calculated over 10 bars: (current_ema - ema ) / ema × 100
Color Logic:
Trend_direction:
Slope > 0.1% = Bullish (1)
Slope < -0.1% = Bearish (-1)
Otherwise = Neutral (0)
Trend_strength = abs(slope)
Color = Gradient between:
- Neutral color (gray/purple)
- Strong bullish (bright green) if direction = 1
- Strong bearish (bright red) if direction = -1
Gradient factor = trend_strength (0 to 1+ scale)
Visual Behavior:
Faint gray/purple = weak/no trend (choppy conditions)
Light green/red = emerging trend (low strength)
Bright green/red = strong trend (high conviction)
Color intensity = trend strength magnitude
Transparency: 50% (subtle, doesn't overpower price action)
Purpose: Subconscious awareness of trend state without checking dashboard or indicators.
8. Regime Background Tinting (Subtle)
Ultra-low opacity background color indicating detected market regime:
Regime Detection:
Efficiency = directional_movement / total_range (over trend_length bars)
Vol_ratio = current_volatility / average_volatility
IF (efficiency > 0.5 AND vol_ratio < 1.3):
Regime = Trending (1)
ELSE IF (vol_ratio > 1.5):
Regime = Volatile (2)
ELSE:
Regime = Choppy (0)
Background Colors:
Trending: theme.regime_trending (dark green, 92-93% transparency)
Volatile: theme.regime_volatile (dark red, 93% transparency)
Choppy: No tint (normal background)
Purpose:
Subliminal regime awareness
Helps explain why signals are/aren't generating
Trending = ideal conditions for AGE
Volatile = fewer signals, higher thresholds applied
Choppy = mixed signals, lower confidence
Important: Extremely subtle by design. Not meant to be obvious, just subconscious context.
📊 ENHANCED DASHBOARD
Comprehensive real-time metrics in single organized panel (top-right position):
Dashboard Structure (5 columns × 14 rows)
Header Row:
Column 0: "🧬 AGE PRO" + phase indicator (🔴 LIVE or ⏪ HIST)
Column 1: "POPULATION"
Column 2: "PERFORMANCE"
Column 3: "CURRENT SIGNAL"
Column 4: "ACTIVE STRATEGY"
Column 0: Market State
Regime (📈 TREND / 🌊 CHAOS / ➖ CHOP)
DVS Ratio (current volatility scaling factor, format: #.##)
Trend Direction (▲ BULL / ▼ BEAR / ➖ FLAT with color coding)
Trend Strength (0-100 scale, format: #.##)
Column 1: Population Metrics
Active strategies (count / max_population)
Validated strategies (WFO passed / active total)
Current generation number
Total spawned (all-time strategy births)
Total culled (all-time strategy deaths)
Column 2: Aggregate Performance
Total trades across all active strategies
Aggregate win rate (%) - color-coded:
Green (>55%)
Orange (45-55%)
Red (<45%)
Total P&L in R-multiples - color-coded by positive/negative
Best fitness score in population (format: #.###)
MAS - Minimum Adaptation Score (cull threshold, format: #.###)
Column 3: Current Signal Status
Status indicator:
"▲ LONG" (green) if selected strategy in long position
"▼ SHORT" (red) if selected strategy in short position
"⏳ FORMING" (orange) if signal persisting but not yet executed
"○ WAITING" (gray) if no active signal
Confidence percentage (0-100%, format: #.#%)
Quality assessment:
"🔥 ELITE" (cyan) for 85%+ probability
"✓ STRONG" (bright green) for 75-85%
"○ GOOD" (green) for 65-75%
"- LOW" (dim) for <65%
Confluence score (X/3 format)
Signal age:
"X bars" if signal forming
"IN TRADE" if position active
"---" if no signal
Column 4: Selected Strategy Details
Strategy ID number (#X format)
Validation status:
"✓ VAL" (green) if WFO validated
"○ TRAIN" (orange) if still in training/testing phase
Generation number (GX format)
Personal fitness score (format: #.### with color coding)
Trade count
P&L and win rate (format: #.#R (##%) with color coding)
Color Scheme:
Panel background: theme.panel_bg (dark, low opacity)
Panel headers: theme.panel_header (slightly lighter)
Primary text: theme.text_primary (bright, high contrast)
Secondary text: theme.text_secondary (dim, lower contrast)
Positive metrics: theme.metric_positive (green)
Warning metrics: theme.metric_warning (orange)
Negative metrics: theme.metric_negative (red)
Special markers: theme.validated_marker, theme.spawn_marker
Update Frequency: Only on barstate.islast (current bar) to minimize CPU usage
Purpose:
Quick overview of entire system state
No need to check multiple indicators
Trading decisions informed by population health, regime state, and signal quality
Transparency into what AGE is thinking
🔍 DIAGNOSTICS PANEL (Optional, Default: OFF)
Detailed signal quality tracking for optimization and debugging:
Panel Structure (3 columns × 8 rows)
Position: Bottom-right corner (doesn't interfere with main dashboard)
Header Row:
Column 0: "🔍 DIAGNOSTICS"
Column 1: "COUNT"
Column 2: "%"
Metrics Tracked (for selected strategy only):
Total Evaluated:
Every signal that passed initial calculation (direction ≠ 0)
Represents total opportunities considered
✓ Passed:
Signals that passed quality gate and executed
Green color coding
Percentage of evaluated signals
Rejection Breakdown:
⨯ Probability:
Rejected because probability < minimum threshold
Most common rejection reason typically
⨯ Confluence:
Rejected because confluence < minimum required (e.g., only 1 of 3 indicators agreed)
⨯ Trend:
Rejected because signal opposed strong trend
Indicates counter-trend protection working
⨯ Regime:
Rejected because volatile regime detected and probability wasn't high enough to override
Shows regime filter in action
⨯ Volume:
Rejected because volume < 70% of 20-bar average
Indicates volume confirmation requirement
Color Coding:
Passed count: Green (success metric)
Rejection counts: Red (failure metrics)
Percentages: Gray (neutral, informational)
Performance Cost: Slight CPU overhead for tracking counters. Disable when not actively optimizing settings.
How to Use Diagnostics
Scenario 1: Too Few Signals
Evaluated: 200
Passed: 10 (5%)
⨯ Probability: 120 (60%)
⨯ Confluence: 40 (20%)
⨯ Others: 30 (15%)
Diagnosis: Probability threshold too high for this strategy's DNA.
Solution: Lower min probability from 65% to 60%, or allow strategy more time to evolve better DNA.
Scenario 2: Too Many False Signals
Evaluated: 200
Passed: 80 (40%)
Strategy win rate: 45%
Diagnosis: Quality gate too loose, letting low-quality signals through.
Solution: Raise min probability to 70%, or increase min confluence to 3 (all indicators must agree).
Scenario 3: Regime-Specific Issues
⨯ Regime: 90 (45% of rejections)
Diagnosis: Frequent volatile regime detection blocking otherwise good signals.
Solution: Either accept fewer trades during chaos (recommended), or disable regime filter if you want signals regardless of market state.
Optimization Workflow:
Enable diagnostics
Run 200+ bars
Analyze rejection patterns
Adjust settings based on data
Re-run and compare pass rate
Disable diagnostics when satisfied
⚙️ CONFIGURATION GUIDE
🧬 Evolution Engine Settings
Enable AGE Evolution (Default: ON):
ON: Full genetic algorithm (recommended for best results)
OFF: Uses only 4 seed strategies, no spawning/culling (static population for comparison testing)
Max Population (4-12, Default: 8):
Higher = more diversity, more exploration, slower performance
Lower = faster computation, less exploration, risk of premature convergence
Sweet spot: 6-8 for most use cases
4 = minimum for meaningful evolution
12 = maximum before diminishing returns
Min Population (2-4, Default: 3):
Safety floor - system never culls below this count
Prevents population extinction during harsh selection
Should be at least half of max population
Elite Preservation (1-3, Default: 2):
Top N performers completely immune to culling
Ensures best genes always survive
1 = minimal protection, aggressive selection
2 = balanced (recommended)
3 = conservative, slower gene pool turnover
Historical: Spawn Interval (10-100, Default: 30):
Bars between spawning new strategies during historical data
Lower = faster evolution, more exploration
Higher = slower evolution, more evaluation time per strategy
30 bars = ~1-2 hours on 15min chart
Historical: Cull Interval (20-200, Default: 60):
Bars between culling weak strategies during historical data
Should be 2x spawn interval for balanced churn
Lower = aggressive selection pressure
Higher = patient evaluation
Live: Spawn Interval (100-500, Default: 200):
Bars between spawning during live trading
Much slower than historical for stability
Prevents population chaos during live trading
200 bars = ~1.5 trading days on 15min chart
Live: Cull Interval (200-1000, Default: 400):
Bars between culling during live trading
Should be 2x live spawn interval
Conservative removal during live trading
Historical: Mutation Rate (0.05-0.40, Default: 0.20):
Probability each gene mutates during breeding (20% = 2 out of 10 genes on average)
Higher = more exploration, slower convergence
Lower = more exploitation, faster convergence but risk of local optima
20% balances exploration vs exploitation
Live: Mutation Rate (0.02-0.20, Default: 0.08):
Mutation rate during live trading
Much lower for stability (don't want population to suddenly degrade)
8% = mostly inherits parent genes with small tweaks
Mutation Strength (0.05-0.25, Default: 0.12):
How much genes change when mutated (% of gene's total range)
0.05 = tiny nudges (fine-tuning)
0.12 = moderate jumps (recommended)
0.25 = large leaps (aggressive exploration)
Example: If gene range is 0.5-2.0, 12% strength = ±0.18 possible change
📈 Signal Quality Settings
Min Signal Probability (0.55-0.80, Default: 0.65):
Quality gate threshold - signals below this never generate
0.55-0.60 = More signals, accept lower confidence (higher risk)
0.65 = Institutional-grade balance (recommended)
0.70-0.75 = Fewer but higher-quality signals (conservative)
0.80+ = Very selective, very few signals (ultra-conservative)
Min Confluence Score (1-3, Default: 2):
Required indicator agreement before signal generates
1 = Any single indicator can trigger (not recommended - too many false signals)
2 = Requires 2 of 3 indicators agree (RECOMMENDED for balance)
3 = All 3 must agree (very selective, few signals, high quality)
Base Persistence Bars (1-5, Default: 2):
Base bars signal must persist before entry
System adapts automatically:
High probability signals (75%+) enter 1 bar faster
Low probability signals (<68%) need 1 bar more
Trending regime: -1 bar (faster entries)
Volatile regime: +1 bar (more confirmation)
1 = Immediate entry after quality gate (responsive but prone to whipsaw)
2 = Balanced confirmation (recommended)
3-5 = Patient confirmation (slower but more reliable)
Cooldown After Trade (3-20, Default: 8):
Bars to wait after exit before next entry allowed
Prevents overtrading and revenge trading
3 = Minimal cooldown (active trading)
8 = Balanced (recommended)
15-20 = Conservative (position trading)
Entropy Length (10-50, Default: 20):
Lookback period for market order/disorder calculation
Lower = more responsive to regime changes (noisy)
Higher = more stable regime detection (laggy)
20 = works across most timeframes
Momentum Length (5-30, Default: 14):
Period for RSI/ROC calculations
14 = standard (RSI default)
Lower = more signals, less reliable
Higher = fewer signals, more reliable
Structure Length (20-100, Default: 50):
Lookback for support/resistance swing range
20 = short-term swings (day trading)
50 = medium-term structure (recommended)
100 = major structure (position trading)
Trend EMA Length (20-100, Default: 50):
EMA period for trend detection and direction bias
20 = short-term trend (responsive)
50 = medium-term trend (recommended)
100 = long-term trend (position trading)
ATR Period (5-30, Default: 14):
Period for volatility measurement
14 = standard ATR
Lower = more responsive to vol changes
Higher = smoother vol calculation
📊 Volatility Scaling (DVS) Settings
Enable DVS (Default: ON):
Dynamic volatility scaling for adaptive stop/target placement
Highly recommended to leave ON
OFF only for testing fixed-distance stops
DVS Method (Default: Ensemble):
ATR Ratio: Simple, fast, single-method (good for beginners)
Parkinson: High-low range based (good for intraday)
Garman-Klass: OHLC based (sophisticated, considers gaps)
Ensemble: Median of all three (RECOMMENDED - most robust)
DVS Memory (20-200, Default: 100):
Lookback for baseline volatility comparison
20 = very responsive to vol changes (can overreact)
100 = balanced adaptation (recommended)
200 = slow, stable baseline (minimizes false vol signals)
DVS Sensitivity (0.3-1.5, Default: 0.7):
How much volatility affects scaling (power-law exponent)
0.3 = Conservative, heavily dampens vol impact (cube root)
0.5 = Moderate dampening (square root)
0.7 = Balanced response (recommended)
1.0 = Linear, full 1:1 vol response
1.5 = Aggressive, amplified response (exponential)
🔬 Walk-Forward Optimization Settings
Enable WFO (Default: ON):
Out-of-sample validation to prevent overfitting
Highly recommended to leave ON
OFF only for testing or if you want unvalidated strategies
Training Window (100-500, Default: 250):
Bars for in-sample optimization
100 = fast validation, less data (risky)
250 = balanced (recommended) - about 1-2 months on daily, 1-2 weeks on 15min
500 = patient validation, more data (conservative)
Testing Window (30-200, Default: 75):
Bars for out-of-sample validation
Should be ~30% of training window
30 = minimal test (fast validation)
75 = balanced (recommended)
200 = extensive test (very conservative)
Min Trades for Validation (3-15, Default: 5):
Required trades in BOTH training AND testing periods
3 = minimal sample (risky, fast validation)
5 = balanced (recommended)
10+ = conservative (slow validation, high confidence)
WFO Efficiency Threshold (0.3-0.9, Default: 0.55):
Minimum test/train performance ratio required
0.30 = Very loose (test must be 30% as good as training)
0.55 = Balanced (recommended) - test must be 55% as good
0.70+ = Strict (test must closely match training)
Higher = fewer validated strategies, lower risk of overfitting
🎨 Premium Visuals Settings
Visual Theme:
Neon Genesis: Cyberpunk aesthetic (cyan/magenta/purple)
Carbon Fiber: Industrial look (blue/red/gray)
Quantum Blue: Quantum computing (blue/purple/pink)
Aurora: Northern lights (teal/orange/purple)
⚡ Gradient Probability Cloud (Default: ON):
Multi-layer gradient showing signal buildup
Turn OFF if chart lags or for cleaner look
Cloud Gradient Layers (3-15, Default: 7):
More layers = smoother gradient, more CPU intensive
Fewer layers = faster, blockier appearance
🎗️ Population Fitness Ribbon (Default: ON):
Histogram showing fitness distribution
Turn OFF for cleaner chart
Ribbon Layers (5-20, Default: 10):
More layers = finer fitness detail
Fewer layers = simpler histogram
⭕ Signal Confidence Halo (Default: ON):
Circular indicator around entry signals
Size/brightness scales with probability
Minimal performance cost
🔬 Evolution Event Markers (Default: ON):
Diamond (spawn) and X (cull) markers
Shows genetic algorithm activity
Minimal performance cost
🎯 Stop/Target Lines (Default: ON):
Shows shadow portfolio stop/target levels
Turn OFF for cleaner chart (recommended for screenshots/presentations)
📊 Enhanced Dashboard (Default: ON):
Comprehensive metrics panel
Should stay ON unless you want zero overlays
🔍 Diagnostics Panel (Default: OFF):
Detailed signal rejection tracking
Turn ON when optimizing settings
Turn OFF during normal use (slight performance cost)
📈 USAGE WORKFLOW - HOW TO USE THIS INDICATOR
Phase 1: Initial Setup & Learning
Add AGE to your chart
Recommended timeframes: 15min, 30min, 1H (best signal-to-noise ratio)
Works on: 5min (day trading), 4H (swing trading), Daily (position trading)
Load 1000+ bars for sufficient evolution history
Let the population evolve (100+ bars minimum)
First 50 bars: Random exploration, poor results expected
Bars 50-150: Population converging, fitness improving
Bars 150+: Stable performance, validated strategies emerging
Watch the dashboard metrics
Population should grow toward max capacity
Generation number should advance regularly
Validated strategies counter should increase
Best fitness should trend upward toward 0.50-0.70 range
Observe evolution markers
Diamond markers (cyan) = new strategies spawning
X markers (red) = weak strategies being culled
Frequent early activity = healthy evolution
Activity slowing = population stabilizing
Be patient. Evolution takes time. Don't judge performance before 150+ bars.
Phase 2: Signal Observation
Watch signals form
Gradient cloud builds up 2-3 bars before entry
Cloud brightness = probability strength
Cloud thickness = signal persistence
Check signal quality
Look at confidence halo size when entry marker appears
Large bright halo = elite setup (85%+)
Medium halo = strong setup (75-85%)
Small halo = good setup (65-75%)
Verify market conditions
Check trend EMA color (green = uptrend, red = downtrend, gray = choppy)
Check background tint (green = trending, red = volatile, clear = choppy)
Trending background + aligned signal = ideal conditions
Review dashboard signal status
Current Signal column shows:
Status (Long/Short/Forming/Waiting)
Confidence % (actual probability value)
Quality assessment (Elite/Strong/Good)
Confluence score (2/3 or 3/3 preferred)
Only signals meeting ALL quality gates appear on chart. If you're not seeing signals, population is either still learning or market conditions aren't suitable.
Phase 3: Manual Trading Execution
When Long Signal Fires:
Verify confidence level (dashboard or halo size)
Confirm trend alignment (EMA sloping up, green color)
Check regime (preferably trending or choppy, avoid volatile)
Enter long manually on your broker platform
Set stop loss at displayed stop line level (if lines enabled), or use your own risk management
Set take profit at displayed target line level, or trail manually
Monitor position - exit if X marker appears (signal reversal)
When Short Signal Fires:
Same verification process
Confirm downtrend (EMA sloping down, red color)
Enter short manually
Use displayed stop/target levels or your own
AGE tells you WHEN and HOW CONFIDENT. You decide WHETHER and HOW MUCH.
Phase 4: Set Up Alerts (Never Miss a Signal)
Right-click on indicator name in legend
Select "Add Alert"
Choose condition:
"AGE Long" = Long entry signal fired
"AGE Short" = Short entry signal fired
"AGE Exit" = Position reversal/exit signal
Set notification method:
Sound alert (popup on chart)
Email notification
Webhook to phone/trading platform
Mobile app push notification
Name the alert (e.g., "AGE BTCUSD 15min Long")
Save alert
Recommended: Set alerts for both long and short, enable mobile push notifications. You'll get alerted in real-time even if not watching charts.
Phase 5: Monitor Population Health
Weekly Review:
Check dashboard Population column:
Active count should be near max (6-8 of 8)
Validated count should be >50% of active
Generation should be advancing (1-2 per week typical)
Check dashboard Performance column:
Aggregate win rate should be >50% (target: 55-65%)
Total P&L should be positive (may fluctuate)
Best fitness should be >0.50 (target: 0.55-0.70)
MAS should be declining slowly (normal adaptation)
Check Active Strategy column:
Selected strategy should be validated (✓ VAL)
Personal fitness should match best fitness
Trade count should be accumulating
Win rate should be >50%
Warning Signs:
Zero validated strategies after 300+ bars = settings too strict or market unsuitable
Best fitness stuck <0.30 = population struggling, consider parameter adjustment
No spawning/culling for 200+ bars = evolution stalled (may be optimal or need reset)
Aggregate win rate <45% sustained = system not working on this instrument/timeframe
Health Check Pass:
50%+ strategies validated
Best fitness >0.50
Aggregate win rate >52%
Regular spawn/cull activity
Selected strategy validated
Phase 6: Optimization (If Needed)
Enable Diagnostics Panel (bottom-right) for data-driven tuning:
Problem: Too Few Signals
Evaluated: 200
Passed: 8 (4%)
⨯ Probability: 140 (70%)
Solutions:
Lower min probability: 65% → 60% or 55%
Reduce min confluence: 2 → 1
Lower base persistence: 2 → 1
Increase mutation rate temporarily to explore new genes
Check if regime filter is blocking signals (⨯ Regime high?)
Problem: Too Many False Signals
Evaluated: 200
Passed: 90 (45%)
Win rate: 42%
Solutions:
Raise min probability: 65% → 70% or 75%
Increase min confluence: 2 → 3
Raise base persistence: 2 → 3
Enable WFO if disabled (validates strategies before use)
Check if volume filter is being ignored (⨯ Volume low?)
Problem: Counter-Trend Losses
⨯ Trend: 5 (only 5% rejected)
Losses often occur against trend
Solutions:
System should already filter trend opposition
May need stronger trend requirement
Consider only taking signals aligned with higher timeframe trend
Use longer trend EMA (50 → 100)
Problem: Volatile Market Whipsaws
⨯ Regime: 100 (50% rejected by volatile regime)
Still getting stopped out frequently
Solutions:
System is correctly blocking volatile signals
Losses happening because vol filter isn't strict enough
Consider not trading during volatile periods (respect the regime)
Or disable regime filter and accept higher risk
Optimization Workflow:
Enable diagnostics
Run 200+ bars with current settings
Analyze rejection patterns and win rate
Make ONE change at a time (scientific method)
Re-run 200+ bars and compare results
Keep change if improvement, revert if worse
Disable diagnostics when satisfied
Never change multiple parameters at once - you won't know what worked.
Phase 7: Multi-Instrument Deployment
AGE learns independently on each chart:
Recommended Strategy:
Deploy AGE on 3-5 different instruments
Different asset classes ideal (e.g., ES futures, EURUSD, BTCUSD, SPY, Gold)
Each learns optimal strategies for that instrument's personality
Take signals from all 5 charts
Natural diversification reduces overall risk
Why This Works:
When one market is choppy, others may be trending
Different instruments respond to different news/catalysts
Portfolio-level win rate more stable than single-instrument
Evolution explores different parameter spaces on each chart
Setup:
Same settings across all charts (or customize if preferred)
Set alerts for all
Take every validated signal across all instruments
Position size based on total account (don't overleverage any single signal)
⚠️ REALISTIC EXPECTATIONS - CRITICAL READING
What AGE Can Do
✅ Generate probability-weighted signals using genetic algorithms
✅ Evolve strategies in real-time through natural selection
✅ Validate strategies on out-of-sample data (walk-forward optimization)
✅ Adapt to changing market conditions automatically over time
✅ Provide comprehensive metrics on population health and signal quality
✅ Work on any instrument, any timeframe, any broker
✅ Improve over time as weak strategies are culled and fit strategies breed
What AGE Cannot Do
❌ Win every trade (typical win rate: 55-65% at best)
❌ Predict the future with certainty (markets are probabilistic, not deterministic)
❌ Work perfectly from bar 1 (needs 100-150 bars to learn and stabilize)
❌ Guarantee profits under all market conditions
❌ Replace your trading discipline and risk management
❌ Execute trades automatically (this is an indicator, not a strategy)
❌ Prevent all losses (drawdowns are normal and expected)
❌ Adapt instantly to regime changes (re-learning takes 50-100 bars)
Performance Realities
Typical Performance After Evolution Stabilizes (150+ bars):
Win Rate: 55-65% (excellent for trend-following systems)
Profit Factor: 1.5-2.5 (realistic for validated strategies)
Signal Frequency: 5-15 signals per 100 bars (quality over quantity)
Drawdown Periods: 20-40% of time in equity retracement (normal trading reality)
Max Consecutive Losses: 5-8 losses possible even with 60% win rate (probability says this is normal)
Evolution Timeline:
Bars 0-50: Random exploration, learning phase - poor results expected, don't judge yet
Bars 50-150: Population converging, fitness climbing - results improving
Bars 150-300: Stable performance, most strategies validated - consistent results
Bars 300+: Mature population, optimal genes dominant - best results
Market Condition Dependency:
Trending Markets: AGE excels - clear directional moves, high-probability setups
Choppy Markets: AGE struggles - fewer signals generated, lower win rate
Volatile Markets: AGE cautious - higher rejection rate, wider stops, fewer trades
Market Regime Changes:
When market shifts from trending to choppy overnight
Validated strategies can become temporarily invalidated
AGE will adapt through evolution, but not instantly
Expect 50-100 bar re-learning period after major regime shifts
Fitness may temporarily drop then recover
This is NOT a holy grail. It's a sophisticated signal generator that learns and adapts using genetic algorithms. Your success depends on:
Patience during learning periods (don't abandon after 3 losses)
Proper position sizing (risk 0.5-2% per trade, not 10%)
Following signals consistently (cherry-picking defeats statistical edge)
Not abandoning system prematurely (give it 200+ bars minimum)
Understanding probability (60% win rate means 40% of trades WILL lose)
Respecting market conditions (trending = trade more, choppy = trade less)
Managing emotions (AGE is emotionless, you need to be too)
Expected Drawdowns:
Single-strategy max DD: 10-20% of equity (normal)
Portfolio across multiple instruments: 5-15% (diversification helps)
Losing streaks: 3-5 consecutive losses expected periodically
No indicator eliminates risk. AGE manages risk through:
Quality gates (rejecting low-probability signals)
Confluence requirements (multi-indicator confirmation)
Persistence requirements (no knee-jerk reactions)
Regime awareness (reduced trading in chaos)
Walk-forward validation (preventing overfitting)
But it cannot prevent all losses. That's inherent to trading.
🔧 TECHNICAL SPECIFICATIONS
Platform: TradingView Pine Script v5
Indicator Type: Overlay indicator (plots on price chart)
Execution Type: Signals only - no automatic order placement
Computational Load:
Moderate to High (genetic algorithms + shadow portfolios)
8 strategies × shadow portfolio simulation = significant computation
Premium visuals add additional load (gradient cloud, fitness ribbon)
TradingView Resource Limits (Built-in Caps):
Max Bars Back: 500 (sufficient for WFO and evolution)
Max Labels: 100 (plenty for entry/exit markers)
Max Lines: 150 (adequate for stop/target lines)
Max Boxes: 50 (not heavily used)
Max Polylines: 100 (confidence halos)
Recommended Chart Settings:
Timeframe: 15min to 1H (optimal signal/noise balance)
5min: Works but noisier, more signals
4H/Daily: Works but fewer signals
Bars Loaded: 1000+ (ensures sufficient evolution history)
Replay Mode: Excellent for testing without risk
Performance Optimization Tips:
Disable gradient cloud if chart lags (most CPU intensive visual)
Disable fitness ribbon if still laggy
Reduce cloud layers from 7 to 3
Reduce ribbon layers from 10 to 5
Turn off diagnostics panel unless actively tuning
Close other heavy indicators to free resources
Browser/Platform Compatibility:
Works on all modern browsers (Chrome, Firefox, Safari, Edge)
Mobile app supported (full functionality on phone/tablet)
Desktop app supported (best performance)
Web version supported (may be slower on older computers)
Data Requirements:
Real-time or delayed data both work
No special data feeds required
Works with TradingView's standard data
Historical + live data seamlessly integrated
🎓 THEORETICAL FOUNDATIONS
AGE synthesizes advanced concepts from multiple disciplines:
Evolutionary Computation
Genetic Algorithms (Holland, 1975): Population-based optimization through natural selection metaphor
Tournament Selection: Fitness-based parent selection with diversity preservation
Crossover Operators: Fitness-weighted gene recombination from two parents
Mutation Operators: Random gene perturbation for exploration of new parameter space
Elitism: Preservation of top N performers to prevent loss of best solutions
Adaptive Parameters: Different mutation rates for historical vs. live phases
Technical Analysis
Support/Resistance: Price structure within swing ranges
Trend Following: EMA-based directional bias
Momentum Analysis: RSI, ROC, MACD composite indicators
Volatility Analysis: ATR-based risk scaling
Volume Confirmation: Trade activity validation
Information Theory
Shannon Entropy (1948): Quantification of market order vs. disorder
Signal-to-Noise Ratio: Directional information vs. random walk
Information Content: How much "information" a price move contains
Statistics & Probability
Walk-Forward Analysis: Rolling in-sample/out-of-sample optimization
Out-of-Sample Validation: Testing on unseen data to prevent overfitting
Monte Carlo Principles: Shadow portfolio simulation with realistic execution
Expectancy Theory: Win rate × avg win - loss rate × avg loss
Probability Distributions: Signal confidence quantification
Risk Management
ATR-Based Stops: Volatility-normalized risk per trade
Volatility Regime Detection: Market state classification (trending/choppy/volatile)
Drawdown Control: Peak-to-trough equity measurement
R-Multiple Normalization: Performance measurement in risk units
Machine Learning Concepts
Online Learning: Continuous adaptation as new data arrives
Fitness Functions: Multi-objective optimization (win rate + expectancy + drawdown)
Exploration vs. Exploitation: Balance between trying new strategies and using proven ones
Overfitting Prevention: Walk-forward validation as regularization
Novel Contribution:
AGE is the first TradingView indicator to apply genetic algorithms to real-time indicator parameter optimization while maintaining strict anti-overfitting controls through walk-forward validation.
Most "adaptive" indicators simply recalibrate lookback periods or thresholds. AGE evolves entirely new strategies through competitive selection - it's not parameter tuning, it's Darwinian evolution of trading logic itself.
The combination of:
Genetic algorithm population management
Shadow portfolio simulation for realistic fitness evaluation
Walk-forward validation to prevent overfitting
Multi-indicator confluence for signal quality
Dynamic volatility scaling for adaptive risk
...creates a system that genuinely learns and improves over time while avoiding the curse of curve-fitting that plagues most optimization approaches.
🏗️ DEVELOPMENT NOTES
This project represents months of intensive development, facing significant technical challenges:
Challenge 1: Making Genetics Actually Work
Early versions spawned garbage strategies that polluted the gene pool:
Random gene combinations produced nonsensical parameter sets
Weak strategies survived too long, dragging down population
No clear convergence toward optimal solutions
Solution:
Comprehensive fitness scoring (4 factors: win rate, P&L, expectancy, drawdown)
Elite preservation (top 2 always protected)
Walk-forward validation (unproven strategies penalized 30%)
Tournament selection (fitness-weighted breeding)
Adaptive culling (MAS decay creates increasing selection pressure)
Challenge 2: Balancing Evolution Speed vs. Stability
Too fast = population chaos, no convergence. Too slow = can't adapt to regime changes.
Solution:
Dual-phase timing: Fast evolution during historical (30/60 bar intervals), slow during live (200/400 bar intervals)
Adaptive mutation rates: 20% historical, 8% live
Spawn/cull ratio: Always 2:1 to prevent population collapse
Challenge 3: Shadow Portfolio Accuracy
Needed realistic trade simulation without lookahead bias:
Can't peek at future bars for exits
Must track multiple portfolios simultaneously
Stop/target checks must use bar's high/low correctly
Solution:
Entry on close (realistic)
Exit checks on current bar's high/low (realistic)
Independent position tracking per strategy
Cooldown periods to prevent unrealistic rapid re-entry
ATR-normalized P&L (R-multiples) for fair comparison across volatility regimes
Challenge 4: Pine Script Compilation Limits
Hit TradingView's execution limits multiple times:
Too many array operations
Too many variables
Too complex conditional logic
Solution:
Optimized data structures (single DNA array instead of 8 separate arrays)
Minimal visual overlays (only essential plots)
Efficient fitness calculations (vectorized where possible)
Strategic use of barstate.islast to minimize dashboard updates
Challenge 5: Walk-Forward Implementation
Standard WFO is difficult in Pine Script:
Can't easily "roll forward" through historical data
Can't re-optimize strategies mid-stream
Must work in real-time streaming environment
Solution:
Age-based phase detection (first 250 bars = training, next 75 = testing)
Separate metric tracking for train vs. test
Efficiency calculation at fixed interval (after test period completes)
Validation flag persists for strategy lifetime
Challenge 6: Signal Quality Control
Early versions generated too many signals with poor win rates:
Single indicators produced excessive noise
No trend alignment
No regime awareness
Instant entries on single-bar spikes
Solution:
Three-layer confluence system (entropy + momentum + structure)
Minimum 2-of-3 agreement requirement
Trend alignment checks (penalty for counter-trend)
Regime-based probability adjustments
Persistence requirements (signals must hold multiple bars)
Volume confirmation
Quality gate (probability + confluence thresholds)
The Result
A system that:
Truly evolves (not just parameter sweeps)
Truly validates (out-of-sample testing)
Truly adapts (ongoing competition and breeding)
Stays within TradingView's platform constraints
Provides institutional-quality signals
Maintains transparency (full metrics dashboard)
Development time: 3+ months of iterative refinement
Lines of code: ~1500 (highly optimized)
Test instruments: ES, NQ, EURUSD, BTCUSD, SPY, AAPL
Test timeframes: 5min, 15min, 1H, Daily
🎯 FINAL WORDS
The Adaptive Genesis Engine is not just another indicator - it's a living system that learns, adapts, and improves through the same principles that drive biological evolution. Every bar it observes adds to its experience. Every strategy it spawns explores new parameter combinations. Every strategy it culls removes weakness from the gene pool.
This is evolution in action on your charts.
You're not getting a static formula locked in time. You're getting a system that thinks , that competes , that survives through natural selection. The strongest strategies rise to the top. The weakest die. The gene pool improves generation after generation.
AGE doesn't claim to predict the future - it adapts to whatever the future brings. When markets shift from trending to choppy, from calm to volatile, from bullish to bearish - AGE evolves new strategies suited to the new regime.
Use it on any instrument. Any timeframe. Any market condition. AGE will adapt.
This indicator gives you the pure signal intelligence. How you choose to act on it - position sizing, risk management, execution discipline - that's your responsibility. AGE tells you when and how confident . You decide whether and how much .
Trust the process. Respect the evolution. Let Darwin work.
"In markets, as in nature, it is not the strongest strategies that survive, nor the most intelligent - but those most responsive to change."
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
— Happy Holiday's
Multi SMAOverlay indicator that displays a complete set of Simple Moving Averages in a single script: SMA 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 100, and 200.
It includes a selectable source (close, hl2, etc.) and two toggles to quickly show/hide short-term SMAs (5–50) and long-term SMAs (100–200). Ideal for analyzing trend direction, moving average alignment, and dynamic support/resistance zones directly on the price chart.
ICT Order Block Identifier [Eˣ]📦 Order Block Identifier
Overview
The Order Block Identifier automatically detects and displays institutional order blocks on your charts - zones where banks, hedge funds, and market makers place their orders. This indicator helps identify where institutions are likely to defend their positions and where price often finds support or resistance, based on ICT (Inner Circle Trader) concepts.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Detects Order Blocks:
• 🟢 Bullish Order Blocks (OB+) - Last bearish candle before strong bullish move
• 🔴 Bearish Order Blocks (OB-) - Last bullish candle before strong bearish move
• Automatically identifies institutional buying/selling zones
• Tracks up to 30 order blocks simultaneously
• Works on all timeframes and instruments
Smart Features:
• Auto-Timeframe Adjustment - Optimizes detection for 1min to Weekly charts
• Active Block Highlighting - Shows which OB price is approaching
• Touch Tracking - Knows when blocks are tested
• ATR-Based Detection - Adapts to each instrument's volatility
• Strength Filtering - Choose Low/Medium/High to control sensitivity
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Understanding Order Blocks
What Are Order Blocks?
Order blocks are the "footprints" left behind by institutional traders (banks, hedge funds, market makers) when they enter large positions. Because institutions can't fill massive orders at once without moving the market, they:
1. Place orders gradually over time
2. Leave zones where their buy/sell orders are concentrated
3. Defend these zones when price returns
4. Create reliable support and resistance levels
The ICT Concept:
Developed by Michael Huddleston (Inner Circle Trader), order block theory states that:
• The last opposite-colored candle before a strong move contains institutional orders
• Price often returns to test these zones before continuing
• These zones act as strong support (bullish OB) or resistance (bearish OB)
• Smart money defends their positions at these levels
Why Order Blocks Work:
• Unfilled Orders: Institutions may still have pending orders in the block
• Position Defense: They protect their entries by adding to positions
• Stop Placement: Retail stops cluster near these zones (liquidity for institutions)
• Market Structure: Price respects these levels due to order flow dynamics
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 Bullish Order Blocks Explained
How They Form:
1. Price is consolidating or declining
2. Institutions begin accumulating (buying)
3. A strong bullish move erupts
4. The last bearish candle before this move = Bullish Order Block
5. This candle represents where institutions were buying aggressively
Why The Last Bearish Candle?
• Institutions absorbed all selling pressure at this level
• Their buy orders filled as price was declining
• When price returns, they defend this zone with more buying
• It becomes a demand zone / support level
Trading Bullish Order Blocks:
Setup:
• Wait for price to retrace back to bullish OB (green box)
• Look for rejection/reversal pattern (pin bar, engulfing, etc.)
• Enter long when price bounces from the OB zone
• Stop loss: Below the order block
• Target: Recent high or opposite order block
Best Scenarios:
• OB aligns with other support (trendline, fibonacci, round number)
• First touch of OB (unmitigated) has highest probability
• Occurs during high-volume sessions (London/NY)
• Trend is bullish on higher timeframe
Example Trade:
• Bullish OB forms at $50,000 (last red candle before rally)
• Price rallies to $52,000 then retraces
• Price drops back to $50,100 (touching OB)
• Bullish pin bar forms on the OB
• Enter long at $50,200, stop at $49,800
• Target: $52,000+ (previous high)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 Bearish Order Blocks Explained
How They Form:
1. Price is consolidating or rising
2. Institutions begin distributing (selling)
3. A strong bearish move erupts
4. The last bullish candle before this move = Bearish Order Block
5. This candle represents where institutions were selling aggressively
Why The Last Bullish Candle?
• Institutions absorbed all buying pressure at this level
• Their sell orders filled as price was rising
• When price returns, they defend this zone with more selling
• It becomes a supply zone / resistance level
Trading Bearish Order Blocks:
Setup:
• Wait for price to retrace back to bearish OB (red box)
• Look for rejection/reversal pattern (shooting star, bearish engulfing)
• Enter short when price rejects from the OB zone
• Stop loss: Above the order block
• Target: Recent low or opposite order block
Best Scenarios:
• OB aligns with other resistance (trendline, fibonacci, round number)
• First touch of OB (unmitigated) has highest probability
• Occurs during high-volume sessions (London/NY)
• Trend is bearish on higher timeframe
Example Trade:
• Bearish OB forms at $48,000 (last green candle before drop)
• Price drops to $46,000 then retraces
• Price rallies back to $47,900 (touching OB)
• Bearish engulfing forms at the OB
• Enter short at $47,800, stop at $48,200
• Target: $46,000- (previous low)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Strategy 1: Order Block Retest (Classic)
Best For: Swing trading, capturing reversals
Timeframes: 15min, 1H, 4H, Daily
Win Rate: 60-70% (first touch)
Entry Rules:
1. Identify unmitigated order block (bright color, not gray)
2. Wait for price to return to the OB zone
3. Look for price action confirmation:
• Bullish OB: Pin bar, bullish engulfing, hammer
• Bearish OB: Shooting star, bearish engulfing, doji
4. Enter in the direction of the OB
5. Stop loss: Beyond the opposite side of OB (20-30 pips)
6. Target: 2-3R or opposite OB
Example:
• Bullish OB at $100-$102
• Price drops to $101.50 (enters OB)
• Bullish pin bar forms with low at $100.80
• Enter long at $102 (OB high), stop at $99.50
• Risk: $2.50, Target: $107.50 (3R)
Strategy 2: Break & Retest
Best For: Trend trading, breakout confirmation
Timeframes: 5min, 15min, 1H
Win Rate: 65-75%
Entry Rules:
1. Price breaks through an order block
2. Wait for pullback to the broken OB
3. The OB now acts as support (if broken up) or resistance (if broken down)
4. Enter when price respects the flipped OB
5. Stop: Inside the OB zone
6. Target: Next OB or structure level
Why It Works: Broken OBs flip polarity - support becomes resistance and vice versa
Strategy 3: Multi-Timeframe Confirmation
Best For: High-probability setups
Timeframes: Combine 1H + 4H or 15min + 1H
Win Rate: 70-80%
Entry Rules:
1. Identify order block on higher timeframe (4H or Daily)
2. Switch to lower timeframe (1H or 15min)
3. Wait for lower TF order block to form within higher TF OB
4. Trade the lower TF OB in direction of higher TF OB
5. Stop: Below lower TF OB
6. Target: Edge of higher TF OB or beyond
Why It Works: Alignment across timeframes = institutional consensus
Strategy 4: Order Block to Order Block
Best For: Range trading, swing entries
Timeframes: 1H, 4H
Win Rate: 55-65%
Entry Rules:
1. Identify both bullish OB below and bearish OB above
2. Price is ranging between these OBs
3. Enter long at bullish OB, target bearish OB
4. Enter short at bearish OB, target bullish OB
5. Stop: Beyond the trading OB
6. Exit at opposite OB
Why It Works: Price moves from one institutional zone to another
Strategy 5: Mitigation Fade
Best For: Aggressive scalping
Timeframes: 5min, 15min
Win Rate: 50-60% (higher risk)
Entry Rules:
1. Price approaches an order block
2. Instead of bouncing, price breaks through (mitigates it)
3. Enter immediately in direction of breakout
4. Stop: Back inside the mitigated OB
5. Quick target: 1-1.5R
Why It Works: When OB fails, it often leads to strong continuation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Core Settings
Auto-Adjust for Timeframe (Default: ON)
• Automatically optimizes detection for current chart timeframe
• 1min: 3 bars lookback
• 5min: 4 bars lookback
• 15min: 5 bars lookback
• 1H: 6 bars lookback
• 4H: 8 bars lookback
• Daily+: 10-12 bars lookback
• Recommended: Keep ON for best results
Manual Detection Length (Default: 5)
• Only used when Auto-Adjust is OFF
• Number of bars to look back for the "last opposite candle"
• Lower (2-4): More sensitive, more blocks, more noise
• Higher (6-10): Less sensitive, fewer blocks, higher quality
• Recommended: Use Auto-Adjust instead
Display Settings
Show Bullish/Bearish Order Blocks
• Toggle each type on/off independently
• Customize colors for each OB type
• Tip: Match colors to your chart theme
Max Order Blocks to Display (Default: 10)
• Limits how many OBs are shown at once
• Lower (5-8): Cleaner chart, only recent blocks
• Higher (15-30): More historical context
• Recommended: 8-12 for most trading
Show Order Block Labels (Default: ON)
• Displays "OB+" and "OB-" text on blocks
• Shows 🎯 on active (nearest) block
• Turn OFF for minimal chart appearance
• Recommended: Keep ON for clarity
Extend Blocks (bars) (Default: 50)
• How far to extend OB boxes to the right
• Lower (20-30): Shorter boxes, less clutter
• Higher (100+): Longer boxes, easier to see
• Blocks auto-extend until mitigated or limit reached
• Recommended: 40-60 bars
Filters
Block Strength Filter (Default: Medium)
• Controls how strong a move must be to create an OB
• Low: 0.5x ATR move required - Many blocks, more noise
• Medium: 1x ATR move required - Balanced quality/quantity
• High: 1.5x ATR move required - Only strongest institutional moves
• Recommended for beginners: High
• Recommended for experienced: Medium
• Recommended for scalpers: Low
Min Block Size % (Default: 0.1)
• Minimum size of OB as percentage of price
• Filters out tiny, insignificant blocks
• Crypto: 0.1-0.3%
• Forex: 0.05-0.15%
• Stocks: 0.1-0.5%
• Adjust based on instrument volatility
Advanced Settings
Show Mitigated Blocks (Default: OFF)
• When ON: Shows gray boxes for "used" order blocks
• When OFF: Blocks disappear after mitigation
• Use ON: For learning and analysis
• Use OFF: For clean, active trading
Highlight Active Block (Default: ON)
• Highlights the nearest order block to current price
• Active block shown with 🎯 emoji and brighter color
• Helps focus on most relevant trading opportunity
• Recommended: Keep ON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Bullish OB Count
• Number of active (unmitigated) bullish order blocks
• Higher number = More support zones below price
• Multiple bullish OBs = Strong demand structure
Bearish OB Count
• Number of active (unmitigated) bearish order blocks
• Higher number = More resistance zones above price
• Multiple bearish OBs = Strong supply structure
Bias Indicator
• ⬆ Bullish: More bullish OBs than bearish (demand > supply)
• ⬇ Bearish: More bearish OBs than bullish (supply > demand)
• ↔ Neutral: Equal OBs on both sides
• Trade in direction of bias for higher probability
Near Indicator
• Shows which OB price is closest to
• Displays distance as percentage
• Example: "Bull OB 0.85%" = Bullish OB is 0.85% below current price
• Watch for "Near" alerts to time entries
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 4 alert types:
1. Price Entering Bullish OB
• Fires when price touches a bullish order block
• Action: Watch for bounce/reversal pattern
• High-probability long setup developing
2. Price Entering Bearish OB
• Fires when price touches a bearish order block
• Action: Watch for rejection/reversal pattern
• High-probability short setup developing
3. New Bullish OB Detected
• Fires when a new bullish order block forms
• Action: Mark the zone for future retest
• New demand zone identified
4. New Bearish OB Detected
• Fires when a new bearish order block forms
• Action: Mark the zone for future retest
• New supply zone identified
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Order Block Identifier"
3. Choose your alert condition
4. Configure notification method
5. Click "Create"
Pro Tip: Set "Price Entering" alerts to catch trading opportunities in real-time
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• First touch is best - Unmitigated OBs have highest win rate (60-70%)
• Wait for confirmation - Don't buy/sell just because price touched OB
• Use multiple timeframes - Higher TF OBs are stronger than lower TF
• Combine with structure - OB + trendline/support = high probability
• Trade with the bias - More bullish OBs = favor longs
• Respect mitigation - Once OB is mitigated, it's less reliable
• Use proper stop loss - Always place stops beyond the OB zone
• Consider session timing - OBs work best during London/NY sessions
⚠️ DON'T:
• Don't blindly buy/sell at OBs - Wait for confirmation
• Don't ignore mitigation - Gray blocks are much weaker
• Don't trade every OB - Quality over quantity
• Don't fight strong trends - OBs can be run through in strong momentum
• Don't use alone - Combine with price action, support/resistance
• Don't expect 100% win rate - Even best OBs fail sometimes (30-40% of time)
• Don't overtrade - Wait for A+ setups with confluence
🎯 Best Timeframes By Trading Style:
• Scalpers: 1min, 5min (quick OB touches)
• Day Traders: 5min, 15min, 1H (balanced view)
• Swing Traders: 1H, 4H, Daily (major institutional zones)
• Position Traders: 4H, Daily, Weekly (strongest OBs)
🔥 Best Instruments:
• Excellent: Forex major pairs (EUR/USD, GBP/USD), BTC, ETH, ES, NQ
• Good: Gold, Oil, Major indices, Large-cap stocks
• Moderate: Altcoins, small-cap stocks (more noise)
• Avoid: Very low liquidity instruments (OBs less reliable)
⏰ Best Times To Trade OBs:
• London Session (03:00-12:00 EST): Highest OB respect rate
• NY Session (08:00-17:00 EST): Strong OB reactions
• London-NY Overlap (08:00-12:00 EST): Best probability
• Asian Session: Lower probability, wait for London
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Advanced Order Block Concepts
Order Block Flips (Polarity Change)
When price breaks through an OB and closes beyond it:
• Bullish OB that's broken becomes bearish (support becomes resistance)
• Bearish OB that's broken becomes bullish (resistance becomes support)
• Trading: Watch for retest of broken OB from opposite side
Order Block Refinement
When multiple OBs form at similar level:
• Later OB "refines" or "replaces" the earlier one
• Use the most recent OB as the active zone
• Older OBs become less relevant
Order Block Clusters
Multiple OBs stacked close together:
• Creates a "super zone" of institutional interest
• Higher probability of reversal
• Wider zone for entries (more room for confirmation)
Fair Value Gaps + Order Blocks
When OB aligns with Fair Value Gap:
• Extremely high probability setup
• Price is drawn to fill the gap AND test the OB
• Double confluence = institutional magnet
Order Block Mitigation Types
• Full Mitigation: Price fully enters and closes inside OB
• Partial Mitigation: Price wicks into OB but closes outside
• False Mitigation: Quick touch then immediate rejection
• Partial/false mitigation = OB still somewhat valid
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common Order Block Patterns
Pattern 1: The Perfect Retest
• OB forms during strong move
• Price continues 100-200+ pips
• Price retraces back to OB
• Clean bounce with confirmation candle
• Highest probability pattern
Pattern 2: The Double Tap
• Price tests OB, bounces weakly
• Price tests same OB again
• Second test produces stronger reaction
• Second touch often better entry
Pattern 3: The Fake-Out
• Price breaks through OB
• Immediately reverses back
• "Stop hunt" or liquidity grab
• Enter after price reclaims OB
Pattern 4: The Ladder
• Multiple OBs stacked like stairs
• Price steps from one OB to next
• Each OB provides support/resistance
• Trade OB-to-OB movements
Pattern 5: The Failed OB
• Price crashes through OB without pause
• OB completely invalidated
• Often signals strong momentum
• Don't fight it, trade the breakout
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 What Makes This Different?
Unlike basic support/resistance indicators, Order Block Identifier:
• ICT Methodology - Based on proven institutional concepts
• Auto-Timeframe Optimization - Works perfectly on all timeframes
• ATR-Based Detection - Adapts to each instrument's volatility
• Mitigation Tracking - Knows when blocks are no longer valid
• Active Block Highlighting - Shows most relevant opportunity
• Smart Filtering - Only shows high-quality institutional zones
• Visual Clarity - Clean, professional appearance
• Real-Time Updates - Blocks update as price action develops
Based On Professional Concepts:
• ICT Smart Money Concepts (SMC)
• Institutional order flow analysis
• Market maker behavior patterns
• Supply and demand zone theory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 If You Find This Helpful
• ⭐ Leave your feedback
• 💬 Share your experience in the comments
• 🔔 Follow for updates and new tools
Questions about Order Blocks? Feel free to ask in the comments.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History
• v1.0 - Initial release with auto-timeframe detection and ATR-based strength filtering
On Balance Volume [BrightSideTrading]
# On Balance Volume - Complete User Guide
## Overview
This enhanced OBV indicator provides clean, actionable volume analysis with intelligent signal filtering. It combines On-Balance Volume (OBV) with a smoothed signal line to identify shifts in buying and selling pressure without chart clutter.
**Key Features:**
- Real-time OBV and signal line visualization
- Smart crossover detection with confirmation filtering
- Z-Score momentum analysis
- Customizable signal alerts with V-shaped markers
- Window-normalized option for detrended analysis
---
## What is On-Balance Volume (OBV)?
OBV is a volume-based momentum indicator that accumulates volume on up days and subtracts volume on down days. It answers a fundamental question: **Is volume flowing in (buying) or out (selling)?**
**Formula:**
- If Close > Previous Close: OBV = Previous OBV + Volume
- If Close < Previous Close: OBV = Previous OBV - Volume
- If Close = Previous Close: OBV = Previous OBV (unchanged)
**What it tells you:**
- **Rising OBV** = Accumulation (smart money buying)
- **Falling OBV** = Distribution (smart money selling)
- **OBV above zero line** = Net positive buying pressure
- **OBV below zero line** = Net negative selling pressure
---
## Interface & Settings
### **MAIN VISUALIZATION**
**OBV Line (Green/Red Ribbon)**
- Green when OBV is above the signal line (bullish trend)
- Red when OBV is below the signal line (bearish trend)
- Toggles between window-normalized (detrended) and raw values
**Signal Line (Orange)**
- Smoothed average of OBV
- Crossovers with OBV generate buy/sell signals
- Default: 21-period SMA
**V-Shaped Markers**
- Green upward V = Bullish crossover (buy signal)
- Red downward V = Bearish crossover (sell signal)
- Appears at the OBV value when signal is triggered
**Zero Line (Yellow)**
- Center equilibrium point for volume balance
- Acts as support/resistance for OBV
- Separates buying pressure (above) from selling pressure (below)
---
### **SOURCE GROUP**
**Source**
- **Default:** Close
- **Options:** Open, High, Low, or any custom value
- Controls which price value triggers OBV direction changes
- Most traders use Close for standard OBV calculation
---
### **SIGNAL SMOOTHING GROUP**
**Show Signal?**
- **Default:** ON
- Toggle visibility of the signal line
- Disable if you prefer to see raw OBV only
**Smoothing Type**
- **SMA (Simple Moving Average)** - Default, standard smoothing
- **EMA (Exponential Moving Average)** - Faster response, weights recent bars more heavily
- **Choose SMA** for consistent, traditional OBV signals
- **Choose EMA** for faster trend identification (more whipsaws possible)
**Smoothing Length**
- **Default:** 21 bars
- **Range:** 1-200 bars
- **Lower values** (5-14): Faster signals, more noise
- **Higher values** (30-50): Slower signals, fewer false alarms
- **Recommendation:** Use 21-25 for most timeframes
---
### **SIGNAL FILTERING GROUP**
This is your primary control for signal quality and frequency.
**Show Signal Markers?**
- **Default:** ON
- Toggle the V-shaped buy/sell markers on/off
- Disable if markers distract from your analysis
**Signal Filter Type**
- **None** - Shows every single crossover (noisy, best for skilled traders)
- **Confirmation Bars** - Waits N bars before confirming signal (recommended)
- **Strength-Based** - Only signals during strong momentum (filters weakest moves)
#### **CONFIRMATION BARS MODE** (Recommended)
Best for reducing false signals while staying responsive to real moves.
**Confirmation Bars**
- **Default:** 2 bars
- **Range:** 1-10 bars
- Waits for the signal to hold for N consecutive bars after crossover
- **Setting 1:** Every crossover (same as "None")
- **Setting 2:** Wait 1 bar confirmation (good balance)
- **Setting 3:** Wait 2 bars confirmation (filters 50% of noise)
- **Setting 4+:** Very selective, misses quick reversals
**How it works:**
1. OBV crosses signal line → Confirmation counter starts
2. If OBV stays on correct side for 2 bars → V-marker appears
3. If OBV crosses back → Counter resets, no signal
#### **STRENGTH-BASED MODE**
Only signals when momentum is statistically significant.
**Min Z-Score Strength**
- **Default:** 0.3
- **Range:** 0.0-3.0
- Requires OBV deviation from its mean to reach this threshold
- **Setting 0.1-0.3:** More signals, lower quality
- **Setting 0.5-0.8:** Moderate signals, good quality
- **Setting 1.0+:** Only the strongest momentum shifts
**How it works:**
- Calculates how far OBV is from its 50-bar average (Z-score)
- Only shows signals when this distance is meaningful
- Automatically avoids weak, choppy market conditions
---
### **VISUALS & COLORS GROUP**
**Highlight Crossovers?**
- **Default:** ON
- Master toggle for all signal markers
- Turn OFF to see only the OBV/signal lines
**Apply Ribbon Filling?**
- **Default:** ON
- Colors the space between OBV and signal line
- Green fill = OBV above signal (bullish)
- Red fill = OBV below signal (bearish)
- Provides clear visual trend confirmation
- Turn OFF for minimal chart clutter
---
### **STATS & ZONES GROUP**
**Use Window-Normalized OBV (visual only)?**
- **Default:** ON
- Removes long-term trend from OBV for clearer short-term signals
- Detrends the indicator to highlight recent momentum changes
- **ON:** Better for swing trading and identifying reversals
- **OFF:** Better for trend-following strategies
- Note: Z-Score always uses raw OBV for statistical accuracy
**OBV Normalize Window**
- **Default:** 200 bars
- Lookback period for detrending calculation
- Larger values = more aggressive detrending
- Adjust if you want OBV to oscillate more/less around zero
**Show Z-Score (OBV)?**
- **Default:** ON
- Displays statistical momentum indicator below main chart
- Ranges from -3 to +3 (most data within -2 to +2)
- High Z-Score = Strong buying momentum
- Low Z-Score = Strong selling momentum
**Z-Score Lookback**
- **Default:** 50 bars
- Period for calculating Z-Score mean and standard deviation
- Larger = smoother Z-Score, slower response
- Smaller = noisier Z-Score, faster response
**Show ROC (OBV Momentum)?**
- **Default:** OFF
- Rate of Change indicator for OBV velocity
- Useful for identifying momentum turning points
- Enable if you want to see speed of volume changes
**ROC Lookback**
- **Default:** 14 bars
- Period for ROC calculation
**Show Z-Score StdDev Zones?**
- **Default:** ON
- Shaded regions around zero line showing statistical boundaries
- Inner Zone (±1 Z) = Normal variation
- Outer Zone (±2 Z) = Extreme moves, potential reversals
- Helps identify overbought/oversold volume conditions
**Inner Zone (±Z)**
- **Default:** 1.0
- First boundary for standard deviation zones
- Most normal trading occurs within ±1
**Outer Zone (±Z)**
- **Default:** 2.0
- Second boundary for extreme conditions
- Crossing these zones indicates significant momentum shift
---
## Trading Strategy Examples
### **Strategy 1: Signal Line Crossovers (Beginner)**
**Setup:**
- Signal Filter Type: **Confirmation Bars**
- Confirmation Bars: **2-3**
- Show Signal Markers: **ON**
**Rules:**
1. **BUY signal** (green V): When OBV crosses above signal line and holds for 2-3 bars
- Confirms buying pressure is building
- Look for price to follow within 1-3 bars
2. **SELL signal** (red V): When OBV crosses below signal line and holds for 2-3 bars
- Confirms selling pressure is increasing
- Expect price decline
3. **Exit:** Take profits at next signal or use price support/resistance
**Best For:** Swing trading, intraday reversals, timeframes 5m-1h
---
### **Strategy 2: Zero Line Bounce (Intermediate)**
**Setup:**
- Signal Filter Type: **Strength-Based**
- Min Z-Score Strength: **0.5**
- Show Z-Score StdDev Zones: **ON**
**Rules:**
1. **Watch OBV approach zero line** during established trends
- OBV bouncing repeatedly off zero = trend is healthy
- OBV breaking through zero = trend reversal imminent
2. **Enter on bounce:** Buy when OBV bounces from zero line in uptrend
3. **Exit on break:** Close position when OBV breaks below zero line
4. **Confirm with Z-Score:** Only take trades when Z-Score shows momentum (|Z| > 0.5)
**Best For:** Trend traders, identifying trend strength, medium timeframes 15m-4h
---
### **Strategy 3: Momentum Extremes (Advanced)**
**Setup:**
- Signal Filter Type: **None**
- Show Z-Score StdDev Zones: **ON**
- Outer Zone: **2.0**
**Rules:**
1. **Identify extremes:** When Z-Score breaks outer zone (±2.0)
- Indicator is in extreme territory
- Likely overextended
2. **Fade extremes:** Take opposite position when Z-Score hits extreme
- High Z (>2.0) = OBV overbought, expect pullback
- Low Z (<-2.0) = OBV oversold, expect bounce
3. **Confirm:** Wait for crossover signal to enter
4. **Target:** Outer zone of opposite side or zero line
**Best For:** Range trading, mean reversion, experienced traders only
---
## Reading the Indicator in Different Markets
### **Strong Uptrend**
- OBV consistently above signal line (green)
- OBV well above zero line, rising higher lows
- Z-Score positive, trending upward
- **Action:** Buy dips to signal line, sell at resistance
### **Strong Downtrend**
- OBV consistently below signal line (red)
- OBV well below zero line, making lower highs
- Z-Score negative, trending downward
- **Action:** Sell rallies to signal line, cover at support
### **Consolidation/Choppy Market**
- OBV whipsaws around signal line frequently
- Crossovers occur every few bars
- Z-Score oscillating between -1 and +1
- **Action:** Increase confirmation bars to 3-4, or switch to strength-based filter
### **Accumulation (Bottom Formation)**
- OBV rising while price is flat or falling
- Volume flowing in despite downtrend (bullish divergence)
- Z-Score climbing while price lows hold
- **Action:** Expect breakout up; prepare buy near support
### **Distribution (Top Formation)**
- OBV falling while price is flat or rising
- Volume flowing out despite uptrend (bearish divergence)
- Z-Score falling while price continues higher
- **Action:** Expect breakdown down; prepare short near resistance
---
## Parameter Tuning Guide
### **Aggressive Settings (More Signals)**
- Smoothing Length: 14
- Signal Filter: None or Confirmation Bars: 1
- Min Z-Score: 0.1
- Best for: Day trading, high volatility stocks
- Risk: More false signals
### **Balanced Settings (Recommended)**
- Smoothing Length: 21
- Signal Filter: Confirmation Bars: 2
- Min Z-Score: 0.3
- Best for: Swing trading, most market conditions
- Risk/Reward: Moderate
### **Conservative Settings (Fewer Signals)**
- Smoothing Length: 30-40
- Signal Filter: Confirmation Bars: 3-4 or Strength-Based: 0.7+
- Min Z-Score: 0.8
- Best for: Position trading, high-conviction trades only
- Risk: May miss some moves
---
## Common Questions & Troubleshooting
**Q: Why are there more sell signals than buy signals?**
A: This reflects the actual market action. Markets often decline faster than they rise (fear > greed). Confirm signals with price action and support/resistance.
**Q: The indicator keeps whipsawing, should I hide it?**
A: Increase Confirmation Bars to 3-4 or switch to Strength-Based filter. Market conditions matter—choppy markets require stricter filters.
**Q: What's the difference between normalized and raw OBV?**
A: Normalized (detrended) shows shorter-term momentum by removing long-term trends. Raw OBV shows absolute accumulation/distribution over the full period. Use normalized for swing signals, raw for trend confirmation.
**Q: My signals come too late. How do I get faster entry?**
A: Reduce Smoothing Length (try 14 instead of 21), use EMA instead of SMA, or set Confirmation Bars to 1. Trade-off: More false signals.
**Q: Can I use this for day trading?**
A: Yes, on 1m-5m charts with aggressive settings. Use Confirmation Bars: 1 and focus on Z-Score > 0.5 entries only.
**Q: Should I trade every signal?**
A: No. Filter signals using: price near support/resistance, multiple indicators confirming, and Z-Score showing momentum. Best signals occur at key levels.
---
## Best Practices
1. **Always confirm with price action:** OBV signals work best when price is near support, resistance, or moving average. Don't trade signals in a vacuum.
2. **Use volume context:** Check if volume is increasing or decreasing on the signal. Strong signals have volume confirmation (increasing volume on OBV spikes).
3. **Adjust settings per timeframe:**
- 1m-5m: Smoothing 12, Confirmation 1, Z-Score 0.2
- 15m-1h: Smoothing 20, Confirmation 2, Z-Score 0.3
- 4h-1d: Smoothing 25, Confirmation 3, Z-Score 0.5
4. **Watch the zero line:** It's your friend. OBV behavior at the zero line reveals trend strength. Bounces = healthy trend. Breaks = reversal.
5. **Risk management:** No indicator is perfect. Use proper position sizing and stop losses. OBV should confirm your thesis, not be the only reason to trade.
6. **Combine with other indicators:**
- Price moving averages for trend confirmation
- RSI or Stochastic for overbought/oversold levels
- Support/resistance for entry/exit zones
- MACD for momentum divergences
---
## Disclaimer
This indicator is for educational and informational purposes only. It is not financial advice. Past performance does not guarantee future results. Always conduct your own research and consult with a financial advisor before making trading decisions. Trading carries risk, including potential loss of principal.
---
## Version History
**Version 1.0** - Initial release with enhanced signal filtering, Z-Score analysis, and customizable parameters.






















