One for AllOne for All (OFA) - Complete ICT Analysis Suite
Version 3.3.0 by theCodeman
📊 Overview
One for All (OFA) is a comprehensive TradingView indicator designed for traders who follow Inner Circle Trader (ICT) concepts. This all-in-one tool combines essential ICT analysis features—sessions, kill zones, previous period levels, and higher timeframe candles with Fair Value Gaps (FVGs) and Volume Imbalances (VIs)—into a single, highly customizable indicator. Whether you're a beginner learning ICT concepts or an experienced trader refining your edge, OFA provides the visual structure needed for precise market analysis and execution.
✨ Key Features
- 🏷️ Customizable Watermark**: Display your trading identity with customizable titles, subtitles, symbol info, and full style control
- 🌍 Trading Sessions**: Visualize Asian, London, and New York sessions with high/low lines, range boxes, and open/close markers
- 🎯 Kill Zones**: Highlight 5 critical ICT kill zones with precise timing and visual boxes
- 📈 Previous Period H/L**: Track Daily, Weekly, and Monthly highs/lows with customizable styles and lookback periods
- 🕐 Higher Timeframe Candles**: Display up to 5 HTF timeframes with OHLC trace lines, timers, and interval labels
- 🔍 FVG & VI Detection**: Automatically detect and visualize Fair Value Gaps and Volume Imbalances on HTF candles
- ⚙️ Universal Timezone Support**: Works globally with GMT-12 to GMT+14 timezone selection
- 🎨 Full Customization**: Control colors, styles, visibility, and layout for every feature
🚀 How to Use
Watermark Setup
The watermark overlay helps you identify your charts and maintain focus on your trading principles:
1. Enable/disable watermark via "Show Watermark" toggle
2. Customize the title (default: "Name") to display your trading name or account identifier
3. Set up to 3 subtitles (default: "Patience", "Confidence", "Execution") as trading reminders
4. Choose position (9 locations available), size, color, and transparency
5. Toggle symbol and timeframe display as needed
Use Case: Display your trading principles or account name for multi-monitor setups or content creation.
Trading Sessions Analysis
Sessions define market character and liquidity availability:
1. Enable "Show All Sessions" to visualize all three sessions
2. Adjust timezone to match your local market (default: UTC-5 for EST)
3. Customize session times if needed (defaults cover standard hours)
4. Enable session range boxes to see consolidation zones
5. Use session high/low lines to identify key levels for the current session
6. Enable open/close markers to track session transitions
Use Case: Identify which session you're trading in, track session highs/lows for liquidity, and anticipate session transition volatility.
Kill Zones Trading
Kill zones are ICT's high-probability trading windows:
1. Enable individual kill zones or use "Show All Kill Zones"
2. **Asian Kill Zone** (2000-0000 GMT): Early positioning and smart money accumulation
3. **London Kill Zone** (0300-0500 GMT): European market opening volatility
4. **NY AM Kill Zone** (0930-1100 EST): Post-NYSE open expansion
5. **NY Lunch Kill Zone** (1200-1300 EST): Midday consolidation or manipulation
6. **NY PM Kill Zone** (1330-1600 EST): Afternoon positioning and closes
7. Customize colors and times to match your trading style
8. Set max days display to control historical visibility (default: 30 days)
Use Case: Focus entries during high-probability windows. Watch for liquidity sweeps at kill zone openings and institutional positioning.
Previous Period High/Low Levels
Previous period levels act as magnetic price targets and support/resistance:
1. Enable Daily (PDH/PDL), Weekly (PWH/PWL), or Monthly (PMH/PML) levels individually
2. Set lookback period (how many previous periods to display)
3. Choose line style: Solid (current emphasis), Dashed (standard), or Dotted (subtle)
4. Customize colors per timeframe for visual hierarchy
5. Adjust line width (1-5) for visibility preference
6. Enable gradient effect to fade older periods
7. Position labels left or right based on chart layout
8. Customize label text for your preferred notation
Use Case: Identify key levels where price is likely to react. Daily levels work on intraday timeframes, Weekly on daily charts, Monthly for swing trading.
Higher Timeframe (HTF) Candles
HTF candles reveal the larger market context while trading lower timeframes:
1. Enable up to 5 HTF slots simultaneously (default: 5m, 15m, 1H, 4H, Daily)
2. Choose display mode: "Below Chart" (stacked rows) or "Right Side" (compact column)
3. Customize timeframe, colors (bull/bear), and titles for each slot
4. **OHLC Trace Lines**: Visual lines connecting HTF candle levels to chart bars
5. **HTF Timer**: Countdown showing time remaining until HTF candle close
6. **Interval Labels**: Display day of week (Daily+) or time (intraday) on each candle
7. For Daily candles: Choose open time (Midnight, 8:30, 9:30) to match your market structure preference
Use Case: Trade lower timeframes while respecting higher timeframe structure. Watch for HTF candle closes to confirm directional bias.
FVG & VI Detection
Fair Value Gaps and Volume Imbalances highlight inefficiencies that price often revisits:
1. **Fair Value Gaps (FVGs)**: Detected when HTF candle wicks don't overlap between 3 consecutive candles
- Bullish FVG: Gap between candle 1 high and candle 3 low (green box by default)
- Bearish FVG: Gap between candle 1 low and candle 3 high (red box by default)
2. **Volume Imbalances (VIs)**: Similar detection but focuses on body gaps
- Bullish VI: Gap between candle 1 close and candle 3 open
- Bearish VI: Gap between candle 1 open and candle 3 close
3. Enable FVG/VI detection per HTF slot individually
4. Customize colors and transparency for each imbalance type
5. Boxes appear on chart at formation and remain visible as retracement targets
**Use Case**: Identify high-probability retracement zones. Price often returns to fill FVGs and VIs before continuing the trend. Use as entry zones or profit targets.
🎨 Customization
OFA is built for flexibility. Every feature includes extensive customization options:
Visual Customization
- **Colors**: Independent color control for every element (sessions, kill zones, lines, labels, FVGs, VIs)
- **Transparency**: Adjust box and label transparency (0-100%) for clean charts
- **Line Styles**: Choose Solid, Dashed, or Dotted for previous period lines
- **Sizes**: Control text size, line width, and box borders
- **Positions**: Place watermark in 9 positions, labels left/right
Layout Control
- **HTF Display Mode**: "Below Chart" for detailed analysis, "Right Side" for space efficiency
- **Drawing Limits**: Set max days for sessions/kill zones to manage chart clutter
- **Lookback Periods**: Control how many previous periods to display (1-10)
- **Gradient Effects**: Enable fading for older previous period lines
Timing Adjustments
- **Timezone**: Universal GMT offset selector (-12 to +14) for global markets
- **Session Times**: Customize each session's start/end times
- **Kill Zone Times**: Adjust kill zone windows to match your market's characteristics
- **Daily Open**: Choose Midnight, 8:30, or 9:30 for Daily HTF candle open time
💡 Best Practices
1. Start Simple: Enable one feature at a time to learn how each element affects your analysis
2. Match Your Timeframe: Use Daily levels on intraday charts, Weekly on daily charts, HTF candles one or two levels above your trading timeframe
3. Kill Zone Focus: Concentrate your trading activity during kill zones for higher probability setups
4. HTF Confirmation: Wait for HTF candle closes before committing to directional bias
5. FVG/VI Entries: Look for price to return to unfilled FVGs/VIs for entry opportunities with favorable risk/reward
6. Customize Colors: Use a consistent color scheme that matches your chart theme and reduces visual fatigue
7. Reduce Clutter: Disable features you're not actively using in your current trading plan
8. Session Context: Understand which session controls the market—trade with session direction or anticipate reversals at session transitions
⚙️ Settings Guide
OFA organizes settings into logical groups for easy navigation:
- **═══ WATERMARK ═══**: Title, subtitles, position, style, symbol/timeframe display
- **═══ SESSIONS ═══**: Enable/disable sessions, times, colors, high/low lines, boxes, markers
- **═══ KILL ZONES ═══**: Individual kill zone toggles, times, colors, max days display
- **═══ PREVIOUS H/L - DAILY ═══**: Daily high/low lines, style, color, lookback, labels
- **═══ PREVIOUS H/L - WEEKLY ═══**: Weekly high/low lines, style, color, lookback, labels
- **═══ PREVIOUS H/L - MONTHLY ═══**: Monthly high/low lines, style, color, lookback, labels
- **═══ HTF CANDLES ═══**: Global display mode, layout settings
- **═══ HTF SLOT 1-5 ═══**: Individual HTF configuration (timeframe, colors, title, FVG/VI detection, trace lines, timer, interval labels)
Each setting includes tooltips explaining its function. Hover over any input for detailed guidance.
📝 Final Notes
One for All (OFA) represents a complete ICT analysis toolkit in a single indicator. By combining watermark customization, session visualization, kill zone highlighting, previous period levels, and higher timeframe candles with FVG/VI detection, OFA eliminates the need for multiple indicators cluttering your chart.
**Version**: 3.3.0
**Author**: theCodeman
**Pine Script**: v6
**License**: Mozilla Public License 2.0
Start with default settings to learn the indicator's structure, then customize extensively to match your personal trading style. Remember: tools provide information, but your edge comes from disciplined execution of a proven strategy.
Happy Trading! 📈
스크립트에서 "text"에 대해 찾기
Buffett Quality Filter (TTM)//@version=6
indicator("Buffett Quality Filter (TTM)", overlay = true, max_labels_count = 500)
// 1. Get financial data (TTM / FY / FQ)
// EPS (TTM) for P/E
eps = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_BASIC", "TTM")
// Profitability & moat (annual stats)
roe = request.financial(syminfo.tickerid, "RETURN_ON_EQUITY", "FY")
roic = request.financial(syminfo.tickerid, "RETURN_ON_INVESTED_CAPITAL", "FY")
// Margins (TTM – rolling 12 months)
grossMargin = request.financial(syminfo.tickerid, "GROSS_MARGIN", "TTM")
netMargin = request.financial(syminfo.tickerid, "NET_MARGIN", "TTM")
// Balance sheet safety (quarterly)
deRatio = request.financial(syminfo.tickerid, "DEBT_TO_EQUITY", "FQ")
currentRat = request.financial(syminfo.tickerid, "CURRENT_RATIO", "FQ")
// Growth (1-year change, TTM)
epsGrowth1Y = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_BASIC_ONE_YEAR_GROWTH", "TTM")
revGrowth1Y = request.financial(syminfo.tickerid, "REVENUE_ONE_YEAR_GROWTH", "TTM")
// Free cash flow (TTM) and shares to build FCF per share for P/FCF
fcf = request.financial(syminfo.tickerid, "FREE_CASH_FLOW", "TTM")
sharesOut = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ")
fcfPerShare = (not na(fcf) and not na(sharesOut) and sharesOut != 0) ? fcf / sharesOut : na
// 2. Valuation ratios from price
pe = (not na(eps) and eps != 0) ? close / eps : na
pFcf = (not na(fcfPerShare) and fcfPerShare > 0) ? close / fcfPerShare : na
// 3. Thresholds (Buffett-style, adjustable)
minROE = input.float(15.0, "Min ROE %")
minROIC = input.float(12.0, "Min ROIC %")
minGM = input.float(30.0, "Min Gross Margin %")
minNM = input.float(8.0, "Min Net Margin %")
maxDE = input.float(0.7, "Max Debt / Equity")
minCurr = input.float(1.3, "Min Current Ratio")
minEPSG = input.float(8.0, "Min EPS Growth 1Y %")
minREVG = input.float(5.0, "Min Revenue Growth 1Y %")
maxPE = input.float(20.0, "Max P/E")
maxPFCF = input.float(20.0, "Max P/FCF")
// 4. Individual conditions
cROE = not na(roe) and roe > minROE
cROIC = not na(roic) and roic > minROIC
cGM = not na(grossMargin) and grossMargin > minGM
cNM = not na(netMargin) and netMargin > minNM
cDE = not na(deRatio) and deRatio < maxDE
cCurr = not na(currentRat) and currentRat > minCurr
cEPSG = not na(epsGrowth1Y) and epsGrowth1Y > minEPSG
cREVG = not na(revGrowth1Y) and revGrowth1Y > minREVG
cPE = not na(pe) and pe < maxPE
cPFCF = not na(pFcf) and pFcf < maxPFCF
// 5. Composite “Buffett Score” (0–10) – keep it on ONE line to avoid line-continuation errors
score = (cROE ? 1 : 0) + (cROIC ? 1 : 0) + (cGM ? 1 : 0) + (cNM ? 1 : 0) + (cDE ? 1 : 0) + (cCurr ? 1 : 0) + (cEPSG ? 1 : 0) + (cREVG ? 1 : 0) + (cPE ? 1 : 0) + (cPFCF ? 1 : 0)
// Strictness
minScoreForPass = input.int(7, "Min score to pass (0–10)", minval = 1, maxval = 10)
passes = score >= minScoreForPass
// 6. Visuals
bgcolor(passes ? color.new(color.green, 80) : na)
plot(score, "Buffett Score (0–10)", color = color.new(color.blue, 0))
// Info label on last bar
var label infoLabel = na
if barstate.islast
if not na(infoLabel)
label.delete(infoLabel)
infoText = str.format(
"Buffett score: {0}\nROE: {1,number,#.0}% | ROIC: {2,number,#.0}%\nGM: {3,number,#.0}% | NM: {4,number,#.0}%\nP/E: {5,number,#.0} | P/FCF: {6,number,#.0}\nD/E: {7,number,#.00} | Curr: {8,number,#.00}",
score, roe, roic, grossMargin, netMargin, pe, pFcf, deRatio, currentRat)
infoLabel := label.new(bar_index, high, infoText,
style = label.style_label_right,
color = color.new(color.black, 0),
textcolor = color.white,
size = size.small)
Forex indicator By petran Elevate your market analysis with this powerful, all-in-one visual toolkit designed for discretionary traders across Forex, indices, and commodities (metals).
Core Features:
Trading Sessions Overlay: Clear visual bands highlighting the Asian, London, and New York trading sessions directly on your chart. Never miss a market open or a session overlap again.
Smart Daily Levels: Automatically plots the most essential reference points from the previous day:
PDH / PDL (Previous Day High/Low) – Key support and resistance.
PWH / PWL (Previous Week High/Low) – Higher timeframe context.
DO (Day Open) – A crucial intraday pivot level.
Motivational Watermark: A unique and customizable text overlay at the top of your screen. Display your favorite trading quote, rule, or reminder to maintain the right mindset during the trading day.
Clean & Customizable: Designed for clarity. Adjust colors, session times, and watermark text to fit your personal trading style and chart aesthetics.
Why Traders Choose This Indicator:
Saves Time: No more manually drawing sessions or calculating yesterday's levels.
Improves Discipline: The visual sessions and watermark help you trade only during your planned times and follow your rules.
Universal Application: Works seamlessly on any liquid market where session activity and daily ranges matter.
Perfect for traders who rely on price action, session-based strategies, and need a clean, informative chart environment.
NexusLibsDisplayNexusLibsDisplay provides lightweight, reusable UI helpers for Pine Script indicators.
It is designed to simplify the creation of display elements on the chart—such as info tables, headers, and custom text overlays—without forcing users to rebuild UI components in every script.
This library follows a minimal, dependency-free design so it can be imported safely into protected or invite-only indicators.
Functions
createInfoTable(showPair, showTF, txtColor, bgColor)
Creates a compact top-center table displaying the current symbol and timeframe.
Useful for dashboards, algo-overviews, and clean chart annotations.
showText(txt, posX, posY, txtColor)
Displays custom text at a specific chart location.
Ideal for labels, markers, or highlighting model states.
SPY EMA + VWAP Day Trading Strategy (Market Hours Only)//@version=5
indicator("SPY EMA + VWAP Day Trading Strategy (Market Hours Only)", overlay=true)
// === Market Hours Filter (EST / New York Time) ===
nySession = input.session("0930-1600", "Market Session (NY Time)")
inSession = time(timeframe.period, "America/New_York") >= time(nySession, "America/New_York")
// EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// VWAP
vwap = ta.vwap(close)
// Plot EMAs & VWAP
plot(ema9, "EMA 9", color=color.green, linewidth=2)
plot(ema21, "EMA 21", color=color.orange, linewidth=2)
plot(vwap, "VWAP", color=color.blue, linewidth=2)
// ----------- Signals -----------
long_raw = close > ema9 and ema9 > ema21 and close > vwap and ta.crossover(ema9, ema21)
short_raw = close < ema9 and ema9 < ema21 and close < vwap and ta.crossunder(ema9, ema21)
// Apply Market Hours Filter
long_signal = long_raw and inSession
short_signal = short_raw and inSession
// Plot Signals
plotshape(long_signal,
title="BUY",
style=shape.labelup,
location=location.belowbar,
color=color.green,
size=size.small,
text="BUY")
plotshape(short_signal,
title="SELL",
style=shape.labeldown,
location=location.abovebar,
color=color.red,
size=size.small,
text="SELL")
// Alerts
alertcondition(long_signal, title="BUY Alert", message="BUY Signal (Market Hours Only)")
alertcondition(short_signal, title="SELL Alert", message="SELL Signal (Market Hours Only)")
Clean Industry DataClean Industry Data – Overview
Clean Industry Data is a utility tool designed to give traders an instant, structured view of key fundamental and volatility metrics directly on the chart. The script displays a compact, customizable information panel containing:
Industry & Sector
Market Cap and Free-Float Market Cap
Free-Float Percentage
Average Daily Rupee Volume
Relative Volume (R.Vol) based on daily volume
% from 10 / 21 / 50 EMAs (calculated on daily closes)
ADR (14-day) with threshold-based indicators
ATR (current timeframe) with colour-coded risk cues
All volume-based statistics are anchored to daily data, ensuring the values remain consistent across all timeframes. The display table supports flexible positioning, custom background/text colours, and adjustable text size.
This script is ideal for traders who want a quick, accurate snapshot of a stock’s liquidity, volatility, and broader classification — without digging through multiple menus or external sources.
SYMBOL NOTES - UNCORRELATED TRADING GROUPSWrite symbol-specific notes that only appear on that chart. Organized into 6 uncorrelated groups for safe multi-pair trading.
📝 SYMBOL NOTES - UNCORRELATED TRADING GROUPS
This indicator solves two problems every serious trader faces:
1. Keeping Track of Your Analysis
Write notes for each trading pair and they'll only appear when you view that specific chart. No more forgetting your key levels, trade ideas, or analysis!
2. Avoiding Correlated Risk
The symbols are organized into 6 groups where ALL pairs within each group are completely UNCORRELATED. Trade any combination from the same group without worrying about double exposure.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 THE PROBLEM THIS SOLVES
Have you ever:
- Opened XAUUSD and EURUSD at the same time, then Fed news hit and BOTH positions went against you?
- Traded GBPUSD and GBPJPY together, then BOE announcement stopped out both trades?
- Forgotten what levels you were watching on a pair?
This indicator helps you avoid these costly mistakes!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 THE 6 UNCORRELATED GROUPS
Each group contains pairs that share NO common currency:
```
GRUP 1: XAUUSD • EURGBP • NZDJPY • AUDCHF • NATGAS
GRUP 2: EURUSD • GBPJPY • AUDNZD • CADCHF
GRUP 3: GBPUSD • EURJPY • AUDCAD • NZDCHF
GRUP 4: USDJPY • EURCHF • GBPAUD • NZDCAD
GRUP 5: USDCAD • EURAUD • GBPCHF
GRUP 6: NAS100 • DAX40 • UK100 • JPN225
```
**Example - GRUP 1:**
- XAUUSD → Uses USD + Gold
- EURGBP → Uses EUR + GBP
- NZDJPY → Uses NZD + JPY
- AUDCHF → Uses AUD + CHF
- NATGAS → Commodity (independent)
= 7 different currencies, ZERO overlap!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**✅ HOW TO USE**
1. Add indicator to any chart
2. Open Settings (gear icon ⚙️)
3. Find your symbol's group and input field
4. Write your note (support levels, trade ideas, etc.)
5. Switch charts - your note appears only on that symbol!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS
- Note Position: Choose where the note box appears (6 positions)
- Text Size: Tiny, Small, Normal, or Large
- Show Group Name: Display which correlation group
- Show Symbol Name: Display current symbol
- Colors: Customize background, text, group label, and border colors
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 TRADING STRATEGY TIPS
Safe Multi-Pair Trading:
1. Pick ONE group for the day
2. Look for setups on ANY symbol in that group
3. Open positions freely - they won't correlate!
4. Even if major news hits, only ONE position is affected
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 COMPATIBLE WITH
- All major forex brokers
- Prop firms (FTMO, Alpha Capital, etc.)
- Works on any timeframe
- Futures symbols supported (MGC, M6E, etc.)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Abu Basel IQOption 2m Signals//@version=5
indicator("Abu Basel IQOption 2m Signals", overlay = true, timeframe = "", timeframe_gaps = true)
//========================
// الإعدادات
//========================
emaFastLen = input.int(9, "EMA سريع (9)")
emaSlowLen = input.int(21, "EMA بطيء (21)")
rsiLen = input.int(14, "RSI Length", minval = 2)
rsiBuyLevel = input.float(50.0, "RSI حد الشراء (أعلى من)", minval = 0, maxval = 100)
rsiSellLevel= input.float(50.0, "RSI حد البيع (أقل من)", minval = 0, maxval = 100)
bbLen = input.int(20, "Bollinger Length")
bbMult = input.float(2.0, "Bollinger Deviation")
showSignals = input.bool(true, "إظهار الأسهم (CALL / PUT)")
showBg = input.bool(true, "تلوين الخلفية عند الإشارات")
//========================
// المؤشرات الأساسية
//========================
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
basis = ta.sma(close, bbLen)
dev = bbMult * ta.stdev(close, bbLen)
bbUpper = basis + dev
bbLower = basis - dev
rsi = ta.rsi(close, rsiLen)
// رسم المتوسطات والبولينجر
plot(emaFast, title = "EMA 9", linewidth = 2)
plot(emaSlow, title = "EMA 21", linewidth = 2)
plot(basis, title = "BB Basis", linewidth = 1)
plot(bbUpper, title = "BB Upper", linewidth = 1, style = plot.style_line)
plot(bbLower, title = "BB Lower", linewidth = 1, style = plot.style_line)
//========================
// دوال أشكال الشموع الانعكاسية
//========================
bodySize = math.abs(close - open)
fullRange = high - low
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
isSmallBody = bodySize <= fullRange * 0.3
// Hammer صاعدة (ذيل سفلي طويل)
bullHammer() =>
lowerWick > bodySize * 2 and upperWick <= bodySize and close > open
// Shooting Star هابطة (ذيل علوي طويل)
bearShootingStar() =>
upperWick > bodySize * 2 and lowerWick <= bodySize and close < open
// Bullish Engulfing
bullEngulfing() =>
close > open and close < open and close > open and open < close
// Bearish Engulfing
bearEngulfing() =>
close < open and close > open and close < open and open > close
// تجميع أنماط صعود/هبوط
bullPattern = bullHammer() or bullEngulfing()
bearPattern = bearShootingStar() or bearEngulfing()
//========================
// شروط الدخول
//========================
// تقاطع المتوسطات
bullCross = ta.crossover(emaFast, emaSlow) // صعود
bearCross = ta.crossunder(emaFast, emaSlow) // هبوط
// شروط شراء CALL:
// 1) تقاطع EMA9 فوق EMA21
// 2) السعر فوق خط وسط البولنجر
// 3) RSI أعلى من 50
// 4) شمعة انعكاسية صاعدة (Hammer أو Engulfing)
callCond = bullCross and close > basis and rsi > rsiBuyLevel and bullPattern
// شروط بيع PUT:
// 1) تقاطع EMA9 تحت EMA21
// 2) السعر تحت خط وسط البولنجر
// 3) RSI أقل من 50
// 4) شمعة انعكاسية هابطة (Shooting Star أو Bearish Engulfing)
putCond = bearCross and close < basis and rsi < rsiSellLevel and bearPattern
//========================
// رسم الإشارات على الشارت
//========================
plotshape(showSignals and callCond, title="CALL 2m",
style=shape.labelup, location=location.belowbar,
text="CALL\n2m", size=size.tiny)
plotshape(showSignals and putCond, title="PUT 2m",
style=shape.labeldown, location=location.abovebar,
text="PUT\n2m", size=size.tiny)
// تلوين الخلفية عند الإشارات
bgcolor(showBg and callCond ? color.new(color.green, 85) :
showBg and putCond ? color.new(color.red, 85) : na)
//========================
// شروط التنبيه (Alerts)
//========================
alertcondition(callCond, title="CALL 2m Signal",
message="Abu Basel Signal: CALL 2m on {{ticker}} at {{close}}")
alertcondition(putCond, title="PUT 2m Signal",
message="Abu Basel Signal: PUT 2m on {{ticker}} at {{close}}")
Gold Signal System + Alerts // GOLD SIGNAL SYSTEM + ALERTS
//@version=5
indicator("Gold Signal System + Alerts", overlay=true)
// EMAs
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
// Conditions
buySignal = ta.crossover(ema50, ema200)
sellSignal = ta.crossunder(ema50, ema200)
// Plot
plot(ema50, color=color.yellow)
plot(ema200, color=color.blue)
// Signals
plotshape(buySignal, title="BUY", style=shape.labelup, color=color.new(color.green,0), text="BUY", size=size.small)
plotshape(sellSignal, title="SELL", style=shape.labeldown, color=color.new(color.red,0), text="SELL", size=size.small)
// Alerts
alertcondition(buySignal, title="Buy Signal", message="BUY signal on GOLD")
alertcondition(sellSignal, title="Sell Signal", message="SELL signal on GOLD")
Structure Break Out + rsi divergence + alma SIMPLIFIED OBJECTIVE (dyor, nfa, test different assets and diff TF)
The goal of this script is to act as a Reversal Sniper. Most traders lose money by trying to guess the top or bottom of a market too early. This strategy solves that by waiting for two specific events to happen together:
First, a hidden shift in momentum (RSI Divergence).
Second, a confirmed change in price direction (Crossing the ALMA 20 Blue Line).
This ensures you only enter a trade when the market has confirmed it is ready to reverse.
TRADING RULES
BUY SIGNAL (Long Position)
Step 1: Look for a GREEN DIV label below the candles. This warns you that sellers are exhausted.
Step 2: Wait for a GREEN TRIANGLE with the text GO. This confirms the price has crossed above the Blue Line.
Step 3: Enter the Buy trade immediately when the candle with the GO signal closes.
SELL SIGNAL (Short Position)
Step 1: Look for a RED DIV label above the candles. This warns you that buyers are exhausted.
Step 2: Wait for a RED TRIANGLE with the text GO. This confirms the price has crossed below the Blue Line.
Step 3: Enter the Sell trade immediately when the candle with the GO signal closes.
EXIT RULES (How to Close the Trade)
The script draws lines on the chart to help you manage the trade.
Scenario A: The Perfect Win (Target Hit)
If price hits the Green Line, the trade is closed automatically for a profit. This is your Risk-Reward Target.
Scenario B: The Trend Change (Reversal)
If the price turns around and crosses the Blue Line in the wrong direction, close the trade immediately. Do not wait for the stop loss. This protects your profits or keeps losses small.
Scenario C: The Safety Net (Stop Loss)
If price hits the Red Line, the trade is closed for a loss. This is your safety guard to prevent a small loss from becoming a big one.
IMPORTANT NOTES
Never trade a DIV label without a GO signal. The DIV is just a warning; the GO is the trigger.
- This strategy works best on 15-Minute and 1-Hour timeframes.
- If t
he Blue Line is flat, be careful, as the market may be ranging. Ideally, you want to see the Blue Line angling up or down.
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
Average Volume LabelAverage Volume Label Indicator
This TradingView Pine Script creates a customizable label that displays the average trading volume over a specified period directly on your price chart.
Core Functionality:
Calculates the simple moving average (SMA) of volume over a user-defined number of days (default: 20 days)
Displays this average in a positioned label at the top of the chart
The label shows text like "20-Day Avg Volume: 1.2M" with automatic volume formatting
Key Customization Options:
Volume Calculation:
Adjustable lookback period (1-200 days) for the volume average
Label Appearance:
Text color, background color, and transparency controls
Five size options (Tiny to Huge)
Configurable horizontal position (how many bars back from the current bar to place the label)
Technical Implementation:
Updates only on the most recent bar to optimize performance
Positions the label at the highest price point within the visible range for consistent top-of-chart placement
Includes safety checks to prevent runtime errors with lookback periods
Also plots the average volume data (visible in the data window for reference)
This indicator is useful for traders who want to quickly assess whether current volume is above or below the recent average without cluttering their chart with additional panes.
Pivot Move Ranges█ OVERVIEW
“Pivot Move Ranges” is an indicator that displays only the historical price ranges of moves that match the direction of the current swing.
It measures the price range of each individual swing and draws them as horizontal Δ-boxes positioned at the level of the most recently detected pivot.
The indicator operates with a delay equal to the set pivot detection length – after each new Pivot High, only red Δ-boxes appear showing the sizes of previous downward moves; after each new Pivot Low, only green Δ-boxes appear showing the sizes of previous upward moves. When the swing direction changes, the displayed set of levels instantly switches to the opposite direction.
█ CONCEPTS
The indicator was created to instantly provide the trader with objective, real historical price ranges – perfectly reinforcing classic tools such as Fibonacci extension/retracement, daily/weekly pivots, moving averages, order blocks, or Volume Profile.
It detects classic Pivot High and Pivot Low points:
- New Pivot High → only previous downward moves are shown (red Δ-boxes)
- New Pivot Low → only previous upward moves are shown (green Δ-boxes)
This ensures that at any moment you see only the historical ranges that match the current market direction. Price moves very often repeat themselves – the indicator makes these recurring levels immediately visible and ready to serve as natural reinforcement for other technical analysis tools.
█ FEATURES
- Pivot High / Pivot Low detection with adjustable length (default 12)
- Δ-boxes – thin horizontal lines showing the exact size of previous moves that match the current swing
- Automatic switching of the Δ-box set whenever a new opposite pivot appears
- Memory of the last N moves (default 6, max. 50) – oldest are automatically removed
- Labels showing move size (Δ) and start date/time
- Full color customization (separate for up and down), border and text transparency
- Choice of date format (DD.MM.YYYY or MM/DD/YYYY)
- Small circles marking the exact pivot locations
█ HOW TO USE
Add the indicator to your TradingView chart → paste the code → Add to Chart.
Settings:
- Pivot Length – higher values = fewer but more significant pivots (detected with a delay equal to this length)
- Max Corrections to Keep – how many previous matching moves are displayed at once
- Upward / Downward Box Color – colors of the Δ-boxes
- Box Border Transparency (%) – 0 = solid lines, 50–70 = subtle
- Show Δ Text + Move Start Date – turn labels on/off
Interpretation:
At any given moment the chart shows only the historical ranges of moves in the current direction:
- after a Pivot High → red Δ-boxes = “how far the market previously fell”
- after a Pivot Low → green Δ-boxes = “how far the market previously rose”
█ APPLICATIONS
- Instant reinforcement of technical levels – historical moves matching the current swing direction often coincide with Fibonacci levels, daily/weekly pivots, moving averages, or order blocks
- Fast cluster detection – set a high Max Corrections value (30–50) to see where the largest number of similarly sized moves cluster, then reduce to 6–10 and focus only on the most recent levels
█ NOTES
- On very strong trends, Δ-boxes can be extremely long – this is normal and correct behavior
- Always use as a supporting layer alongside other technical analysis tools
CoreMACDHTF [CHE]Library "CoreMACDHTF"
calc_macd_htf(src, preset_str, smooth_len)
Parameters:
src (float)
preset_str (simple string)
smooth_len (int)
is_hist_rising(src, preset_str, smooth_len)
Parameters:
src (float)
preset_str (simple string)
smooth_len (int)
hist_rising_01(src, preset_str, smooth_len)
Parameters:
src (float)
preset_str (simple string)
smooth_len (int)
CoreMACDHTF — Hardcoded HTF MACD Presets with Smoothed Histogram Regime Flags
Summary
CoreMACDHTF provides a reusable MACD engine that approximates higher-timeframe behavior by selecting hardcoded EMA lengths based on the current chart timeframe, then optionally smoothing the resulting histogram with a stateful filter. It is published as a Pine v6 library but intentionally includes a minimal demo plot so you can validate behavior directly on a chart. The primary exported outputs are MACD, signal, a smoothed histogram, and the resolved lengths plus a timeframe tag. In addition, it exposes a histogram rising condition so importing scripts can reuse the same regime logic instead of re-implementing it.
Motivation: Why this design?
Classic MACD settings are often tuned to one timeframe. When you apply the same parameters to very different chart intervals, the histogram can become either too noisy or too sluggish. This script addresses that by using a fixed mapping from the chart timeframe into a precomputed set of EMA lengths, aiming for more consistent “tempo” across intervals. A second problem is histogram micro-chop around turning points; the included smoother reduces short-run flips so regime-style conditions can be more stable for alerts and filters.
What’s different vs. standard approaches?
Reference baseline: a standard MACD using fixed fast, slow, and signal lengths on the current chart timeframe.
Architecture differences:
Automatic timeframe bucketing that selects a hardcoded length set for the chosen preset.
Two preset families: one labeled A with lengths three, ten, sixteen; one labeled B with lengths twelve, twenty-six, nine.
A custom, stateful histogram smoother intended to damp noisy transitions.
Library exports that return both signals and metadata, plus a dedicated “histogram rising” boolean.
Practical effect:
The MACD lengths change when the chart timeframe changes, so the oscillator’s responsiveness is not constant across intervals by design.
The rising-flag logic is based on the smoothed histogram, which typically reduces single-bar flip noise compared to using the raw histogram directly.
How it works (technical)
1. The script reads the chart timeframe and converts it into milliseconds using built-in timeframe helpers.
2. It assigns the timeframe into a bucket label, such as an intraday bucket or a daily-and-above bucket, using fixed thresholds.
3. It resolves a hardcoded fast, slow, and signal length triplet based on:
The selected preset family.
The bucket label.
In some cases, the current minute multiplier for finer mapping.
4. It computes fast and slow EMAs on the selected source and subtracts them to obtain MACD, then computes an EMA of MACD for the signal line.
5. The histogram is derived from the difference between MACD and signal, then passed through a custom smoother.
6. The smoother uses persistent internal state to carry forward its intermediate values from bar to bar. This is intentional and means the smoothing output depends on contiguous bar history.
7. The histogram rising flag compares the current smoothed histogram to its prior value. On the first comparable bar it defaults to “rising” to avoid a missing prior reference.
8. Exports:
A function that returns MACD, signal, smoothed histogram, the resolved lengths, and a text tag.
A function that returns the boolean rising state.
A function that returns a numeric one-or-zero series for direct plotting or downstream numeric logic.
HTF note: this is not a true higher-timeframe request. It does not fetch higher-timeframe candles. It approximates HTF feel by selecting different lengths on the current timeframe.
Parameter Guide
Source — Input price series used for EMA calculations — Default close — Trade-offs/Tips
Preset — Selects the hardcoded mapping family — Default preset A — Preset A is more reactive than preset B in typical use
Table Position — Anchor for an information table — Default top right — Present but not wired in the provided code (Unknown/Optional)
Table Size — Text size for the information table — Default normal — Present but not wired in the provided code (Unknown/Optional)
Dark Mode — Theme toggle for the table — Default enabled — Present but not wired in the provided code (Unknown/Optional)
Show Table — Visibility toggle for the table — Default enabled — Present but not wired in the provided code (Unknown/Optional)
Zero dead-band (epsilon) — Intended neutral band around zero for regime classification — Default zero — Present but not used in the provided code (Unknown/Optional)
Acceptance bars (n) — Intended debounce count for regime confirmation — Default three — Present but not used in the provided code (Unknown/Optional)
Smoothing length — Length controlling the histogram smoother’s responsiveness — Default nine — Smaller values react faster but can reintroduce flip noise
Reading & Interpretation
Smoothed histogram: use it as the momentum core. A positive value implies MACD is above signal, a negative value implies the opposite.
Histogram rising flag:
True means the smoothed histogram increased compared to the prior bar.
False means it did not increase compared to the prior bar.
Demo plot:
The included plot outputs one when rising is true and zero otherwise. It is a diagnostic-style signal line, not a scaled oscillator display.
Practical Workflows & Combinations
Trend following:
Use rising as a momentum confirmation filter after structural direction is established by higher highs and higher lows, or lower highs and lower lows.
Combine with a simple trend filter such as a higher-timeframe moving average from your main script (Unknown/Optional).
Exits and risk management:
If you use rising to stay in trends, consider exiting or reducing exposure when rising turns false for multiple consecutive bars rather than reacting to a single flip.
If you build alerts, evaluate on closed bars to avoid intra-bar flicker in live candles.
Multi-asset and multi-timeframe:
Because the mapping is hardcoded, validate on each asset class you trade. Volatility regimes differ and the perceived “equivalence” across timeframes is not guaranteed.
For consistent behavior, keep the smoothing length aligned across assets and adjust only when flip frequency becomes problematic.
Behavior, Constraints & Performance
Repaint and confirmation:
There is no forward-looking indexing. The logic uses current and prior values only.
Live-bar values can change until the bar closes, so rising can flicker intra-bar if you evaluate it in real time.
security and HTF:
No higher-timeframe candle requests are used. Length mapping is internal and deterministic per chart timeframe.
Resources:
No loops and no arrays in the core calculation path.
The smoother maintains persistent state, which is lightweight but means results depend on uninterrupted history.
Known limits:
Length mappings are fixed. If your chart timeframe is unusual, the bucket choice may not represent what you expect.
Several table and regime-related inputs are declared but not used in the provided code (Unknown/Optional).
The smoother is stateful; resetting chart history or changing symbol can alter early bars until state settles.
Sensible Defaults & Quick Tuning
S tarting point:
Preset A
Smoothing length nine
Source close
Tuning recipes:
Too many flips: increase smoothing length and evaluate rising only on closed bars.
Too sluggish: reduce smoothing length, but expect more short-run reversals.
Different timeframe feel after switching intervals: keep preset fixed and adjust smoothing length first before changing preset.
Want a clean plot signal: use the exported numeric rising series and apply your own display rules in the importing script.
What this indicator is—and isn’t
This is a momentum and regime utility layer built around a MACD-style backbone with hardcoded timeframe-dependent parameters and an optional smoother. It is not a complete trading system, not a risk model, and not predictive. Use it in context with market structure, execution rules, and risk controls.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Wyckoff Accumulation/Distribution - Enhanced by ChakraWyckoff Accumulation/Distribution - Enhanced Indicator
Overview
An advanced Pine Script v6 indicator that detects Wyckoff accumulation and distribution patterns using RSI-based trend analysis, pivot detection, and volume confirmation. This enhanced version improves upon traditional Wyckoff indicators with cleaner code, English variable names, and additional market structure signals.
Key Features
Wyckoff Phase Detection
Accumulation Phase:
SC (Selling Climax): Bottom pivot with extreme bearish RSI and high volume
AR (Automatic Rally): First bounce after selling climax
ST (Secondary Test): Retest of lows without extreme RSI
SOS (Sign of Strength): Strong bullish breakout with volume confirmation ⭐ NEW
Distribution Phase:
BC (Buying Climax): Top pivot with extreme bullish RSI and high volume
DAR (Automatic Reaction): First drop after buying climax
DST (Distribution Secondary Test): Retest of highs
SOW (Sign of Weakness): Strong bearish breakdown with volume confirmation ⭐ NEW
Market Structure Events
Spring: False breakdown (RSI crosses above lower band) with background highlight
UTAD (Upthrust After Distribution): False breakout (RSI crosses below upper band) with background highlight
Visual Features
Range Boxes: Automatically draws consolidation ranges (gray) that change color on breakout:
🟢 Green = Accumulation (bullish breakout)
🔴 Red = Distribution (bearish breakout)
Pivot Markers: Orange triangles show regular (non-Wyckoff) pivot points
Bar Coloring: Lime bars for bullish trends, purple bars for bearish trends
Color-Coded Labels: All Wyckoff events clearly marked with descriptive text
Customizable Settings
RSI Settings:
RSI Length (default: 14)
Trend Sensitivity (default: 20) - Higher values = more sideways detection
Pivot Settings:
Pivot Length (default: 5) - Controls pivot point detection sensitivity
Display Options:
Toggle range boxes on/off
Toggle regular pivot markers
Toggle bar coloring by trend
Customize label text color
Advanced Detection:
Volume Confirmation toggle - Require high volume for climax events
Volume Threshold (default: 1.5x) - Adjustable volume multiplier
Alerts
8 comprehensive alert conditions:
Selling Climax (SC)
Buying Climax (BC)
Spring detection
UTAD detection
Sign of Strength (SOS)
Sign of Weakness (SOW)
Range Breakout
Improvements Over Original
✅ Pine Script v6 (latest version)
✅ English variable names (was Turkish)
✅ Fixed DAR label bug (was showing "AR")
✅ Added SOS (Sign of Strength) detection
✅ Added SOW (Sign of Weakness) detection
✅ Optional volume confirmation toggle
✅ Organized input groups for better UX
✅ Enhanced visual options
✅ Comprehensive alert system
✅ Cleaner, more maintainable code structure
Best Use Cases
Timeframes: Works on all timeframes; best on 4H, Daily, or Weekly
Markets: Stocks, Forex, Crypto, Indices
Trading Style: Swing trading, position trading, market structure analysis
Combine With: Support/Resistance, Volume Profile, Order Flow analysis
How It Works
The indicator uses RSI to identify market states (sideways, bullish, bearish) and combines this with pivot point detection and volume analysis to identify key Wyckoff events. When price is ranging (RSI between upper/lower bands), it draws a box. On breakout, the box color changes to indicate accumulation or distribution, helping traders identify smart money positioning.
Tips for Use
Lower Trend Sensitivity (10-15) for more signals in trending markets
Higher Trend Sensitivity (25-30) for clearer signals in choppy markets
Enable Volume Confirmation in high-volume markets (stocks, major crypto)
Disable Volume Confirmation in low-volume or forex markets
Watch for Spring/UTAD events within boxes for potential reversals
Version: 1.0
Pine Script: v6
Author: Chakrapani Chittabathina
Patrice - GC M1 Bot (MACD EMA RSI)//@version=6
indicator("Patrice - GC M1 Bot (MACD EMA RSI)", overlay = true)
//----------------------
// Inputs (optimisés GC)
//----------------------
emaLenFast = input.int(9, "EMA rapide")
emaLenSlow = input.int(14, "EMA lente")
rsiLen = input.int(14, "RSI length")
atrLen = input.int(14, "ATR length")
volLen = input.int(20, "Volume moyenne")
slMult = input.float(0.4, "SL = ATR x", step = 0.1)
tpMult = input.float(0.7, "TP = ATR x", step = 0.1)
minAtr = input.float(0.7, "ATR minimum pour trader", step = 0.1)
maxDistEmaPct = input.float(0.3, "Distance max EMA9 (%)", step = 0.1)
//----------------------
// Indicateurs
//----------------------
ema9 = ta.ema(close, emaLenFast)
ema14 = ta.ema(close, emaLenSlow)
= ta.macd(close, 12, 26, 9)
hist = macdLine - signalLine
rsi = ta.rsi(close, rsiLen)
atr = ta.atr(atrLen)
volMa = ta.sma(volume, volLen)
//----------------------
// Session 9:30 - 11:00 (NY)
//----------------------
hourSession = hour(time, "America/New_York")
minuteSession = minute(time, "America/New_York")
inSession = (hourSession == 9 and minuteSession >= 30) or
(hourSession > 9 and hourSession < 11) or
(hourSession == 11 and minuteSession == 0)
//----------------------
// Filtres vol / ATR / distance EMA
//----------------------
volFilter = volume > volMa
atrFilter = atr > minAtr
distEmaPct = math.abs(close - ema9) / close * 100.0
distFilter = distEmaPct < maxDistEmaPct
//----------------------
// Tendance
//----------------------
bullTrend = close > ema9 and close > ema14 and ema9 > ema14
bearTrend = close < ema9 and close < ema14 and ema9 < ema14
//----------------------
// MACD : 2e barre
//----------------------
bullSecondBar = hist > 0 and hist > 0 and hist <= 0
bearSecondBar = hist < 0 and hist < 0 and hist >= 0
//----------------------
// Filtres RSI
//----------------------
rsiLongOk = rsi < 70 and rsi >= 45 and rsi <= 65
rsiShortOk = rsi > 30 and rsi >= 35 and rsi <= 55
//----------------------
// Gestion du risque (simple pour l'instant)
//----------------------
canTradeRisk = true
//----------------------
// Conditions d'entrée
//----------------------
longCond = bullTrend and bullSecondBar and rsiLongOk and inSession and volFilter and atrFilter and distFilter and canTradeRisk
shortCond = bearTrend and bearSecondBar and rsiShortOk and inSession and volFilter and atrFilter and distFilter and canTradeRisk
//----------------------
// SL / TP (info seulement, pas d'ordres)
//----------------------
slPoints = atr * slMult
tpPoints = atr * tpMult
longSL = close - slPoints
longTP = close + tpPoints
shortSL = close + slPoints
shortTP = close - tpPoints
//----------------------
// Visuels
//----------------------
plot(ema9, title = "EMA 9")
plot(ema14, title = "EMA 14")
plotshape(longCond, title = "Signal Long", style = shape.triangleup, location = location.belowbar, size = size.tiny, text = "L")
plotshape(shortCond, title = "Signal Short", style = shape.triangledown, location = location.abovebar, size = size.tiny, text = "S")
//----------------------
// Conditions d'ALERTE
//----------------------
alertcondition(longCond, title = "ALERTE LONG", message = "Signal LONG Patrice GC bot")
alertcondition(shortCond, title = "ALERTE SHORT", message = "Signal SHORT Patrice GC bot")
Multi-Timeframe Supertrend + MACD + MTF Dashboard if you like it click source code and save it in notepad for back up .
The Multi-Timeframe Supertrend Dashboard is a powerful tool designed to give traders a clear view of market trends across multiple timeframes, all from a single dashboard. This indicator leverages the Supertrend method to calculate buy and sell signals based on the direction of price relative to dynamically calculated support and resistance lines. The dashboard is optimized for dark mode and provides easy-to-interpret color-coded signals for each timeframe.
How It Works
The Supertrend indicator is a trend-following indicator that uses the Average True Range (ATR) to set upper and lower bands around the price, adapting dynamically as volatility changes. When the price is above the Supertrend line, the market is considered in an uptrend, triggering a "BUY" signal. Conversely, when the price falls below the Supertrend line, the market is in a downtrend, triggering a "SELL" signal.
This Multi-Timeframe Supertrend Dashboard calculates Supertrend signals for the following timeframes:
1 minute
5 minutes
15 minutes
1 hour
Daily
Weekly
Monthly
For each timeframe, the dashboard shows either a "BUY" or "SELL" signal, allowing traders to assess whether trends align across timeframes. A "BUY" signal displays in green, and a "SELL" signal displays in red, giving a quick visual reference of the overall trend direction for each timeframe.
Customization Options
ATR Period: Defines the period for the Average True Range (ATR) calculation, which determines how responsive the Supertrend lines are to changes in market volatility.
Multiplier: Sets the sensitivity of the Supertrend bands to price movements. Higher values make the bands less sensitive, while lower values increase sensitivity, allowing quicker reactions to changes in price.
How to Interpret the Dashboard
The Multi-Timeframe Supertrend Dashboard allows traders to see at a glance if trends across multiple timeframes are aligned. Here’s how to interpret the signals:
BUY (Green): The current timeframe’s price is in an uptrend based on the Supertrend calculation.
SELL (Red): The current timeframe’s price is in a downtrend based on the Supertrend calculation.
For example:
If all timeframes display "BUY," the asset is in a strong uptrend across multiple time horizons, which may indicate a bullish market.
If all timeframes display "SELL," the asset is likely in a strong downtrend, signaling a bearish market.
Mixed signals across timeframes suggest market consolidation or differing trends across short- and long-term periods.
Use Cases
Trend Confirmation: Use the dashboard to confirm trends across multiple timeframes before entering or exiting a position.
Quick Market Analysis: Get a snapshot of market conditions across timeframes without having to change charts.
Multi-Timeframe Alignment: Identify alignment across timeframes, which is often a strong indicator of market momentum in one direction.
Dark Mode Optimization
The dashboard has been optimized for dark mode, with white text and contrasting background colors to ensure easy readability on darker TradingView themes.
Nov 4, 2024
Release Notes
Multi-Timeframe Supertrend Dashboard with Alerts
Overview
The Multi-Timeframe Supertrend Dashboard with Alerts is a powerful indicator designed to give traders a comprehensive view of market trends across multiple timeframes. This dashboard uses the Supertrend method to calculate buy and sell signals based on the direction of price relative to dynamic support and resistance levels. The indicator is optimized for dark mode and provides a color-coded display of buy and sell signals for each timeframe, along with optional alerts for trend alignment.
How It Works
The Supertrend indicator is a trend-following indicator that uses the Average True Range (ATR) to set upper and lower bands around the price, adjusting dynamically with market volatility. When the price is above the Supertrend line, the market is considered in an uptrend, triggering a "BUY" signal. Conversely, when the price falls below the Supertrend line, the market is in a downtrend, triggering a "SELL" signal.
The Multi-Timeframe Supertrend Dashboard displays Supertrend signals for the following timeframes:
1 minute
5 minutes
15 minutes
1 hour
Daily
Weekly
Monthly
For each timeframe, the dashboard shows either a "BUY" or "SELL" signal, allowing traders to assess trend alignment across multiple timeframes with a single glance. A "BUY" signal displays in green, and a "SELL" signal displays in red.
Alerts for Trend Alignment
This indicator includes built-in alert conditions that allow traders to receive notifications when all timeframes simultaneously align in a "BUY" or "SELL" signal. This is particularly useful for identifying moments of strong trend alignment across short-term and long-term timeframes. The alerts can be set to notify the trader when:
All timeframes display a "BUY" signal, indicating a strong bullish alignment across all time horizons.
All timeframes display a "SELL" signal, signaling a strong bearish alignment.
Customization Options
ATR Period: Defines the period for the Average True Range (ATR) calculation, which determines how responsive the Supertrend lines are to changes in market volatility.
Multiplier: Sets the sensitivity of the Supertrend bands to price movements. Higher values make the bands less sensitive, while lower values increase sensitivity, allowing quicker reactions to changes in price.
How to Interpret the Dashboard
BUY (Green): The price is above the Supertrend line, indicating an uptrend for that timeframe.
SELL (Red): The price is below the Supertrend line, indicating a downtrend for that timeframe.
Examples:
If all timeframes display "BUY," the asset is in a strong uptrend across multiple time horizons, signaling potential buying opportunities.
If all timeframes display "SELL," the asset is likely in a strong downtrend, signaling potential selling opportunities.
Mixed signals suggest a consolidation phase or differing trends across short- and long-term periods.
Use Cases
Trend Confirmation: Use the dashboard to confirm trends across multiple timeframes before entering or exiting a position.
Alert Notifications: Set alerts to receive notifications when all timeframes align in a "BUY" or "SELL" signal.
Quick Market Analysis: Get an instant overview of market conditions without switching between charts.
Multi-Timeframe Alignment: Identify alignment across timeframes, often a strong indicator of market momentum in one direction.
Dark Mode Optimization
The dashboard has been optimized for dark mode, with white text and contrasting background colors to ensure easy readability on darker TradingView themes.
Nov 6, 2024
Release Notes
Multi-Timeframe Supertrend Dashboard with Custom Alerts
Description:
This Multi-Timeframe Supertrend Dashboard indicator provides a powerful tool for traders who want to monitor multiple timeframes simultaneously and receive alerts when all timeframes align on a single trend (either BUY or SELL). The indicator uses the popular Supertrend calculation, with customizable ATR (Average True Range) period and multiplier values to tailor sensitivity to your trading style.
Key Features:
Customizable Timeframes:
Track and display up to six timeframes, fully configurable to meet any trading strategy. The default timeframes include 1 Minute, 5 Minutes, 15 Minutes, 1 Hour, 1 Day, and 1 Week but can be changed to any intervals supported by TradingView.
Selective Display Options:
With a user-friendly display selection, you can choose which timeframes to show on the dashboard. For example, you may choose to view only Timeframe 1 through Timeframe 5 or any combination of the six.
Real-Time Alignment Alerts:
Alerts can be set to trigger when all selected timeframes align on a BUY or SELL signal. This feature enables traders to catch strong trends across timeframes without constant monitoring. Alerts are fully configurable, allowing for sound notifications, email alerts, or even webhook notifications to automated trading systems.
Custom Supertrend Settings:
Adjust the ATR Period and Multiplier values to control the Supertrend's sensitivity. Lower values result in more frequent trend changes, while higher values smooth out the trend and focus on larger market moves.
Intuitive Color-Coded Dashboard:
The dashboard is visually optimized for quick insights:
Green cells indicate a BUY trend.
Red cells indicate a SELL trend.
Background color changes when all selected timeframes align, giving an instant visual cue for strong trends.
How to Use:
Select Timeframes:
Go to the input settings to choose the timeframes you want to monitor. Each timeframe is labeled (e.g., Timeframe 1, Timeframe 2) for easy reference.
Configure Display Preferences:
Enable or disable specific timeframes to customize your dashboard view. This is useful for focusing only on timeframes relevant to your strategy.
Set ATR and Multiplier Values:
Adjust these settings to define the Supertrend calculation's responsiveness. This customization allows adaptation to various markets, including stocks, forex, and cryptocurrencies.
Enable Alerts:
Turn on alerts to receive notifications when all active timeframes align. Customize the alert type and delivery (sound, popup, email, etc.) to ensure you’re notified on time.
Ideal For:
Trend Traders who want confirmation of trends across multiple timeframes.
Scalpers and Day Traders looking for quick trend changes with smaller timeframes.
Swing Traders who want a broader overview of market alignment across hourly and daily frames.
Automated System Developers looking for reliable signals across multiple timeframes to integrate with other strategies.
(CRT) MTF Candle Range Theory Model# 🚀 **CASH Pro MTF – Candle Range Theory (CRT) Indicator**
**The Smart Money ICT Setup Detector** 🔥
Hey Traders!
Here is the **ultimate Pine Script indicator** that automatically detects one of the most powerful Smart Money / ICT setups: **Candle Range Theory (CRT)**
---
### What is Candle Range Theory – CRT?
**CRT** is a high-probability price action model based on **liquidity grabs** and **range expansion**.
Price loves to:
1️⃣ Raid the low/high of the previous candle (take stop-losses)
2️⃣ Then reverse and run to the opposite side of the range (or beyond)
When this happens near a **key higher-timeframe level**, magic happens!
### Bullish CRT Model
- Price touches a **strong HTF support**
- Previous candle closes near that support
- Next candle **sweeps the low** (grabs liquidity)
- Current candle **closes above the raided low AND breaks the high** of the sweep candle
**Result → Aggressive bullish move expected!**
**Entry:** On close above the high (or on retest + MSS)
**Stop Loss:** Below the swept low
**Take Profit:** CRT High or next liquidity pool
### Bearish CRT Model
- Price touches a **strong HTF resistance**
- Previous candle closes near resistance
- Next candle **sweeps the high** (grabs buy stops)
- Current candle **closes below the raided high AND breaks the low** of the sweep candle
**Result → Strong bearish expansion!**
**Entry:** On close below the low
**Stop Loss:** Above the swept high
**Take Profit:** CRT Low or next downside liquidity
This whole setup can form in **just 3 candles**… or sometimes more if price consolidates after the sweep.
---
### Why This Indicator is Special
This is **NOT** a simple 3-candle pattern scanner!
This is a **true CRT + MTF confluence beast** with:
- **Multi-Timeframe Confirmation** (default 4H – fully customizable)
- **Built-in RSI Filter** (avoid fake moves in overbought/oversold)
- **Day-2 High/Low Levels** automatically drawn (the exact CRT range!)
- **Clean “LONG” / “SHORT” labels** right on the candle (no ugly arrows or offset)
- **Background highlight** on signal
- **Fully grouped inputs** – super clean settings panel
---
### Features at a Glance
| Feature | Included |
|--------------------------------|----------|
| Higher Timeframe Confirmation | Yes |
| RSI Overbought/Oversold Filter | Yes |
| Day-2 High/Low Lines + Labels | Yes |
| Clean Text Signals (no offset) | Yes |
| Background Highlight | Yes |
| Fully Customizable Colors & Text| Yes |
| Works on All Markets & TFs | Yes |
---
### How to Use
1. Add the indicator to your chart
2. Wait for a **LONG** or **SHORT** label to appear
3. Confirm price is near a **key HTF level** (order block, FVG, etc.)
4. Enter on close or retest (your choice)
5. Manage risk with the drawn Day-2 levels
**Pro Tip:** Combine with ICT Market Structure Shift (MSS) or Fair Value Gaps for even higher accuracy!
BTC Dual Cycle: Stats DashboardOverview
"Price takes the elevator down, but takes the stairs up."
This indicator is a macro-analysis tool designed to visualize the true duration of Bitcoin’s market cycles. Unlike standard oscillators that focus on short-term price action, the Macro Cycle Tracker filters out the noise to answer two fundamental questions:
Are we in a phase of Expansion (Price Discovery)?
Are we in a phase of Recovery (Repairing the damage of a crash)?
It visually separates the market into two distinct regimes based on a configurable drawdown threshold (default: -50%) and provides real-time statistics on how long these phases historically last.
How It Works
The script tracks the All-Time High (ATH) and divides market history into two colored zones:
🟢 The Green Zone (Expansion / Price Discovery)
Trigger: Starts immediately when Bitcoin breaks the previous ATH.
Meaning: The market is healthy, profitable, and exploring new valuation levels.
End: The zone ends when price drops by 50% (configurable) from the cycle top.
🔴 The Red Zone (Recovery / Capitulation)
Trigger: Starts when price drops below the 50% threshold from the peak.
Meaning: The asset is "underwater." This zone remains active persistently—even during relief rallies—until the previous ATH is fully reclaimed.
Philosophy: A cycle is not over until the damage is repaired.
Key Features
Cycle Timer: Displays the exact number of days passed for every historical cycle directly on the chart.
Live Counter: Shows the current duration of the active phase (e.g., "ZONE GREEN: 450 Days...").
Statistical Dashboard: A table in the bottom-right corner automatically calculates the Mean and Median duration (in days) for both Green and Red phases. This allows you to compare the current cycle against historical averages.
How to Use
For Investors (HODLers): Use the Red Zone to understand the "Time Cost" of a bear market. It helps visualize that recovery takes patience and that price action below the old ATH is merely accumulation.
For Analysts: Use the Dashboard statistics to project potential cycle turning points based on historical median durations.
Settings
Drop Percent (%): Default is 50%. This defines the "Crash" threshold. You can adjust this to 20% or 30% for more sensitive cycle detection.
Text Size: Adjust the size of the dashboard text to fit your screen resolution.
Disclaimer: This tool is for educational purposes only and does not constitute financial advice. Past performance is not indicative of future results.
청산맵[by좐주노]//@version=5
indicator("청산맵 "
, overlay = true
, max_lines_count = 500
, max_labels_count = 500
, max_boxes_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input(14, '청산기간 기준 ')
area = input.string('꼬리기준', '측정 범위', options = )
intraPrecision = input(false, 'Intrabar Precision', inline = 'intrabar')
intrabarTf = input.timeframe('1', '' , inline = 'intrabar')
filterOptions = input.string('Count', 'Filter Areas By', options = , inline = 'filter')
filterValue = input.float(0, '' , inline = 'filter')
//Style
showTop = input(true, 'Swing High' , inline = 'top', group = 'Style')
topCss = input(color.red, '' , inline = 'top', group = 'Style')
topAreaCss = input(color.new(color.red, 50), 'Area', inline = 'top', group = 'Style')
showBtm = input(true, 'Swing Low' , inline = 'btm', group = 'Style')
btmCss = input(color.teal, '' , inline = 'btm', group = 'Style')
btmAreaCss = input(color.new(color.teal, 50), 'Area', inline = 'btm', group = 'Style')
labelSize = input.string('Tiny', 'Labels Size', options = , group = 'Style')
//-----------------------------------------------------------------------------}
//Functions
//-----------------------------------------------------------------------------{
n = bar_index
get_data()=>
= request.security_lower_tf(syminfo.tickerid, intrabarTf, get_data())
get_counts(condition, top, btm)=>
var count = 0
var vol = 0.
if condition
count := 0
vol := 0.
else
if intraPrecision
if n > length
if array.size(v ) > 0
for in v
vol += array.get(l , index) < top and array.get(h , index) > btm ? element : 0
else
vol += low < top and high > btm ? volume : 0
count += low < top and high > btm ? 1 : 0
set_label(count, vol, x, y, css, lbl_style)=>
var label lbl = na
var label_size = switch labelSize
'Tiny' => size.tiny
'Small' => size.small
'Normal' => size.normal
target = switch filterOptions
'Count' => count
'Volume' => vol
if ta.crossover(target, filterValue)
lbl := label.new(x, y, str.tostring(vol, format.volume)
, style = lbl_style
, size = label_size
, color = #00000000
, textcolor = css)
if target > filterValue
label.set_text(lbl, str.tostring(vol, format.volume))
set_level(condition, crossed, value, count, vol, css)=>
var line lvl = na
target = switch filterOptions
'Count' => count
'Volume' => vol
if condition
if target < filterValue
line.delete(lvl )
else if not crossed
line.set_x2(lvl, n - length)
lvl := line.new(n - length, value, n, value
, color = na)
if not crossed
line.set_x2(lvl, n+3)
if crossed and not crossed
line.set_x2(lvl, n)
line.set_style(lvl, line.style_dashed)
if target > filterValue
line.set_color(lvl, css)
set_zone(condition, x, top, btm, count, vol, css)=>
var box bx = na
target = switch filterOptions
'Count' => count
'Volume' => vol
if ta.crossover(target, filterValue)
bx := box.new(x, top, x + count, btm
, border_color = na
, bgcolor = css)
if target > filterValue
box.set_right(bx, x + count)
//-----------------------------------------------------------------------------}
//Global variables
//-----------------------------------------------------------------------------{
//Pivot high
var float ph_top = na
var float ph_btm = na
var bool ph_crossed = na
var ph_x1 = 0
var box ph_bx = box.new(na,na,na,na
, bgcolor = color.new(topAreaCss, 80)
, border_color = na)
//Pivot low
var float pl_top = na
var float pl_btm = na
var bool pl_crossed = na
var pl_x1 = 0
var box pl_bx = box.new(na,na,na,na
, bgcolor = color.new(btmAreaCss, 80)
, border_color = na)
//-----------------------------------------------------------------------------}
//Display pivot high levels/blocks
//-----------------------------------------------------------------------------{
ph = ta.pivothigh(length, length)
//Get ph counts
= get_counts(ph, ph_top, ph_btm)
//Set ph area and level
if ph and showTop
ph_top := high
ph_btm := switch area
'Wick Extremity' => math.max(close , open )
'Full Range' => low
ph_x1 := n - length
ph_crossed := false
box.set_lefttop(ph_bx, ph_x1, ph_top)
box.set_rightbottom(ph_bx, ph_x1, ph_btm)
else
ph_crossed := close > ph_top ? true : ph_crossed
if ph_crossed
box.set_right(ph_bx, ph_x1)
else
box.set_right(ph_bx, n+3)
if showTop
//Set ph zone
set_zone(ph, ph_x1, ph_top, ph_btm, ph_count, ph_vol, topAreaCss)
//Set ph level
set_level(ph, ph_crossed, ph_top, ph_count, ph_vol, topCss)
//Set ph label
set_label(ph_count, ph_vol, ph_x1, ph_top, topCss, label.style_label_down)
//-----------------------------------------------------------------------------}
//Display pivot low levels/blocks
//-----------------------------------------------------------------------------{
pl = ta.pivotlow(length, length)
//Get pl counts
= get_counts(pl, pl_top, pl_btm)
//Set pl area and level
if pl and showBtm
pl_top := switch area
'Wick Extremity' => math.min(close , open )
'Full Range' => high
pl_btm := low
pl_x1 := n - length
pl_crossed := false
box.set_lefttop(pl_bx, pl_x1, pl_top)
box.set_rightbottom(pl_bx, pl_x1, pl_btm)
else
pl_crossed := close < pl_btm ? true : pl_crossed
if pl_crossed
box.set_right(pl_bx, pl_x1)
else
box.set_right(pl_bx, n+3)
if showBtm
//Set pl zone
set_zone(pl, pl_x1, pl_top, pl_btm, pl_count, pl_vol, btmAreaCss)
//Set pl level
set_level(pl, pl_crossed, pl_btm, pl_count, pl_vol, btmCss)
//Set pl labels
set_label(pl_count, pl_vol, pl_x1, pl_btm, btmCss, label.style_label_up)
//-----------------------------------------------------------------------------}
My script// @version=5 indicator("Custom LuxAlgo-Style Levels", overlay=true, max_lines_count=500)
// --- Trend Detection (EMA Based) fastEMA = ta.ema(close, 9) slowEMA = ta.ema(close, 21) trendUp = fastEMA > slowEMA trendDown = fastEMA < slowEMA
plot(fastEMA, title="Fast EMA", color=color.new(color.blue, 0)) plot(slowEMA, title="Slow EMA", color=color.new(color.orange, 0))
// --- Buy / Sell Signals buySignal = trendUp and ta.crossover(fastEMA, slowEMA) sellSignal = trendDown and ta.crossunder(fastEMA, slowEMA)
plotshape(buySignal, title="Buy", style=shape.labelup, color=color.new(color.green,0), size=size.small, text="BUY") plotshape(sellSignal, title="Sell", style=shape.labeldown, color=color.new(color.red,0), size=size.small, text="SELL")
// --- Auto Support & Resistance length = 20 sup = ta.lowest(length) res = ta.highest(length)
plot(sup, title="Support", color=color.new(color.green,70), linewidth=2) plot(res, title="Resistance", color=color.new(color.red,70), linewidth=2)
// --- Market Structure (Simple Swing High/Low) sh = ta.highest(high, 5) == high sl = ta.lowest(low, 5) == low
plotshape(sh, title="Swing High", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny) plotshape(sl, title="Swing Low", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny)
// --- Alerts alertcondition(buySignal, "Buy Signal", "Trend Buy Signal Detected") alertcondition(sellSignal, "Sell Signal", "Trend Sell Signal Detected")






















