SuperPerformance_V1.24SuperPerformance V1.24 - Advanced Performance Analysis Indicator
🎯 CORE FEATURES
📊 Performance Analysis
• Stock vs Index comparison across 6 timeframes (1D to 200D)
• Conviction scoring system (Perfect/Solid/Good/Ok/Weak/Poor)
• Real-time outperformance tracking with ✓/✗ indicators
🏢 Sector Analysis
• Top 5 sector ranking with live performance data
• 10 Indian market sectors tracking (PHARMA, TECH, FINANCE, etc.)
• Automatic sector identification for current stock
📈 Technical Tools
• Triple Moving Averages (SMA/EMA/WMA/HMA)
• Distance from MA analysis with percentage/spread calculations
• Enhanced hover tooltips showing distance info
🔔 Smart Alerts
• Dynamic Circuit Breakers (20%/10%/5%/2%) that adapt to volatility
• Extreme distance alerts when price deviates significantly from MA
🎨 Visual Interface
• 4 customizable tables: Stock Performance, Sector Performance, Distance Analysis, Sector Display
• Dark/Light themes with professional styling
• Flexible positioning - place tables anywhere on chart
• Mini mode for compact display
⚡ Advanced Features
• Real-time data from 10+ Indian indices
• Granular controls - show/hide any columns or rows
• Multiple tooltip methods (Labels/Data Window)
• Professional color coding for quick analysis
🎯 PERFECT FOR:
Indian stock traders, sector rotation analysis, performance monitoring, and technical analysis with institutional-grade features.
📌 KEY BENEFITS:
✅ Multi-timeframe performance tracking
✅ Sector rotation insights
✅ Advanced moving average analysis
✅ Professional-grade visualization
✅ Customizable alerts and notifications
✅ Indian market focus with NSE data integration
🔧 TECHNICAL SPECIFICATIONS:
• Pine Script v5 compatible
• Overlay indicator
• Real-time data processing
• Memory optimized
• Multi-security data support
• Professional color schemes
指標和策略
QMC + QM + AO Divergence Strategy | 1:3 RR | H4-H1📊 QMC + QM Signal Alert
📍 Pair: {{ticker}}
🕐 Timeframe: {{interval}}
📈 Direction: {{strategy.order.action}}
🎯 Strategy: QMC + QM + AO Divergence | 1:3 RR
⚠️ Note: AO divergence and QM pattern confirmed. A potential trade setup is detected!
📩 Join the signal group for real-time updates:
👉 t.me/ErgunFX_SignalGroup
PC UpdatedThis indicator identifies a high-probability breakout setup using a simple but powerful 3-candle formation. It works on lower timeframes (like 5m) and is ideal for scalping or short-term intraday setups.
MACD EMA + Time FilterStrategy Description: MACD EMA + Time Filter
This strategy combines MACD momentum, EMA trend filtering, and an optional time-based session filter (GMT+7) to generate high-probability trading signals. It is designed for intraday or short-term trading on small timeframes, and allows both Buy and Sell setups with fixed Risk-Reward (RR) control.
✅ Key Components:
EMA Filter: Uses a 21-period Exponential Moving Average (EMA) to determine the trend direction.
MACD Confirmation: Entries are confirmed using MACD crossover signals with customizable fast, slow, and signal periods.
Time Filter: Trades are only taken during a defined session (e.g., 19:00–22:00 GMT+7), ideal for high-liquidity trading hours.
RR Management: Entry signals include automatic Stop Loss (SL) and Take Profit (TP) levels, based on a pip buffer and RR multiplier.
Custom Options:
Enable/disable Buy or Sell signals
Show/hide SL/TP labels
Optionally display EMA on chart
Gold SCALP XAUUSD (SMA200/PSAR/ADX/ATR/Arrows)
This script is a custom scalping indicator designed for XAUUSD (gold) trading, suitable for low timeframes such as 1-minute or 5-minute charts.
It combines several proven technical analysis tools: the 200-period Simple Moving Average (SMA), Parabolic SAR (PSAR), Average Directional Index (ADX), and Average True Range (ATR).
The script first calculates the 200-period SMA to determine the overall market trend – above the SMA is bullish, below is bearish.
The PSAR indicator is included to pinpoint short-term reversal points and precise breakout moments.
ADX is calculated manually within the script to measure the strength of the prevailing trend; only strong trends trigger signals.
ATR is used to dynamically set take-profit and stop-loss levels, adapting to current volatility.
A buy signal is generated when the close price crosses above the PSAR, price is above the 200 SMA (bullish environment), and ADX indicates a strong trend above the threshold.
A sell signal appears when the close crosses below the PSAR, price is below SMA 200, and ADX confirms a strong bearish trend.
Arrows are plotted on the chart for every valid buy or sell signal, making trade entries visually clear.
Take-profit and stop-loss levels are plotted as crosses above or below the entry, calculated as multiples of ATR.
The background color subtly changes to green or red, indicating whether the market is bullish or bearish per trend filter.
Users can quickly evaluate trend conditions and momentum at a glance using these color cues.
Parameters for SMA, PSAR, ADX, ATR, and profit/stop levels can be manually adjusted to fit the user’s risk and trading style.
ADX and DI (Directional Indicators) are calculated from price action, not with a built-in, and the code follows the standard ADX mathematical formula.
Signals appear only when the trend is strong, avoiding sideways or choppy movements and helping filter out false positives.
The script does not open or close trades automatically; it is strictly an informational and visual trading tool.
All the plots, shapes, and backgrounds are intended to increase clarity and make decision-making quick during scalping.
The code is written in Pine Script v5, fully compatible with TradingView charts.
It is especially useful for traders looking to capture quick moves but needing strict technical filtering for their scalping approach.
Combining dynamic and static volatility, directional, and trend-following tools helps maximize probability and reduce whipsaw trades.
The modular design enables further customization, such as adding more timeframes or integrating with alerts, based on user preference.
Crowding model ║ BullVision🔬 Overview
The Crypto Crowding Model Pro is a sophisticated analytical tool designed to visualize and quantify market conditions across multiple cryptocurrencies. By leveraging Relative Strength Index (RSI) and Z-score calculations, this indicator provides traders with an intuitive and detailed snapshot of current crypto market dynamics, highlighting areas of extreme momentum, crowded trades, and potential reversal points.
⚙️ Key Concepts
📊 RSI and Z-Score Analysis
RSI (Relative Strength Index) evaluates the momentum and strength of each cryptocurrency, identifying overbought or oversold conditions.
Z-Score Normalization measures each asset's current price deviation relative to its historical average, identifying statistically significant extremes.
🎯 Crowding Analytics
An integrated analytics panel provides real-time crowding metrics, quantifying market sentiment into four distinct categories:
🔥 FOMO (Fear of Missing Out): High momentum, potential exhaustion.
❄️ Fear: Low momentum, potential reversal or consolidation.
📈 Recovery: Moderate upward momentum after a downward trend.
💪 Strength: Stable bullish conditions with sustained momentum.
🖥️ Visual Scatter Plot
Assets are plotted on a dynamic scatter plot, positioning each cryptocurrency according to its RSI and Z-score.
Color coding, symbol shapes, and sizes help quickly identify main market segments (BTC, ETH, TOTAL, OTHERS) and individual asset conditions.
🧩 Quadrant Classification
Assets are categorized into four quadrants based on their momentum and deviation:
Overbought Extended: High RSI and positive Z-score.
Recovery Phase: Low RSI but positive Z-score.
Oversold Compressed: Low RSI and negative Z-score.
Strong Consolidation: High RSI but negative Z-score.
🔧 User Customization
🎨 Visual Settings
Bar Scale: Adjust the scatter plot visual scale.
Asset Visibility: Optionally display key market benchmarks (TOTAL, BTC, ETH, OTHERS).
Gradient Background: Enhances visual interpretation of asset clusters.
Crowding Analytics Panel: Toggle the analytics panel on/off.
📊 Indicator Parameters
RSI Length: Defines the calculation period for RSI.
Z-score Lookback: Historical lookback period for normalization.
Crowding Alert Threshold: Sets alert sensitivity for crowded market conditions.
🎯 Zone Settings
Quadrant Labels: Displays descriptive labels for each quadrant.
Danger Zones: Highlights extreme RSI levels indicative of heightened market risk.
📈 Visual Output
Dynamic Scatter Plot: Visualizes asset positioning clearly and intuitively.
Gradient and Grid: Professional gridlines and subtle gradient backgrounds assist visual assessment.
Danger Zone Highlights: Visually indicates RSI extremes to warn of potential market turning points.
Crowding Analytics Panel: Real-time summary of market sentiment and asset distribution.
🔍 Use Cases
This indicator is particularly beneficial for traders and analysts looking to:
Identify crowded trades and potential reversal points.
Quickly assess overall market sentiment and individual asset strength.
Integrate a robust momentum analysis into broader technical or fundamental strategies.
Enhance market timing and improve risk management decisions.
⚠️ Important Notes
This indicator does not provide explicit buy or sell signals.
It is intended solely for informational, analytical, and educational purposes.
Past performance and signals are not indicative of future market results.
Always combine with additional tools and analysis as part of comprehensive decision-making.
✅ FIXED Strategy + Predictive Range//@version=5
strategy("✅ FIXED Strategy + Predictive Range", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
emaFastLen = input.int(5, "Fast EMA")
emaSlowLen = input.int(10, "Slow EMA")
useVolume = input.bool(true, "Use Volume Filter?")
volPeriod = input.int(20, "Volume SMA")
useMACD = input.bool(true, "Use MACD Confirmation?")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
useUTBot = input.bool(true, "Use UT Bot?")
atrPeriod = input.int(10, "ATR Period")
atrFactor = input.float(1.0, "ATR Factor")
useRange = input.bool(true, "Use First 15-min Range Breakout?")
slPoints = input.int(10, "Stop Loss (Points)")
tpPoints = input.int(20, "Take Profit (Points)")
// === EMA Calculation ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
plot(emaFast, color=color.orange)
plot(emaSlow, color=color.blue)
emaBull = ta.crossover(emaFast, emaSlow)
emaBear = ta.crossunder(emaFast, emaSlow)
// === Volume Filter ===
volOk = not useVolume or (volume > ta.sma(volume, volPeriod))
// === MACD ===
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdOkLong = not useMACD or macdLine > macdSig
macdOkShort = not useMACD or macdLine < macdSig
// === UT Bot (ATR Based) ===
atr = ta.atr(atrPeriod)
upper = high + atrFactor * atr
lower = low - atrFactor * atr
utBuy = ta.crossover(close, upper)
utSell = ta.crossunder(close, lower)
utOkLong = not useUTBot or utBuy
utOkShort = not useUTBot or utSell
// === Predictive Range Logic ===
var float morningHigh = na
var float morningLow = na
isNewDay = ta.change(time("D"))
var bool rangeCaptured = false
if isNewDay
morningHigh := na
morningLow := na
rangeCaptured := false
inFirst15 = (hour == 9 and minute < 30)
if inFirst15 and not rangeCaptured
morningHigh := na(morningHigh) ? high : math.max(morningHigh, high)
morningLow := na(morningLow) ? low : math.min(morningLow, low)
rangeCaptured := true
plot(useRange and not na(morningHigh) ? morningHigh : na, "Range High", color=color.green)
plot(useRange and not na(morningLow) ? morningLow : na, "Range Low", color=color.red)
rangeOkLong = not useRange or close > morningHigh
rangeOkShort = not useRange or close < morningLow
// === Final Conditions ===
longCond = emaBull and volOk and macdOkLong and utOkLong and rangeOkLong
shortCond = emaBear and volOk and macdOkShort and utOkShort and rangeOkShort
// === Entry/Exit ===
if longCond
strategy.entry("BUY", strategy.long)
if shortCond
strategy.entry("SELL", strategy.short)
strategy.exit("TP/SL Long", from_entry="BUY", stop=close - slPoints, limit=close + tpPoints)
strategy.exit("TP/SL Short", from_entry="SELL", stop=close + slPoints, limit=close - tpPoints)
// === Plot Arrows ===
plotshape(longCond, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCond, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Alerts ===
alertcondition(longCond, title="BUY Alert", message="BUY Signal Triggered")
alertcondition(shortCond, title="SELL Alert", message="SELL Signal Triggered")
Session VWAPsThis indicator plots volume-weighted average price (VWAP) lines for three major trading sessions: Tokyo, London, and New York. Each VWAP resets at the start of its session and tracks the average price weighted by volume during that window. You can choose the exact session times, turn individual sessions on or off, and optionally extend each VWAP line until the end of the trading day.
It’s designed to give you a clear view of how price is behaving relative to session-specific value areas. This can help in identifying session overlaps, shifts in price control, or whether price is holding above or below a particular session’s average. The indicator supports futures-style day rollovers and works across markets.
Previous Day OHLC + Open MarkerPrevious Day OHLC + Open Marker
This indicator is designed to help traders quickly identify the most important price levels from the previous trading session and today’s open. It provides a clean and configurable overlay of the previous day’s OHLC (Open, High, Low, Close) along with the current day's opening price, making it easy to spot price reactions, liquidity sweeps, and confluence zones.
📌 Key Features
✅ Previous Day OHLC Lines
Plots horizontal lines for High (H), Low (L), Open (O), and Close (C) from the previous session
Each line is independently toggleable
Fully customizable in color, transparency, and thickness
✅ Today's Session Open (DO)
Marks the current day's opening price
Helps identify directional bias, trend/momentum shifts, or mean-reversion points
✅ Minimalist Labels for Clarity
Text-only labels like H, L, O, C, and DO — no bulky label boxes
Color-matched to each line for visual simplicity
Optional display to keep charts clean
✅ Session-Based Highlight Zone
Optionally highlights the area between the previous day’s High and Low with a shaded box
Useful for identifying the day’s value area or range breakouts
✅ Smart Alerts
Receive alerts when price crosses any of the levels: PDH, PDL, PDO, PDC, or Today’s Open
Helps you catch key interactions without watching the chart constantly
🧠 Ideal For
Intraday traders using VWAP, order blocks, or liquidity concepts
Swing traders who want to see how current price relates to prior structure
Scalpers looking for clean levels to enter fades, reversals, or breakouts
Anyone applying institutional trading concepts (PDH/PDL sweeps, FVGs, BPRs, etc.)
⚙️ Customization Options
Toggle each level (H/L/O/C/DO) individually
Show or hide labels and highlight zone
Customize color, line thickness, and transparency
Clean layout — no line extensions across the entire chart
🧼 Design Philosophy
This script was created for clarity, speed, and minimalism. It avoids clutter while preserving all the crucial context price action traders need. Labels are informative but unobtrusive, and alerts help automate level tracking.
🛠 Built with Pine Script v5
🔔 Alerts Included
📊 Optimized for both intraday and swing trading
📦 Lightweight and modular by design
BTST Top Gainer ScannerBTST Stock identifier- BETA
scanner configuration based on the validated BTST checklist. This scans for stocks likely to gain 5-10% intraday tomorrow when bought at today's close:
Execution Tips:
Run scanner at 3:20 PM IST daily
Filter stocks with:
FII/DII net buying (check moneycontrol)
Pre-market futures premium > 0.4%
No pending corporate actions
Position sizing formula: Qty = (1% Account Risk) / (1.5 * ta.atr(14))
Cross-verify with FII/DII activity (moneycontrol.com) - stocks with FII net buys have 23% higher success rate.
Exponential-Decay Cumulative Spread (Cycle-Tuned)## Indicator Overview
**Exponential-Decay Cumulative Spread (Cycle-Tuned)** – short title **LambdaCumDelta** – tracks the percentage spread between CEXs BTC spot prices.
By clipping outliers, applying an exponential-decay running sum, and comparing that sum to rolling percentile bands, the script flags potential **cycle bottoms** and **cycle tops** whenever the cumulative spread stays beyond extreme thresholds for three consecutive bars.
---
### Core Logic
1. **Price Spread**
`spread_pct = (cexA – cexB) / cexB × 100`.
2. **Outlier Suppression**
* Calculates the **90-day standard deviation σ** of `spread_pct`.
* Uses a **clip coefficient `k_clip`** (0.5–5.0) to cap the spread at `±k_clip × σ`, damping single-day anomalies.
3. **Exponential-Decay Sum**
* Applies a decay factor **λ** (0.50–0.999):
```
CumΔₜ = spread_clipₜ + λ × CumΔₜ₋₁
```
* Larger λ → longer memory half-life.
4. **Rolling Percentile Bands**
* Uses a **365-bar window** to derive dynamic percentile thresholds.
* Upper / Lower bands are set by **perc\_hi** and **perc\_lo** (e.g., 85 % and 15 %).
5. **Signal Definition**
* **Bullish** (cycle bottom): `CumΔ` above the upper band for **3 straight bars**.
* **Bearish** (cycle top): `CumΔ` below the lower band for **3 straight bars**.
---
### Chart Elements
| Plot | Style | Meaning |
| --------------- | ----------------- | ----------------------------------- |
| **CumΔ** | Teal thick line | Exponential-decay cumulative spread |
| Upper Threshold | Green thin line | Rolling upper percentile |
| Lower Threshold | Red thin line | Rolling lower percentile |
| Background | Faded green / red | Bullish / bearish signal zone |
---
### Key Inputs
| Input | Default | Purpose |
| -------------------- | ------- | ------------------------------- |
| **Decay factor λ** | 0.95 | Memory length of CumΔ |
| **Clip coefficient** | 2.0 | Multiple of σ for outlier cap |
| **Upper percentile** | 85 | Cycle-bottom trigger percentile |
| **Lower percentile** | 15 | Cycle-top trigger percentile |
---
### Practical Tips
1. **Timing bias**
* Green background often precedes mean-reversion of the spread – consider scaling into longs or covering shorts.
* Red background suggests stretched positive spread – consider trimming longs or lightening exposure.
2. **Combine with volume, trend filters (MA, MACD, etc.)** to weed out false extremes.
3. Designed for **daily charts**; ensure both exchange feeds are synchronized.
---
### Alerts
Two built-in `alertcondition`s fire when bullish or bearish criteria are met, enabling push / email / webhook notifications.
---
### Disclaimer
This script is for educational and research purposes only and is **not** financial advice. Test thoroughly and trade at your own risk.
Monthly Seasonality Trend [DunesIsland]The Monthly Seasonality Trend is a indicator designed to analyze and visualize historical monthly seasonality patterns in financial markets. By calculating the average monthly return over a user-configurable lookback period (1 to 10 years), this indicator provides traders and investors with a clear projection of potential price movements for the current month, enabling data-driven decision-making.
How It Works
The indicator operates by retrieving monthly open and close prices for the specified lookback period (up to 10 years) and computing the average percentage return for the current month based on historical data. Key functionalities include:
Dynamic Trend Line: On the first trading day of each month, the indicator plots a line projecting the expected price trajectory, starting from the current close price and extending to the estimated end-of-month price based on the average historical return. The line is colored green for anticipated price increases or red for expected declines, offering an intuitive visual cue.
Average Return Label: A label is displayed at the start of each month, detailing the calculated average historical return for that month, expressed as a percentage, to provide context for the projected trend.
First Trading Day Marker: A small circle is plotted below the bar on the first trading day of each month, clearly marking the start of the projection period.
Adaptive Bar Counting: The indicator dynamically adjusts the length of the trend line based on the actual number of trading days in the previous month, ensuring accurate projections.
How to Interpret
Bullish Projection (Green Line): Indicates that historical data suggests an average price increase for the current month, potentially signaling buying opportunities.
Bearish Projection (Red Line): Suggests an average price decline based on historical trends, which may prompt caution or short-selling strategies.
Historical Context: The average return label provides a quantitative measure of past performance, helping traders assess the reliability of the projected trend.
Tagesbeginn Linie# Daily Lines Indicator
**Simple vertical line indicator for marking daily sessions**
This Pine Script indicator draws vertical lines at the beginning of each trading day (0:00 CET/MEZ) to help visualize daily session boundaries on your chart.
## Features
- **Daily Session Markers**: Automatic vertical lines at midnight (0:00 CET)
- **Monday Highlighting**: Different color for Monday lines to mark the beginning of the trading week
- **Customizable Colors**: Separate color settings for regular days and Mondays
- **Adjustable Line Width**: Line thickness from 1-3 pixels
- **Full Extension**: Lines extend both above and below the chart for clear visibility
## Settings
- **Normal Line Color**: Color for regular daily lines (default: gray)
- **Monday Line Color**: Color for Monday/week beginning lines (default: blue)
- **Line Width**: Thickness of the vertical lines (1-3)
## Usage
Perfect for traders who want to:
- Clearly identify daily session boundaries
- Mark the beginning of each trading week
- Improve chart readability with clean session divisions
- Analyze price action around daily opens
Simply add to your chart and customize the colors to match your trading style.
RSI(2) - Estratégia com 3 filtros e 3 saídas
Entry: RSI(2) < 20 + EMA80 + above-average volume + reversal candle
Exit: Profit at close OR RSI > 70 OR 7th candle
Overlay: Candles + EMAs + SignalsOverlay Candles + EMA Signals is a Pine Script v6 indicator featuring:
• Main panel (overlay):
– Candlesticks with EMA(7), EMA(14), EMA(25), and EMA(99)
– Bold green upward arrow + “BUY” label below a candle when a bullish EMA crossover occurs
– Bold orange downward arrow + “SELL” label above a candle when a bearish EMA crossover occurs
• Lower panel (overlay = false):
– MACD histogram (12, 26, 9)
– On-Balance Volume (OBV) with OBV EMA6 and EMA24
BUY/SELL signals are triggered on EMA fast-to-mid vs EMA long crossovers, designed for early detection and clear visualization (to help avoid FOMO).
This script is clean, uncluttered, and optimized for TradingView Premium usage.
Forever Model [Pro+] (Sniper) Blueprint//@version=5
indicator("Forever Model Replica", overlay=true, dynamic_requests=true)
// Inputs
nasdaq = input.string("NASDAQ:NDX", "Nasdaq Symbol")
dow = input.string("DJ:DJI", "Dow Jones Symbol")
sp500 = input.string("SP:SPX", "S&P 500 Symbol")
fvg_min_range = input.float(0.5, "Min FVG Range (% of ATR)", minval=0.1)
bias = input.string("Neutral", "Directional Bias", options= )
session_filter = input.bool(true, "Filter by US Session (9 AM–5 PM UTC)")
start_hour = input.int(9, "Start Hour (UTC)", minval=0, maxval=23)
end_hour = input.int(17, "End Hour (UTC)", minval=0, maxval=23)
// ATR and Time Filter
atr = ta.atr(14)
in_time_window = not session_filter or (hour >= start_hour and hour <= end_hour)
// Arrays for active zones (FVGs and OBs)
var active_tops = array.new_float(0)
var active_bottoms = array.new_float(0)
var active_types = array.new_string(0)
var active_boxes = array.new_box(0)
// Pre-fetch price data for 14 bars for each timeframe
var float high_series_1h = array.new_float(14)
var float low_series_1h = array.new_float(14)
var float high_series_4h = array.new_float(14)
var float low_series_4h = array.new_float(14)
var float high_series_d = array.new_float(14)
var float low_series_d = array.new_float(14)
array.set(high_series_1h, 0, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 0, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 1, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 1, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 2, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 2, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 3, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 3, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 4, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 4, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 5, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 5, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 6, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 6, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 7, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 7, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 8, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 8, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 9, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 9, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 10, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 10, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 11, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 11, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 12, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 12, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_1h, 13, request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on))
array.set(low_series_1h, 13, request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 0, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 0, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 1, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 1, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 2, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 2, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 3, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 3, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 4, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 4, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 5, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 5, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 6, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 6, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 7, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 7, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 8, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 8, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 9, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 9, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 10, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 10, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 11, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 11, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 12, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 12, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_4h, 13, request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on))
array.set(low_series_4h, 13, request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 0, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 0, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 1, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 1, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 2, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 2, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 3, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 3, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 4, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 4, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 5, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 5, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 6, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 6, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 7, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 7, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 8, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 8, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 9, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 9, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 10, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 10, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 11, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 11, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 12, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 12, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
array.set(high_series_d, 13, request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on))
array.set(low_series_d, 13, request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on))
// Manual ATR calculation function (simplified for 14 periods)
manual_atr(high_series, low_series) =>
var float tr_sum = 0.0
for i = 0 to 13
high_prev = nz(array.get(high_series, i + 1), array.get(high_series, i))
low_prev = nz(array.get(low_series, i + 1), array.get(low_series, i))
tr = math.max(array.get(high_series, i), high_prev) - math.min(array.get(low_series, i), low_prev)
tr_sum := tr_sum + tr
tr_sum / 14 // Average True Range over 14 periods
// FVG Detection for Higher Timeframes (1H, 4H, D)
// 1H (60 minutes)
atr_1h = manual_atr(high_series_1h, low_series_1h)
low_1h = request.security(syminfo.tickerid, "60", low, lookahead=barmerge.lookahead_on)
high_1h = request.security(syminfo.tickerid, "60", high , lookahead=barmerge.lookahead_on)
close_1h = request.security(syminfo.tickerid, "60", close , lookahead=barmerge.lookahead_on)
open_1h = request.security(syminfo.tickerid, "60", open , lookahead=barmerge.lookahead_on)
low_1h_bear = request.security(syminfo.tickerid, "60", low , lookahead=barmerge.lookahead_on)
high_1h_bear = request.security(syminfo.tickerid, "60", high, lookahead=barmerge.lookahead_on)
fvg_bull_1h = low_1h > high_1h and close_1h > open_1h and (low_1h - high_1h) >= fvg_min_range * atr_1h and (low_1h - high_1h) > 0
fvg_bear_1h = high_1h_bear < low_1h_bear and close_1h < open_1h and (low_1h_bear - high_1h_bear) >= fvg_min_range * atr_1h and (low_1h_bear - high_1h_bear) > 0
new_fvg_bull_1h = fvg_bull_1h and not fvg_bull_1h
new_fvg_bear_1h = fvg_bear_1h and not fvg_bear_1h
if new_fvg_bull_1h and in_time_window and (bias == "Bullish" or bias == "Neutral") and barstate.isconfirmed
array.push(active_tops, low_1h)
array.push(active_bottoms, high_1h)
array.push(active_types, "fvg_bullish")
new_box = box.new(left=bar_index, top=low_1h, right=bar_index+10, bottom=high_1h, bgcolor=color.new(color.green, 80))
array.push(active_boxes, new_box)
if new_fvg_bear_1h and in_time_window and (bias == "Bearish" or bias == "Neutral") and barstate.isconfirmed
array.push(active_tops, low_1h_bear)
array.push(active_bottoms, high_1h_bear)
array.push(active_types, "fvg_bearish")
new_box = box.new(left=bar_index, top=low_1h_bear, right=bar_index+10, bottom=high_1h_bear, bgcolor=color.new(color.red, 80))
array.push(active_boxes, new_box)
// 4H (240 minutes)
atr_4h = manual_atr(high_series_4h, low_series_4h)
low_4h = request.security(syminfo.tickerid, "240", low, lookahead=barmerge.lookahead_on)
high_4h = request.security(syminfo.tickerid, "240", high , lookahead=barmerge.lookahead_on)
close_4h = request.security(syminfo.tickerid, "240", close , lookahead=barmerge.lookahead_on)
open_4h = request.security(syminfo.tickerid, "240", open , lookahead=barmerge.lookahead_on)
low_4h_bear = request.security(syminfo.tickerid, "240", low , lookahead=barmerge.lookahead_on)
high_4h_bear = request.security(syminfo.tickerid, "240", high, lookahead=barmerge.lookahead_on)
fvg_bull_4h = low_4h > high_4h and close_4h > open_4h and (low_4h - high_4h) >= fvg_min_range * atr_4h and (low_4h - high_4h) > 0
fvg_bear_4h = high_4h_bear < low_4h_bear and close_4h < open_4h and (low_4h_bear - high_4h_bear) >= fvg_min_range * atr_4h and (low_4h_bear - high_4h_bear) > 0
new_fvg_bull_4h = fvg_bull_4h and not fvg_bull_4h
new_fvg_bear_4h = fvg_bear_4h and not fvg_bear_4h
if new_fvg_bull_4h and in_time_window and (bias == "Bullish" or bias == "Neutral") and barstate.isconfirmed
array.push(active_tops, low_4h)
array.push(active_bottoms, high_4h)
array.push(active_types, "fvg_bullish")
new_box = box.new(left=bar_index, top=low_4h, right=bar_index+10, bottom=high_4h, bgcolor=color.new(color.green, 80))
array.push(active_boxes, new_box)
if new_fvg_bear_4h and in_time_window and (bias == "Bearish" or bias == "Neutral") and barstate.isconfirmed
array.push(active_tops, low_4h_bear)
array.push(active_bottoms, high_4h_bear)
array.push(active_types, "fvg_bearish")
new_box = box.new(left=bar_index, top=low_4h_bear, right=bar_index+10, bottom=high_4h_bear, bgcolor=color.new(color.red, 80))
array.push(active_boxes, new_box)
// Daily (D)
atr_d = manual_atr(high_series_d, low_series_d)
low_d = request.security(syminfo.tickerid, "D", low, lookahead=barmerge.lookahead_on)
high_d = request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on)
close_d = request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_on)
open_d = request.security(syminfo.tickerid, "D", open , lookahead=barmerge.lookahead_on)
low_d_bear = request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on)
high_d_bear = request.security(syminfo.tickerid, "D", high, lookahead=barmerge.lookahead_on)
fvg_bull_d = low_d > high_d and close_d > open_d and (low_d - high_d) >= fvg_min_range * atr_d and (low_d - high_d) > 0
fvg_bear_d = high_d_bear < low_d_bear and close_d < open_d and (low_d_bear - high_d_bear) >= fvg_min_range * atr_d and (low_d_bear - high_d_bear) > 0
new_fvg_bull_d = fvg_bull_d and not fvg_bull_d
new_fvg_bear_d = fvg_bear_d and not fvg_bear_d
if new_fvg_bull_d and in_time_window and (bias == "Bullish" or bias == "Neutral") and barstate.isconfirmed
array.push(active_tops, low_d)
array.push(active_bottoms, high_d)
array.push(active_types, "fvg_bullish")
new_box = box.new(left=bar_index, top=low_d, right=bar_index+10, bottom=high_d, bgcolor=color.new(color.green, 80))
array.push(active_boxes, new_box)
if new_fvg_bear_d and in_time_window and (bias == "Bearish" or bias == "Neutral") and barstate.isconfirmed
array.push(active_tops, low_d_bear)
array.push(active_bottoms, high_d_bear)
array.push(active_types, "fvg_bearish")
new_box = box.new(left=bar_index, top=low_d_bear, right=bar_index+10, bottom=high_d_bear, bgcolor=color.new(color.red, 80))
array.push(active_boxes, new_box)
// FVG Detection for Current Timeframe (15M)
gap_bull_15m = low - high
gap_bear_15m = low - high
fvg_bull_15m = low > high and close > open and gap_bull_15m >= fvg_min_range * atr and gap_bull_15m > 0 and barstate.isconfirmed
fvg_bear_15m = high < low and close < open and gap_bear_15m >= fvg_min_range * atr and gap_bear_15m > 0 and barstate.isconfirmed
if fvg_bull_15m and in_time_window and (bias == "Bullish" or bias == "Neutral")
array.push(active_tops, low)
array.push(active_bottoms, high )
array.push(active_types, "fvg_bullish")
new_box = box.new(left=bar_index, top=low, right=bar_index+10, bottom=high , bgcolor=color.new(color.green, 80))
array.push(active_boxes, new_box)
if fvg_bear_15m and in_time_window and (bias == "Bearish" or bias == "Neutral")
array.push(active_tops, low )
array.push(active_bottoms, high)
array.push(active_types, "fvg_bearish")
new_box = box.new(left=bar_index, top=low , right=bar_index+10, bottom=high, bgcolor=color.new(color.red, 80))
array.push(active_boxes, new_box)
// OB Detection for Current Timeframe (15M)
htf_sweep_bull = request.security(syminfo.tickerid, "60", low < low and close > high , lookahead=barmerge.lookahead_on)
htf_sweep_bear = request.security(syminfo.tickerid, "60", high > high and close < low , lookahead=barmerge.lookahead_on)
is_bull_ob = low < low and close > open and close > high and htf_sweep_bull and barstate.isconfirmed
is_bear_ob = high > high and close < open and close < low and htf_sweep_bear and barstate.isconfirmed
if is_bull_ob and in_time_window and (bias == "Bullish" or bias == "Neutral")
array.push(active_tops, high)
array.push(active_bottoms, low)
array.push(active_types, "ob_bullish")
new_box = box.new(left=bar_index, top=high, right=bar_index+10, bottom=low, bgcolor=color.new(color.blue, 80))
array.push(active_boxes, new_box)
if is_bear_ob and in_time_window and (bias == "Bearish" or bias == "Neutral")
array.push(active_tops, high)
array.push(active_bottoms, low)
array.push(active_types, "ob_bearish")
new_box = box.new(left=bar_index, top=high, right=bar_index+10, bottom=low, bgcolor=color.new(color.orange, 80))
array.push(active_boxes, new_box)
// SMT Divergence Detection
nasdaq_l = request.security(nasdaq, "15", low, lookahead=barmerge.lookahead_on)
nasdaq_h = request.security(nasdaq, "15", high, lookahead=barmerge.lookahead_on)
dow_l = request.security(dow, "15", low, lookahead=barmerge.lookahead_on)
dow_h = request.security(dow, "15", high, lookahead=barmerge.lookahead_on)
sp500_l = request.security(sp500, "15", low, lookahead=barmerge.lookahead_on)
sp500_h = request.security(sp500, "15", high, lookahead=barmerge.lookahead_on)
bull_div_n = low < low and nasdaq_l > nasdaq_l
bull_div_d = low < low and dow_l > dow_l
bull_div_s = low < low and sp500_l > sp500_l
bear_div_n = high > high and nasdaq_h < nasdaq_h
bear_div_d = high > high and dow_h < dow_h
bear_div_s = high > high and sp500_h < sp500_h
div_count_bull = (bull_div_n ? 1 : 0) + (bull_div_d ? 1 : 0) + (bull_div_s ? 1 : 0)
div_count_bear = (bear_div_n ? 1 : 0) + (bear_div_d ? 1 : 0) + (bear_div_s ? 1 : 0)
smt_bull = div_count_bull >= 2 and in_time_window and (bias == "Bullish" or bias == "Neutral") and barstate.isconfirmed
smt_bear = div_count_bear >= 2 and in_time_window and (bias == "Bearish" or bias == "Neutral") and barstate.isconfirmed
plotshape(smt_bull, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(smt_bear, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Mitigation Logic for Active Zones
for i = array.size(active_tops) - 1 to 0
type = array.get(active_types, i)
top = array.get(active_tops, i)
bottom = array.get(active_bottoms, i)
if (type == "fvg_bullish" and close < bottom) or (type == "fvg_bearish" and close > top) or (type == "ob_bullish" and close < bottom) or (type == "ob_bearish" and close > top)
box.delete(array.get(active_boxes, i))
array.remove(active_tops, i)
array.remove(active_bottoms, i)
array.remove(active_types, i)
array.remove(active_boxes, i)
// Array Size Limit
if array.size(active_boxes) > 50
box.delete(array.get(active_boxes, 0))
array.remove(active_tops, 0)
array.remove(active_bottoms, 0)
array.remove(active_types, 0)
array.remove(active_boxes, 0)
// Alerts
alertcondition(fvg_bull_15m or fvg_bull_1h or fvg_bull_4h or fvg_bull_d, "Bullish FVG Detected", "Bullish FVG on {{ticker}}")
alertcondition(fvg_bear_15m or fvg_bear_1h or fvg_bear_4h or fvg_bear_d, "Bearish FVG Detected", "Bearish FVG on {{ticker}}")
alertcondition(is_bull_ob, "Bullish OB Detected", "Bullish OB on {{ticker}}")
alertcondition(is_bear_ob, "Bearish OB Detected", "Bearish OB on {{ticker}}")
alertcondition(smt_bull, "Bullish SMT Divergence", "Bullish SMT Divergence on {{ticker}}")
alertcondition(smt_bear, "Bearish SMT Divergence", "Bearish SMT Divergence on {{ticker}}")
CPR by myBiniyog“CPR by myBiniyog” plots Central Pivot Range (CPR) and Daily Pivot Points (R1, R2, S1, S2) using clean and intuitive circle markers on price charts. Ideal for intraday traders who rely on key support and resistance zones.
🔹 **CPR Levels**:
- TC (Top Central)
- Pivot
- BC (Bottom Central)
🔹 **Daily Pivot Points**:
- R1 & R2 (Resistance Zones)
- S1 & S2 (Support Zones)
The CPR is based on previous day's OHLC data and can help traders predict:
- Narrow CPR = potential breakout day
- Wide CPR = potential sideways movement
The indicator auto-plots these levels as circles on intraday timeframes (like 5-min or 15-min charts). It's designed to be visually clean and fast to read.
Built in Pine Script v5. Open-source. Free for educational use.
Best suited for Nifty, Bank Nifty, stocks, crypto and forex traders who prefer CPR-based systems.
Made by: myBiniyog
Chiaroscuro Scalp Model A [Signal + Visuals]This indicator is based on the Chiaroscuro Scalp Model A — a precision-based scalping system that identifies high-probability trade setups during the London and New York sessions. It combines daily range expansion, order blocks, fair value gaps, and W/M reversal patterns to generate 20-pip scalping opportunities with clearly plotted stop loss and take profit levels. Ideal for intraday traders seeking structured, rule-based entries.
ICT All in One by GtraderICT All-in-One by GTrader – Description
This indicator is designed for traders who follow ICT or Smart Money Concepts. It helps you visualize key market sessions, time-based price levels, and structured macro behaviors in one clean and customizable tool.
The Killzone feature automatically draws session boxes for Asia, London, and New York (including AM, Lunch, and PM sessions). Each box can show the session name, high and low pivots, and can be customized with different colors, transparency levels, and labels.
You can also add horizontal lines at important times like the daily open or New York open. Up to five session open lines can be defined, each with customizable styles, colors, and optional text labels.
In addition, the indicator lets you display vertical time markers. These lines help you track key intraday moments such as killzone entries or important session changes. You can enable up to four of these, each with its own settings.
One of the most powerful features is the macro session tracker. This creates boxes during specific time windows where price action is monitored. It automatically draws the top and bottom price levels during that session and updates them live. It supports up to five macros and works best on lower timeframes like 1-minute, 3-minute, and 5-minute charts.
The entire script respects your selected timezone, so all sessions and times are adjusted accordingly. Everything is customizable—from label sizes and colors to how many days of drawings are shown on your chart.
This script is ideal for traders who rely on time-of-day behavior, structured price action, and ICT methodologies.
Ergun BTC Strategy AlertThis indicator generates signals based on three strategies used in currency pairs like BTC/USD:
1. Liquidity Grab Reversal (reversal after TOBO/OBO)
2. Break & Retest (trend continuation from support/resistance)
3. High RR Scalping (M15 breakout entries)
Trend direction is confirmed by the EMA50. Compatible timeframes: H1 – H4 – M15
You can set an alarm and receive a notification on your mobile phone when a signal is received.