2-Day High/Low Breakout (Excl. Today)Script to highlight if current Price crosses highest high or lowest low for last n Days
Indicators and strategies
Dr.Avinash Talele quarterly earnings, VCP and multibagger trakerDr. Avinash Talele Quarterly Earnings, VCP and Multibagger Tracker.
📊 Comprehensive Quarterly Analysis Tool for Multibagger Stock Discovery
This advanced Pine Script indicator provides a complete financial snapshot directly on your chart, designed to help traders and investors identify potential multibagger stocks and VCP (Volatility Contraction Pattern) setups with precision.
🎯 Key Features:
📈 8-Quarter Financial Data Display:
EPS (Earnings Per Share) - Track profitability trends
Sales Revenue - Monitor business growth
QoQ% (Quarter-over-Quarter Growth) - Spot acceleration/deceleration
ROE (Return on Equity) - Assess management efficiency
OPM (Operating Profit Margin) - Evaluate operational excellence
💰 Market Metrics:
Market Cap - Current company valuation
P/E Ratio - Valuation assessment
Free Float - Liquidity indicator
📊 Technical Positioning:
% Down from 52-Week High - Identify potential bottoming patterns
% Up from 52-Week Low - Track momentum from lows
Turnover Data (1D & 50D Average) - Volume analysis
ADR% (Average Daily Range) - Volatility measurement
Relative Volume% - Institutional interest indicator
🚀 How It Helps Find Multibaggers:
1. Growth Acceleration Detection:
Consistent EPS Growth: Identifies companies with accelerating earnings
Revenue Momentum: Tracks sales growth patterns quarter-over-quarter
Margin Expansion: Spots improving operational efficiency through OPM trends
2. VCP Pattern Recognition:
Volatility Contraction: ADR% helps identify tightening price ranges
Volume Analysis: Relative volume shows institutional accumulation
Distance from Highs: Tracks healthy pullbacks in uptrends
3. Fundamental Strength Validation:
ROE Trends: Ensures management is efficiently using shareholder capital
Debt-Free Growth: High ROE with growing margins indicates quality growth
Scalability: Revenue growth vs. margin expansion analysis
4. Entry Timing Optimization:
52-Week Positioning: Enter near lows, avoid near highs
Volume Confirmation: High relative volume confirms breakout potential
Valuation Check: P/E ratio helps avoid overvalued entries
💡 Multibagger Characteristics to Look For:
✅ Consistent 15-20%+ EPS growth across multiple quarters
✅ Accelerating revenue growth with QoQ% improvements
✅ ROE above 15% and expanding
✅ Operating margins improving over time
✅ Low debt (indicated by high ROE with growing profits)
✅ Strong cash generation (reflected in consistent growth metrics)
✅ 20-40% down from 52-week highs (ideal entry zones)
✅ Above-average volume during consolidation phases
🎨 Visual Design:
Clean white table with black borders for maximum readability
Color-coded QoQ% changes (Green = Growth, Red = Decline)
Centered positioning for easy chart analysis
8-quarter historical view for trend identification
📋 Perfect For:
Long-term investors seeking multibagger opportunities
Growth stock enthusiasts tracking earnings acceleration
VCP pattern traders looking for breakout candidates
Fundamental analysts requiring quick financial snapshots
Swing traders timing entries in growth stocks
⚡ Quick Setup:
Simply add the indicator to any NSE/BSE stock chart and instantly view comprehensive quarterly data. The table updates automatically with the latest financial information, making it perfect for screening and monitoring your watchlist.
🔍 Start identifying your next multibagger today with this powerful combination of fundamental analysis and technical positioning data!
Disclaimer: This indicator is for educational and analysis purposes. Always conduct thorough research and consider risk management before making investment decisions.
Simple Candle Countdown TimerDescription:
This lightweight and customizable TradingView indicator displays a real-time countdown timer for the current candle directly on your chart. The timer updates every second and shows the time remaining until the current candle closes, in the format MM:SS.
🔧 Features:
Adjustable X/Y offset to position the timer anywhere on the chart
Customizable text color, background color, and text size
Clear and minimal design for easy visibility
Ideal for scalpers, intraday traders, or anyone who wants precise awareness of candle close timing.
Thenewson - RSI Confluência Multi-TFSpot extreme overbought or oversold zones with precision using confluence across multiple timeframes.
How it works:
You choose which timeframes to monitor: 15m, 1h, 4h, 1d.
The indicator checks if all selected RSIs are:
Above 70 → potential SELL signal.
Below 30 → potential BUY signal.
While the condition is active, it marks the candle on the chart.
Sends separate alerts for buy and sell signals.
Customizable:
Enable or disable the timeframes you want.
Adjust RSI levels (default: 70/30).
Alerts trigger automatically when confluence is detected.
Perfect for traders who:
Want confirmation across multiple timeframes.
Prefer filtered, high-quality RSI signals.
Use exhaustion setups or extreme condition reversals.
No weak RSI noise here — only solid confluence when the market agrees across timeframes.
Открытие сессии: EMA + VWAP + ОбъемV 3
It is a software tool that automatically analyzes financial markets by selecting stocks or other assets based on preset parameters such as price, trading volume, technical indicators, and fundamentals.
[Remora] Previous Day Value This TradingView script plots horizontal lines showing the previous day’s high, low, and midpoint levels on your current chart. These lines help traders identify key support and resistance zones based on the last day’s price range.
🛠️ Features:
Previous Day High Line (🔴 Red):
Shows the highest price from the previous trading day.
Previous Day Low Line (🟢 Green):
Shows the lowest price from the previous trading day.
Previous Day Midpoint Line (🟣 Fuchsia, Dashed):
Shows the average of the previous day’s high and low — a useful reference for intraday bias or fair value.
Customizable Display:
You can turn each of these lines on or off using checkboxes in the settings.
This script will help traders make decisions like:
Watching for price rejection or breakout at these levels.
Identifying areas to take profits or set stops.
CVDD Z-ScoreCVDD stands for Cumulative Value Coin Days Destroyed.
Coin Days Destroyed is a term used for bitcoin to identify a value of sorts to UTXO’s (unspent transaction outputs). You can learn more about UTXO’s here. They can be thought of as coins moving between wallets.
int this script you have the option to change the Z-Score length.
TZSesThe script visually highlights major forex trading sessions (London, New York, Tokyo) and a "true day" separator on the chart background to help traders identify the most active market hours and daily boundaries.
NSE/BSE Derivative - Next Expiry Date With HolidaysNSE & BSE Expiry Tracker with Holiday Adjustments
This Pine Script is a TradingView indicator that helps traders monitor upcoming expiry dates for major Indian derivative contracts. It dynamically adjusts these expiry dates based on weekends and holidays, and highlights any expiry that falls on the current day.
⸻
Key Features
1. Tracks Expiry Dates for Major Contracts
The script calculates and displays the next expiry dates for the following instruments:
• NIFTY (weekly expiry every Thursday)
• BANKNIFTY, FINNIFTY, MIDCPNIFTY, NIFTYNXT50 (monthly expiry on the last Thursday of the month)
• SENSEX (weekly expiry every Tuesday)
• BANKEX and SENSEX 50 (monthly expiry on the last Tuesday of the month)
• Stocks in the F&O segment (monthly expiry on the last Thursday)
2. Holiday Awareness
Users can input a list of holiday dates in the format YYYY-MM-DD,YYYY-MM-DD,.... If any calculated expiry falls on one of these holidays or a weekend, the script automatically adjusts the expiry to the previous working day (Monday to Friday).
3. Customization Options
The user can:
• Choose the position of the expiry table on the chart (e.g. top right, bottom left).
• Select the font size for the expiry table.
• Enable or disable the table entirely (if implemented as an input toggle).
4. Visual Expiry Highlighting
If today is an expiry day for any instrument, the script highlights that instrument in the display. This makes it easy to spot significant expiry days, which are often associated with increased volatility and trading volume.
⸻
How It Works
• The script calculates the next expiry for each index using built-in date/time functions.
• For weekly expiries, it finds the next occurrence of the designated weekday.
• For monthly expiries, it finds the last Thursday or Tuesday of the month.
• Each expiry date is passed through a check to adjust for holidays or weekends.
• If today matches the adjusted expiry date, that row is visually emphasized.
⸻
Use Case
This script is ideal for traders who want a quick glance at which instruments are expiring soon — especially those managing options, futures, or expiry-based strategies.
Gold ORB by chhayanidhaval// Inputs
timeFrame = input.timeframe("15", "Opening Range Timeframe")
Points = input.float(150, "Points for 1x Levels")
show1xLevels = input.bool(true, "Show 1x Levels")
slPoints = input.float(100, "Stop-Loss in Points")
slPoints2 = input.float(250, "Stop-Loss in Points 2")
Timeframe % TrakcerPulls historical closes from nine higher-timeframe look-backs (1 H, 12 H, 1 D, 7 D, 14 D, 1 M, 3 M, 6 M, 1 Y, 3 Y) with request.security().
2. Calculates the percent change between each look-back close and the current price:
(close − close₍look-back₎) / close₍look-back₎ × 100
3. Renders a two-column table in the chart’s top-right corner.
• Left column = timeframe label
• Right column = % move, rounded to two decimals
4. Heat-codes the cells — green if the asset is up, red if it’s down — so you can spot momentum (or pain) instantly.
5. Stays lightweight by updating only on the last bar; no excess runtimes.
Clean XRP/USDT Alert & MarkerClean XRP/USDT Alert & Marker is a precision trading tool designed for futures traders. It highlights high-probability entry zones using visual markers and real-time alerts for both short and long breakouts.
🔍 Features:
Visual markers for short entry and long breakout
Real-time alerts at key levels (configurable)
Ideal for 1H and 4H strategies
Clean layout optimized for fast decision-making
Built for leverage-based futures trading
Use this script to improve timing, reduce noise, and trade XRP/USDT with clearer setups and better risk management.
Adaptive Dual EMA Trend Filter# Adaptive Dual EMA Trend Filter
This indicator colors the EMA based on trend direction and shows buy/sell arrows based on trend shifts. Ideal for trend-following traders who want fast visual confirmation.
### Features:
- EMA color switches: **green for bullish**, **red for bearish**
- Automatic Buy/Sell signals based on trend reversal
- Works on all timeframes and assets
- Lightweight and fast
### How it works:
- EMA is calculated from the selected source
- If price is above the EMA → uptrend (green)
- If price is below the EMA → downtrend (red)
- Arrows mark transition points for possible entries/exits
---
🛠 Suggested usage:
- Combine with volume or momentum indicators
- Confirm with support/resistance zones
- Use alerts (customizable) for trend flips
---
If you find this helpful – give it a ⭐ and follow for more PineScript tools!
Pro EMA Signal + Pivot"This indicator was created as a guide for consistent trading, primarily based on EMA lines. As long as price does not break below the EMA 55 or 100, positions can be held longer with good profit potential."
Let me know if you'd like it rewritten in a more formal or professional tone, or in a casual/trader-style tone.
Donchian Channel Midline AverageThis script draws a single line on your chart, and here's how it figures out where that line should be:
You Tell It How Far Back to Look (Length): You set a number, let's say 20. This means the script will always look back at the past 20 price bars (candles).
It Finds the Extreme Points:
For those past 20 bars, it finds the very highest point the price reached.
And, it finds the very lowest point the price reached.
It Calculates the "Middle" of Those Extremes:
It takes that highest point and that lowest point, and simply finds the average of the two. This average is the exact middle of the highest and lowest price points over your chosen period.
It Draws the Line: This "middle of the extremes" point is then drawn as a line on your chart. It keeps doing this for every new bar, so the line "moves" along with the price.
So, in a nutshell:
This script gives you a special kind of moving average. Instead of averaging every single price point like a typical moving average, it averages just the highest high and the lowest low over a set period. It's like finding the exact center point of the recent price "tunnel" or "range" on your chart.
The Length input controls how many bars back it looks.
The Offset input lets you slide the line a few bars forward or backward in time, if you want.
Пробиття фракталівWe are given a Pine Script v6 indicator that detects breakouts of fractal levels.
The indicator has the following features:
1. It allows setting the fractal period (number of candles to the left and right) via an input.
2. It defines fractals based on the body (the higher and lower of the open and close) of the candles.
3. It identifies top and bottom fractals.
4. It plots the fractals on the chart with triangles (red for top, green for bottom).
5. It generates buy and sell signals when the current candle closes above the last top fractal or below the last bottom fractal, respectively.
However, the user has requested that the signal should only appear once and not repeat.
The current version of the script does not have a mechanism to avoid repeated signals. We will modify it to ensure:
- Each fractal (top or bottom) generates at most one signal (the first breakout after the fractal formation).
- Once a signal is generated for a fractal, that fractal is no longer considered for future signals.
We will introduce state variables to track:
- The most recent top and bottom fractals (we are already storing `lastTop` and `lastBottom`).
- Whether a signal has already been generated for the current active fractal.
Steps to modify:
1. We'll add two boolean flags: `topActive` and `bottomActive` to indicate if the stored fractal is active (i.e., no breakout has occurred yet).
2. We'll reset the active flag for a fractal when a breakout occurs and it generates a signal.
3. We'll also deactivate a fractal when a new fractal of the same type appears (without a breakout) because the new one replaces the old.
Additionally, we want to show the signal only on the first candle that closes above the top fractal or below the bottom fractal.
Let's restructure:
// State variables
var float lastTop = na
var float lastBottom = na
var bool topActive = false
var bool bottomActive = false
When a new top fractal is found:
lastTop := bodyHigh of the fractal candle
topActive := true
bottomActive := false (because a new top fractal invalidates the current bottom fractal? Actually, we can have both, but we want to track the most recent one? The problem: if we have a top fractal and then a bottom fractal without a breakout on the top, then we want to keep both? But note: the script currently stores the last top and last bottom independently. However, the breakout condition uses the last stored value regardless of when it was formed. We need to decide: do we want to track the last fractal of each type? And then each can be broken independently?
The requirement: the signal should be only one per fractal. So we can have:
- One breakout per top fractal and one per bottom fractal.
Therefore, we should store and track separately for top and bottom.
We can do:
When a top fractal forms:
lastTop := bodyHigh of that candle
topActive := true (meaning: this top fractal hasn't been broken yet)
Similarly, when a bottom fractal forms:
lastBottom := bodyLow of that candle
bottomActive := true
Then, when we get a breakout above lastTop and topActive is true, we generate a buy signal and set topActive to false (so we don't generate again for this fractal).
Similarly, for sell: breakout below lastBottom and bottomActive true -> generate sell and set bottomActive to false.
Also, note: if a new top fractal forms, we reset topActive to true (and store the new level) even if the previous top fractal wasn't broken. That means we are only interested in the most recent fractal?
This matches the current logic: we only store the last top and last bottom.
So we can change the storage:
if topFractal
lastTop := bodyHigh(len)
topActive := true
if bottomFractal
lastBottom := bodyLow(len)
bottomActive := true
Then, for signals:
buySignal = topActive and not na(lastTop) and close > lastTop
sellSignal = bottomActive and not na(lastBottom) and close < lastBottom
And after generating the signal, we deactivate:
if buySignal
topActive := false
if sellSignal
bottomActive := false
But note: what if we get a top fractal and then a bottom fractal? Then the topActive would still be active? We might want to deactivate the topActive when a new bottom fractal forms? Actually, no. We can have both active at the same time? But that might lead to conflicting signals? However, the market can break the top fractal and then the bottom fractal independently.
However, the current script stores both lastTop and lastBottom independently. So we can have both active.
But also, if a new top fractal forms, we want to reset the topActive and set a new level, and similarly for bottom.
We do not deactivate the other type when one forms.
So:
if topFractal
lastTop := bodyHigh(len)
topActive := true // reset even if there was a previous top? Yes, because we are now interested in the new top.
if bottomFractal
lastBottom := bodyLow(len)
bottomActive := true
Then the conditions:
buySignal = topActive and close > lastTop
sellSignal = bottomActive and close < lastBottom
And after generating the signal, we set the active flag to false.
However, note: if we get a top fractal and then a new top fractal without a breakout, we reset the lastTop and set topActive to true again. So the previous top is forgotten.
This is consistent.
We also need to handle the case where there is no fractal at all? Then lastTop and lastBottom remain at previous values? But we are storing them until a new one. However, we set topActive only when a new top fractal appears. So if there was a top fractal and then no new top fractal, then topActive remains true until a breakout? But what if the breakout never happens? Then it will remain active forever? That might be acceptable because the condition will trigger when the breakout eventually happens.
However, we might want to deactivate if a new fractal of the opposite type appears? Actually, no. We can have both active.
But note: the script currently stores the last top and last bottom independently, and they are not reset by the opposite type. So we can have both active at the same time.
Now, the problem of multiple signals: we are setting topActive to false after the breakout, so the same fractal won't generate again.
Also, we want to show the signal only once per fractal.
Therefore, we can change the script accordingly.
Let's rewrite the storage and active flags:
We'll change the variable declarations:
var float lastTop = na
var float lastBottom = na
var bool topActive = false
var bool bottomActive = false
Then update:
if topFractal
lastTop := bodyHigh(len)
topActive := true
if bottomFractal
lastBottom := bodyLow(len)
bottomActive := true
Then the signals:
buySignal = topActive and close > lastTop
sellSignal = bottomActive and close < lastBottom
Then after generating the signal, deactivate:
if buySignal
topActive := false
if sellSignal
bottomActive := false
But note: what if both conditions happen on the same bar? Then we would generate both signals? That might be acceptable, but it's rare.
Also, we must note: the fractal detection is offset by `len` bars. But the signal is generated on the current bar.
Now, we must also consider: the stored `lastTop` and `lastBottom` might be from a long time ago. We are only deactivating when a breakout occurs. But if a new top fractal forms, we reset the `lastTop` and set `topActive` to true, so the old level is replaced.
This is the desired behavior.
Let's update the script accordingly.
Also, we will change the plotshape for signals to only plot when the signal condition is true.
However, note: the original script does not have the active flags. We are adding them.
We also need to initialize the active flags as false.
We'll keep the fractal plots as they are.
Let's write the corrected script:
Note: We are using the fractal detection at offset `len` (which is the center of the fractal pattern). The fractal is detected `len` bars ago.
The `lastTop` is set to the bodyHigh of the fractal bar (which is `len` bars ago). But when we check the condition, we are comparing the current close to that old level? Yes.
But note: the fractal might be several bars old. We are storing the last top fractal regardless of when it occurred.
This is acceptable.
Magic Levels NQ – 20/30/70/80Magic Levels – Nasdaq Key Zones (20/30/70/80)
Description:
This indicator automatically highlights key price zones in the Nasdaq (NQ) based on so-called Magic Numbers — specifically the areas around 20, 30, 70, and 80 within each 50-point price segment.
These levels are historically significant, as they often align with:
• Options positioning and hedging activity
• Institutional liquidity pools
• Algorithmic reaction zones and stop hunts
Lines are dynamically plotted:
• Green (20/30): Potential support zones
• Orange (70/80): Common resistance or reversal areas
Ideal for intraday traders monitoring Nasdaq for liquidity grabs, reaction levels, and microstructure shifts.
Recommended for:
Scalpers, Orderflow traders, ICT-based strategies, Nasdaq-focused trading
Divergence + OBV + Supertrend Combo [Enhanced]Feature Description
🔹 OBV Plot on Chart Blue/Orange dots below/above bars based on OBV vs OBV MA
🔸 Early Signal Green triangle (bullish) or Red triangle (bearish) appears before Supertrend flips
🔺 Divergences Green/Red labels when RSI divergence occurs
✅ Supertrend Line Clear visual for current trend (Green = Up, Red = Down)
Gann Swing PointsIndicator Logic
This is a GANN-style swing indicator that classifies bars based on their high/low structure relative to the previous bar.
I strongly encourage you to replay bars on Tradingview using this indicator to get a sense of how it creates pivot (or swing) points
Bar Classification:
Up-Bar (direction: 'up'): Higher High and Higher Low (HH/HL)
Down-Bar (direction: 'down'): Lower High and Lower Low (LH/LL)
Outside-Bar (generates 2 directions):
Green: 'down' then 'up'
Red: 'up' then 'down'
Inside-Bar: No direction generated (HL/LH)
Swing Line Logic
The swing line continues in the current direction until n opposite directions are detected.
n is the "n-direction" parameter (commonly set to 2, so 2 consecutive opposite direction is needed to turn the swing)
When n opposing directions occur, the swing turns, creating a pivot point
Inside bar is ignored, so e.g up-bar -> inside-bar -> up-bar generates "up", "up" direction
A top pivot is formed when the swing turns down
A bottom pivot is formed when it turns up
Note: This swing logic is inherently lagging — it only confirms tops/bottoms after the fact
This swing structure gives the system a clear and noise-resistant way to identify pivot points (swing-points)
Double-SMADouble-SMA Indicator 📊
Description
The Double-SMA indicator displays two configurable moving averages on the chart to help analyze price trends. 📈📉
Configurable Parameters ⚙️
Short Period ⏱️: Number of candles used to calculate the fast moving average.
Default: 12
Long Period ⏲️: Number of candles used to calculate the slow moving average.
Default: 26
Price Source 💰: Base price used to calculate the moving averages.
Options: open 🟢, high 🔺, low 🔻, close 🔴, hl2 (average of high+low) ↕️, hlc3 (average of high+low+close) 🔄, ohlc4 (average of open+high+low+close) ⚖️
Default: close 🔴
MA Type 🧮: Type of moving average to calculate.
Options:
SMA (Simple) ➖
EMA (Exponential) 📈
WMA (Weighted) ⚖️
HMA (Hull) 🚀
Default: SMA ➖
How It Works 🔍
Calculates the fast (short-term) and slow (long-term) moving averages based on your settings.
The fast moving average changes color to indicate trend:
Blue 🔵 when above the slow moving average (uptrend ⬆️).
Orange 🟠 when below the slow moving average (downtrend ⬇️).
The slow moving average is shown in gray ⚪.
Both are plotted as solid lines on the chart.
How to Use 💡
Adjust periods and moving average types according to your analysis style.
Watch for crossovers between the moving averages:
When the fast MA crosses above the slow MA, it may signal a buying opportunity 🟢💵.
When it crosses below, it can indicate a sell or exit signal 🔴📉.
Use this indicator alongside other tools to confirm signals ✅.
📌 Note:
This is a private, non-profit project. If you appreciate the developer’s work, consider supporting voluntarily 🙏. For contact, reach out via private chat with the creator on TradingView 💬.
12/25 EMA Trend ColorPlots 12 EMA (close) and 25 EMA (close)
• Colors the EMAs green if the trend is up (12 EMA above 25 EMA), and red if the trend is down (12 EMA below 25 EMA)
Top Caller 200-day MA and 1.5xBased on a chart I saw from Bitqau on X. He used it to predict local tops and tops on BTC.
The red top line is the 200 MA multiplied by 1.5x. The idea is that when the price action interacts with it, it's a signal of reversal.
The bottom green line is the 200 day MA.
Session Range Lines15M Range Lines 18:00-8:00. This highlights all the ranges from Asia session to see which ones are mitigated or not.