Mirror Trendline ToolThis indicator is an interactive mirror‑trendline drawing tool that uses three draggable points to build two related lines. Point One and Point Two define the primary (blue) trendline; Point Three defines the starting anchor for the mirrored line, which always has the opposite slope to the blue line and updates live as you move the anchor, giving continuous visual feedback while you drag it .
A color‑invert option automatically generates the mirrored line’s color by mathematically inverting the chosen base color while preserving its opacity, with a checkbox to disable inversion so both lines can share the same appearance . When “Stop at Intersection” is checked, both lines terminate exactly at their intersection, creating a clean V‑shaped construction that highlights the symmetry point between the reference move and its mirror . When the box is unchecked, both lines extend beyond that intersection, but their total duration is capped at no more than twice the original blue segment’s length, keeping projections proportionate and preventing excessively long rays from cluttering the chart .
트렌드 어낼리시스
Supertrend + MACD + HMAIndicator Description: Supertrend + MACD + HMA
General Summary
It is a composite technical indicator that combines three analysis tools to generate buy and sell signals in institutional trading. It uses confirmation from multiple indicators to increase the precision of market entries.
Components
1. Supertrend (ST)
Function: Identifies the main market trend (bullish or bearish)
Parameters: ATR Length 10, Factor 3.0
Visualization:
Green line = Bullish trend
Red line = Bearish trend
Semi-transparent green/red background that fills the area according to direction
How it works: Uses ATR (Average True Range) to calculate dynamic support and resistance bands
2. MACD (Moving Average Convergence Divergence)
Function: Measures price momentum and direction
Parameters: Fast 18, Slow 144, Signal Smoothing 9
Components:
MACD Line (orange): Difference between two EMAs
Signal Line (purple): EMA of the MACD
Histogram (green/red columns): Difference between MACD and its signal
Green = Positive histogram (bullish momentum)
Red = Negative histogram (bearish momentum)
3. HMA 100 (Hull Moving Average)
Function: Identifies support/resistance level and price direction
Parameters: Length 100
Visualization: Blue thick line
Characteristics:
Less lag than traditional moving averages
Price > HMA = Bullish trend
Price < HMA = Bearish trend
Signal Logic
🟢 BUY SIGNAL
Generated when ANY of these conditions is met:
Total Confluence:
MACD positive (histogram > 0)
Price above HMA 100
Supertrend in Bullish mode
Supertrend Change:
Supertrend changes from Bearish to Bullish
MACD remains positive
Price above HMA
Price Crossover:
Price crosses above HMA (at candle close)
Supertrend is in Bullish mode
MACD is positive
🔴 SELL SIGNAL
Generated when ANY of these conditions is met:
Total Confluence:
MACD negative (histogram < 0)
Price below HMA 100
Supertrend in Bearish mode
Supertrend Change:
Supertrend changes from Bullish to Bearish
MACD remains negative
Price Crossover:
Price crosses below HMA (at candle close)
Supertrend is in Bearish mode
MACD is negative
Important Features
✅ Single Signal Per Type
Once a BUY is generated, no other BUY is generated until a SELL appears
Avoids multiple entries in the same direction
✅ Crossover Detection
The indicator generates signals at candle close when price crosses HMA
Allows capturing quick market moves
✅ Trend Changes
Detects when Supertrend changes direction
Provides early exits from the market
✅ Automatic Alerts
Push notifications when BUY or SELL is generated
Ideal for automated trading
5% Move Counter (Up vs Down)5% Move Counter (Up vs Down)
This indicator tracks how many times a stock has made a 5% or larger move in a single session, and shows the count separately for up days and down days. It’s meant for traders who want quick context on whether a stock has a history of making large moves, instead of manually scrolling through years of price action.
Most tools only tell you what’s happening right now. This one helps you understand what the stock is capable of.
What it shows
Number of 5%+ up days
Number of 5%+ down days
Optional display modes:
All
Up Only
Down Only
Why it’s useful
Different stocks behave differently. Some give clean, powerful bursts when they break out, while others rarely move big even when the setup looks perfect. This tool helps you gauge a stock’s historical “explosiveness” so you can decide whether your strategy fits its behavior.
If your setups depend on volatility or momentum, it helps to know whether the stock has produced big moves before. This gives you that information instantly.
Customization
You can place the stats box anywhere on the chart using a simple 1–9 selector.
You can hide the rows you don’t need through a dropdown.
When a row is hidden, its background becomes fully transparent so the chart stays clean.
Who it’s for
Short-term traders, breakout traders, swing traders, and anyone who wants a quick read on whether a stock moves enough to justify certain types of trades.
ICT Order Block Identifier [Eˣ]📦 Order Block Identifier - Free Indicator
Overview
The Order Block Identifier automatically detects and displays institutional order blocks on your charts - the exact zones where banks, hedge funds, and market makers place their orders. Based on ICT (Inner Circle Trader) concepts, this indicator helps you trade alongside smart money by identifying where institutions are likely to defend their positions and where price often finds support or resistance.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Detects Order Blocks:
• 🟢 Bullish Order Blocks (OB+) - Last bearish candle before strong bullish move
• 🔴 Bearish Order Blocks (OB-) - Last bullish candle before strong bearish move
• Automatically identifies institutional buying/selling zones
• Tracks up to 30 order blocks simultaneously
• Works on all timeframes and instruments
Smart Features:
• Auto-Timeframe Adjustment - Optimizes detection for 1min to Weekly charts
• Active Block Highlighting - Shows which OB price is approaching (🎯)
• Mitigation Tracking - Knows when blocks are "used" and no longer valid
• ATR-Based Detection - Adapts to each instrument's volatility
• Strength Filtering - Choose Low/Medium/High to control sensitivity
Visual Display:
• Clean boxes extending from order block to current price
• Color-coded: Green (bullish), Red (bearish), Gray (mitigated)
• OB+ / OB- labels for quick identification
• Active blocks highlighted with 🎯 emoji
• Distance indicator showing how far price is from nearest OB
Statistics Panel:
• Count of active bullish and bearish order blocks
• Market bias based on OB balance
• Distance to nearest order block
• Real-time status updates
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Understanding Order Blocks
What Are Order Blocks?
Order blocks are the "footprints" left behind by institutional traders (banks, hedge funds, market makers) when they enter large positions. Because institutions can't fill massive orders at once without moving the market, they:
1. Place orders gradually over time
2. Leave zones where their buy/sell orders are concentrated
3. Defend these zones when price returns
4. Create reliable support and resistance levels
The ICT Concept:
Developed by Michael Huddleston (Inner Circle Trader), order block theory states that:
• The last opposite-colored candle before a strong move contains institutional orders
• Price often returns to test these zones before continuing
• These zones act as strong support (bullish OB) or resistance (bearish OB)
• Smart money defends their positions at these levels
Why Order Blocks Work:
• Unfilled Orders: Institutions may still have pending orders in the block
• Position Defense: They protect their entries by adding to positions
• Stop Placement: Retail stops cluster near these zones (liquidity for institutions)
• Market Structure: Price respects these levels due to order flow dynamics
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 Bullish Order Blocks Explained
How They Form:
1. Price is consolidating or declining
2. Institutions begin accumulating (buying)
3. A strong bullish move erupts
4. The last bearish candle before this move = Bullish Order Block
5. This candle represents where institutions were buying aggressively
Why The Last Bearish Candle?
• Institutions absorbed all selling pressure at this level
• Their buy orders filled as price was declining
• When price returns, they defend this zone with more buying
• It becomes a demand zone / support level
Trading Bullish Order Blocks:
Setup:
• Wait for price to retrace back to bullish OB (green box)
• Look for rejection/reversal pattern (pin bar, engulfing, etc.)
• Enter long when price bounces from the OB zone
• Stop loss: Below the order block
• Target: Recent high or opposite order block
Best Scenarios:
• OB aligns with other support (trendline, fibonacci, round number)
• First touch of OB (unmitigated) has highest probability
• Occurs during high-volume sessions (London/NY)
• Trend is bullish on higher timeframe
Example Trade:
• Bullish OB forms at $50,000 (last red candle before rally)
• Price rallies to $52,000 then retraces
• Price drops back to $50,100 (touching OB)
• Bullish pin bar forms on the OB
• Enter long at $50,200, stop at $49,800
• Target: $52,000+ (previous high)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 Bearish Order Blocks Explained
How They Form:
1. Price is consolidating or rising
2. Institutions begin distributing (selling)
3. A strong bearish move erupts
4. The last bullish candle before this move = Bearish Order Block
5. This candle represents where institutions were selling aggressively
Why The Last Bullish Candle?
• Institutions absorbed all buying pressure at this level
• Their sell orders filled as price was rising
• When price returns, they defend this zone with more selling
• It becomes a supply zone / resistance level
Trading Bearish Order Blocks:
Setup:
• Wait for price to retrace back to bearish OB (red box)
• Look for rejection/reversal pattern (shooting star, bearish engulfing)
• Enter short when price rejects from the OB zone
• Stop loss: Above the order block
• Target: Recent low or opposite order block
Best Scenarios:
• OB aligns with other resistance (trendline, fibonacci, round number)
• First touch of OB (unmitigated) has highest probability
• Occurs during high-volume sessions (London/NY)
• Trend is bearish on higher timeframe
Example Trade:
• Bearish OB forms at $48,000 (last green candle before drop)
• Price drops to $46,000 then retraces
• Price rallies back to $47,900 (touching OB)
• Bearish engulfing forms at the OB
• Enter short at $47,800, stop at $48,200
• Target: $46,000- (previous low)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Strategy 1: Order Block Retest (Classic)
Best For: Swing trading, capturing reversals
Timeframes: 15min, 1H, 4H, Daily
Win Rate: 60-70% (first touch)
Entry Rules:
1. Identify unmitigated order block (bright color, not gray)
2. Wait for price to return to the OB zone
3. Look for price action confirmation:
• Bullish OB: Pin bar, bullish engulfing, hammer
• Bearish OB: Shooting star, bearish engulfing, doji
4. Enter in the direction of the OB
5. Stop loss: Beyond the opposite side of OB (20-30 pips)
6. Target: 2-3R or opposite OB
Example:
• Bullish OB at $100-$102
• Price drops to $101.50 (enters OB)
• Bullish pin bar forms with low at $100.80
• Enter long at $102 (OB high), stop at $99.50
• Risk: $2.50, Target: $107.50 (3R)
Strategy 2: Break & Retest
Best For: Trend trading, breakout confirmation
Timeframes: 5min, 15min, 1H
Win Rate: 65-75%
Entry Rules:
1. Price breaks through an order block
2. Wait for pullback to the broken OB
3. The OB now acts as support (if broken up) or resistance (if broken down)
4. Enter when price respects the flipped OB
5. Stop: Inside the OB zone
6. Target: Next OB or structure level
Why It Works: Broken OBs flip polarity - support becomes resistance and vice versa
Strategy 3: Multi-Timeframe Confirmation
Best For: High-probability setups
Timeframes: Combine 1H + 4H or 15min + 1H
Win Rate: 70-80%
Entry Rules:
1. Identify order block on higher timeframe (4H or Daily)
2. Switch to lower timeframe (1H or 15min)
3. Wait for lower TF order block to form within higher TF OB
4. Trade the lower TF OB in direction of higher TF OB
5. Stop: Below lower TF OB
6. Target: Edge of higher TF OB or beyond
Why It Works: Alignment across timeframes = institutional consensus
Strategy 4: Order Block to Order Block
Best For: Range trading, swing entries
Timeframes: 1H, 4H
Win Rate: 55-65%
Entry Rules:
1. Identify both bullish OB below and bearish OB above
2. Price is ranging between these OBs
3. Enter long at bullish OB, target bearish OB
4. Enter short at bearish OB, target bullish OB
5. Stop: Beyond the trading OB
6. Exit at opposite OB
Why It Works: Price moves from one institutional zone to another
Strategy 5: Mitigation Fade
Best For: Aggressive scalping
Timeframes: 5min, 15min
Win Rate: 50-60% (higher risk)
Entry Rules:
1. Price approaches an order block
2. Instead of bouncing, price breaks through (mitigates it)
3. Enter immediately in direction of breakout
4. Stop: Back inside the mitigated OB
5. Quick target: 1-1.5R
Why It Works: When OB fails, it often leads to strong continuation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Core Settings
Auto-Adjust for Timeframe (Default: ON)
• Automatically optimizes detection for current chart timeframe
• 1min: 3 bars lookback
• 5min: 4 bars lookback
• 15min: 5 bars lookback
• 1H: 6 bars lookback
• 4H: 8 bars lookback
• Daily+: 10-12 bars lookback
• Recommended: Keep ON for best results
Manual Detection Length (Default: 5)
• Only used when Auto-Adjust is OFF
• Number of bars to look back for the "last opposite candle"
• Lower (2-4): More sensitive, more blocks, more noise
• Higher (6-10): Less sensitive, fewer blocks, higher quality
• Recommended: Use Auto-Adjust instead
Display Settings
Show Bullish/Bearish Order Blocks
• Toggle each type on/off independently
• Customize colors for each OB type
• Tip: Match colors to your chart theme
Max Order Blocks to Display (Default: 10)
• Limits how many OBs are shown at once
• Lower (5-8): Cleaner chart, only recent blocks
• Higher (15-30): More historical context
• Recommended: 8-12 for most trading
Show Order Block Labels (Default: ON)
• Displays "OB+" and "OB-" text on blocks
• Shows 🎯 on active (nearest) block
• Turn OFF for minimal chart appearance
• Recommended: Keep ON for clarity
Extend Blocks (bars) (Default: 50)
• How far to extend OB boxes to the right
• Lower (20-30): Shorter boxes, less clutter
• Higher (100+): Longer boxes, easier to see
• Blocks auto-extend until mitigated or limit reached
• Recommended: 40-60 bars
Filters
Block Strength Filter (Default: Medium)
• Controls how strong a move must be to create an OB
• Low: 0.5x ATR move required - Many blocks, more noise
• Medium: 1x ATR move required - Balanced quality/quantity
• High: 1.5x ATR move required - Only strongest institutional moves
• Recommended for beginners: High
• Recommended for experienced: Medium
• Recommended for scalpers: Low
Min Block Size % (Default: 0.1)
• Minimum size of OB as percentage of price
• Filters out tiny, insignificant blocks
• Crypto: 0.1-0.3%
• Forex: 0.05-0.15%
• Stocks: 0.1-0.5%
• Adjust based on instrument volatility
Advanced Settings
Show Mitigated Blocks (Default: OFF)
• When ON: Shows gray boxes for "used" order blocks
• When OFF: Blocks disappear after mitigation
• Use ON: For learning and analysis
• Use OFF: For clean, active trading
Highlight Active Block (Default: ON)
• Highlights the nearest order block to current price
• Active block shown with 🎯 emoji and brighter color
• Helps focus on most relevant trading opportunity
• Recommended: Keep ON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Bullish OB Count
• Number of active (unmitigated) bullish order blocks
• Higher number = More support zones below price
• Multiple bullish OBs = Strong demand structure
Bearish OB Count
• Number of active (unmitigated) bearish order blocks
• Higher number = More resistance zones above price
• Multiple bearish OBs = Strong supply structure
Bias Indicator
• ⬆ Bullish: More bullish OBs than bearish (demand > supply)
• ⬇ Bearish: More bearish OBs than bullish (supply > demand)
• ↔ Neutral: Equal OBs on both sides
• Trade in direction of bias for higher probability
Near Indicator
• Shows which OB price is closest to
• Displays distance as percentage
• Example: "Bull OB 0.85%" = Bullish OB is 0.85% below current price
• Watch for "Near" alerts to time entries
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 4 alert types:
1. Price Entering Bullish OB
• Fires when price touches a bullish order block
• Action: Watch for bounce/reversal pattern
• High-probability long setup developing
2. Price Entering Bearish OB
• Fires when price touches a bearish order block
• Action: Watch for rejection/reversal pattern
• High-probability short setup developing
3. New Bullish OB Detected
• Fires when a new bullish order block forms
• Action: Mark the zone for future retest
• New demand zone identified
4. New Bearish OB Detected
• Fires when a new bearish order block forms
• Action: Mark the zone for future retest
• New supply zone identified
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Order Block Identifier"
3. Choose your alert condition
4. Configure notification method
5. Click "Create"
Pro Tip: Set "Price Entering" alerts to catch trading opportunities in real-time
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• First touch is best - Unmitigated OBs have highest win rate (60-70%)
• Wait for confirmation - Don't buy/sell just because price touched OB
• Use multiple timeframes - Higher TF OBs are stronger than lower TF
• Combine with structure - OB + trendline/support = high probability
• Trade with the bias - More bullish OBs = favor longs
• Respect mitigation - Once OB is mitigated, it's less reliable
• Use proper stop loss - Always place stops beyond the OB zone
• Consider session timing - OBs work best during London/NY sessions
⚠️ DON'T:
• Don't blindly buy/sell at OBs - Wait for confirmation
• Don't ignore mitigation - Gray blocks are much weaker
• Don't trade every OB - Quality over quantity
• Don't fight strong trends - OBs can be run through in strong momentum
• Don't use alone - Combine with price action, support/resistance
• Don't expect 100% win rate - Even best OBs fail sometimes (30-40% of time)
• Don't overtrade - Wait for A+ setups with confluence
🎯 Best Timeframes By Trading Style:
• Scalpers: 1min, 5min (quick OB touches)
• Day Traders: 5min, 15min, 1H (balanced view)
• Swing Traders: 1H, 4H, Daily (major institutional zones)
• Position Traders: 4H, Daily, Weekly (strongest OBs)
🔥 Best Instruments:
• Excellent: Forex major pairs (EUR/USD, GBP/USD), BTC, ETH, ES, NQ
• Good: Gold, Oil, Major indices, Large-cap stocks
• Moderate: Altcoins, small-cap stocks (more noise)
• Avoid: Very low liquidity instruments (OBs less reliable)
⏰ Best Times To Trade OBs:
• London Session (03:00-12:00 EST): Highest OB respect rate
• NY Session (08:00-17:00 EST): Strong OB reactions
• London-NY Overlap (08:00-12:00 EST): Best probability
• Asian Session: Lower probability, wait for London
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Advanced Order Block Concepts
Order Block Flips (Polarity Change)
When price breaks through an OB and closes beyond it:
• Bullish OB that's broken becomes bearish (support becomes resistance)
• Bearish OB that's broken becomes bullish (resistance becomes support)
• Trading: Watch for retest of broken OB from opposite side
Order Block Refinement
When multiple OBs form at similar level:
• Later OB "refines" or "replaces" the earlier one
• Use the most recent OB as the active zone
• Older OBs become less relevant
Order Block Clusters
Multiple OBs stacked close together:
• Creates a "super zone" of institutional interest
• Higher probability of reversal
• Wider zone for entries (more room for confirmation)
Fair Value Gaps + Order Blocks
When OB aligns with Fair Value Gap:
• Extremely high probability setup
• Price is drawn to fill the gap AND test the OB
• Double confluence = institutional magnet
Order Block Mitigation Types
• Full Mitigation: Price fully enters and closes inside OB
• Partial Mitigation: Price wicks into OB but closes outside
• False Mitigation: Quick touch then immediate rejection
• Partial/false mitigation = OB still somewhat valid
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common Order Block Patterns
Pattern 1: The Perfect Retest
• OB forms during strong move
• Price continues 100-200+ pips
• Price retraces back to OB
• Clean bounce with confirmation candle
• Highest probability pattern
Pattern 2: The Double Tap
• Price tests OB, bounces weakly
• Price tests same OB again
• Second test produces stronger reaction
• Second touch often better entry
Pattern 3: The Fake-Out
• Price breaks through OB
• Immediately reverses back
• "Stop hunt" or liquidity grab
• Enter after price reclaims OB
Pattern 4: The Ladder
• Multiple OBs stacked like stairs
• Price steps from one OB to next
• Each OB provides support/resistance
• Trade OB-to-OB movements
Pattern 5: The Failed OB
• Price crashes through OB without pause
• OB completely invalidated
• Often signals strong momentum
• Don't fight it, trade the breakout
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 What Makes This Different?
Unlike basic support/resistance indicators, Order Block Identifier:
• ICT Methodology - Based on proven institutional concepts
• Auto-Timeframe Optimization - Works perfectly on all timeframes
• ATR-Based Detection - Adapts to each instrument's volatility
• Mitigation Tracking - Knows when blocks are no longer valid
• Active Block Highlighting - Shows most relevant opportunity
• Smart Filtering - Only shows high-quality institutional zones
• Visual Clarity - Clean, professional appearance
• Real-Time Updates - Blocks update as price action develops
Based On Professional Concepts:
• ICT Smart Money Concepts (SMC)
• Institutional order flow analysis
• Market maker behavior patterns
• Supply and demand zone theory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Upgrade Your Trading Arsenal
This free indicator gives you institutional-level order block analysis. Want more?
🔥 Check out my premium scripts for:
• Automated entries at order blocks with confirmation
• Fair Value Gap detection combined with OBs
• Multi-timeframe order block strategies
• Breaker blocks and advanced ICT concepts
• Complete smart money trading systems
• And much more...
👉 Visit my profile to trade like institutions!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Important Notes
• Order blocks are high-probability zones, not guarantees
• Always use confirmation (price action patterns)
• First touch of OB is most reliable (60-70% win rate)
• Mitigated blocks are much weaker (30-40% win rate)
• Works best during high-volume sessions
• Combine with proper risk management (1-2% risk per trade)
• Not all OBs are created equal - look for confluence
• Practice on demo before trading live
• Past performance doesn't guarantee future results
Learning Curve:
• Week 1-2: Learn to identify OBs and wait for retests
• Week 3-4: Practice entry confirmation and risk management
• Month 2-3: Combine with other analysis (MTF, structure, FVGs)
• Month 3+: Develop personal OB trading system
Disclaimer: For educational purposes only. Order block trading requires practice and proper risk management. Always do your own research.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 Support This Work
If this indicator helps you trade with institutions:
• ⭐ Give it a thumbs up
• 💬 Share your best order block trades in comments
• 🔔 Follow for more free ICT/SMC tools
• 🚀 Share with traders learning smart money concepts
Questions about order blocks? Drop a comment and I'll explain!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Developed with ❤️ for traders who want to see what institutions see
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History
• v1.0 - Initial release with auto-timeframe detection and ATR-based strength filtering
ICT Quant-Core: Liquidity Intelligence [Dual-Engine]🔥 THE ULTIMATE LIQUIDITY FILTERING ENGINE
Most SMC traders lose money because they "catch falling knives" on every local wick. This algorithm solves this problem by using DUAL-CORE logic and a signal quality scoring system.
This is no ordinary pivot indicator.
⚙️ HOW DOES IT WORK? (DUAL-CORE LOGIC)
The algorithm analyzes the market on two levels simultaneously:
1️⃣ MACRO CORE (Lookback 50 - "WHALE 🐋")
Tracks key levels from recent weeks/months.
This is where institutions build their positions.
Signals from this core have the highest priority (Score 10/10).
2️⃣ LOCAL CORE (Lookback 20 - "ROACH 🐟")
Tracks internal market structure and noise.
Signals are filtered by the Main Trend. If the trend is down, Local Longs are marked as "TRAP."
🧠 SMART FILTERS (QUANT LAYERS)
Instead of entering on every line touch, the script requires confirmation:
✅ RECLAIM LOGIC: Price must close back above/below the liquidity level (Swing Failure Pattern).
✅ RVOL FILTER: Requires relative volume > 1.2x the average (institutional track).
✅ SCORING SYSTEM (0-10): Each signal receives a score.
- 10/10: Macro Grab in line with the trend + high volume.
- 3/10: Local Grab against the trend (risky).
📊 ANALYTICAL DASHBOARD
In the lower right corner, you'll find the "Command Center":
- Trend Status (Distribution/Accumulation)
- Whale's Last Move (Price and Direction)
- Current Tactics (e.g., "Ignore Longs, Search for Shorts")
- Filter Status (RSI, Volume, Reclaim)
🚀 HOW TO USE IT?
1. Set the H4 timeframe.
2. Wait for a signal with a rating > 7/10.
3. Ignore "Fish/Local" signals (small icons) if they contradict the Dashboard color.
4. Entry occurs only after the candle closes (Reclaim).
SR & POI Indicator//@version=5
indicator(title='SR & POI Indicator', overlay=true, max_boxes_count=500, max_lines_count=500, max_labels_count=500)
//============================================================================
// SUPPLY/DEMAND & POI SETTINGS
//============================================================================
swing_length = input.int(10, title = 'Swing High/Low Length', group = 'Supply/Demand Settings', minval = 1, maxval = 50)
history_of_demand_to_keep = input.int(20, title = 'History To Keep', group = 'Supply/Demand Settings', minval = 5, maxval = 50)
box_width = input.float(2.5, title = 'Supply/Demand Box Width', group = 'Supply/Demand Settings', minval = 1, maxval = 10, step = 0.5)
show_price_action_labels = input.bool(false, title = 'Show Price Action Labels', group = 'Supply/Demand Visual Settings')
supply_color = input.color(color.new(#EDEDED,70), title = 'Supply', group = 'Supply/Demand Visual Settings', inline = '3')
supply_outline_color = input.color(color.new(color.white,75), title = 'Outline', group = 'Supply/Demand Visual Settings', inline = '3')
demand_color = input.color(color.new(#00FFFF,70), title = 'Demand', group = 'Supply/Demand Visual Settings', inline = '4')
demand_outline_color = input.color(color.new(color.white,75), title = 'Outline', group = 'Supply/Demand Visual Settings', inline = '4')
bos_label_color = input.color(color.white, title = 'BOS Label', group = 'Supply/Demand Visual Settings')
poi_label_color = input.color(color.white, title = 'POI Label', group = 'Supply/Demand Visual Settings')
swing_type_color = input.color(color.black, title = 'Price Action Label', group = 'Supply/Demand Visual Settings')
//============================================================================
// SR SETTINGS
//============================================================================
enableSR = input(true, "SR On/Off", group="SR Settings")
colorSup = input(#00DBFF, "Support Color", group="SR Settings")
colorRes = input(#E91E63, "Resistance Color", group="SR Settings")
strengthSR = input.int(2, "S/R Strength", 1, group="SR Settings")
lineStyle = input.string("Dotted", "Line Style", , group="SR Settings")
lineWidth = input.int(2, "S/R Line Width", 1, group="SR Settings")
useZones = input(true, "Zones On/Off", group="SR Settings")
useHLZones = input(true, "High Low Zones On/Off", group="SR Settings")
zoneWidth = input.int(2, "Zone Width %", 0, tooltip="it's calculated using % of the distance between highest/lowest in last 300 bars", group="SR Settings")
expandSR = input(true, "Expand SR", group="SR Settings")
//============================================================================
// SUPPLY/DEMAND FUNCTIONS
//============================================================================
// Function to add new and remove last in array
f_array_add_pop(array, new_value_to_add) =>
array.unshift(array, new_value_to_add)
array.pop(array)
// Function for swing H & L labels
f_sh_sl_labels(array, swing_type) =>
var string label_text = na
if swing_type == 1
if array.get(array, 0) >= array.get(array, 1)
label_text := 'HH'
else
label_text := 'LH'
label.new(bar_index - swing_length, array.get(array,0), text = label_text, style=label.style_label_down, textcolor = swing_type_color, color = color.new(swing_type_color, 100), size = size.tiny)
else if swing_type == -1
if array.get(array, 0) >= array.get(array, 1)
label_text := 'HL'
else
label_text := 'LL'
label.new(bar_index - swing_length, array.get(array,0), text = label_text, style=label.style_label_up, textcolor = swing_type_color, color = color.new(swing_type_color, 100), size = size.tiny)
// Function to check overlapping
f_check_overlapping(new_poi, box_array, atr) =>
atr_threshold = atr * 2
okay_to_draw = true
for i = 0 to array.size(box_array) - 1
top = box.get_top(array.get(box_array, i))
bottom = box.get_bottom(array.get(box_array, i))
poi = (top + bottom) / 2
upper_boundary = poi + atr_threshold
lower_boundary = poi - atr_threshold
if new_poi >= lower_boundary and new_poi <= upper_boundary
okay_to_draw := false
break
else
okay_to_draw := true
okay_to_draw
// Function to draw supply or demand zone
f_supply_demand(value_array, bn_array, box_array, label_array, box_type, atr) =>
atr_buffer = atr * (box_width / 10)
box_left = array.get(bn_array, 0)
box_right = bar_index
var float box_top = 0.00
var float box_bottom = 0.00
var float poi = 0.00
if box_type == 1
box_top := array.get(value_array, 0)
box_bottom := box_top - atr_buffer
poi := (box_top + box_bottom) / 2
else if box_type == -1
box_bottom := array.get(value_array, 0)
box_top := box_bottom + atr_buffer
poi := (box_top + box_bottom) / 2
okay_to_draw = f_check_overlapping(poi, box_array, atr)
if box_type == 1 and okay_to_draw
box.delete( array.get(box_array, array.size(box_array) - 1) )
f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = supply_outline_color,
bgcolor = supply_color, extend = extend.right, text = 'SUPPLY', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
box.delete( array.get(label_array, array.size(label_array) - 1) )
f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = color.new(poi_label_color,90),
bgcolor = color.new(poi_label_color,90), extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
else if box_type == -1 and okay_to_draw
box.delete( array.get(box_array, array.size(box_array) - 1) )
f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = demand_outline_color,
bgcolor = demand_color, extend = extend.right, text = 'DEMAND', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
box.delete( array.get(label_array, array.size(label_array) - 1) )
f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = color.new(poi_label_color,90),
bgcolor = color.new(poi_label_color,90), extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
// Function to change supply/demand to BOS if broken
f_sd_to_bos(box_array, bos_array, label_array, zone_type) =>
if zone_type == 1
for i = 0 to array.size(box_array) - 1
level_to_break = box.get_top(array.get(box_array,i))
if close >= level_to_break
copied_box = box.copy(array.get(box_array,i))
f_array_add_pop(bos_array, copied_box)
mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2
box.set_top(array.get(bos_array,0), mid)
box.set_bottom(array.get(bos_array,0), mid)
box.set_extend( array.get(bos_array,0), extend.none)
box.set_right( array.get(bos_array,0), bar_index)
box.set_text( array.get(bos_array,0), 'BOS' )
box.set_text_color( array.get(bos_array,0), bos_label_color)
box.set_text_size( array.get(bos_array,0), size.small)
box.set_text_halign( array.get(bos_array,0), text.align_center)
box.set_text_valign( array.get(bos_array,0), text.align_center)
box.delete(array.get(box_array, i))
box.delete(array.get(label_array, i))
if zone_type == -1
for i = 0 to array.size(box_array) - 1
level_to_break = box.get_bottom(array.get(box_array,i))
if close <= level_to_break
copied_box = box.copy(array.get(box_array,i))
f_array_add_pop(bos_array, copied_box)
mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2
box.set_top(array.get(bos_array,0), mid)
box.set_bottom(array.get(bos_array,0), mid)
box.set_extend( array.get(bos_array,0), extend.none)
box.set_right( array.get(bos_array,0), bar_index)
box.set_text( array.get(bos_array,0), 'BOS' )
box.set_text_color( array.get(bos_array,0), bos_label_color)
box.set_text_size( array.get(bos_array,0), size.small)
box.set_text_halign( array.get(bos_array,0), text.align_center)
box.set_text_valign( array.get(bos_array,0), text.align_center)
box.delete(array.get(box_array, i))
box.delete(array.get(label_array, i))
// Function to extend box endpoint
f_extend_box_endpoint(box_array) =>
for i = 0 to array.size(box_array) - 1
box.set_right(array.get(box_array, i), bar_index + 100)
//============================================================================
// SR FUNCTIONS
//============================================================================
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
//============================================================================
// SUPPLY/DEMAND CALCULATIONS
//============================================================================
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_values = array.new_float(5,0.00)
var swing_low_values = array.new_float(5,0.00)
var swing_high_bns = array.new_int(5,0)
var swing_low_bns = array.new_int(5,0)
var current_supply_box = array.new_box(history_of_demand_to_keep, na)
var current_demand_box = array.new_box(history_of_demand_to_keep, na)
var current_supply_poi = array.new_box(history_of_demand_to_keep, na)
var current_demand_poi = array.new_box(history_of_demand_to_keep, na)
var supply_bos = array.new_box(5, na)
var demand_bos = array.new_box(5, na)
// New swing high
if not na(swing_high)
f_array_add_pop(swing_high_values, swing_high)
f_array_add_pop(swing_high_bns, bar_index )
if show_price_action_labels
f_sh_sl_labels(swing_high_values, 1)
f_supply_demand(swing_high_values, swing_high_bns, current_supply_box, current_supply_poi, 1, atr)
// New swing low
else if not na(swing_low)
f_array_add_pop(swing_low_values, swing_low)
f_array_add_pop(swing_low_bns, bar_index )
if show_price_action_labels
f_sh_sl_labels(swing_low_values, -1)
f_supply_demand(swing_low_values, swing_low_bns, current_demand_box, current_demand_poi, -1, atr)
f_sd_to_bos(current_supply_box, supply_bos, current_supply_poi, 1)
f_sd_to_bos(current_demand_box, demand_bos, current_demand_poi, -1)
f_extend_box_endpoint(current_supply_box)
f_extend_box_endpoint(current_demand_box)
//============================================================================
// SR CALCULATIONS & PLOTTING
//============================================================================
rb = 10
prd = 284
ChannelW = 10
label_loc = 55
style = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
ph = ta.pivothigh(rb, rb)
pl = ta.pivotlow (rb, rb)
sr_levels = array.new_float(21, na)
prdhighest = ta.highest(prd)
prdlowest = ta.lowest(prd)
cwidth = percWidth(prd, ChannelW)
zonePerc = percWidth(300, zoneWidth)
aas = array.new_bool(41, true)
u1 = 0.0, u1 := nz(u1 )
d1 = 0.0, d1 := nz(d1 )
highestph = 0.0, highestph := highestph
lowestpl = 0.0, lowestpl := lowestpl
var sr_levs = array.new_float(21, na)
label hlabel = na, label.delete(hlabel )
label llabel = na, label.delete(llabel )
var sr_lines = array.new_line(21, na)
var sr_linesH = array.new_line(21, na)
var sr_linesL = array.new_line(21, na)
var sr_linesF = array.new_linefill(21, na)
var sr_labels = array.new_label(21, na)
if ph or pl
for x = 0 to array.size(sr_levels) - 1
array.set(sr_levels, x, na)
highestph := prdlowest
lowestpl := prdhighest
countpp = 0
for x = 0 to prd
if na(close )
break
if not na(ph ) or not na(pl )
highestph := math.max(highestph, nz(ph , prdlowest), nz(pl , prdlowest))
lowestpl := math.min(lowestpl, nz(ph , prdhighest), nz(pl , prdhighest))
countpp += 1
if countpp > 40
break
if array.get(aas, countpp)
upl = (ph ? high : low ) + cwidth
dnl = (ph ? high : low ) - cwidth
u1 := countpp == 1 ? upl : u1
d1 := countpp == 1 ? dnl : d1
tmp = array.new_bool(41, true)
cnt = 0
tpoint = 0
for xx = 0 to prd
if na(close )
break
if not na(ph ) or not na(pl )
chg = false
cnt += 1
if cnt > 40
break
if array.get(aas, cnt)
if not na(ph )
if high <= upl and high >= dnl
tpoint += 1
chg := true
if not na(pl )
if low <= upl and low >= dnl
tpoint += 1
chg := true
if chg and cnt < 41
array.set(tmp, cnt, false)
if tpoint >= strengthSR
for g = 0 to 40 by 1
if not array.get(tmp, g)
array.set(aas, g, false)
if ph and countpp < 21
array.set(sr_levels, countpp, high )
if pl and countpp < 21
array.set(sr_levels, countpp, low )
// Plot SR
var line highest_ = na, line.delete(highest_)
var line lowest_ = na, line.delete(lowest_)
var line highest_fill1 = na, line.delete(highest_fill1)
var line highest_fill2 = na, line.delete(highest_fill2)
var line lowest_fill1 = na, line.delete(lowest_fill1)
var line lowest_fill2 = na, line.delete(lowest_fill2)
hi_col = close >= highestph ? colorSup : colorRes
lo_col = close >= lowestpl ? colorSup : colorRes
if enableSR
highest_ := line.new(bar_index - 311, highestph, bar_index, highestph, xloc.bar_index, expandSR ? extend.both : extend.right, hi_col, style, lineWidth)
lowest_ := line.new(bar_index - 311, lowestpl , bar_index, lowestpl , xloc.bar_index, expandSR ? extend.both : extend.right, lo_col, style, lineWidth)
if useHLZones
highest_fill1 := line.new(bar_index - 311, highestph + zonePerc, bar_index, highestph + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)
highest_fill2 := line.new(bar_index - 311, highestph - zonePerc, bar_index, highestph - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)
lowest_fill1 := line.new(bar_index - 311, lowestpl + zonePerc , bar_index, lowestpl + zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)
lowest_fill2 := line.new(bar_index - 311, lowestpl - zonePerc , bar_index, lowestpl - zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)
linefill.new(highest_fill1, highest_fill2, color.new(hi_col, 80))
linefill.new(lowest_fill1 , lowest_fill2 , color.new(lo_col, 80))
if ph or pl
for x = 0 to array.size(sr_lines) - 1
array.set(sr_levs, x, array.get(sr_levels, x))
for x = 0 to array.size(sr_lines) - 1
line.delete(array.get(sr_lines, x))
line.delete(array.get(sr_linesH, x))
line.delete(array.get(sr_linesL, x))
linefill.delete(array.get(sr_linesF, x))
if array.get(sr_levs, x) and enableSR
line_col = close >= array.get(sr_levs, x) ? colorSup : colorRes
array.set(sr_lines, x, line.new(bar_index - 355, array.get(sr_levs, x), bar_index, array.get(sr_levs, x), xloc.bar_index, expandSR ? extend.both : extend.right, line_col, style, lineWidth))
if useZones
array.set(sr_linesH, x, line.new(bar_index - 355, array.get(sr_levs, x) + zonePerc, bar_index, array.get(sr_levs, x) + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))
array.set(sr_linesL, x, line.new(bar_index - 355, array.get(sr_levs, x) - zonePerc, bar_index, array.get(sr_levs, x) - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))
array.set(sr_linesF, x, linefill.new(array.get(sr_linesH, x), array.get(sr_linesL, x), color.new(line_col, 80)))
for x = 0 to array.size(sr_labels) - 1
label.delete(array.get(sr_labels, x))
if array.get(sr_levs, x) and enableSR
lab_loc = close >= array.get(sr_levs, x) ? label.style_label_up : label.style_label_down
lab_col = close >= array.get(sr_levs, x) ? colorSup : colorRes
array.set(sr_labels, x, label.new(bar_index + label_loc, array.get(sr_levs, x), str.tostring(math.round_to_mintick(array.get(sr_levs, x))), color=lab_col , textcolor=#000000, style=lab_loc))
hlabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, highestph, "High Level : " + str.tostring(highestph), color=hi_col, textcolor=#000000, style=label.style_label_down) : na
llabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, lowestpl , "Low Level : " + str.tostring(lowestpl) , color=lo_col, textcolor=#000000, style=label.style_label_up ) : na
FX OSINT — Institutional Midnight Intelligence For ForexFX OSINT — Institutional Midnight Intelligence For Forex
See Your FX Charts Like an Intelligence Briefing, Not a Guess
If you’ve ever stared at EURUSD or GBPJPY and thought:
Where is the real liquidity?
Is this move sponsored by smart money or just noise?
Am I buying into premium or discount?
…then FX OSINT is designed for you.
FX OSINT (Forex Open Source Intelligence) treats the FX market the way an analyst treats an investigation:
Collect open‑source signals from price, time, and volatility.
Map out liquidity, structure, and sessions in a repeatable way.
Present them in a clean, non‑cluttered dashboard so you can read context quickly.
No rainbow spaghetti. No 12 indicators stacked on top of each other. Just structured information, midnight visuals, and a clear read on what the market is doing right now.
Why FX OSINT Exists
Many FX traders run into the same problems:
Overloaded charts – multiple indicators fighting for space, none talking to each other.
Signals with no context – arrows that ignore structure, sessions, and liquidity.
Tools not tuned for FX – generic indicators that don’t care what pair you are on.
FX OSINT brings this together into one FX‑focused framework that:
Understands structure : BOS/CHOCH, swings, and trend across multiple timeframes.
Respects liquidity : sweeps, order blocks, and FVGs with controlled visibility.
Reads volatility & ADR : how far today’s range has developed.
Knows the clock : London, New York, and key killzones.
Scores confluence : a 0–100 engine that summarizes how much is lining up.
FX OSINT is built for traders who want structured, institutional‑style logic with a disciplined, midnight‑themed UI —not flashing buy/sell buttons.
1. Midnight Dashboard — Top‑Right Intelligence Panel
This panel acts as your compact “situation room”:
CONFLUENCE — 0–100 score blending trend alignment, volatility regime, sessions, liquidity events, order blocks, FVGs, and ADR context.
REGIME — Low / Building / Normal / Expansion / Extreme, driven by ATR relationships, so you know if you’re in chop, trend, or expansion.
HTF / MTF / LTF TREND — Higher‑, medium‑, and current‑timeframe bias in one place, so you see if you are trading with or against the larger flow.
ADR USED — How much of today’s typical range has already been consumed in percentage terms.
PIP VALUE — Approximate pip size per pair, including JPY‑style pairs.
Everything is bold, legible, and color‑coded, but the layout stays minimal so you can:
Look once → understand the context.
2. Structure, BOS, CHOCH — Smart‑Money‑Style Skeleton
FX OSINT tracks swing highs and lows, then shows how structure evolves:
Trend logic based on evolving swings, not just a moving average cross.
BOS (Break of Structure) when price expands in the direction of trend.
CHOCH (Change of Character) when behavior flips and the market structure changes.
Labels are selective, not spammy . You don’t get a tag on every minor wiggle—only when structure meaningfully shifts, so it’s easier to answer:
"Are we continuing the current leg, or did something actually change here?"
3. Liquidity Sweeps, Order Blocks & FVGs — The OSINT Layer
FX OSINT treats liquidity as a key information layer:
Liquidity sweeps — Detects when price spikes through recent highs/lows and then snaps back, flagging potential stop runs.
Order blocks — The last opposite candle before a displacement move, drawn as controlled boxes with limited lifespan to avoid clutter.
Fair Value Gaps (FVGs) — Three‑candle imbalances rendered as precise zones with a cap on how many can exist at once.
Under the hood, boxes are managed so your chart does not become a wall of old zones:
// Draw Order Blocks with overlap prevention
if isBullishOB and showOrderBlocks
if array.size(obBoxes) >= maxBoxes
oldBox = array.shift(obBoxes)
box.delete(oldBox)
newBox = box.new(bar_index , low , bar_index + obvLength, high ,
border_color = bullColor, bgcolor = bullColorTransp,
border_width = 2, extend = extend.none)
array.push(obBoxes, newBox)
Box limits keep the number of zones under control.
Borders and transparency are tuned so you still see price clearly.
You end up with a curated liquidity map , rather than a chart buried under every level price has ever touched.
4. Volatility, ADR & Sessions — Time and Range Intelligence
FX OSINT runs a Volatility Regime Analyzer and an ADR engine in the background:
Volatility regime — Five states (Low → Extreme) derived from fast vs. slow ATR.
ADR bands — Daily high/mid/low projected from the current daily open.
ADR used % — How far today’s move has traveled relative to its typical range.
On the time side:
Asia, London, New York sessions are softly highlighted with a single active background to avoid overlapping colors.
Killzones (e.g., London and New York opens) can be emphasized when you want to focus on where significant moves often begin.
Together, this helps you answer:
"What time is it in the trading day?"
"How stretched are we?"
"Is expansion just starting, or are we late to the move?"
5. ICT‑Style Add‑Ons — BOS/CHOCH, Premium/Discount, and Confluence
For modern FX / ICT‑inspired workflows, FX OSINT includes:
BOS / CHOCH labels — Clear structural shifts based on swings.
Premium / Discount zones — 25%, 50%, 75% levels of the daily range, so you know if you are buying discount in an uptrend or selling premium in a downtrend.
Confluence score — A single number summarizing how many conditions line up in the current context.
Instead of replacing your plan, FX OSINT compresses your checklist into the chart:
Structure
Liquidity
Session / Time
Volatility / ADR
Higher‑timeframe alignment
When these agree, the dashboard reflects it. When they don’t, it stays neutral and lets you see the conflict.
How To Use FX OSINT
FX OSINT is not a signal bot. It is an information engine that organizes context so you can apply your own plan.
A typical workflow might look like:
Start on higher timeframes (e.g., H4/D1) to form directional bias from structure, volatility regime, and ADR context.
Move to intraday timeframes (e.g., M15/H1) around your chosen sessions (London and/or New York).
Look for confluence :
HTF / MTF / LTF trends aligned.
Price in discount for longs or premium for shorts.
Recent liquidity sweep into a meaningful OB or FVG.
Confluence score at or above a level you consider significant.
Then refine entries using BOS/CHOCH on lower timeframes according to your own risk and execution rules.
FX OSINT aims to make sure you do not enter a trade without seeing:
Where you are in the day (ADR and sessions).
Where you are in the volatility cycle (regime).
Who currently appears in control (structure and trend).
Which liquidity was just targeted (sweeps and zones).
Design Choices and Scope
FX OSINT was designed around a few clear constraints:
FX‑focused — Logic and filters tuned for FX majors, minors, exotics, and metals. It is intended for FX markets, not for every possible asset class.
Open‑source — The full Pine Script code is available so you can read it, learn from it, and adapt it to your own workflow if needed.
Clear themes — Two main visual styles (e.g., dark institutional “midnight” and a lighter accent variant) with a focus on readability, not visual noise.
Chart‑friendly — Panels use fixed areas, session highlights avoid overlapping, and boxes are capped/pruned so the chart remains usable.
FX OSINT is for only Forex pairs, not anything else!
Hope you enjoyed and remember your Open Source Intelligence Matters 😉!
-officialjackofalltrades
IV Walls (Open Source Code)Russell Capital Group
Code is completely open source. You are encouraged to make a copy as it is necessary for applying the indicator to multiple symbols. Each day's derived data must be plotted by code. Data is derived from the Fractal X software.
Message @ryd3rama on discord for more information or help.
Session Dynamics & Pivot Overlay (Arjo)## **OVERVIEW**
The **Session Dynamics & Pivot Overlay (Arjo)** is a visual analysis tool that displays session-based price ranges, anchored volume-weighted averages, daily pivot levels, and smoothed trend conditions on the chart. It highlights how price interacts with custom sessions, midpoint levels, and dynamic ranges, providing a structured visual layout that helps users observe market behavior over time without implying any form of prediction or trading signal.
## **CONCEPTS**
This indicator incorporates several widely used analytical concepts:
- **Session Ranges:** Identifies user-defined time windows and visually displays their high, low, and midpoint behavior throughout the session.
- **VWAP (Morning Session):** Shows volume-weighted average price calculations for a defined morning period, assisting with visual comparison between price and weighted averages.
- **Daily Pivot Levels:** Displays R1–R2, S1–S2, central pivot, and associated levels derived from prior daily price data.
- **Trend Smoothing:** Uses SuperSmoother filtering and an additional EMA to highlight whether the smoothed trend is rising or falling.
- **EMA + ATR Bands:** Plots a 20-period EMA with upper and lower ATR-derived bands to help visualize short-term price displacement relative to average true range.
All of these elements are presented solely for structural and comparative chart analysis.
## **FEATURES**
- **Custom Session Visualization:** Automatically draws session boxes, capturing the evolving high, low, and midpoint throughout the defined intraday window.
- **Dynamic Midline Calculation:** A midpoint line is updated continuously during the session to visually anchor price within the session’s range.
- **Morning Session VWAP:** Displays a dedicated VWAP line for the morning window with adjustable source and configuration options.
- **Daily Pivot Lines:** Automatically plots pivot, BC/TC, R1–R2, and S1–S2 levels with customizable colors, widths, and line styles.
- **Trend-Responsive Pivot Display:** Optionally toggles visibility of R2 or S2 depending on the direction of the smoothed trend.
- **EMA + ATR Zones:** Renders a 20-EMA and ATR-based support/resistance zone using filled regions for enhanced visual clarity.
- **Full Customization:** Multiple color, transparency, line-style, and display options allow users to adapt the presentation to their charting preferences.
- **Overlay Compatible:** Designed to work directly on price charts without obstructing candles or other overlays.
## **HOW TO USE**
Users can interact with the indicator entirely through the settings panel:
- Adjust session timings to match preferred market hours or custom internal zones.
- Enable or disable the display of pivot levels, VWAP, or the ATR/EMA zone.
- Customize colors and line styles to improve visibility according to the chart background or personal preference.
- Observe how price behaves relative to the session box, midpoint, VWAP, and pivot levels for contextual understanding.
- Utilize the smoothed trend condition to see when the indicator chooses to display certain pivot extensions.
These elements help users interpret chart structure, volatility, and intraday behavior in a visually organized manner.
## **CONCLUSION**
The ** Session Dynamics & Pivot Overlay (Arjo) ** indicator offers a consolidated view of session structure, pivot levels, VWAP, and smoothed trend conditions. Its purpose is to improve visual clarity and assist users in understanding market context without issuing directives or trade suggestions. It functions as an educational tool that enhances chart interpretation and supports structured analysis.
---
## **DISCLAIMER**
This indicator is for educational and visual analysis purposes only. It does not provide trading signals, financial advice, or guaranteed outcomes. Users should conduct their own research and consult a licensed financial professional when necessary. All trading decisions are solely the responsibility of the user.
Happy Trading (Arjo)
EMA Color Cross + Trend Bars + Background BY İNCEBACAK//@version=5
indicator("EMA Color Cross + Trend Bars + Background", overlay=true)
// EMA ayarları
shortEMA = input.int(9, "Short EMA")
longEMA = input.int(21, "Long EMA")
emaShort = ta.ema(close, shortEMA)
emaLong = ta.ema(close, longEMA)
// Trend yönü
trendUp = emaShort > emaLong
trendDown = emaShort < emaLong
// EMA çizgileri trend yönüne göre renk değiştirsin
plot(emaShort, color=trendUp ? color.green : color.red, linewidth=4)
plot(emaLong, color=trendUp ? color.green : color.red, linewidth=4)
// Barları trend yönüne göre renklendir
barcolor(trendUp ? color.green : color.red)
// Arka plan trend yönüne göre
bgcolor(trendUp ? color.new(color.green, 85) : color.new(color.red, 85))
// Kesişim sinyalleri ve oklar
longSignal = ta.crossover(emaShort, emaLong)
shortSignal = ta.crossunder(emaShort, emaLong)
plotshape(longSignal, title="Long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large)
plotshape(shortSignal, title="Short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large)
DrCID CLUB (HM SYSTEM)Blank line is RSI (9 days) line
Green line is EMA (3 days) line
Red line is WMA (21 days) line
when RSI EMA line above 50 & WMA is below both ,it is buy signal
when RSI EMA line below 50 & WMA is above both ,it is sell signal
DAILY AND WEEKLY MID LINESDAILY AND WEEKLY MID LINES INDICATOR
Description:
This indicator calculates and visualizes the dynamic midpoint (mid) of the current day and week in real-time. It provides traders with key reference levels based on developing price action.
Features:
Daily Mid Line:
Color: Orange
Thickness: 3 pixels
Style: Solid line
Updates: Automatically recalculates with each new candle
Calculation: Average of the day's highest high and lowest low from market open
Weekly Mid Line:
Color: Blue
Thickness: 3 pixels
Style: Dashed line
Updates: Continuously recalculates throughout the week
Calculation: Average of the week's highest high and lowest low from week start
How It Works:
At the start of each new trading day (00:00), the daily mid line resets and begins calculating from the first candle
At the start of each new trading week (typically Monday), the weekly mid line resets and begins fresh calculations
Both lines extend automatically to the right as new candles form
The lines are dynamic - they adjust as new highs/lows are made during the day/week
Trading Applications:
Support/Resistance Levels:
The mid lines act as natural equilibrium points where price may find temporary support or resistance
Daily mid can serve as intraday pivot, weekly mid as broader market balance point
Trend Analysis:
Price consistently above mid lines suggests bullish momentum
Price consistently below mid lines suggests bearish momentum
Relationship between daily and weekly mid lines shows multi-timeframe alignment
Entry/Exit Signals:
Price crossing above daily mid may indicate short-term bullish momentum
Price crossing below daily mid may indicate short-term bearish momentum
Weekly mid breaks can signal more significant trend changes
Market Context:
Distance between price and mid lines indicates market extremity
Steeper mid line slopes suggest stronger directional momentum
Flat mid lines suggest range-bound or consolidating markets
Confluence Trading:
Combine with other indicators (RSI, MACD, moving averages) for confirmation
Use as dynamic levels for stop-loss placement or take-profit targets
Best Practices:
More effective on higher timeframes (1H, 4H, Daily) for clearer signals
Works well in trending markets where mid lines act as moving support/resistance
Monitor for price rejection or acceptance at mid levels for trading decisions
Use in conjunction with volume analysis for confirmation
Psychological Significance:
Mid points often represent fair value areas where buyers and sellers find temporary equilibrium, making them natural decision points for market participants.
This indicator is particularly useful for day traders, swing traders, and position traders looking for dynamic, real-time reference points that adapt to current market conditions rather than relying on static historical levels.
SuperTrend Basit BY İNCEBACAK//@version=5
indicator("SuperTrend Basit v5", overlay=true)
// === Girdi ayarları ===
factor = input.float(3.0, "ATR Katsayısı")
atrPeriod = input.int(10, "ATR Periyodu")
// === Hesaplamalar ===
= ta.supertrend(factor, atrPeriod)
// === Çizim ===
bodyColor = direction == 1 ? color.new(color.lime, 0) : color.new(color.red, 0)
bgcolor(direction == 1 ? color.new(color.lime, 85) : color.new(color.red, 85))
plot(supertrend, color=bodyColor, linewidth=2, title="SuperTrend Çizgisi")
// === Al/Sat sinyali ===
buySignal = ta.crossover(close, supertrend)
sellSignal = ta.crossunder(close, supertrend)
plotshape(buySignal, title="AL", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small, text="AL")
plotshape(sellSignal, title="SAT", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="SAT")
VectorCoresAI SMA + Bollinger Fusion v1VectorCoresAI — SMA + Bollinger Fusion (Free)
A clean, modern visual tool combining four key SMAs with an adaptive Bollinger structure.
This script merges two of the most widely used charting concepts into one simple, readable view:
Included
✔ SMA 21
✔ SMA 50
✔ SMA 100
✔ SMA 200
✔ Bollinger Bands with adjustable length + multiplier
✔ Adaptive “Fusion Squeeze” shading to highlight compression phases
✔ Optional visibility toggles for each SMA
✔ Lightweight, non-intrusive overlay
What this indicator is designed for
This tool helps traders quickly understand:
Trend alignment using the 21/50/100/200 SMAs
Volatility conditions around the Bollinger midline
Price compression and expansion
Early awareness of breakout environments
Clean visual structure without clutter
Everything is intentionally simple and transparent.
No predictions, no signals, no trading advice — just clean chart structure.
Why this version is unique
Instead of using standard Bollinger visuals, this Fusion edition uses subtle adaptive shading to show when the bands contract.
This makes compression zones instantly visible without overwhelming the chart.
The SMAs are fixed to widely-used trend levels, giving consistent readings across all markets and timeframes.
Who this is for
Newer traders who want a clear introduction to SMAs + Bollinger Bands
Experienced traders who want a lightweight visual tool
Anyone building structure-based strategies
Users of the VectorCoresAI suite who want a simple companion tool
Notes
This indicator is part of the VectorCoresAI Free Tools collection.
All logic is open-source and educational only.
More tools coming soon.
NY 9:30-9:35 High/Low Range📘 Script Description
This script automatically identifies and plots the high and low of the 5-minute candle formed between 9:30 AM and 9:35 AM New York time, which corresponds to the opening of the U.S. equity market.
The goal is to provide a clear reference level for intraday volatility, directional bias, and breakout levels.
🔍 Function Overview
■ 1. Detects the 9:30–9:35 NY Time Candle
The script converts chart timestamps into New York session time and automatically captures the 5-minute candle that forms between:
NY 9:30:00 → NY 9:35:00
■ 2. Automatically Draws Horizontal Lines
After identifying the high and low of this candle, the script draws:
High line → Red
Low line → Blue
Lines start exactly at the 9:30 timestamp
Lines extend 3 hours into the future (until NY 12:30)
Lines do not extend beyond 3 hours (prevents unwanted diagonal lines or lines from previous days)
■ 3. Label Display at NY 20:00
The script places a label at New York 20:00, marking:
“9:30 High” for the high line
“9:30 Low” for the low line
This allows you to instantly identify the key reference levels at the end of the trading day.
■ 4. Auto-Removal at NY 20:00
At NY 20:00, both the lines and the labels are automatically deleted.
No old lines remain on the chart, ensuring clarity and accuracy for each new trading day.
🎯 Purpose and Use Cases
This script is highly useful for:
Determining intraday direction after the NY open
Tracking volatility spikes at the U.S. equity market open
Identifying breakout levels
Using high/low as dynamic support and resistance throughout the day
Understanding market context during economic events or high-impact sessions
The 9:30–9:35 range is one of the most watched price zones in global markets, often serving as the day’s initial liquidity sweep.
📝 Key Features
Accurate New York time conversion
Clean horizontal lines (no previous-day diagonal lines)
Labels positioned clearly at NY 20:00
No unnecessary visuals—simple and effective
Lightweight script with minimal chart impact
ZY Target TerminatorThe indicator follows trends and generates short and long signals. Furthermore, when it generates a signal, it displays the maximum profit margins for the last three signals it generated in the same direction. It also clearly indicates the number of candles for which no signal has been generated for the pair. Avoid trading pairs whose profit margins do not align with your trading strategy.
RenkoFlowRenkoFlow – Real Renko, Clean & Color-Coded
Track price like a pro: See bullish and bearish blocks instantly.
Works for any asset: Low-priced coins? No problem.
Alerts ready: Get notified on new Renko blocks.
Fully customizable: Brick size, line color, and width.
Clean & intuitive: Perfect for fast decision-making.
Veil Trend# Veil Trend (VTrend)
**Veil Trend** is a minimalist trend-following and volatility framework built around a triple-EMA structure and adaptive price bands. It is designed to clearly define trend direction, dynamic support and resistance, and momentum expansion—without clutter.
---
## 🔹 Core Components
### Main EMA (Slow)
Acts as the primary trend axis.
- Price **above** the main EMA → bullish bias
- Price **below** the main EMA → bearish bias
### Medium EMA
Tracks intermediate momentum and trend strength, helping visualize pullbacks within the broader trend.
### Fast EMA (Optional)
Provides short-term momentum sensitivity and early trend shifts.
Hidden by default to maintain a clean chart.
---
## 🔹 Adaptive Veil Bands
Veil Trend wraps the main EMA with adaptive volatility bands (“the veil”) to define normal price movement versus expansion.
- **ATR-Based Bands (Default)**
Bands automatically expand and contract with volatility, adapting to changing market conditions.
- **Percentage-Based Bands (Optional)**
Bands are offset by a fixed percentage from the main EMA, useful for consistent scaling across instruments.
The shaded area between bands represents the **healthy trend zone**, where pullbacks and consolidations typically occur.
---
## 🔹 Signals & Interpretation
*(Disabled by default for a clean visual experience)*
### Band Breaks
- **Break above upper band** → strong bullish momentum
- **Break below lower band** → strong bearish momentum
### Band Bounces
- **Bounce from lower band** → potential bullish continuation
- **Rejection at upper band** → potential bearish continuation
Alerts are included for all band events and can be enabled as needed.
---
## 🔹 Visual Design Philosophy
- Clean, layered EMA structure (“noodles”)
- Subtle volatility bands with optional fill
- Optional status table for quick market context
- Minimalist by default, information-rich when enabled
---
## 🔹 Best Use Cases
- Identifying trend direction and bias
- Trading pullbacks within established trends
- Spotting volatility expansion and breakout conditions
- Works on **stocks, crypto, forex, and indices**
- Effective across all timeframes
---
**Veil Trend doesn’t predict — it reveals.**
FX Fresh Momentum FX Fresh Momentum calculates the true strength and session momentum of the 8 major currencies using a 7-pair average and session resets (Tokyo, London, New York).
Each session opens with a zero-base, allowing you to see only the fresh momentum.
Includes pair-averaged strength, ×100 momentum scaling, vertical session dividers, and institutional color coding.
Ideal for FX day traders who want cleaner session-based momentum signals
Auto Reaction Zones (XAUUSD)
✅ Auto Reaction Zones (XAUUSD) OANDA:XAUUSD
Auto Reaction Zones (XAUUSD) is an advanced supply & demand mapping tool designed to detect high-probability reaction zones using price impulses, volatility filters, market structure, and adaptive confirmation logic.
This indicator automatically identifies strong bullish and bearish reaction bases formed before impulsive movements, then plots dynamic demand and supply zones that help traders anticipate future reactions, reversals, or continuation points.
🔍 Core Features
▪ Automatic Supply & Demand Zone Detection
Identifies zones based on structural breakout impulses using ATR-based thresholds, volume confirmation, and validated base levels.
▪ Adaptive Confirmation Distance (ADR-Based)
The zone becomes active/confirmed only after price moves a configurable number of points.
A unique 3-case ADR logic adjusts the required confirmation distance based on current market volatility:
Case 1: Low ADR → smaller confirmation required
Case 2: Moderate ADR → medium confirmation
Case 3: High ADR → higher confirmation (more filtering)
This ensures stronger zones in high-volatility conditions (e.g., XAUUSD).
▪ Smart Zone Management
Automatic extension until tested or consumed
Optional lifetime limits (bars or days)
Auto-delete unconfirmed zones if price violates them too early
Hide tested or consumed zones for a cleaner chart
▪ Adjustable Zone Size Filtering
Option to enforce a minimum or maximum zone size, useful for cleaning noise and ultra-small reaction levels.
▪ ADR-Based Zone Spacing Filter
Prevents the creation of zones that are too close to each other.
Different spacing rules for same-direction and opposite-direction zones.
▪ Multi-Timeframe Mode
Overlay zones detected from higher timeframes directly onto your current chart.
▪ Directional Bias (EMA Filter)
Optionally restrict long/short zones based on EMA trend alignment.
▪ Real-Time Alerts
Receive alerts when price touches any active zone or only fresh zones.
🎯 Why This Indicator Is Different
Unlike typical supply/demand indicators that print every swing,
Auto Reaction Zones focuses on:
Only strong reaction bases
Only valid impulse-generated levels
Only zones confirmed by price movement
Only zones that respect volatility and minimum spacing rules
This results in cleaner charting, fewer false zones, and far more reliable reaction levels, especially on volatile instruments like XAUUSD.
⚠️ Disclaimer
This tool is not financial advice. Always combine zone analysis with broader market context and risk management.






















