Heikin-Ashi-Candles MTFHeikin-Ashi Higher Timeframe Candles
This indicator overlays higher-timeframe Heikin-Ashi candles (default: 5 minutes) onto a lower-timeframe chart (e.g., 1 minute). Instead of using standard candlesticks, it draws:
Semi-transparent rectangles to represent the candle bodies.
Vertical lines to represent wicks, centered on each body.
Key features:
Dynamic transparency: The current, still-forming higher-timeframe candle is plotted in green or red (depending on trend) with a separate, lighter transparency (default: 30) so you can easily distinguish it from completed candles.
Finalization on close: As soon as a higher-timeframe candle closes, its body and wicks update to the standard transparency level (default: 50), ensuring completed candles are visually distinct.
Customizable inputs: You can adjust
The higher timeframe (tf) for Heikin-Ashi calculations.
Body transparency for confirmed candles.
Transparency for unfinished candles.
Wick thickness.
Use case:
This is particularly useful for traders who analyze price action on lower timeframes but want to stay aware of the higher-timeframe Heikin-Ashi trend without switching charts. The fading effect on the active candle helps prevent confusion between fully formed candles and those still developing.
Grafik Desenleri
Ravi AlgoBot📌 Indicator Description (Publish Notes)
Indicator Name:
EoR / EoS Entry & SL/Target Manager (Put=Red, Call=Green)
Purpose:
यह indicator उन traders के लिए बनाया गया है जो अपनी manual levels (EoR, EoR+1 for Put, और EoS, EoS-1 for Call) को chart पर plot करना चाहते हैं और उनके आधार पर Entry, Stop Loss और Target manage करना चाहते हैं।
How it works:
आप manual prices (EoR, EoR+1, EoS, EoS-1) input fields में डालेंगे।
Put levels (EoR, EoR+1) लाल रंग में दिखेंगे।
Call levels (EoS, EoS-1) हरे रंग में दिखेंगे।
हर price पर chart पर horizontal line + label बनेगा।
आप अपने Stop Loss और Target prices भी manual डाल सकते हैं (Call और Put दोनों के लिए अलग-अलग)।
जब भी price किसी entry/SL/Target level को touch करेगा:
Chart पर signal shape बनेगा (triangle)
एक alertcondition trigger होगा।
आप TradingView में Alerts create करके इन alerts को webhook URL से connect कर सकते हैं।
Example: जब EoR Put level touch हो → webhook के ज़रिए broker/bot में auto order लग जाएगा।
SL और Target levels भी इसी तरह alerts से manage होंगे।
Use Case:
Manual level-based intraday या positional trading
Automated trading setup (via TradingView alerts → Webhook → Broker API)
Put/Call entry, target, SL को clearly visualize और monitor करना
Disclaimer:
यह indicator trading automation tool नहीं है। Actual buy/sell orders Pine Script से नहीं लग सकते। Order execution केवल TradingView Alerts और external webhook के integration से ही possible है। कृपया पहले paper-trade और test करें।
7:00-9:30 ET High/LowThis indicator is designed to identify and plot the highest and lowest price levels within the 7:00 AM to 9:30 AM Eastern Time (ET) trading window. These levels are then extended throughout the trading day, providing clear visual references for potential support and resistance derived from the early morning price action.
Core Functionality
The script defines a specific trading session (7:00-9:30 ET) and tracks the highest high and lowest low price reached during that time. Once the session is over, these high and low lines remain on the chart for the rest of the day, acting as key levels for traders to watch. At the start of each new trading day, the indicator resets, clearing the previous day's lines and drawing new ones based on the current day's morning session.
Features and Customization
This indicator is fully customizable through the settings menu, allowing you to tailor the appearance to perfectly suit your chart layout.
Session High Line:
Customize the color, width, and line style (Solid, Dashed, Dotted).
Session High Label:
Set your own custom label text (e.g., "Morning High").
Customize the label's background color.
Customize the label's text color.
Adjust the text size.
Session Low Line:
Customize the color, width, and line style (Solid, Dashed, Dotted).
Session Low Label:
Set your own custom label text (e.g., "Morning Low").
Customize the label's background color.
Customize the label's text color.
Adjust the text size.
ET 7:00-9:30 AM High/Low (Customizable Trendlines)This indicator automatically identifies and plots the high and low prices of the 7:00 AM to 9:30 AM Eastern Time trading session. It draws a single horizontal trend line for both the high and low, starting from the exact candlestick where the price was made and extending to the end of the session.
Features:
Precise Plotting: Plots a single, clean trend line for both the session high and low. The line begins precisely on the candlestick where the high or low was reached and extends horizontally to the end of the session.
Customizable Time: The indicator is set to plot the 7:00 AM to 9:30 AM ET session by default but can be easily adjusted by the user in the settings. The time zone is set to UTC-4 to correctly account for Eastern Daylight Time.
Style and Color Customization: Users can change the line style to solid, dotted, or dashed, and choose their preferred colors and width for both the high and low lines.
Price Labels: A toggleable option to display price labels at the end of each line, making it easy to see the exact high and low values at a glance.
High Volume Candle Zones (Neutral)contact me i can give you want more information. you can spot patterns and key area are marked automatically to chart
High-and-Tight Impulse + Micro ConsolidationThis indicator detects a specific bullish continuation setup on daily charts:
- An impulse move (X% rise within N bars, mostly green candles)
- Immediately followed by a tight consolidation (small ranges, small bodies)
- Closes holding in the top zone of the impulse
On the chart, signals are plotted as orange dots above bars.
Labels show the last detected setup date, and a counter displays total matches in history.
Useful for backtesting "high-and-tight flag" type momentum patterns or any symbol.
Adjust inputs (impulse % threshold, bars, ATR ratios, top zone %) to make it stricter or looser.
Alerts are included when a new setup is detected.
This tool is not financial advice. For educational and research purposes only.
by fiyatherseydir
Supertrend0913This Pine Script (`@version=6`) combines **two Supertrend indicators** and a set of **moving averages (EMA & MA)** into one overlay chart tool for TradingView.
**Key features:**
* **Supertrend \ & \ :**
* Each has independent ATR period, multiplier, and ATR calculation method.
* Plots trend lines (green/red for \ , blue/yellow for \ ).
* Generates **buy/sell signals** when trend direction changes.
* Includes **alert conditions** for buy, sell, and trend reversals.
* **Moving Averages:**
* 6 EMAs (lengths 21, 55, 100, 200, 300, 400).
* 5 SMAs (lengths 11, 23, 25, 39, 200).
* Each plotted in different colors for trend visualization.
👉 In short: it’s a **combined trading tool** that overlays two configurable Supertrend systems with alerts plus multiple EMAs/SMAs to help identify trend direction, signals, and potential entry/exit points.
Profit booking Indicatorell signal when RSI < 40, MACD crosses zero or signal line downward in negative zone, close below 50 EMA, candle bearish.
Strong sell signal confirmed on 5-minute higher timeframe with same conditions.
Square off half/full signals as defined.
Target lines drawn bold based on previous swing lows and extended as described.
Blue candle color when RSI below 30.
One sell and one full square off per cycle, blocking repeated sells until full square off.
Big Player Buy/Sell SignalHow It Works:
Detects volume spikes over SMA of recent volume.
Signals a buy if there’s a green candle near a recent swing low on high volume (possible big player accumulation).
Signals a sell if there’s a red candle near a swing high on high volume (possible big player distribution).
This is a proxy, not a direct measure of institutional trades, but it often works surprisingly well in liquid markets like Nifty 50 or Bank Nifty.
If you want, I can make an advanced version that combines RSI, EMA, and first occurrence detection for higher accuracy in catching big player moves.
ICT Sweeps + FVG🔹 What is an iFVG?
• FVG → imbalance left by displacement (big move).
• iFVG (Inversion FVG) → when price returns to that gap later and flips it:
• Bullish FVG (support) → broken → becomes resistance = bearish iFVG.
• Bearish FVG (resistance) → broken → becomes support = bullish iFVG.
That’s why ICT often says “FVG becomes inversion when violated”.
⸻
🔹 Why You Don’t See FVG/iFVG Now
• The script you’re using only coded sweeps (BSS/SSL).
• It didn’t include the logic to:
1. Detect displacement candles.
2. Mark the FVG zone.
3. Flip it if price trades through → iFVG.
GC Checklist Signals (All TF, v6 • SR-safe • Clean blocks)GC (COMEX Gold) checklist strategy with a 3:1 reward-to-risk to your training bot. It enforces the following rules:
Heiken Ashi chart logic for color, wicks, and doji detection
100-EMA filter (only buys above / sells below)
Market structure: higher-low above EMA for buys; lower-high below EMA for sells (simple pivot check)
Clean pullback: at least 2 opposite-color candles; clean = no top wicks (buys) / no bottom wicks (sells)
Entry: on high-volume doji (body ≤ ~12% of range and volume ≥ last 1–3 candles), as soon as it closes
Stops: sell = above doji high; buy = below doji low
Fractal FU//@version=5
indicator("Fractal FU", shorttitle="Fractal FU", overlay=true, max_labels_count=500)
// ===== Inputs
showBull = input.bool(true, "Show aligned bullish balls")
showBear = input.bool(true, "Show aligned bearish balls")
bullCol = input.color(color.blue, "Bull ball color")
bearCol = input.color(color.red, "Bear ball color")
ballSize = input.string("small", "Ball size", options= )
gateTo15 = input.bool(true, "Gate to 15m close (clean, fewer signals)")
showDebug = input.bool(false, "Show per-timeframe debug dots")
// ===== Helpers
// one-liner you asked for:
f_sig(res) => request.security(syminfo.tickerid, res, (high > high and low < low ) ? (close > open ? 1 : close < open ? -1 : 0) : 0, barmerge.gaps_off, barmerge.lookahead_off)
// Pull confirmed signals from each TF
sig1 = f_sig("1")
sig5 = f_sig("5")
sig10 = f_sig("10")
sig15 = f_sig("15")
// Alignment (all four agree)
bullAll = showBull and (sig1 == 1 and sig5 == 1 and sig10 == 1 and sig15 == 1)
bearAll = showBear and (sig1 == -1 and sig5 == -1 and sig10 == -1 and sig15 == -1)
// Emit control
emit15 = ta.change(time("15"))
emit = gateTo15 ? emit15 : barstate.isconfirmed // if not gated, show wherever alignment is true
// ===== Debug (tiny dots at bar to verify which TFs are firing)
plotshape(showDebug and sig1 == 1, title="1m bull", style=shape.circle, size=size.tiny, color=color.new(color.blue, 0), location=location.bottom)
plotshape(showDebug and sig5 == 1, title="5m bull", style=shape.circle, size=size.tiny, color=color.new(color.aqua, 0), location=location.bottom)
plotshape(showDebug and sig10 == 1, title="10m bull", style=shape.circle, size=size.tiny, color=color.new(color.teal, 0), location=location.bottom)
plotshape(showDebug and sig15 == 1, title="15m bull", style=shape.circle, size=size.tiny, color=color.new(color.navy, 0), location=location.bottom)
plotshape(showDebug and sig1 == -1, title="1m bear", style=shape.circle, size=size.tiny, color=color.new(color.red, 0), location=location.top)
plotshape(showDebug and sig5 == -1, title="5m bear", style=shape.circle, size=size.tiny, color=color.new(color.orange, 0), location=location.top)
plotshape(showDebug and sig10 == -1, title="10m bear", style=shape.circle, size=size.tiny, color=color.new(color.maroon, 0), location=location.top)
plotshape(showDebug and sig15 == -1, title="15m bear", style=shape.circle, size=size.tiny, color=color.new(color.purple, 0), location=location.top)
// ===== Markers (size must be const → gate each size)
off = gateTo15 ? -1 : 0 // when gated, place on the just-closed 15m bar
// ── Marker offset control stays the same ──
off2 = gateTo15 ? -1 : 0
// ── Bullish balls exactly at LOW ──
plot(bullAll and emit and ballSize == "tiny" ? low : na, title="Bullish tiny", style=plot.style_circles, color=bullCol, linewidth=1, offset=off2)
plot(bullAll and emit and ballSize == "small" ? low : na, title="Bullish small", style=plot.style_circles, color=bullCol, linewidth=2, offset=off2)
plot(bullAll and emit and ballSize == "normal" ? low : na, title="Bullish normal", style=plot.style_circles, color=bullCol, linewidth=3, offset=off2)
plot(bullAll and emit and ballSize == "large" ? low : na, title="Bullish large", style=plot.style_circles, color=bullCol, linewidth=4, offset=off2)
plot(bullAll and emit and ballSize == "huge" ? low : na, title="Bullish huge", style=plot.style_circles, color=bullCol, linewidth=5, offset=off2)
// ── Bearish balls exactly at HIGH ──
plot(bearAll and emit and ballSize == "tiny" ? high : na, title="Bearish tiny", style=plot.style_circles, color=bearCol, linewidth=1, offset=off2)
plot(bearAll and emit and ballSize == "small" ? high : na, title="Bearish small", style=plot.style_circles, color=bearCol, linewidth=2, offset=off2)
plot(bearAll and emit and ballSize == "normal" ? high : na, title="Bearish normal", style=plot.style_circles, color=bearCol, linewidth=3, offset=off2)
plot(bearAll and emit and ballSize == "large" ? high : na, title="Bearish large", style=plot.style_circles, color=bearCol, linewidth=4, offset=off2)
plot(bearAll and emit and ballSize == "huge" ? high : na, title="Bearish huge", style=plot.style_circles, color=bearCol, linewidth=5, offset=off2)
// Alerts
alertcondition(bullAll and emit, title="Aligned Bullish Outside (1/5/10/15)", message="Aligned bullish outside bar on 1/5/10/15m")
alertcondition(bearAll and emit, title="Aligned Bearish Outside (1/5/10/15)", message="Aligned bearish outside bar on 1/5/10/15m")
alertcondition((bullAll or bearAll) and emit, title="Aligned Any (1/5/10/15)", message="Aligned outside bar (bull or bear) on 1/5/10/15m")
Hidden Divergence with S/R & TP// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Gemini
// @version=5
// This indicator combines Hidden RSI Divergence with Support & Resistance detection
// and provides dynamic take-profit targets based on ATR. It also includes alerts.
indicator("Hidden Divergence with S/R & TP", overlay=true)
// === INPUTS ===
rsiLengthInput = input.int(14, "RSI Length", minval=1)
rsiSMALengthInput = input.int(5, "RSI SMA Length", minval=1)
pivotLookbackLeft = input.int(5, "Pivot Left Bars", minval=1)
pivotLookbackRight = input.int(5, "Pivot Right Bars", minval=1)
atrPeriodInput = input.int(14, "ATR Period", minval=1)
atrMultiplierTP1 = input.float(1.5, "TP1 ATR Multiplier", minval=0.1)
atrMultiplierTP2 = input.float(3.0, "TP2 ATR Multiplier", minval=0.1)
atrMultiplierTP3 = input.float(5.0, "TP3 ATR Multiplier", minval=0.1)
// === CALCULATIONS ===
// Calculate RSI and its SMA
rsiValue = ta.rsi(close, rsiLengthInput)
rsiSMA = ta.sma(rsiValue, rsiSMALengthInput)
// Calculate Average True Range for Take Profits
atrValue = ta.atr(atrPeriodInput)
// Identify pivot points for Support and Resistance
pivotLow = ta.pivotlow(pivotLookbackLeft, pivotLookbackRight)
pivotHigh = ta.pivothigh(pivotLookbackLeft, pivotLookbackRight)
// Define variables to track divergence and TP levels
var bool bullishDivergence = false
var bool bearishDivergence = false
var float tp1Buy = na
var float tp2Buy = na
var float tp3Buy = na
var float tp1Sell = na
var float tp2Sell = na
var float tp3Sell = na
// Reset divergence flags at each new bar
bullishDivergence := false
bearishDivergence := false
// === HIDDEN DIVERGENCE LOGIC ===
// Hidden Bullish Divergence (Higher low in price, lower low in RSI)
// Price makes a higher low, while RSI makes a lower low, suggesting trend continuation.
for i = 1 to 50 // Look back up to 50 bars for a confirmed pivot low
if not na(pivotLow ) and close < close and rsiValue < rsiValue
// Check if price is making a higher low than the pivot low, and RSI is making a lower low
if low > low and rsiValue < rsiValue
bullishDivergence := true
break // Exit loop once divergence is found
// Hidden Bearish Divergence (Lower high in price, higher high in RSI)
// Price makes a lower high, while RSI makes a higher high, suggesting trend continuation.
for i = 1 to 50 // Look back up to 50 bars for a confirmed pivot high
if not na(pivotHigh ) and close > close and rsiValue > rsiValue
// Check if price is making a lower high than the pivot high, and RSI is making a higher high
if high < high and rsiValue > rsiValue
bearishDivergence := true
break // Exit loop once divergence is found
// === SETTING TP LEVELS AND ALERTS ===
if bullishDivergence
buySignalPrice = low - atrValue * 0.5 // Entry below the low
tp1Buy := buySignalPrice + atrValue * atrMultiplierTP1
tp2Buy := buySignalPrice + atrValue * atrMultiplierTP2
tp3Buy := buySignalPrice + atrValue * atrMultiplierTP3
// Alert for buying signal
alert("Hidden Bullish Divergence Detected on " + syminfo.ticker + " - Buy Signal", alert.freq_once_per_bar_close)
else
tp1Buy := na
tp2Buy := na
tp3Buy := na
if bearishDivergence
sellSignalPrice = high + atrValue * 0.5 // Entry above the high
tp1Sell := sellSignalPrice - atrValue * atrMultiplierTP1
tp2Sell := sellSignalPrice - atrValue * atrMultiplierTP2
tp3Sell := sellSignalPrice - atrValue * atrMultiplierTP3
// Alert for selling signal
alert("Hidden Bearish Divergence Detected on " + syminfo.ticker + " - Sell Signal", alert.freq_once_per_bar_close)
else
tp1Sell := na
tp2Sell := na
tp3Sell := na
// === PLOTTING SIGNALS AND TAKE PROFITS ===
// Plotting shapes for buy/sell signals
plotshape(bullishDivergence, title="Buy Signal", style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), text="Buy", textcolor=color.black)
plotshape(bearishDivergence, title="Sell Signal", style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), text="Sell", textcolor=color.black)
// Plotting take-profit lines
plot(tp1Buy, "TP1 Buy", color=color.new(color.lime, 0), style=plot.style_linebr)
plot(tp2Buy, "TP2 Buy", color=color.new(color.lime, 0), style=plot.style_linebr)
plot(tp3Buy, "TP3 Buy", color=color.new(color.lime, 0), style=plot.style_linebr)
plot(tp1Sell, "TP1 Sell", color=color.new(color.orange, 0), style=plot.style_linebr)
plot(tp2Sell, "TP2 Sell", color=color.new(color.orange, 0), style=plot.style_linebr)
plot(tp3Sell, "TP3 Sell", color=color.new(color.orange, 0), style=plot.style_linebr)
// Plotting the RSI and its SMA on a sub-pane
plot(rsiValue, "RSI", color.new(color.fuchsia, 0))
plot(rsiSMA, "RSI SMA", color.new(color.yellow, 0))
hline(50, "50 Midline", color=color.new(color.gray, 50))
// Plotting background for signals
bullishColor = color.new(color.green, 90)
bearishColor = color.new(color.red, 90)
bgcolor(bullishDivergence ? bullishColor : na, title="Bullish Divergence Zone")
bgcolor(bearishDivergence ? bearishColor : na, title="Bearish Divergence Zone")
// === EXPLANATION OF CONCEPTS ===
// Deep Knowledge of Market from AI:
// This indicator is based on a powerful, yet often misunderstood, concept: divergence.
// While standard divergence signals a potential trend reversal, hidden divergence signals a
// continuation of the prevailing trend. This is crucial for traders who want to capitalize
// on the momentum of a move rather than trying to catch tops and bottoms.
// Hidden Bullish Divergence: Occurs in an uptrend when price makes a higher low, but the
// RSI makes a lower low. This suggests that while there was a brief period of weakness, the
// underlying buying pressure is returning to push the trend higher. It’s a "re-energizing"
// of the bullish momentum.
// Hidden Bearish Divergence: Occurs in a downtrend when price makes a lower high, but the
// RSI makes a higher high. This indicates that while the sellers paused, the underlying
// selling pressure remains strong and is likely to continue pushing the price down. It's a
// subtle signal that the bears are regaining control.
// Combining Divergence with S/R: The true power of this indicator comes from its
// "confluence" principle. A divergence signal alone can be noisy. By requiring it to occur
// at a key support or resistance level (identified using pivot points), we are filtering
// out weaker signals and only focusing on high-probability setups where the market is
// likely to respect a previous area of interest. This tells us that not only is the trend
// likely to continue, but it is doing so from a strategic, well-defined point on the chart.
// Dynamic Take-Profit Targets: The take-profit targets are based on the Average True Range (ATR).
// ATR is a measure of market volatility. Using it to set targets ensures that your profit
// levels are dynamic and adapt to current market conditions. In a volatile market, your
// targets will be wider, while in a calm market, they will be tighter, helping you avoid
// unrealistic expectations and improving your risk management.
6EMA/SMA/RMA + Smart Money Channels + ICT ConceptsSection 1: 6EMA/SMA/RMA + Forecasting
All 6 moving averages with their original parameters (lengths: 20, 100, 250, 75, 200, 300)
Moving average type selection (SMA, EMA, RMA)
Forecast functionality with Repetition and Linear Regression options
Source selection for each moving average
Forecast plotting with circles
Section 2: Smart Money Breakout Channels
Channel detection with normalization and box detection lengths
Volume analysis with different display modes (Volume, Comparison, Delta)
Nested channels option
Strong closes only feature
Bullish/bearish breakout signals
Volume visualization within channels
Section 3: ICT Concepts
Market Structure Shifts (MSS) and Break of Structure (BOS)
Order Blocks with swing lookback
Liquidity zones (buyside/sellside)
Fair Value Gaps (FVG) and Implied Fair Value Gaps (IFVG)
Volume Imbalances
NWOG/NDOG (New Week/Day Opening Gaps)
Displacement detection
Killzones (New York, London Open/Close, Asian sessions)
Fibonacci levels between various elements
Ultimate Trading Suite - 4 Indicators CombinedpriceActionGroup = "Ultimate Priceaction Tool"
orderBlockGroup = "Order Block Matrix"
marketStructureGroup = "Market Structure Confluence"
ictConceptsGroup = "ICT Concepts"
ORB + SMA 20/50 Crossover BUY/SELL by Yuvaraj Veppampattu Plots ORB High & Low lines for the first X minutes.
Adds SMA 20 & SMA 50 lines on chart.
Shows BUY arrow when SMA20 crosses ABOVE SMA50.
Shows SELL arrow when SMA20 crosses BELOW SMA50.
Adds alerts for both ORB breakouts & SMA crossovers.
Consecutive Candles Box with MidpointHelps to identify consecutive candle closes for potential ranges.
Ultimate ICT Pro — EnhancedUltimate ICT Pro — Signals V8 is a comprehensive trading tool that combines ICT concepts with classical technical analysis to provide clear buy/sell suggestions and market structure visualization.
It includes:
Multi-timeframe EMA/ADX alignment with a switch to force calculations on higher timeframes.
Automatic detection and drawing of ICT elements (Fair Value Gaps, Order Blocks, Breaker Blocks, Liquidity Sweeps, OTE zones).
A dynamic Confluence score (0–4) based on Bias, ICT confirmation, Volume, and Market Regime.
Visual signals for BOS, CHoCH, displacement, and premium/discount zones.
A dashboard panel showing overall market direction, regime (trend/range), HTF alignment, and source of calculation.
A trade suggestion table (LONG/SHORT) with entry, stop loss, target, risk/reward, and confluence level.
Designed to be easy for beginners to understand — with intuitive visuals and clear signals — while still offering advanced insights for professional analysts.
Multiple Moving Averages5 Simple Moving Averages: 12, 20, 55, 80, 144 periods
Different colors: Each moving average uses a different color for easy distinction
Crossover signals: Display crossover signals for MA12/MA20 and MA55/MA144
Value display: Show current specific values of each moving average in a table at the top right corner
Optional EMA: The commented section provides code for the EMA version, which can be uncommented if needed
hidden buy or sell //@version=5
indicator(title="Institutional Flow & Trend", shorttitle="IF&T", overlay=true)
// --- INPUTS ---
// Trend EMA lengths
fast_ema_len = input.int(9, title="Fast EMA Length", minval=1)
slow_ema_len = input.int(21, title="Slow EMA Length", minval=1)
// OBV Moving Average length
obv_ema_len = input.int(10, title="OBV EMA Length", minval=1)
// RSI settings for hidden divergence (NEW)
rsi_len = input.int(14, title="RSI Length", minval=1)
// --- CALCULATIONS ---
// Calculate EMAs for trend
fast_ema = ta.ema(close, fast_ema_len)
slow_ema = ta.ema(close, slow_ema_len)
// Calculate On-Balance Volume and its moving average
obv_value = ta.obv
obv_ema = ta.ema(obv_value, obv_ema_len)
// Calculate RSI for divergence (NEW)
rsi_val = ta.rsi(close, rsi_len)
// --- HIDDEN DIVERGENCE LOGIC (NEW) ---
// Bullish hidden divergence: price makes a higher low, but RSI makes a lower low.
bullish_div = ta.lowest(low, 2) > ta.lowest(low, 2) and rsi_val > rsi_val
// Bearish hidden divergence: price makes a lower high, but RSI makes a higher high.
bearish_div = ta.highest(high, 2) < ta.highest(high, 2) and rsi_val < rsi_val
// --- SIGNAL LOGIC ---
// Bullish conditions:
// 1. Hidden bullish divergence is detected (NEW)
// 2. Fast EMA is above Slow EMA (uptrend)
// 3. OBV value is above its moving average (buying pressure)
bullish_signal = bullish_div and fast_ema > slow_ema and obv_value > obv_ema
// Bearish conditions:
// 1. Hidden bearish divergence is detected (NEW)
// 2. Fast EMA is below Slow EMA (downtrend)
// 3. OBV value is below its moving average (selling pressure)
bearish_signal = bearish_div and fast_ema < slow_ema and obv_value < obv_ema
// --- PLOTS & VISUALS ---
// Plot the EMAs on the chart
plot(fast_ema, title="Fast EMA", color=color.new(color.blue, 0), linewidth=2)
plot(slow_ema, title="Slow EMA", color=color.new(color.orange, 0), linewidth=2)
// Color the background based on signals
bgcolor(bullish_signal ? color.new(color.green, 90) : na, title="Bullish Zone")
bgcolor(bearish_signal ? color.new(color.red, 90) : na, title="Bearish Zone")
// Plot shapes for entry signals
plotshape(series=bullish_signal, title="Buy Signal", location=location.belowbar, color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(series=bearish_signal, title="Sell Signal", location=location.abovebar, color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
// Plot shapes for divergence signals (NEW)
plotshape(series=bullish_div, title="Bullish Divergence", location=location.belowbar, color=color.new(color.lime, 0), style=shape.circle, size=size.tiny)
plotshape(series=bearish_div, title="Bearish Divergence", location=location.abovebar, color=color.new(color.red, 0), style=shape.circle, size=size.tiny)
// Alert conditions
alertcondition(bullish_signal, title="Bullish Reversal Signal", message="Institutional buying and trend aligned for a reversal!")
alertcondition(bearish_signal, title="Bearish Reversal Signal", message="Institutional selling and trend aligned for a reversal!")
// --- FOOTNOTE ---
// This indicator is a conceptual tool. Use it with other forms of analysis.
// Backtesting and optimization are crucial before live trading.
Percent Trend Change + RSI + Target Trend [Combined]Script 1 (Percent Trend Change) Features:
Ultimate smoother with configurable length
Rising/falling bar detection
Percent change calculations
Trend change labels with arrows
Percent-based labels and lines
Channel display option
Script 2 (RSI with Alerts) Features:
RSI calculation with configurable length
Overbought/oversold levels
Customizable colors
Alert settings
Visual indicators
Script 3 (Target Trend) Features:
Trend detection with moving averages
Target levels based on ATR
Stop loss and entry lines
Trend-based candlestick coloring
Signal plotting
All original target and trend management
All input settings are organized into separate groups for easy configuration, and there are no conflicts between the scripts. Each script maintains its original functionality while working together in the combined indicator.
Distribution DaysThis script marks Distribution Days according to the Investors Business Daily method -- a significant decline on higher volume:
(1.) Price has declined > 0.2% from the prior day's close
(2.) Trading volume is greater than the prior day's volume