Chaikin MF% (CMFP) w. Alerts, Bells & Whistles [LucF]This is Chaikin’s Money Flow indicator on a 0-100 scale with buy/sell signals, alerts and other bells & whistles.
It includes:
- a fast EMA (16 periods by default),
- a slow MA (64 periods by default),
- histograms,
- 3 different sorts of crosses,
- big swings identification,
- buy/sell signals on CMFP crossing back from outside user-defined levels,
- buy/sell signals on the slow MA pivots above/below user-defined levels,
- alerts on big swings and buy/sells.
This indicator started with @LazyBear code (VAPI) at:
@cI8DH then changed the scale to 0-100, which I find very useful:
I then added the rest.
The chart above shows both clean and busy versions of the indicator.
Note that the default length is 10 rather than the commonly used 20. I use CMFP in conjunction with VFI and like the fact that it is faster than VFI. The default inputs show the way I normally use this indicator, with the slow MA shown in histogram mode. I find it gives good context to the signal line. Crosses between the two are often useful.
The buy/sell signals aren’t the main attraction of this indicator, and nothing to write home about. Like the big swing markers, I think it’s more realistic to view them as pointers to potentially interesting areas on charts. Their nature makes them more suited to identifying reversals. They certainly aren’t reliable enough to turn this study into a strategy and I normally don’t use them. The levels pre-defined for the buy/sell signals on CMFP are most useful on short intervals. The buy/sell signals on the slow MA pivots work on a more complete range of intervals. Optimization for your specific instruments and intervals will improve their reliability.
As usual when defining alerts, be sure you already have defined proper inputs and that you are on the intended interval, as they will be used when triggering alerts.
Pesquisar nos scripts por "马斯克+100万"
3 of SlowStochastics
스토캐스틱 3개를 한번에 볼수 있습니다. 천장과 바닥은 각 100의 위치마다 존재합니다
You can see three slow stochastics at once. The ceiling and floor are located at each 100 (0 - 100 - 200- 300)
Percentage Price Oscillator (PPO)The Percentage Price Oscillator (PPO) is a momentum oscillator that measures the difference between two moving averages as a percentage of the larger moving average. As with its cousin, MACD, the Percentage Price Oscillator is shown with a signal line, a histogram and a centerline. Signals are generated with signal line crossovers, centerline crossovers, and divergences. First, PPO readings are not subject to the price level of the security. Second, PPO readings for different securities can be compared, even when there are large differences in the price.
Calculations
PPO: {(12-day EMA - 26-day EMA)/26-day EMA} x 100
Signal Line: 9-day EMA of PPO
PPO Histogram: PPO - Signal Line
While MACD measures the absolute difference between two moving averages, PPO makes this a relative value by dividing the difference by the slower moving average (26-day EMA). PPO is simply the MACD value divided by the longer moving average. The result is multiplied by 100 to move the decimal place two spots.
Interpretation
As with MACD, the PPO reflects the convergence and divergence of two moving averages. PPO is positive when the shorter moving average is above the longer moving average. The indicator moves further into positive territory as the shorter moving average distances itself from the longer moving average. This reflects strong upside momentum. The PPO is negative when the shorter moving average is below the longer moving average. Negative readings grow when the shorter moving average distances itself from the longer moving average (goes further negative). This reflects strong downside momentum. The histogram represents the difference between PPO and its 9-day EMA, the signal line. The histogram is positive when PPO is above its 9-day EMA and negative when PPO is below its 9-day EMA. The PPO-Histogram can be used to anticipate signal line crossovers in the PPO.
MACD, PPO and Price
MACD levels are affected by the price of a security. A high-priced security will have higher or lower MACD values than a low-priced security, even if volatility is basically equal. This is because MACD is based on the absolute difference in the two moving averages. Because MACD is based on absolute levels, large price changes can affect MACD levels over an extended period of time. If a stock advances from 20 to 100, its MACD levels will be considerably smaller around 20 than around 100. The PPO solves this problem by showing MACD values in percentage terms.
Conclusions
The Percentage Price Oscillator (PPO) generates the same signals as the MACD, but provides an added dimension as a percentage version of MACD. The PPO levels of the Dow Industrials (price > 20K) can be compared against the PPO levels of IBM (price < 200) because the PPO “levels” the playing field. In addition, PPO levels in one security can be compared over extended periods of time, even if the price has doubled or tripled. This is not the case for the MACD.
Limitations
Despite its advantages, the PPO is still not the best oscillator to identify overbought or oversold conditions because movements are unlimited (in theory). Levels for RSI and the Stochastic Oscillator are limited and this makes them better suited to identify overbought and oversold levels.
Source: Stockcharts
Multiple Moving AveragesThis is really simple. But useful for me as I don't have a paid account. No-pro users can only use 3 indicators at once and because I rely heavily on simple moving averages it can be a real pain.
This one indicator features:
20 MA
50 MA
100 MA
200 MA
which I find are the most useful overall. The 20 and 50 over all time frame but in particular < 1 day, the 100 and 200 at > 4 hr time frames. In general I don't use the 100 MA that much. The daily 200 MA is a critical support for many assets like stocks and cryptos. I'm by no means a pro and if you are learning I recommend becoming familiar with moving averages right at the beginning.
If you want to deactivate some of the lines, you can do it via the indicator's settings icon.
Exponential Moving Average (Set of 3) [Krypt] + 13/34 EMAsI took Krypt's script and essentially added on to it.
the 20/50/100/200 EMAs should be used together as support and resistance as normal.
Wait for price to break 200 EMA
Wait for 50 EMA to cross 200 EMA
Wait for pullback to 50 EMA to open position
20 and 100 EMAs are for extra information about moving support and resistance
and 13/34 EMAs should be used in conjunction
When 13 EMA crosses 34 EMA, open position
When price gets far from 13/34, close position (because price will attempt to revert back to mean)
This is better for scalping and swing trades than the 20/50/100/200 setup.
Twitter: @AzorAhai06
Ichimoku Cloud Score v1.0This script calculates a simple Ichimoku Score based on the signals documented here , with a few additions. Each of the score components can be individually weighted via the script inputs . The output is a plot of the normalized Ichimoku score, in the range of -100 to 100.
This script has been heavily modified from 'Ichimoku Cloud Signal Score v2.0.0 '. Credit to user 'dashed' for the initial implementation.
This has been modified with several refinements:
Clean/Organized Code
Simplified Inputs
Improved Style
Scores normalized to a range (-100, 100)
Bugfixes and Improvements
Script Inputs: i.imgur.com
Volume RatioDefinition:
Volume ratio can be obtained in a similar way to RSI.
Volume Ratio (%) = 100 - 100/(1+vr)
The parameter "vr" is defined as
vr=(A+U/2)/(D+U/2)
A=Total volume of the periods when the price advanced
D=Total volume of the periods when the price declined
U=Total volume of the periods when the price unchanged
After substitution, following expression can be derived and the denominator represents total volume of all periods.
Volume Ratio (%) = 100 x (A+U/2)/(A+D+U)
Notes:
A similar method to interpret RSI can be employed.
1) Overbought level over 70% and oversold level under 30%. These levels need to be adjusted according to the periods, time frames and issues.
2) Bullish picture over 50% line and bearish picture under 50% line.
3) Crossing oversold level to the upside can be taken as a confirmation of bullish reversal. - and vice versa for a bearish reversal.
4) After a long-term bearish market, the increase of volume can happen in the early stage of a bullish market.
5) Buying opportunity can be suggested when the volume ratio is declining and the price is either advancing or leveling off.
CCI with Volume Weighted EMA Here is an attempt to improve on the CCI using a volume weighted ema which is then plugged into the CCI formula.
Use:
The CCI with VW EMA is an oscillator that gives readings between -100 and +100. The usual use is to 'go long' with values over +100 and short on values less than -100.
Another use of this oscillator is a countertrend indicator where one sells at crosses under +100 and buys on crosses over -100.
Multi-Functional Fisher Transform MTF with MACDL TRIGGERWhat this indicator gives you is a true signal when price is exhausted and ready for a fast turnaround. Fisher Transform is set for multi-time frame and also allows the user to change the length. This way a user can compare two or more time spans and lengths to look for these MACDL divergent triggers after a Fisher exhaustion. With so many indicators, it's probably best to merge these indicators and change the Fisher and Trigger colors so you can still have a look at price action (remember to scale right after merger). I've noticed from time to time when you have Fisher 34 100 and 300 up and running on two different time frames such as 5 and 15 min charts, with MACDL triggers on the 100/300 or 34/100 you get a high probability trade trigger. However, there are rare exceptions such as when price moves in a parabolic state up or down for a long period where this indication does not work. Ideally this indicator works best in a sideways market or slow rising/descending moving market.
This indicator was worked on by Glaz, nmike and myself
LazyBear also introduced the MACDL indicator
CCI Crossover AlertThis very simple indicator will give you a blue background where the CCI crossed from below -100 to above -100, and a red background where it crossed from above 100 to below 100.
RSI adaptive zones [AdaptiveRSI]This script introduces a unified mathematical framework that auto-scales oversold/overbought and support/resistance zones for any period length. It also adds true RSI candles for spotting intrabar signals.
Built on the Logit RSI foundation, this indicator converts RSI into a statistically normalized space, allowing all RSI lengths to share the same mathematical footing.
What was once based on experience and observation is now grounded in math.
✦ ✦ ✦ ✦ ✦
💡 Example Use Cases
RSI(14): Classic overbought/oversold signals + divergence
Support in an uptrend using RSI(14)
Range breakouts using RSI(21)
Short-term pullbacks using RSI(5)
✦ ✦ ✦ ✦ ✦
THE PAST: RSI Interpretation Required Multiple Rulebooks
Over decades, RSI practitioners discovered that RSI behaves differently depending on trend and lookback length:
• In uptrends, RSI tends to hold higher support zones (40–50)
• In downtrends, RSI tends to resist below 50–60
• Short RSIs (e.g., RSI(2)) require far more extreme threshold values
• Longer RSIs cluster near the center and rarely reach 70/30
These observations were correct — but lacked a unifying mathematical explanation.
✦ ✦ ✦ ✦ ✦
THE PRESENT: One Framework Handles RSI(2) to RSI(200)
Instead of using fixed thresholds (70/30, 90/10, etc.), this indicator maps RSI into a normalized statistical space using:
• The Logit transformation to remove 0–100 scale distortion
• A universal scaling based on 2/√(n−1) scaling factor to equalize distribution shapes
As a result, RSI values become directly comparable across all lookback periods.
✦ ✦ ✦ ✦ ✦
💡 How the Adaptive Zones Are Calculated
The adaptive framework defines RSI zones as statistical regimes derived from the Logit-transformed RSI .
Each boundary corresponds to a standard deviation (σ) threshold, scaled by 2/√(n−1), making RSI distributions comparable across periods.
This structure was inspired by Nassim Nicholas Taleb’s body–shoulders–tails regime model:
Body (±0.66σ) — consolidation / equilibrium
Shoulders (±1σ to ±2.14σ) — trending region
Tails (outside of ±2.14σ) — rare, high-volatility behavior
Transitions between these regimes are defined by the derivatives of the position (CDF) function :
• ±1σ → shift from consolidation to trend
• ±√3σ → shift from trend to exhaustion
Adaptive Zone Summary
Consolidation: −0.66σ to +0.66σ
Support/Resistance: ±0.66σ to ±1σ
Uptrend/Downtrend: ±1σ to ±√3σ
Overbought/Oversold: ±√3σ to ±2.14σ
Tails: outside of ±2.14σ
✦ ✦ ✦ ✦ ✦
📌 Inverse Transformation: From σ-Space Back to RSI
A final step is required to return these statistically normalized boundaries back into the familiar 0–100 RSI scale. Because the Logit transform maps RSI into an unbounded real-number domain, the inverse operation uses the hyperbolic tangent function to compress σ-space back into the bounded RSI range.
RSI(n) = 50 + 50 · tanh(z / √(n − 1))
The result is a smooth, mathematically consistent conversion where the same statistical thresholds maintain identical meaning across all RSI lengths, while still expressing themselves as intuitive RSI values traders already understand.
✦ ✦ ✦ ✦ ✦
Key Features
Mathematically derived adaptive zones for any RSI period
Support/resistance zone identification for trend-aligned reversals
Optional OHLC RSI bars/candles for intrabar zone interactions
Fully customizable zone visibility and colors
Statistically consistent interpretation across all markets and timeframes
Inputs
RSI Length — core parameter controlling zone scaling
RSI Display : Line / Bar / Candle visualization modes
✦ ✦ ✦ ✦ ✦
💡 How to Use
This indicator is a framework , not a binary signal generator.
Start by defining the question you want answered, e.g.:
• Where is the breakout?
• Is price overextended or still trending?
• Is the correction ending, or is trend reversing?
Then:
Choose the RSI length that matches your timeframe
Observe which adaptive zone price is interacting with
Interpret market behavior accordingly
Example: Long-Term Trend Assesment using RSI(200)
A trader may ask: "Is this a long term top?"
Unlikely, because RSI(200) holds above Resistance zone , therefore the trend remains strong.
✦ ✦ ✦ ✦ ✦
👉 Practical tip:
If you used to overlay weekly RSI(14) on a daily chart (getting a line that waits 5 sessions to recalculate), you can now read the same long-horizon state continuously : set RSI(70) on the daily chart (~14 weeks × 5 days/week = 70 days) and let the adaptive zones update every bar .
Note: It won’t be numerically identical to the weekly RSI due to lookback period used, but it tracks the same regime on a standardized scale with bar-by-bar updates.
✦ ✦ ✦ ✦ ✦
Note: This framework describes statistical structure, not prediction. Use as part of a complete trading approach. Past behavior does not guarantee future outcomes.
framework ≠ guaranteed signal
---
Attribution & License
This indicator incorporates:
• Logit transformation of RSI
• Variance scaling using 2/√(n−1)
• Zone placement derived from Taleb’s body–shoulders–tails regime model and CDF derivatives
• Inverse TANH(z) transform for mapping z-scores back into bounded RSI space
Released under CC BY-NC-SA 4.0 — free for non-commercial use with credit.
© AdaptiveRSI
DarkPool's Dashboard v2 DarkPool's Dashboard v2 is a comprehensive "Heads-Up Display" (HUD) designed to aggregate critical market data into a single, customizable table overlaid on the price chart. Its primary goal is to declutter the trading workspace by removing the need for multiple separate indicator panes (like RSI, MACD, and Volume below the chart).
The core of the system is a composite Momentum Score, which calculates a value between -100 and +100 based on a weighted average of RSI, MACD, Stochastic, and Rate of Change (ROC). This score drives the main "Signal" output (e.g., STRONG BUY, HOLD, SELL). Additionally, the dashboard integrates a suite of volume analysis tools—including VWAP, OBV, and Volume Delta—alongside volatility and trend filters to provide a complete market health check at a glance.
Key Features
Composite Momentum Score: A unified metric combining four oscillators to gauge the true strength of the move.
Volume Intelligence: Monitors Relative Volume (RVOL), On-Balance Volume (OBV), Volume Delta, and VWAP status.
Trend & Filter Engine: Visualizes trend direction using EMAs and filters signals based on Volatility (ATR) and Trend Strength (EMA Separation).
Dynamic UI: A fully scalable and customizable table that can be positioned anywhere on the screen, with options to toggle specific data rows on or off.
Alert System: Integrated alerts for Volume Spikes, Divergences, and VWAP crossovers.
How to Use
1. Reading the Main Signal The top rows of the dashboard provide the immediate trade bias:
Signal: Displays text such as "STRONG BUY," "BUY," "HOLD," "SELL," or "STRONG SELL."
Momentum Score: A numeric value next to the signal.
> 50: Strong Bullish Momentum.
20 to 50: Moderate Bullish Momentum.
-20 to 20: Neutral / Hold (Chop).
<-20: Bearish Momentum.
2. Volume Analysis
Volume Bar: Visualizes the current volume relative to the Moving Average.
Spike: If the bar turns Orange/Yellow, a Volume Spike (default 2x average) has occurred.
VWAP: Indicates if the price is trading "Above" or "Below" the Volume Weighted Average Price.
Money Flow (MFI): Checks for institutional buying/selling pressure. "OB" means Overbought, "OS" means Oversold.
3. Trend & Volatility
Trend: Shows "UP" or "DOWN" based on Fast/Slow EMA crossovers.
Volatility: Measures the daily range. "HIGH" volatility suggests expansion, while "LOW" suggests compression (potential breakout pending).
4. Filtering Bad Signals The dashboard includes an "ATR Filter" and "Trend Confirmation" logic.
If the market is moving sideways (low ATR), the dashboard may default to "HOLD" or "NEUTRAL" even if oscillators are crossing, preventing false entries during consolidation.
Configuration Settings
Dashboard Settings
Table Position/Width/Scale: adjust the size and location of the table to fit your screen resolution (e.g., increase scale for 4K monitors).
Colors/Transparency: Customize the background and text colors to match your chart theme.
Indicator Settings
Oscillators: Adjust lengths for RSI, MACD, and Stochastic to tune sensitivity.
Volume: Enable or disable specific volume metrics like OBV or Delta.
Display Options: You can toggle specific rows off (e.g., turn off "ADX" or "SMA" if you do not use them) to compact the table.
Filter Settings
Enable ATR Filter: Toggles volatility filtering.
Trend Confirmation Bars: How many bars the trend must persist before the dashboard flips its bias (helps avoid fake-outs).
Disclaimer This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a guarantee of future results. Trading cryptocurrencies and financial markets involves a high level of risk. Always perform your own due diligence before making any trading decisions.
لbsm15// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("لbsm15", overlay = true, max_lines_count = 500, max_boxes_count = 500, max_bars_back = 3000)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
liqGrp = 'Liquidity Detection'
liqLen = input.int (7, title = 'Detection Length', minval = 3, maxval = 13, inline = 'LIQ', group = liqGrp)
liqMar = 10 / input.float (6.9, 'Margin', minval = 4, maxval = 9, step = 0.1, inline = 'LIQ', group = liqGrp)
liqBuy = input.bool (true, 'Buyside Liquidity Zones, Margin', inline = 'Buyside', group = liqGrp)
marBuy = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Buyside', group = liqGrp)
cLIQ_B = input.color (color.new(#4caf50, 0), '', inline = 'Buyside', group = liqGrp)
liqSel = input.bool (true, 'Sellside Liquidity Zones, Margin', inline = 'Sellside', group = liqGrp)
marSel = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Sellside', group = liqGrp)
cLIQ_S = input.color (color.new(#f23645, 0), '', inline = 'Sellside', group = liqGrp)
lqVoid = input.bool (false, 'Liquidity Voids, Bullish', inline = 'void', group = liqGrp)
cLQV_B = input.color (color.new(#4caf50, 0), '', inline = 'void', group = liqGrp)
cLQV_S = input.color (color.new(#f23645, 0), 'Bearish', inline = 'void', group = liqGrp)
lqText = input.bool (false, 'Label', inline = 'void', group = liqGrp)
mode = input.string('Present', title = 'Mode', options = , inline = 'MOD', group = liqGrp)
visLiq = input.int (3, ' # Visible Levels', minval = 1, maxval = 50, inline = 'MOD', group = liqGrp)
//-----------------------------------------------------------------------------}
//General Calculations
//-----------------------------------------------------------------------------{
maxSize = 50
atr = ta.atr(10)
atr200 = ta.atr(200)
per = mode == 'Present' ? last_bar_index - bar_index <= 500 : true
//-----------------------------------------------------------------------------}
//User Defined Types
//-----------------------------------------------------------------------------{
// @type used to store pivot high/low data
//
// @field d (array) The array where the trend direction is to be maintained
// @field x (array) The array where the bar index value of pivot high/low is to be maintained
// @field y (array) The array where the price value of pivot high/low is to be maintained
type ZZ
int d
int x
float y
// @type bar properties with their values
//
// @field o (float) open price of the bar
// @field h (float) high price of the bar
// @field l (float) low price of the bar
// @field c (float) close price of the bar
// @field i (int) index of the bar
type bar
float o = open
float h = high
float l = low
float c = close
int i = bar_index
// @type liquidity object definition
//
// @field bx (box) box maitaing the liquity level margin extreme levels
// @field bxz (box) box maitaing the liquity zone margin extreme levels
// @field bxt (box) box maitaing the labels
// @field brZ (bool) mainains broken zone status
// @field brL (bool) mainains broken level status
// @field ln (line) maitaing the liquity level line
// @field lne (line) maitaing the liquity extended level line
type liq
box bx
box bxz
box bxt
bool brZ
bool brL
line ln
line lne
//-----------------------------------------------------------------------------}
//Variables
//-----------------------------------------------------------------------------{
var ZZ aZZ = ZZ.new(
array.new (maxSize, 0),
array.new (maxSize, 0),
array.new (maxSize, na)
)
bar b = bar.new()
var liq b_liq_B = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var liq b_liq_S = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var b_liq_V = array.new_box()
var int dir = na, var int x1 = na, var float y1 = na, var int x2 = na, var float y2 = na
//-----------------------------------------------------------------------------}
//Functions/methods
//-----------------------------------------------------------------------------{
// @function maintains arrays
// it prepends a `value` to the arrays and removes their oldest element at last position
// @param aZZ (UDT, array, array>) The UDT obejct of arrays
// @param _d (array) The array where the trend direction is maintained
// @param _x (array) The array where the bar index value of pivot high/low is maintained
// @param _y (array) The array where the price value of pivot high/low is maintained
//
// @returns none
method in_out(ZZ aZZ, int _d, int _x, float _y) =>
aZZ.d.unshift(_d), aZZ.x.unshift(_x), aZZ.y.unshift(_y), aZZ.d.pop(), aZZ.x.pop(), aZZ.y.pop()
// @function (build-in) sets the maximum number of bars that is available for historical reference
max_bars_back(time, 1000)
//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
x2 := b.i - 1
ph = ta.pivothigh(liqLen, 1)
pl = ta.pivotlow (liqLen, 1)
if ph
dir := aZZ.d.get(0)
x1 := aZZ.x.get(0)
y1 := aZZ.y.get(0)
y2 := nz(b.h )
if dir < 1
aZZ.in_out(1, x2, y2)
else
if dir == 1 and ph > y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == 1
if aZZ.y.get(i) > ph + (atr / liqMar)
break
else
if aZZ.y.get(i) > ph - (atr / liqMar) and aZZ.y.get(i) < ph + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_B.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_B.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor = color(na), border_color = color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Buyside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_bottom, text_color = color.new(cLIQ_B, 25), bgcolor = color(na), border_color = color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_B, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_B, 0), style = line.style_dotted))
)
alert('buyside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_B.size() > visLiq
getLast = b_liq_B.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
if pl
dir := aZZ.d.get (0)
x1 := aZZ.x.get (0)
y1 := aZZ.y.get (0)
y2 := nz(b.l )
if dir > -1
aZZ.in_out(-1, x2, y2)
else
if dir == -1 and pl < y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == -1
if aZZ.y.get(i) < pl - (atr / liqMar)
break
else
if aZZ.y.get(i) > pl - (atr / liqMar) and aZZ.y.get(i) < pl + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_S.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_S.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor=color(na), border_color=color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Sellside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_top, text_color = color.new(cLIQ_S, 25), bgcolor=color(na), border_color=color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_S, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_S, 0), style = line.style_dotted))
)
alert('sellside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_S.size() > visLiq
getLast = b_liq_S.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
for i = 0 to b_liq_B.size() - 1
x = b_liq_B.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.h > x.bx.get_top()
x.brL := true
x.brZ := true
alert('buyside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, math.min(x.ln.get_y1() + marBuy * (atr), b.h))
x.bxz.set_rightbottom(b.i + 1, x.ln.get_y1())
x.bxz.set_bgcolor(color.new(cLIQ_B, liqBuy ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marBuy * (atr) and b.h < x.ln.get_y1() + marBuy * (atr)
x.bxz.set_right(b.i + 1)
x.bxz.set_top(math.max(b.h, x.bxz.get_top()))
if liqBuy
x.lne.set_x2(b.i + 1)
else
x.brZ := false
for i = 0 to b_liq_S.size() - 1
x = b_liq_S.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.l < x.bx.get_bottom()
x.brL := true
x.brZ := true
alert('sellside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, x.ln.get_y1())
x.bxz.set_rightbottom(b.i + 1, math.max(x.ln.get_y1() - marSel * (atr), b.l))
x.bxz.set_bgcolor(color.new(cLIQ_S, liqSel ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marSel * (atr) and b.h < x.ln.get_y1() + marSel * (atr)
x.bxz.set_rightbottom(b.i + 1, math.min(b.l, x.bxz.get_bottom()))
if liqSel
x.lne.set_x2(b.i + 1)
else
x.brZ := false
if lqVoid and per
bull = b.l - b.h > atr200 and b.l > b.h and b.c > b.h
bear = b.l - b.h > atr200 and b.h < b.l and b.c < b.l
if bull
l = 13
if bull
st = math.abs(b.l - b.l ) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.l + i * st, b.i, b.l + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
st = math.abs(b.l - b.h ) / l
for i = 0 to l - 1
if lqText and i == 0
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_bottom, text_color = na, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
if bear
l = 13
if bear
st = math.abs(b.h - b.h) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
st = math.abs(b.l - b.h) / l
for i = 0 to l - 1
if lqText and i == l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_top, text_color = na, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
if b_liq_V.size() > 0
qt = b_liq_V.size()
for bn = qt - 1 to 0
if bn < b_liq_V.size()
cb = b_liq_V.get(bn)
ba = math.avg(cb.get_bottom(), cb.get_top())
if math.sign(b.c - ba) != math.sign(b.c - ba) or math.sign(b.c - ba) != math.sign(b.l - ba) or math.sign(b.c - ba) != math.sign(b.h - ba)
b_liq_V.remove(bn)
else
cb.set_right(b.i + 1)
if b.i - cb.get_left() > 21
cb.set_text_color(color.new(color.gray, 25))
//-----------------------------------------------------------------------------}
🤖 DarkPool's Omni-MA APEX v3 🤖DarkPool's Omni-MA APEX v3 is an all-encompassing technical analysis suite designed to replace multiple indicators with a single, highly optimized tool. At its core, it features five independently customizable "Omni-MAs" capable of running various calculation models (SMA, EMA, HMA, LSMA, etc.) across multiple timeframes.
Beyond standard trend lines, the APEX v3 integrates a sophisticated "Market Structure Engine" that automatically plots Support & Resistance zones based on pivot points and volatility (ATR). It also features a "Trend Cloud" to visualize macro sentiment and a professional-grade Dashboard that aggregates data from over 10 different sources (RSI, MACD, OBV, Volume, etc.) to provide a real-time health check of the asset.
Key Features
5-Layer Omni-MA System: Five distinct moving averages with "Smart Coloring" that detects trends, consolidations (flat markets), and reversals.
Auto Support & Resistance: A dynamic algorithm that draws, updates, and prunes liquidity zones on the chart automatically.
Macro Trend Cloud: A visual background fill comparing Daily and Weekly momentum to keep you aligned with the higher timeframe.
Data Dashboard: A customizable panel displaying real-time metrics for Momentum, Volume, RSI, Divergences, and VWAP status.
Signal Generator: Alerts for MA crossovers, S/R breakouts, and trend shifts.
How to Use
1. The Omni-MAs (The Lines) The indicator plots up to five lines, color-coded for instant trend recognition:
Green/Blue: Price is above the previous value (Uptrend).
Red/Maroon: Price is below the previous value (Downtrend).
Gray: The line is flat (Consolidation/Chop).
MA 1-2 (Fast): Use these for entry triggers and scalping.
MA 3 (Medium): The "Anchor" line, often used as dynamic support.
MA 4-5 (Slow): The macro trend filters. If price is below MA 5, looking for longs is risky.
2. The Trend Cloud
Background Fill: This visualizes the difference between the Daily EMA and Weekly EMA.
Green Cloud: The Daily trend is above the Weekly trend (Strong Bullish Market).
Red Cloud: The Daily trend is below the Weekly trend (Strong Bearish Market).
3. Support & Resistance Zones
The Boxes: The script identifies pivot points and projects them forward as boxes.
Strategy: Watch for price to react at these zones. If a candle closes through a zone, it signals a Breakout (Green triangle) or Breakdown (Red triangle).
4. The Dashboard Located in the corner of your chart, this table provides a "Cockpit View" of the market:
Momentum Score: A composite score (-100 to +100) derived from RSI, MACD, and Stochastic.
Vol Ratio: Compares current volume to the average. A green bar indicates volume is higher than usual.
Market State: Classifies the market into regimes like "Volatile Bull," "Quiet Bear," or "Ranging."
Configuration Settings
Dashboard UI
Compact Mode: Reduces the table to show only the final Buy/Sell signal.
Active Widgets: Toggle individual data points (e.g., turn off "OBV" or "ADX" if you don't use them) to save screen space.
Global Analysis (Strategy Engine)
ATR Filter: Filters out "Weak" trends. If the price movement is too small (low volatility), signals are suppressed.
Volume MA: Sets the lookback period for calculating relative volume.
Support & Resistance
Pivot Sensitivity: Lower numbers find more zones (more noise); higher numbers find fewer, stronger zones.
Zone Width: Multiplies the ATR to determine how thick the S/R boxes should be.
MA Settings (1-5)
Type: Choose from SMA, EMA, WMA, HMA (Hull), VWMA, LSMA, ALMA, and more.
Timeframe: You can set MA 5 to "D" (Daily) while trading on a 15-minute chart to see the daily trend line overlaid.
Disclaimer This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a guarantee of future results.
💀 DarkPool's Moving Averages 💀DarkPool's Moving Averages is a consolidated trend analysis tool that allows traders to plot up to five distinct moving averages (MAs) within a single indicator pane. This script is designed to declutter trading charts by replacing multiple individual indicator instances with one comprehensive solution.
Beyond standard plotting, the indicator features Multi-Timeframe (MTF) capabilities, allowing users to overlay higher-timeframe trends (e.g., Daily or Weekly averages) onto lower-timeframe charts (e.g., 5-minute or 1-hour). It also utilizes dynamic color-coding to visually indicate instantaneous trend direction based on the slope of the moving average.
Key Features
5-in-1 Architecture: Configure and toggle up to five independent moving averages simultaneously.
Multi-Timeframe (MTF) Support: Calculate moving averages based on timeframes different from the current chart (e.g., view a 200-day EMA while trading on a 15-minute chart).
Dynamic Trend Coloring: Lines automatically change color based on their slope (rising vs. falling) to provide immediate visual trend confirmation.
Versatile Calculation Models: Supports major averaging methods including SMA, EMA, WMA, RMA, VWMA, and HMA.
How to Use
1. Trend Identification The primary use of this tool is to identify the market trend direction at a glance.
Bullish Trend: When the Moving Average line is colored in the "Bullish Color" (default: dark/green tones) and sloping upward.
Bearish Trend: When the Moving Average line is colored in the "Bearish Color" (default: light/red tones) and sloping downward.
2. Dynamic Support and Resistance Traders can use specific lengths (e.g., 50, 100, 200) to identify dynamic support and resistance levels.
Entry: In an uptrend, price retracing to a rising MA often presents a buying opportunity.
Exit: In a downtrend, price rallying to a falling MA often presents a selling opportunity.
3. The "Ribbon" Effect By enabling multiple MAs with sequential lengths (e.g., 10, 20, 50, 100, 200), traders can visualize the strength of the trend.
Expansion: When the lines spread apart, the trend is strengthening.
Contraction/Crossover: When the lines converge or cross, the trend is weakening or consolidating.
4. Multi-Timeframe Analysis Use the "Timeframe" input in the General Settings to lock the calculations to a specific period.
Example: Set the Timeframe to "D" (Daily) and the Length to 200. You can now drop down to a 5-minute chart, and the indicator will still display the significant 200-Day Moving Average, acting as a major anchor for intraday price action.
Configuration Guide
General Settings
Timeframe: Determines the data source for all MAs. Leave at default to use the current chart's timeframe, or select a specific higher timeframe for macro analysis.
Price Source: Selects the data point used for calculation (Close, Open, High, Low, etc.).
Moving Average Configurations (MA1 - MA5) Each of the five slots allows for individual customization:
Enable: Toggle the visibility of the specific MA.
Type: Select the calculation method.
SMA: Simple Moving Average (Standard).
EMA: Exponential Moving Average (Weight on recent data).
HMA: Hull Moving Average (Reduced lag).
VWMA: Volume Weighted Moving Average.
WMA/RMA: Weighted and Rolling Moving Averages.
Note: While many types are listed, the script explicitly calculates the types listed above; others may default to standard SMA behavior.
Length: The lookback period (e.g., 20, 50, 200).
Colors (Bull/Bear): Customize the colors used when the line is rising versus falling.
Line Style: Choose between Solid, Dashed, or Dotted lines to differentiate between the five MAs.
Disclaimer: This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a guarantee of future results.
🔥 DarkPool's Fear & Greed v4 🔥DarkPool Fear & Greed v4 is a composite sentiment indicator designed to gauge market psychology in real-time. Unlike standard oscillators that rely on a single metric, this tool aggregates data from four distinct technical sources—RSI, MACD, Bollinger Bands, and Moving Averages—to create a unified "Index Score" ranging from 0 to 100.
Beyond general sentiment, the script employs custom algorithms to detect specific market anomalies, including sustainable buying pressure (FOMO), capitulation events (Panic), and trend reversals (Divergences).
Key Features
Composite Index: A weighted average of Momentum, Trend, Volatility, and Price Location.
Anomaly Detection: Specialized logic to flag high-momentum "FOMO" events and high-volatility "Panic" drops.
Divergences: Automatically spots bearish and bullish discrepancies between the sentiment index and price action.
Live Dashboard: A real-time data table displaying current sentiment zones, intensity scores, and volume ratios.
How to Use
1. The Fear & Greed Index The main oscillator line moves between 0 and 100 to visualize market sentiment:
0-20 (Extreme Fear): Deeply oversold; potential capitulation or buying opportunity.
20-40 (Fear): General bearish sentiment.
40-60 (Neutral): Indecisive market.
60-80 (Greed): General bullish sentiment.
80-100 (Extreme Greed): Overbought conditions; potential for a pullback.
2. Visual Signals
FOMO (Triangle Up): Marks candles with excessive buying volume and RSI momentum.
Panic (Triangle Down): Marks candles with sharp percentage drops and volatility spikes.
Divergences (Circles): distinct markers appear when price action contradicts the sentiment index, often signaling a reversal.
3. The Dashboard Located on the chart, the dashboard provides a snapshot of the current market state, including the specific "Intensity" of FOMO or Panic events and a Volume-to-MA ratio to gauge participation.
4. Alerts The script is fully integrated with the alert system. You can set alerts for "Any alert() function call" to receive dynamic notifications for FOMO detections, Panic drops, Extreme Zone entries, and confirmed Divergences.
Disclaimer This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a guarantee of future results.
Advanced FVG Detector Pro📊 Advanced FVG Detector Pro - Smart Money Analysis Tool
Overview
The Advanced FVG Detector Pro is a sophisticated Pine Script v6 indicator designed to identify and track Fair Value Gaps (FVGs) with institutional-grade precision. This tool goes beyond basic gap detection by incorporating volume analysis, smart money scoring, and adaptive filtering to help traders identify high-probability trading opportunities.
What are Fair Value Gaps?
Fair Value Gaps (FVGs) are price inefficiencies that occur when the market moves so quickly that it leaves behind an imbalance or "gap" in price action. These gaps often act as magnets for future price movement as the market seeks to fill these inefficiencies. Professional traders and institutions closely monitor FVGs as they represent areas of potential support, resistance, and high-probability trade setups.
🎯 Key Features
1. Smart Money Scoring System
Proprietary algorithm that rates each FVG on a 0-100 scale Combines gap size, volume strength, price location, and trend alignment Filter out low-quality setups by setting minimum score thresholdsFocus on institutional-grade opportunities with scores above 70
2. Advanced Volume Validation
Validates FVGs with volume analysis to reduce false signals Only displays gaps formed during significant volume periods Customizable volume multiplier for different market conditions
Visual volume strength indicators on chart
3. Flexible Mitigation Options
Full Fill: Traditional complete gap closure Midpoint Touch: More aggressive entry strategy
Partial Fill: Customizable percentage-based mitigation (10-90%) Choose the strategy that matches your trading style
4. ATR-Based Adaptive Filtering
Automatically adjusts to market volatility using Average True Range Works consistently across any instrument, timeframe, or volatility regime No manual recalibration needed when switching markets Filters out noise while capturing meaningful gaps
5. Real-Time Statistics Dashboard
Live tracking of total active FVGs Bullish vs Bearish gap count Mitigation rate percentage
Average Smart Money Score Toggle on/off based on preference
6. Professional Visual Design
Clean, customizable color schemes Optional midline display for precise entry planning
Labels showing gap type, score, and volume strength Automatic extension of active gaps
Mitigated gaps change color for easy identification
📈 How to Use
For Day Traders:
Use 5-15 minute timeframes
Set ATR Multiplier to 0.15-0.25
Enable volume validation
Focus on FVGs with scores above 65
For Swing Traders:
Use 1H-4H timeframes
Set ATR Multiplier to 0.5-1.0
Use "Midpoint Touch" mitigation
Focus on FVGs with scores above 70
For Position Traders:
Use Daily timeframe
Set ATR Multiplier to 0.75-1.5
Use "Full Fill" mitigation
Focus on FVGs with scores above 75
🔧 Customization Options
Detection Settings:
Minimum FVG size percentage filter
ATR-based size filtering
Maximum number of gaps to display
Smart Money Score minimum threshold
Volume Analysis:
Volume validation toggle
Volume multiplier adjustment
Volume moving average period
Visual volume strength background
Mitigation Control:
Choose mitigation type (Full/Midpoint/Partial)
Set partial fill percentage
Auto-remove mitigated gaps
Control how long mitigated gaps remain visible
Visual Customization:
Bullish/Bearish/Mitigated colors
Show/hide midlines
Show/hide labels
Box extension length
Statistics dashboard toggle
🎓 Trading Strategy Ideas
1. FVG Retest Strategy
Wait for price to create a high-score FVG (70+)
Enter on the first retest of the gap
Place stop loss beyond the gap
Target the opposite side of the gap or next FVG
2. Confluence Trading
Combine FVGs with support/resistance levels
Look for FVGs near key moving averages (20/50 EMA)
Higher probability when FVG aligns with trendlines
Use multiple timeframe analysis
3. Breakout Confirmation
FVGs often form during strong breakouts
High-volume FVGs confirm breakout strength
Enter on mitigation of breakout FVG
Trail stops as new FVGs form in trend direction
⚡ Performance Optimizations
Efficient memory management for smooth chart performance
Optimized calculations run only once per bar
Smart array management prevents memory leaks
Works smoothly even with 100+ active FVGs
🔔 Alert System
Customizable alerts for new bullish FVGs
Customizable alerts for new bearish FVGs
Mitigation alerts for active gaps
Frequency control to avoid alert spam
💡 Pro Tips
Multi-Timeframe Approach: Identify major FVGs on higher timeframes (Daily/4H) and use lower timeframes (15M/5M) for precise entries
Volume Confirmation: The highest probability setups occur when FVGs form with 2x+ average volume
Trend Alignment: Trade FVGs in the direction of the major trend for best results
Patience Pays: Wait for price to return to the FVG rather than chasing breakouts
Risk Management: Always use stop losses beyond the FVG boundaries
📚 Educational Value
This indicator is perfect for:
Learning to identify institutional order flow
Understanding market microstructure
Developing price action trading skills
Recognizing supply and demand imbalances
Improving entry and exit timing
⚠️ Disclaimer
This indicator is a tool for technical analysis and should not be used as the sole basis for trading decisions. Always combine with proper risk management, fundamental analysis, and your own trading plan. Past performance does not guarantee future results.
🔄 Updates & Support
Regular updates will include:
Additional filtering options
Enhanced multi-timeframe analysis
More customization features
Performance improvements
📊 Best Pairs/Markets
Works excellently on:
Forex pairs (EUR/USD, GBP/USD, etc.)
Cryptocurrency (BTC, ETH, etc.)
Stock indices (SPX, NQ, etc.)
Individual stocks
Commodities (Gold, Oil, etc.)
Version Information
Version: 1.0
Pine Script: Version 6
Type: Overlay Indicator
Max Boxes: 500
Max Lines: 500
My script//@version=5
indicator("LTF Multi-Condition BUY Signal (v5 clean)", overlay=true, max_labels_count=100, max_lines_count=100)
// ───────────────── INPUTS ─────────────────
pivot_len = input.int(4, "Pivot sensitivity (structure)", minval=2, maxval=12)
range_len = input.int(20, "Range lookback for breakout", minval=5)
htf_tf = input.timeframe("480", "HTF timeframe (8H+)")
reclaim_window = input.int(5, "Reclaim window (bars)", minval=1)
ema_fast_len = input.int(9, "EMA fast length")
ema_slow_len = input.int(21, "EMA slow length")
rsi_len = input.int(14, "RSI length")
rsi_pivot_len = input.int(4, "RSI pivot sensitivity")
rsi_div_lookback = input.int(30, "RSI divergence max lookback (bars)")
daily_vol_mult = input.float(1.0, "Daily volume vs SMA multiplier", step=0.1)
htf_vol_sma_len = input.int(20, "HTF volume SMA length")
require_reclaim = input.bool(true, "Require HTF reclaim")
use_aggressive_HL = input.bool(false, "Aggressive HL detection")
// ───────────────── BASE INDICATORS ─────────────────
emaFast = ta.ema(close, ema_fast_len)
emaSlow = ta.ema(close, ema_slow_len)
rsiVal = ta.rsi(close, rsi_len)
// ───────────────── DAILY CHECKS (VOLUME & OBV) ─────────────────
// Daily OBV and previous value
daily_obv = request.security(syminfo.tickerid, "D",
ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0))
daily_obv_prev = request.security(syminfo.tickerid, "D",
ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0) )
// Daily volume & SMA
daily_vol = request.security(syminfo.tickerid, "D", volume)
daily_vol_sma = request.security(syminfo.tickerid, "D", ta.sma(volume, 20))
daily_vol_ok = not na(daily_vol) and not na(daily_vol_sma) and daily_vol > daily_vol_sma * daily_vol_mult
daily_obv_ok = not na(daily_obv) and not na(daily_obv_prev) and daily_obv > daily_obv_prev
// ───────────────── HTF SUPPORT / RECLAIM ─────────────────
htf_high = request.security(syminfo.tickerid, htf_tf, high)
htf_low = request.security(syminfo.tickerid, htf_tf, low)
htf_close = request.security(syminfo.tickerid, htf_tf, close)
htf_volume = request.security(syminfo.tickerid, htf_tf, volume)
htf_vol_sma = request.security(syminfo.tickerid, htf_tf, ta.sma(volume, htf_vol_sma_len))
htf_bull_reject = not na(htf_high) and not na(htf_low) and not na(htf_close) and (htf_close - htf_low) > (htf_high - htf_close)
htf_vol_confirm = not na(htf_volume) and not na(htf_vol_sma) and htf_volume > htf_vol_sma
htf_support_level = (htf_bull_reject and htf_vol_confirm) ? htf_low : na
// Reclaim: LTF close back above HTF support within N bars
reclaimed_now = not na(htf_support_level) and close > htf_support_level and ta.barssince(close <= htf_support_level) <= reclaim_window
htf_reclaim_ok = require_reclaim ? reclaimed_now : true
// ───────────────── STRUCTURE: BOS & HL (CoC) ─────────────────
swingHighVal = ta.pivothigh(high, pivot_len, pivot_len)
swingLowVal = ta.pivotlow(low, pivot_len, pivot_len)
swingHighCond = not na(swingHighVal)
swingLowCond = not na(swingLowVal)
lastSwingHigh = ta.valuewhen(swingHighCond, swingHighVal, 0)
prevSwingHigh = ta.valuewhen(swingHighCond, swingHighVal, 1)
lastSwingLow = ta.valuewhen(swingLowCond, swingLowVal, 0)
prevSwingLow = ta.valuewhen(swingLowCond, swingLowVal, 1)
bos_bull = not na(prevSwingHigh) and close > prevSwingHigh
hl_confirm = not na(lastSwingLow) and not na(prevSwingLow) and lastSwingLow > prevSwingLow and ta.barssince(swingLowCond) <= 30
if use_aggressive_HL
hl_confirm := hl_confirm or (low > low and ta.barssince(swingLowCond) <= 12)
// ───────────────── RSI BULLISH DIVERGENCE ─────────────────
rsiLowVal = ta.pivotlow(rsiVal, rsi_pivot_len, rsi_pivot_len)
rsiLowCond = not na(rsiLowVal)
priceAtRsiLowA = ta.valuewhen(rsiLowCond, low , 0)
priceAtRsiLowB = ta.valuewhen(rsiLowCond, low , 1)
rsiLowA = ta.valuewhen(rsiLowCond, rsiVal , 0)
rsiLowB = ta.valuewhen(rsiLowCond, rsiVal , 1)
rsi_div_ok = not na(priceAtRsiLowA) and not na(priceAtRsiLowB) and not na(rsiLowA) and not na(rsiLowB) and
(priceAtRsiLowA < priceAtRsiLowB) and (rsiLowA > rsiLowB) and ta.barssince(rsiLowCond) <= rsi_div_lookback
// ───────────────── RANGE BREAKOUT ─────────────────
range_high = ta.highest(high, range_len)
range_breakout = ta.crossover(close, range_high)
// ───────────────── EMA CROSS / TREND ─────────────────
ema_cross_happened = ta.crossover(emaFast, emaSlow)
ema_trend_ok = emaFast > emaSlow
// ───────────────── FINAL BUY CONDITION ─────────────────
all_price_checks = bos_bull and hl_confirm and rsi_div_ok and range_breakout
all_filter_checks = ema_trend_ok and ema_cross_happened and daily_vol_ok and daily_obv_ok and htf_reclaim_ok
buy_condition = all_price_checks and all_filter_checks
// ───────────────── PLOTS & ALERT ─────────────────
plotshape(
buy_condition,
title = "BUY Signal",
location = location.belowbar,
style = shape.labelup,
text = "BUY",
textcolor = color.white,
color = color.green,
size = size.small)
plot(htf_support_level, title="HTF Support", color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr)
alertcondition(buy_condition, title="LTF BUY Signal", message="LTF BUY Signal on {{ticker}} ({{interval}}) — all conditions met")
Thirdeyechart Gold Simulation Final 3The Thirdeyechart Gold Simulation Final Version 3 is the ultimate indicator for traders who want a comprehensive, real-time view of gold market dynamics across multiple XAU pairs. This version tracks 8 gold-related pairs simultaneously (XAUUSD, XAUJPY, XAUGBP, XAUEUR, XAUAUD, XAUCHF, XAUCAD, XAUNZD) and provides a consolidated visual table for weekly, daily, 4-hour, and 1-hour percentage changes.
Core Features
Multi-Timeframe Trend Analysis – Calculates percent change for each XAU pair across W, D, H4, H1 using:
pct_tf = ((close_tf - open_tf) / open_tf) * 100
Positive values are colored blue, negative values red, giving an immediate visual sense of market direction.
Buy & Sell Simulation – Each pair’s positive and negative contributions are summed to produce BuySim and SellSim columns, representing the overall pressure in the market without providing explicit trade signals.
Total Row & Strength Row – Aggregates all pairs to show total weekly, daily, H4, and H1 movements, alongside a Strength row indicating "Strong", "Weak", or "Neutral" trends per timeframe. A trend bias (Buy Bias or Sell Bias) is calculated automatically from total positive vs negative pressure.
Safe / Unsafe Trade Detection – Advanced logic measures the difference between total Buy and Sell pressure. If the distance exceeds 50% of total market activity, the market is labeled as Safe Trade with a reason for dominance (buyers or sellers). If below this threshold, it is labeled Unsafe Trade with a note that one side “can dominate the market.” This allows traders to quickly identify high-confidence vs uncertain market conditions.
Visual Layout – The table is fully boxed, color-coded, and easy to read, displaying all key metrics including per-timeframe percent changes, BuySim/SellSim totals, Strength, Trend Bias, and Trade Status with reasons.
Logic Overview
Percent changes per timeframe: pct_tf = ((close - open) / open) * 100
Positive and negative values split into Buy/Sell contributions.
Sum across all pairs and timeframes to calculate totals and bias.
Safe/Unsafe trade threshold: distance >= totalAll * 0.50
Strength interpretation per timeframe: >0 → Strong, <0 → Weak, 0 → Neutral
This indicator is ideal for fast detection of strong vs weak gold trends, global XAU market pressure simulation, and quick risk assessment through safe/unsafe trade labeling.
Disclaimer
This tool is educational and analytical only. It does not provide financial advice or trade signals. Users are responsible for their own trading decisions, and trading involves risk.
© 2025 Thirdeyechart. All rights reserved. Redistribution or commercial use without permission is prohibited.
Gold Key Level LinesOverview
Gold Horizontal Lines is a visual grid tool that draws automatic horizontal levels around the current price. It’s designed for symbols like Gold (XAUUSD), but works on any market and timeframe.
What It Does
Draws main, mid, and quarter price levels based on user-defined intervals (e.g. 100 / 50 / 25).
Centers the grid around the current close, above and below by a chosen number of levels.
Adds optional price labels to each line on the right side of the chart.
Deletes and redraws lines only on the last bar to keep the chart clean and efficient.
Inputs
Main Line Interval – distance between key levels (e.g. 100).
Mid / Quarter Intervals – optional extra levels between main lines (set to 0 to disable).
Colors, Styles, Widths – separate settings for main, mid, and quarter lines.
Show Price Labels – toggle labels on/off.
Number of Lines Above/Below Price – controls how far the grid extends.
TradingBee Money FlowTradingBee Money Flow
Most traders make the mistake of relying on a single indicator. RSI only looks at price. OBV only looks at volume. If you only look at one, you are missing half the picture.
TradingBee Money Flow solves this by calculating a weighted consensus of 10 different technical metrics combined into a single "Flow Score." It answers the most important question in trading: "Is the money actually backing up the price move?"
If Price goes UP, but this indicator goes DOWN, it’s a trap.
How It Works: The 3-Tier Logic
This script does not just average numbers; it weights them based on importance to creating a true "Composite Score" (-100 to +100).
Tier 1: Primary Volume Flow (50% Weight) The engine of the indicator. It measures raw capital entering/exiting.
MFI (Money Flow Index)
OBV Momentum (On-Balance Volume)
Chaikin Money Flow (CMF)
Tier 2: Secondary Momentum (35% Weight) Validates if the volume is actually moving price efficiently.
VWAP Oscillation
Accumulation/Distribution (A/D) Momentum
Klinger Oscillator
Elders Force Index
Tier 3: Confirmation & Volatility (15% Weight) Filters out fake-outs using volatility metrics.
RSI
ADX (Trend Strength)
Bollinger Band Width
The "Clean Divergence" Engine (Unique Feature)
Standard divergence indicators are "noisy"—they print signals on every small pivot. The TradingBee Money Flow uses a custom Clean Wave Filter to only identify high-probability reversals.
It requires two conditions to trigger a Divergence Signal:
The "Gap" Rule (Zero Cross): The indicator must cross the Zero Line in between two peaks. This ensures we are comparing two distinct waves of buying/selling, rather than just jagged noise in a single trend.
The "Shrinkage" Rule: The second wave must be significantly smaller (by a user-defined ratio) than the first. This confirms a true collapse in momentum.
How to Use This Indicator
1. The Histogram (Trend Following)
Bright Green: Buying pressure is accelerating. Strong Trend.
Dark Green: Buying is continuing, but momentum is slowing. Warning sign.
Bright Red: Selling pressure is accelerating.
Zero Line Cross: The definitive signal of a trend change.
2. The Lines (Reversal Trading)
🔴 Red Line (Bearish Divergence): Price made a Higher High, but Money Flow made a Lower High (with a gap in between). Smart money is selling into the rally. Look for Shorts.
🟢 Green Line (Bullish Divergence): Price made a Lower Low, but Money Flow made a Higher Low. Sellers are exhausted. Look for Longs.
Settings
Lookback Period: Adjusts the sensitivity of the composite score.
Pivot Lookback: Increases or decreases the strictness of the pivot detection.
Require Zero Cross: Keep checked for "Clean" signals. Uncheck to see standard divergences.
Wave Size Ratio: Defines how much smaller the second wave must be to trigger a signal.
Disclaimer: This tool provides market analysis but does not guarantee future results. Always manage your risk.
SKDJ Bottom-Top Reversal IndicatorSKDJ Bottom-Top Reversal Indicator — Introduction (English Version)
The SKDJ Bottom-Top Reversal Indicator is an enhanced version of the classic Stochastic (K/D) oscillator.
It is designed to identify high-probability reversal zones, highlight momentum shifts, and help traders capture oversold bounces and overbought pullbacks with greater clarity.
This indicator smooths the standard RSV calculation with double EMA/MMA layers, producing a more stable K/D structure while maintaining sensitivity to short-term price swings. It plots dynamic green/red lines for visual clarity and provides automatic buy/sell markers based on extreme-zone crossovers.
🔍 Core Logic
1. RSV Calculation
RSV measures the close price relative to the highest and lowest prices within a lookback window:RSV=EMA((Close−Lowest(N))/(Highest(N)−Lowest(N))×100,M)
This normalizes the price position into a 0–100 range and applies smoothing to reduce noise.
2. K & D Lines
K Line = EMA of RSV
D Line = SMA of K
The combination produces a fast and slow stochastic pair that tracks short-term momentum shifts.
3. Reversal Signals
The indicator automatically highlights:
Buy Signal (Bottom Reversal):
When K < 25 and K crosses above D → potential oversold rebound.
Sell Signal (Top Reversal):
When K > 75 and D crosses above K → potential overbought correction.
These signals combine extreme price positioning + momentum crossover, giving higher-quality reversal points.
🎨 Visual Features
Green K-line for upward momentum
Red D-line for trend strength
Overbought (80) & Oversold (20) horizontal guides
Automatic triangle markers for buy/sell signals
Optional background color shading
This clean visual design allows traders to read momentum more intuitively and react quicker to turning points.
🧩 Use Cases
The SKDJ indicator is ideal for:
Identifying short-term mean-reversion opportunities
Spotting early momentum reversal before large swings
Filtering entries inside range-bound markets
Confirming signals from other systems (MA, trendlines, volume)
It works on all timeframes and across stocks, crypto, forex, commodities.
📈 Why It Works
This indicator combines:
Price location (overbought/oversold range)
Momentum direction (K/D crossover)
Smoothed oscillation (less noise, cleaner signals)
The convergence of these three factors often precedes short-term market turning points.
Nifty Breakout Levels Strategy (v7 Hybrid)Nifty Breakout Levels Strategy (v7 Hybrid – Compounding from Start Date)
Instrument / TF: Designed for current-month NIFTY futures on 1-hour timeframe, with at most 1 trade per day.
Entry logic: Uses a 10-bar breakout box with a 0.3% buffer, plus EMA-based trend + proximity filter.
Longs: price in breakout-high zone, above EMA50/EMA200 and within proximityPts.
Shorts: price in breakout-low zone and strong downtrend (EMA10 < EMA20 < EMA50 < EMA200, price below EMA200).
Trades only when ATR(14) > atrTradeThresh and during regular hours (till 15:15).
Risk / exits: Stop loss is ATR-adaptive – max of slBasePoints (100 pts) and ATR * atrSLFactor; TP is fixed (tpPoints, e.g. 350 pts).
Longs have stepped trailing profit levels (100/150/200/250/320 pts) that lock in gains on pullbacks.
Shorts have trailing loss-reduction levels (80/120/140 pts) to cut improving losses.
Additional exit: 1H EMA50 2-bar reversal against the position, plus optional EOD flatten at 3:15 PM.
Compounding engine: From a chosen start date, equity is rebased to startCapital, and lot size scales dynamically as equity / capitalPerLot, with automatic lot reductions at three drawdown thresholds (ddCut1 / 2 / 3).
Automation: All entries and exits are exposed via alertconditions (long/short entry & exit) so the strategy can be connected to broker/webhook automation.






















