Institutional Activity DetectorInstitutional Activity Detector - Complete Tutorial
Table of Contents
Installation
Understanding the Indicator
Signal Interpretation
Settings Configuration
Trading Strategies
Best Practices
Common Mistakes to Avoid
1. Installation {#installation}
Step-by-Step Setup:
Step 1: Access TradingView
Go to TradingView.com
Log in to your account (free account works fine)
Step 2: Open Pine Editor
Click on "Pine Editor" at the bottom of the chart
If you don't see it, go to the top menu and select "Pine Editor"
Step 3: Add the Script
Click "New" to create a new indicator
Delete any default code
Copy the entire Institutional Activity Detector code
Paste it into the editor
Step 4: Save and Apply
Click "Save" (give it a name like "Inst Detector")
Click "Add to Chart"
The indicator will now appear on your chart
2. Understanding the Indicator {#understanding}
What It Detects:
This indicator identifies institutional traders (banks, hedge funds, market makers) by analyzing:
Volume Analysis
Detects unusual volume spikes that indicate large players entering
Compares current volume to 20-period average
Institutional trades create volume 2-5x normal levels
Order Flow
Delta: Difference between buying and selling volume
Positive delta = More buying pressure
Negative delta = More selling pressure
Institutions leave "footprints" in order flow
Price Action Patterns
Bullish Rejection Wicks:
| <- Small upper wick
|
███ <- Small body
███
|
|
| <- Large lower wick (rejection)
Indicates institutions bought aggressively at lower prices
Bearish Rejection Wicks:
|
|
| <- Large upper wick (rejection)
|
███ <- Small body
███
| <- Small lower wick
Indicates institutions sold aggressively at higher prices
Liquidity Grabs
Institutions often:
Push price above resistance or below support
Trigger stop losses (grab liquidity)
Reverse direction and trade the other way
Dark Pool Activity
Large block trades executed off-exchange:
High volume with minimal price movement
Indicates institutional accumulation/distribution without moving price
3. Signal Interpretation {#signals}
Signal Types:
🟢 INSTITUTIONAL BUY Signal
Appears as green triangle below candle with strength number (2-5)
What it means:
Institutions are actively accumulating (buying)
Higher strength = More confirmation factors
Strength Levels:
2-3: Moderate confidence - Wait for confirmation
4: High confidence - Strong institutional interest
5: Maximum confidence - Multiple factors aligned
🔴 INSTITUTIONAL SELL Signal
Appears as red triangle above candle with strength number (2-5)
What it means:
Institutions are actively distributing (selling)
Higher strength = More confirmation factors
🟠 Dark Pool (DP) Marker
Small orange diamond
What it means:
Large block trade executed
Accumulation/distribution happening quietly
Often precedes significant moves
Liquidity Zones
Red boxes above price = Resistance/sell liquidity
Green boxes below price = Support/buy liquidity
Institutions target these zones to trigger stops
4. Settings Configuration {#settings}
Recommended Settings by Asset Type:
For Stocks (SPY, AAPL, TSLA):
Volume Spike Multiplier: 2.0
Volume Average Period: 20
Delta Threshold: 70%
Minimum Signal Strength: 3
Timeframe: 5m, 15m, 1H
For Forex (EUR/USD, GBP/USD):
Volume Spike Multiplier: 1.5
Volume Average Period: 30
Delta Threshold: 65%
Minimum Signal Strength: 3
Timeframe: 15m, 1H, 4H
For Crypto (BTC, ETH):
Volume Spike Multiplier: 2.5
Volume Average Period: 20
Delta Threshold: 70%
Minimum Signal Strength: 4
Timeframe: 15m, 1H, 4H
For Futures (ES, NQ):
Volume Spike Multiplier: 2.0
Volume Average Period: 20
Delta Threshold: 75%
Minimum Signal Strength: 3
Timeframe: 5m, 15m, 30m
Parameter Explanations:
Volume Spike Multiplier (1.0 - 10.0)
Lower = More sensitive (more signals, some false)
Higher = Less sensitive (fewer signals, more reliable)
Start with 2.0 and adjust based on your asset's volatility
Delta Threshold % (50 - 100)
Measures buying vs selling pressure
70% = Strong institutional bias required
Lower for ranging markets, higher for trending
Minimum Signal Strength (2 - 5)
Number of factors that must align for a signal
2 = Very sensitive (many signals)
5 = Very conservative (rare signals)
Recommended: 3-4 for balance
5. Trading Strategies {#strategies}
Strategy 1: Liquidity Grab Reversal
Setup:
Price approaches a liquidity zone (green/red box)
Price penetrates the zone briefly
Institutional BUY/SELL signal appears
Price reverses away from the zone
Entry:
Enter on the signal candle close
Or wait for next candle confirmation
Stop Loss:
Below the liquidity grab low (for buys)
Above the liquidity grab high (for sells)
Take Profit:
2:1 or 3:1 risk/reward ratio
Or next opposing liquidity zone
Example:
Price drops below support → Triggers stops →
Institutional BUY signal (4-5 strength) →
Enter LONG → Price rallies
Strategy 2: Trend Continuation
Setup:
Identify the trend (higher highs/higher lows for uptrend)
Wait for pullback to support in uptrend
Institutional BUY signal appears during pullback
Confirms institutions are adding to positions
Entry:
Enter on signal with strength ≥ 4
Or next candle after signal
Stop Loss:
Below the pullback low + small buffer
Take Profit:
Previous swing high
Or trailing stop using ATR
Strategy 3: Dark Pool Accumulation
Setup:
Dark Pool (DP) markers appear multiple times
Price consolidates in tight range
Institutional BUY signal with high strength appears
Breakout occurs
Entry:
Enter on breakout candle after signal
Or on retest of breakout level
Stop Loss:
Below consolidation range
Take Profit:
Measured move (height of consolidation projected)
Strategy 4: Divergence Play
Setup:
Price makes lower low
MFI/RSI makes higher low (bullish divergence)
Institutional BUY signal appears
Volume confirms with spike
Entry:
Enter on signal candle or next
Stop Loss:
Below the divergence low
Take Profit:
Previous swing high or resistance
6. Best Practices {#best-practices}
✅ DO's:
1. Use Multiple Timeframes
Check higher timeframe for trend direction
Trade signals that align with higher timeframe
Example: 15m signals in direction of 1H trend
2. Combine with Key Levels
Support/resistance
Supply/demand zones
Previous day high/low
Round numbers (psychological levels)
3. Wait for Confirmation
Don't rush into trades
Let the signal candle close
Watch next candle for follow-through
4. Check the Metrics Table
Look at Relative Volume (should be >2.0)
Check Delta % (should be strong positive/negative)
Verify Order Flow aligns with signal
5. Consider Market Context
News events can override signals
Low liquidity times (lunch, overnight) less reliable
Major economic releases need caution
6. Paper Trade First
Test the indicator for 2-4 weeks
Learn how it behaves on your chosen assets
Develop confidence before using real money
Best Times to Trade:
Stock Market Hours:
9:30-11:30 AM EST (high volume, strong moves)
2:00-4:00 PM EST (institutional positioning)
Avoid: 11:30 AM-2:00 PM (lunch, low volume)
Forex:
London Open: 3:00-6:00 AM EST
New York Open: 8:00-11:00 AM EST
London/NY Overlap: 8:00 AM-12:00 PM EST
Crypto:
24/7 market, but highest volume during US/European hours
Watch for weekend low liquidity
7. Common Mistakes to Avoid {#mistakes}
❌ DON'T:
1. Trade Every Signal
Not all signals are equal
Focus on strength 4-5 signals
Wait for optimal setups
2. Ignore Market Structure
Don't buy into strong downtrends (catch falling knife)
Don't sell into strong uptrends (fight the tape)
Respect major support/resistance
3. Use Too Small Timeframes
1m and 2m charts are too noisy
Minimum recommended: 5m for scalping
Better: 15m, 30m, 1H for reliability
4. Overtrade
Quality over quantity
2-5 good trades per day is excellent
Forcing trades leads to losses
5. Ignore Risk Management
Always use stop losses
Risk only 1-2% per trade
Don't revenge trade after losses
6. Trade During Low Volume
Signals less reliable with low volume
Check Relative Volume metric (should be >1.5)
Avoid pre-market/after-hours for stocks
7. Misread Liquidity Grabs
Not every wick is a liquidity grab
Need volume confirmation
Must have institutional signal
Advanced Tips:
Filtering False Signals:
Use Signal Strength Filter:
Minimum strength 3 = Balanced
Minimum strength 4 = Conservative (recommended)
Minimum strength 5 = Ultra conservative
Confluence Checklist:
Signal strength ≥ 4
Relative volume > 2.0
At key support/resistance
Aligns with higher timeframe trend
Delta % strongly positive/negative
Clean price action setup
If 4+ boxes checked = High probability trade
Setting Up Alerts:
Click the three dots on the indicator
Select "Create Alert"
Choose condition:
"Institutional Buy Signal"
"Institutional Sell Signal"
"Dark Pool Activity"
Set up notification (email, SMS, app)
Save alert
Alert Strategy:
Set minimum strength to 4 for fewer, better alerts
Use for assets you can't watch constantly
Don't rely solely on alerts - check chart context
Practice Exercise:
Week 1-2: Observation
Add indicator to your favorite assets
Watch how signals develop
Note which ones lead to profitable moves
Don't trade yet - just observe
Week 3-4: Paper Trading
Use TradingView's paper trading
Trade only strength 4-5 signals
Record results in a journal
Note: entry, exit, profit/loss, what worked/didn't
Week 5+: Small Live Positions
Start with smallest position size
Trade only your best setups
Gradually increase size as you gain confidence
Keep detailed journal
Quick Reference Card:
Signal Quality Ranking:
🔥 Best Setups (Take These):
Strength 5 + Liquidity grab + Key level
Strength 4-5 + Volume >3.0 + Trend alignment
Dark Pool markers + Strength 4+ signal
✅ Good Setups:
Strength 4 at support/resistance
Strength 3-4 with strong delta
Liquidity grab + Strength 3+
⚠️ Caution (Wait for More):
Strength 2-3 in middle of nowhere
Against higher timeframe trend
Low volume (Rel Vol <1.5)
❌ Avoid:
Strength 2 only
During major news
Low liquidity hours
Against strong trend
Troubleshooting:
"Too many signals"
→ Increase Minimum Signal Strength to 4
→ Increase Volume Spike Multiplier to 2.5-3.0
"Too few signals"
→ Decrease Minimum Signal Strength to 2-3
→ Decrease Volume Spike Multiplier to 1.5
"Signals not working"
→ Check if you're trading during low volume hours
→ Verify you're using recommended timeframes
→ Make sure signals align with market structure
"Can't see liquidity zones"
→ Enable "Show Liquidity Zones" in settings
→ Adjust Swing Detection Length (try 7-15)
Resources for Further Learning:
Concepts to Study:
Order Flow Trading
Market Profile / Volume Profile
Smart Money Concepts (SMC)
Liquidity Sweeps and Stop Hunts
Institutional Order Flow
Wyckoff Method
Volume Spread Analysis (VSA)
Recommended Practice:
Study past signals on chart
Replay market using TradingView's bar replay feature
Join trading communities to share setups
Keep a detailed trading journal
Final Thoughts:
This indicator is a tool, not a crystal ball. It identifies high-probability setups where institutions are active, but still requires:
Proper risk management
Market context understanding
Patience and discipline
Continuous learning
Success Formula:
Right Tool + Proper Training + Risk Management + Discipline = Consistent Profits
Start slow, master the basics, and gradually increase complexity as you gain experience.
Good luck and trade smart! 📊📈
"12月4号是什么星座"に関するスクリプトを検索
SequencerLibraryLibrary "SequencerLibrary"
SequencerLibrary v1 is a Pine Script™ library for identifying, tracking, and visualizing
sequential bullish and bearish patterns on price charts.
It provides a complete framework for building sequence-based trading systems, including:
• Automatic detection and counting of setup and countdown phases.
• Real-time tracking of completion states, perfected setups, and exhaustion signals.
• Dynamic support and resistance thresholds derived from recent price structure.
• Customizable visual highlighting for both setup and countdown sequences.
method doSequence(s, src, config, condition)
Updates the sequence state based on the source value, and user configuration.
Namespace types: Sequence
Parameters:
s (Sequence) : The sequence object containing bullish and bearish setups.
src (float) : The source value (e.g., close price) used for evaluating sequence conditions.
config (SequenceInputs) : The user-defined settings for sequence analysis.
condition (bool) : When true, executes the sequence logic.
Returns:
highlight(s, css, condition)
Highlights the bullish and bearish sequence setups and countdowns on the chart.
Parameters:
s (Sequence) : The sequence object containing bullish and bearish sequence states.
css (SequenceCSS) : The styling configuration for customizing label appearances.
condition (bool) : When true, the function creates and displays labels for setups and countdowns.
Returns:
SequenceState
A type representing the configuration and state of a sequence setup.
Fields:
setup (series int) : Current count of the setup phase (e.g., how many bars have met the setup criteria).
countdown (series int) : Current count of the countdown phase (e.g., bars meeting countdown criteria).
threshold (series float) : The price threshold level used as support/resistance for the sequence.
priceWhenCompleted (series float) : The closing price when the setup or countdown phase is completed.
indicatorWhenCompleted (series float) : The indicator value when the setup or countdown phase is completed.
setupCompleted (series bool) : Indicates if the setup phase has been completed (i.e., reached the required count).
countdownCompleted (series bool) : Indicates if the countdown phase has been completed (i.e., reached exhaustion).
perfected (series bool) : Indicates if the setup meets the "perfected" condition (e.g., aligns with strict criteria).
highlightSetup (series bool) : Determines whether the setup phase should be visually highlighted on the chart.
highlightCountdown (series bool) : Determines whether the countdown phase should be visually highlighted on the chart.
Sequence
A type containing bullish and bearish sequence setups.
Fields:
bullish (SequenceState) : Configuration and state for bullish sequences.
bearish (SequenceState) : Configuration and state for bearish sequences.
SequenceInputs
A type for user-configurable input settings for sequence-based analysis.
Fields:
showSetup (series bool) : Enables or disables the display of setup sequences.
showCountdown (series bool) : Enables or disables the display of countdown sequences.
setupFilter (series string) : A comma‐separated string containing setup sequence counts to be highlighted (e.g., "1,2,3,4,5,6,7,8,9").
countdownFilter (series string) : A comma‐separated string containing countdown sequence counts to be highlighted (e.g., "1,2,3,4,5,6,7,8,9,10,11,12,13").
lookbackSetup (series int) : Defines the lookback period for evaluating setup conditions (default: 4 bars).
lookbackCountdown (series int) : Defines the lookback period for evaluating countdown conditions (default: 2 bars).
lookbackSetupPerfected (series int) : Defines the lookback period to determine a perfected setup condition (default: 6 bars).
maxSetup (series int) : The maximum count required to complete a setup phase (default: 9).
maxCountdown (series int) : The maximum count required to complete a countdown phase (default: 13).
SequenceCSS
A type defining the visual styling options for sequence labels.
Fields:
bullish (series color) : Color used for bullish sequence labels.
bearish (series color) : Color used for bearish sequence labels.
imperfect (series color) : Color used for labels representing imperfect sequences.
SPX Option Wedge Breakout v1.5a (Dual + Micro)
# SPX Option Wedge Breakout (Dual + Micro) — by Miguel Licero
What it does
This indicator is designed to catch fast, 3–5-bar momentum bursts in **SPX options (OPRA)** or the underlying (SPX/ES). It combines two detection engines:
1. Wedge Breakout Engine
Locates *falling-wedge* compression using recent swing pivots and verifies statistical tightness (channel width vs. ATR).
Confirms breakout when price closes above the wedge’s upper guide **and** above **EMA-21**, with optional **VWAP** confluence and volume expansion.
2. Micro-Breakout Engine (sub-VWAP thrusts)
Triggers when **EMA-9 crosses above EMA-21** and price **breaks the prior N-bar high (BOS)** with volume expansion.
Specifically handles rallies that start **below VWAP**, requiring sufficient “room to VWAP” measured as a fraction of ATR.
This indicador provides a state machine overlay and a dashboard . Consider the following states:
IDLE – no setup
WATCH – valid compression + preconditions (OBV positive, RSI build zone, tightness)
TRIGGER-A – breakout *above VWAP* (Strict mode)
TRIGGER-B/Micro – Under VWAP thrust with room to VWAP or Micro-Breakout (Flexible mode - this is the most common case for SPX options)
Why I believe it works
In my observation i've found short, violent option moves often occur when:
(1) liquidity compresses then releases (wedge), or
(2) micro momentum flips under VWAP and snaps to VWAP/EMA-50 (delta + IV expansion).
The indicator surfaces these two structures with clear, tradeable signals.
---
Inputs (key parameters)
EMAs : 9 / 21 / 50 / 200 (trend/micro-momentum and magnets/targets)
VWAP: optional intraday confluence and distance metric
Wedge: pivot widths (`left/right`), `tightK` (channel width vs ATR), `atrLen`
Volume/OBV/RSI: `volLen`, `volBoost` (volume expansion factor), `obvLen` (slope via linreg), `rsiLen`
VWAP Mode:
Strict – breakout must be above VWAP (TRIGGER-A)
Flexible – allows under VWAP breakouts if there’s room to VWAP (`minVWAPDistATR`) or a Micro-Breakout
Micro-Breakout: `useMicro`, `bosLen` (BOS lookback), `minRSIMicro`
Impulse Bars Target: time-based exit helper (e.g., like 3 or 5 candles)
---
Plots & UI
Overlay: EMA-9/21/50/200, VWAP, wedge guides, **TRIGGER** marker
Background color: state shading (IDLE / WATCH / TRIGGER)
Dashboard (table, top-right): State, VWAP mode, distances to VWAP/EMA-50/EMA-200, EMA-stack (9 vs 21), OBV slope sign, RSI zone, Tightness flag, Impulse counter, Micro status (9>21 / +BOS)
---
Alerts
Consider these status when you see them:
WATCH (there is wedge ready) – compression + preconditions met (prepare the order)
TRIGGER-A (price going above VWAP) – Strict breakout confirmation
TRIGGER-B/Micro – Flexible breakout (price under VWAP with room to go up to VWAP, EMA 200, -OB, resistance line, etc) or Micro-Breakout
---
Recommended Use
Timeframes: 1-minute for execution, 5-minute for context.
Symbols : OPRA SPX options (0-DTE/1-DTE) or SPX/ES for confirmation.
Sessions: Intraday with visible session (VWAP requires intraday data).
Suggested presets (for options):
`VWAP Mode = Flexible`
`minVWAPDistATR = 0.7` (room to VWAP)
`tightK = 1.0–1.2` (compression sensitivity)
`volBoost = 1.2` (raise to 1.3–1.4 if noisy)
`obvLen = 14–20` (14 = more reactive)
`Impulse Bars = 5`
High-probability windows (ET): 11:45–12:45, 13:45–15:15, 15:00–15:45.
---
Notes & Limitations
Designed to surface setups , not to replace discretion. Combine with your risk plan.
VWAP “room” is statistical; on news/latency spikes, distances may be crossed in one bar.
Works on underlyings too, but option % moves are what this study targets.
It's not guaranteed to work 100% of the times. Trade responsibly.
---
Gho$t EMA CloudSimple 9/14EMA With Cloud system. Ghost EMA Cloud is a clean, minimal trend-tracking indicator designed to visualize short-term momentum shifts. It plots the 9-EMA (gray) and 14-EMA (white) while shading the area between them with dynamic cloud colors — green when momentum turns bullish, red when it weakens. The smooth cloud instantly highlights crossovers that often precede breakout or reversal moves. Optional 5-EMA and 12-EMA layers can be toggled on for extra precision without cluttering the chart. Ideal for intraday and swing traders, Ghost EMA Cloud helps you confirm entries, spot trend continuations, and time exits with clear visual simplicity and speed.
VWAP Deviation Scalper MTFVWAP Deviation Scalper MTF
A multi-timeframe VWAP scalping indicator that combines Fibonacci deviation zones with trend filtering for cleaner entry signals.
What it does:
Uses anchored VWAP with customizable Fibonacci extensions (default 1.618 and 2.618) to identify reversal zones
Filters trades using a weekly VWAP - only shows long signals above the weekly trend and shorts below it
Colors candles green/red on signal bars for instant visual confirmation
Highlights the channel between your main VWAP and weekly filter with subtle gradient fills
Default settings:
12-hour VWAP anchor (adjustable to any timeframe)
Weekly VWAP trend filter (can be toggled off)
Minimum deviation threshold to filter out weak signals
Clean visual design with optional Fib extensions
Best for:
Scalpers and day traders who want high-probability entries aligned with the higher timeframe trend. Works well on crypto and liquid markets on 5m-1h charts.
The indicator includes alerts for both long and short entries, plus optional exit signals. All colors and settings are fully customizable.
Aggression Bulbs v3.1 (Sessions + Bias, fixed)EYLONAggression Bulbs v3.2 (Sessions + Bias + Volume Surge)
This indicator highlights aggressive buy and sell activity during the London and New York sessions, using volume spikes and candle body dominance to detect institutional momentum.
⚙️ Main Logic
Compares each candle’s volume vs average volume (Volume Surge).
Checks body size vs full candle range to detect strong directional moves.
Uses an EMA bias filter to align signals with the current trend.
Displays green bubbles for aggressive buyers and red bubbles for aggressive sellers.
🕐 Sessions
London: 08:00–12:59 UTC+1
New York: 14:00–18:59 UTC+1
(Backgrounds: Yellow = London, Orange = New York)
📊 How to Read
🟢 Green bubble below bar → Aggressive BUY candle (strong demand).
🔴 Red bubble above bar → Aggressive SELL candle (strong supply).
Bubble size = relative strength (volume × candle dominance).
Use in confluence with key POI zones, volume profile, or delta clusters.
⚠️ Tips
Use on 1m–15m charts for scalping or intraday analysis.
Combine with your session bias or FVG zones for higher accuracy.
Set alerts when score ≥ threshold to catch early momentum.
First Passage Time - Distribution AnalysisThe First Passage Time (FPT) Distribution Analysis indicator is a sophisticated probabilistic tool that answers one of the most critical questions in trading: "How long will it take for price to reach my target, and what are the odds of getting there first?"
Unlike traditional technical indicators that focus on what might happen, this indicator tells you when it's likely to happen.
Mathematical Foundation: First Passage Time Theory
What is First Passage Time?
First Passage Time (FPT) is a concept in stochastic processes that measures the time it takes for a random process to reach a specific threshold for the first time. Originally developed in physics and mathematics, FPT has applications in:
Quantitative Finance: Option pricing, risk management, and algorithmic trading
Neuroscience: Modeling neural firing patterns
Biology: Population dynamics and disease spread
Engineering: Reliability analysis and failure prediction
The Mathematics Behind It
This indicator uses Geometric Brownian Motion (GBM), the same stochastic model used in the Black-Scholes option pricing formula:
dS = μS dt + σS dW
Where:
S = Asset price
μ = Drift (trend component)
σ = Volatility (uncertainty component)
dW = Wiener process (random walk)
Through Monte Carlo simulation, the indicator runs 1,000+ price path simulations to statistically determine:
When each threshold (+X% or -X%) is likely to be hit
Which threshold is hit first (directional bias)
How often each scenario occurs (probability distribution)
🎯 How This Indicator Works
Core Algorithm Workflow:
Calculate Historical Statistics
Measures recent price volatility (standard deviation of log returns)
Calculates drift (average directional movement)
Annualizes these metrics for meaningful comparison
Run Monte Carlo Simulations
Generates 1,000+ random price paths based on historical behavior
Tracks when each path hits the upside (+X%) or downside (-X%) threshold
Records which threshold was hit first in each simulation
Aggregate Statistical Results
Calculates percentile distributions (10th, 25th, 50th, 75th, 90th)
Computes "first hit" probabilities (upside vs downside)
Determines average and median time-to-target
Visual Representation
Displays thresholds as horizontal lines
Shows gradient risk zones (purple-to-blue)
Provides comprehensive statistics table
📈 Use Cases
1. Options Trading
Selling Options: Determine if your strike price is likely to be hit before expiration
Buying Options: Estimate probability of reaching profit targets within your time window
Time Decay Management: Compare expected time-to-target vs theta decay
Example: You're considering selling a 30-day call option 5% out of the money. The indicator shows there's a 72% chance price hits +5% within 12 days. This tells you the trade has high assignment risk.
2. Swing Trading
Entry Timing: Wait for higher probability setups when directional bias is strong
Target Setting: Use median time-to-target to set realistic profit expectations
Stop Loss Placement: Understand probability of hitting your stop before target
Example: The indicator shows 85% upside probability with median time of 3.2 days. You can confidently enter long positions with appropriate position sizing.
3. Risk Management
Position Sizing: Larger positions when probability heavily favors one direction
Portfolio Allocation: Reduce exposure when probabilities are near 50/50 (high uncertainty)
Hedge Timing: Know when to add protective positions based on downside probability
Example: Indicator shows 55% upside vs 45% downside—nearly neutral. This signals high uncertainty, suggesting reduced position size or wait for better setup.
4. Market Regime Detection
Trending Markets: High directional bias (70%+ one direction)
Range-bound Markets: Balanced probabilities (45-55% both directions)
Volatility Regimes: Compare actual vs theoretical minimum time
Example: Consistent 90%+ bullish bias across multiple timeframes confirms strong uptrend—stay long and avoid counter-trend trades.
First Hit Rate (Most Important!)
Shows which threshold is likely to be hit FIRST:
Upside %: Probability of hitting upside target before downside
Downside %: Probability of hitting downside target before upside
These always sum to 100%
⚠️ Warning: If you see "Low Hit Rate" warning, increase this parameter!
Advanced Parameters
Drift Mode
Allows you to explore different scenarios:
Historical: Uses actual recent trend (default—most realistic)
Zero (Neutral): Assumes no trend, only volatility (symmetric probabilities)
50% Reduced: Dampens trend effect (conservative scenario)
Use Case: Switch to "Zero (Neutral)" to see what happens in a pure volatility environment, useful for range-bound markets.
Distribution Type
Percentile: Shows 10%, 25%, 50%, 75%, 90% levels (recommended for most users)
Sigma: Shows standard deviation levels (1σ, 2σ)—useful for statistical analysis
⚠️ Important Limitations & Best Practices
Limitations
Assumes GBM: Real markets have fat tails, jumps, and regime changes not captured by GBM
Historical Parameters: Uses recent volatility/drift—may not predict regime shifts
No Fundamental Events: Cannot predict earnings, news, or macro shocks
Computational: Runs only on last bar—doesn't give historical signals
Remember: Probabilities are not certainties. Use this indicator as part of a comprehensive trading plan with proper risk management.
Created by: Henrique Centieiro. feedback is more than welcome!
Channels by TradingConTotoThis indicator plots clear and minimalistic High (H) and Low (L) pivot points only within the selected trading session (e.g., 10:00–12:00).
During the active session, the background is shaded for easy visual reference, and pivot labels alternate automatically — meaning no consecutive H or L points appear in a row. This makes it simple to identify real swing changes within a specific session.
⚙️ Features
Detects and labels pivots only during the chosen time range.
Alternating logic prevents consecutive highs or lows (H → L → H → L).
Clean session background highlight for visual clarity.
Fully customizable parameters (session time, sensitivity, colors, etc.).
Ideal for intraday traders, scalpers, and structure-based strategies.
💡 Suggested Use
Perfect for traders who focus on specific market sessions (e.g., New York, London, or custom hours).
The alternating pivot logic helps visualize market swings and structural shifts without visual clutter, making it an excellent companion for price action analysis.
Multi-Timeframe MACD with Color Mix (Nikko)Multi-Timeframe MACD with Color Mix (Nikko) Indicator
This documentation explains the benefits of the "Multi-Timeframe MACD with Color Mix (Nikko)" indicator for traders and provides easy-to-follow steps on how to use it. Written as of 05:06 AM +07 on Saturday, October 04, 2025, this guide focuses on helping you, as a trader, get the most out of this tool with clear, practical advice before diving into the technical details.
Benefits for Traders
1. Multi-Timeframe Insight
This indicator lets you see momentum trends across 15-minute, 1-hour, 1-day, and 1-week timeframes all on one chart. This big-picture view helps you catch both quick market moves and long-term trends without flipping between charts, saving you time and giving you a fuller understanding of the market.
2. Visual Momentum Representation
The background changes from red to green based on short-term (15m) momentum, giving you a quick, easy-to-see signal—red means bearish (prices might drop), and green means bullish (prices might rise). The histogram uses a mix of red, green, and blue colors to show the combined strength of the 1-hour, 1-day, and 1-week timeframes, helping you spot strong trends at a glance (e.g., a bright mix for strong momentum, darker for weaker).
3. Enhanced Decision-Making
The background and histogram colors work together to confirm trends across different timeframes, making it less likely you’ll act on a false signal. This helps you feel more confident when deciding when to buy, sell, or hold.
4. Proactive Alert System
You can set alerts to notify you when the percentage of bullish timeframes hits your chosen levels (e.g., below 10% for bearish, above 90% for bullish). This keeps you in the loop on big momentum shifts without needing to watch the chart all day—perfect for when you’re busy.
5. Flexibility and Efficiency
You can turn timeframes on or off, adjust settings like speed of the moving averages, and tweak transparency to fit your trading style—whether you’re a fast scalper or a patient swing trader. Everything is shown on one chart, saving you effort, and the colors make it simple to read, even if you’re new to trading.
How to Use It
Getting Started
Add the Indicator: Load the "Multi-Timeframe MACD with Color Mix (Nikko)" onto your TradingView chart using the Pine Script editor or indicator library.
Pick Your Timeframes: Turn on the timeframes that match your trading—use 15m and 1h for quick trades, or 1d and 1w for longer holds—using the enable_15m, enable_1h, enable_1d, enable_1w, and enable_background options.
Reading the Colors
Background Gradient: Watch for red to signal bearish 15m momentum and green for bullish momentum. Adjust the Background_transparency (default 75%, or 25% opacity) if the chart feels too busy—try lowering it to 50 for clearer candlesticks in fast markets.
Histogram and EMA Colors:
The histogram and its Exponential Moving Average (EMA) line show a mix of red (1-week), green (1-day), and blue (1-hour) based on how strong the momentum is in each timeframe.
Brighter colors mean stronger momentum—white (all bright) shows all timeframes are pushing up hard, while darker shades (like gray or black) mean weaker or mixed momentum.
Turn off a timeframe (e.g., enable_1h = false) to see how it changes the color mix and focus on what matters to you.
Setting Alerts
Set Your Levels: Choose a threshold_low (default 10%) and threshold_high (default 90%) based on your comfort zone or past market patterns to catch big turns.
Get Notifications: Use TradingView alerts to get pings when the market hits your set levels, so you can act without staring at the screen.
Practical Tips
Pair with Other Tools: Use it with support/resistance lines or the RSI to double-check your moves and build a solid plan.
Tweak Settings: Adjust fast_length, slow_length, and signal_smoothing to match your asset’s speed, and bump up the lookback (default 50) for steadier trends in wild markets.
Practice First: Test different timeframe combos on a demo account to find what works best for you.
Understanding the Colors (Simple Explanation)
How Colors Work
The histogram and its EMA line use a color mix based on a simple idea from color theory, like mixing paints with red, green, and blue (RGB):
Red comes from the 1-week timeframe, green from 1-day, and blue from 1-hour.
When all three timeframes show strong upward momentum, they blend into bright white—the brightest color, like a super-bright light telling you the market’s roaring up.
If some timeframes are weak or pulling down, the mix gets darker (like gray or black), warning you the momentum might not be solid.
Brighter is Better
Bright Colors = Strong Opportunity: The brighter the histogram and EMA (closer to white), the more all your chosen timeframes are in agreement that prices are rising. This is your signal to think about buying or holding, as it points to a powerful trend you can ride.
Dark Colors = Caution: A darker mix (toward black) means some timeframes are lagging or bearish, suggesting you might wait or consider selling. It’s like a dim light saying, “Hold on, check again.”
Benefit in Practice: Watching the brightness helps you jump on the best trades fast. For example, a bright white histogram on a green background is like a green traffic light—go for it! A dark gray on red is like a red light—pause and rethink. This quick color check can save you from bad moves and boost your profits when the trend is strong.
Why It Helps
These colors are your fast friend in trading. A bright histogram means all your timeframes are cheering for an uptrend, giving you the confidence to act. A dull one tells you to be careful, helping you avoid traps. It’s like having a color-coded guide to pick the hottest market moments!
Technical Details
Input Parameters
Fast Length (default: 12): Short-term moving average speed.
Slow Length (default: 26): Long-term moving average speed.
Source (default: close): Price data used.
Signal Smoothing (default: 9): Smooths the signal line.
MA Type (default: EMA): Choose EMA or SMA.
Timeframe and Scaling
Timeframes: 15m, 1h, 1d, 1w, with on/off switches.
Lookback Period (default: 50): Sets the data window for trends.
Background Transparency (default: 75%): Controls background see-through level.
MACD Calculation
Per Timeframe: Uses request.security():
MACD Line: ta.ema(src, fast_length) - ta.ema(src, slow_length).
Signal Line: ta.ema(MACD, signal_length).
Histogram: (macd - signal) / 3.0.
Background Gradient
15m Normalization: norm_value = (hist_15m - hist_15m_min) / max(hist_15m_range, 1e-10), limited to 0-1.
RGB Mix: Red drops from 255 to 0, green rises from 0 to 255, blue stays 0.
Apply: color.new(color.rgb(r_val, g_val, b_val), Background_transparency).
Histogram and EMA Colors
Color Assignment:
1h: Blue (#0000FF) if hist_1h >= 0, else black.
1d: Green (#00FF00) if hist_1d >= 0, else black.
1w: Red (#FF0000) if hist_1w >= 0, else black.
Final Color: final_color = color.rgb(min(r, 255), min(g, 255), min(b, 255)).
Plotting: Histogram and EMA use final_color; MACD (#2962FF), signal (#FF6D00).
Alerts
Bullish Percentage: bullish_pct = (bullish_count / bullish_total) * 100, counting hist >= 0.
Triggers: Below threshold_low or above threshold_high.
--------------------------------------------------------------------
Conclusion
The "Multi-Timeframe MACD with Color Mix (Nikko)" is your all-in-one tool to spot trends, confirm moves, and trade smarter with its bright, easy-to-read colors. By using it wisely, you can sharpen your market edge and trade with more confidence.
This README is tailored for traders and reflects the indicator's practical value as of 05:06 AM +07 on October 04, 2025.
Stage Market AnalyzerStage Market Analyzer – User Guide
Overview:
The “Stage Market Analyzer” indicator is a comprehensive market analysis tool that identifies the current market phase (6 stages) using multiple EMAs (Exponential Moving Averages) and provides key performance metrics including 52-week high, YTD change, and recent price changes. This indicator is displayed on the chart with a visual table and plotted EMA lines for easy trend analysis.
Market Stages
-The indicator classifies the market into six stages based on the position of price relative to the fast and slow EMAs:
Recovery:
-Price above the fast EMA, but below the slow EMA.
-Slow EMA is above the fast EMA.
-ndicates a market recovering from a downtrend.
Accumulation:
-Price above both EMAs, slow EMA above fast EMA.
-Suggests accumulation phase, usually after a downtrend.
Bull Market:
-Price above both EMAs, fast EMA above slow EMA.
-Represents strong uptrend.
Warning:
-Price below both EMAs, fast EMA above slow EMA.
-Signals caution; potential weakening trend.
Distribution:
-Price below fast EMA, slow EMA below fast EMA.
-Market may be topping or preparing to reverse.
Bear Market:
-Price below both EMAs, slow EMA above fast EMA.
-Strong downtrend confirmed.
The indicator counts consecutive bars within the same stage and displays this as “Stage Name (X Bar)” in the table.
EMA Settings
-Fast EMA: Default 50 bars.
-Slow EMA: Default 200 bars.
Additional EMAs: EMA1 (21), EMA2 (100), EMA3 (150) – optional display.
Users can customize all EMA lengths and choose which EMAs to display.
The plotted EMAs help visualize trends, crossovers, and market momentum.
Performance Metrics
30-Bar & 90-Bar Price Change:
Displays the percentage change over the last 30 or 90 bars.
Positive change in green, negative in red.
YTD Change (Year-to-Date):
-Calculated from the first trading bar of the current year to current price.
-Reflects overall market performance for the current year.
52-Week High:
-Shows the percentage difference between current price and the highest price over the last 52 weeks.
-Adjusts automatically for the chart timeframe:
Daily: last 252 bars
Weekly: last 52 bars
Monthly: last 12 bars
Intraday: calculated based on bars per day × 252 trading days
Positive deviation is shown in green, negative in red.
Note: For non-daily charts, the calculation approximates a “year” based on available bars.
Table Display
Located at the bottom-right of the chart.
Columns:
Current Market Stage (with consecutive bar count)
30-Bar Change
90-Bar Change
YTD Change
52-Week High (optional)
Background colors indicate the stage for quick visual reference.
How to Use
Add the indicator to your chart.
Adjust EMAs to match your trading strategy.
Observe the table to understand:
Current market phase
Short-term and long-term performance metrics
Trend direction using plotted EMAs
Use the stage information together with other analysis (support/resistance, volume, etc.) to make informed trading decisions.
Notes & Recommendations
The indicator works best on daily charts for accurate 52-week high and YTD calculations.
For crypto or non-standard trading calendars, be aware that intraday data may approximate the “year” differently.
EMAs are customizable – experiment with different lengths to fit your preferred timeframe or trading style.
34 EMA Cross Alert (Once per sequence)This script is used when 5-12 EMA is above 34-50 EMA and if price corrects to 34-50 cloud and bounces i.e. price crosses below 34 EMA and then cross above 34 EMA, it will trigger alert.
Custom MACD (Normalized by ATR)This is a modified version of the classic MACD indicator.
Instead of using just the difference between EMA(12) and EMA(26), this version normalizes the MACD line by ATR(26) and scales it by 100:
* 100
This adjustment makes the MACD relative to market volatility, allowing for easier comparison across assets and timeframes.
The idea of normalizing MACD with ATR comes from Alex Spioglou, who suggested this improvement to enhance signal consistency in volatile markets.
Plots include the ATR-normalized MACD line, the signal line, and the histogram, with rising/falling color cues and built-in alert conditions.
Volume Delta Volume Signals by Claudio [hapharmonic]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © hapharmonic
//@version=6
FV = format.volume
FP = format.percent
indicator('Volume Delta Volume Signals by Claudio ', format = FV, max_bars_back = 4999, max_labels_count = 500)
//------------------------------------------
// Settings |
//------------------------------------------
bool usecandle = input.bool(true, title = 'Volume on Candles',display=display.none)
color C_Up = input.color(#12cef8, title = 'Volume Buy', inline = ' ', group = 'Style')
color C_Down = input.color(#fe3f00, title = 'Volume Sell', inline = ' ', group = 'Style')
// ✅ Nueva entrada para colores de señales
color buySignalColor = input.color(color.new(color.green, 0), "Buy Signal Color", group = "Signals")
color sellSignalColor = input.color(color.new(color.red, 0), "Sell Signal Color", group = "Signals")
string P_ = input.string(position.top_right,"Position",options = ,
group = "Style",display=display.none)
string sL = input.string(size.small , 'Size Label', options = , group = 'Style',display=display.none)
string sT = input.string(size.normal, 'Size Table', options = , group = 'Style',display=display.none)
bool Label = input.bool(false, inline = 'l')
History = input.bool(true, inline = 'l')
// Inputs for EMA lengths and volume confirmation
bool MAV = input.bool(true, title = 'EMA', group = 'EMA')
string volumeOption = input.string('Use Volume Confirmation', title = 'Volume Option', options = , group = 'EMA',display=display.none)
bool useVolumeConfirmation = volumeOption == 'none' ? false : true
int emaFastLength = input(12, title = 'Fast EMA Length', group = 'EMA',display=display.none)
int emaSlowLength = input(26, title = 'Slow EMA Length', group = 'EMA',display=display.none)
int volumeConfirmationLength = input(6, title = 'Volume Confirmation Length', group = 'EMA',display=display.none)
string alert_freq = input.string(alert.freq_once_per_bar_close, title="Alert Frequency",
options= ,group = "EMA",
tooltip="If you choose once_per_bar, you will receive immediate notifications (but this may cause interference or indicator repainting).
\n However, if you choose once_per_bar_close, it will wait for the candle to confirm the signal before notifying.",display=display.none)
//------------------------------------------
// UDT_identifier |
//------------------------------------------
type OHLCV
float O = open
float H = high
float L = low
float C = close
float V = volume
type VolumeData
float buyVol
float sellVol
float pcBuy
float pcSell
bool isBuyGreater
float higherVol
float lowerVol
color higherCol
color lowerCol
//------------------------------------------
// Calculate volumes and percentages |
//------------------------------------------
calcVolumes(OHLCV ohlcv) =>
var VolumeData data = VolumeData.new()
data.buyVol := ohlcv.V * (ohlcv.C - ohlcv.L) / (ohlcv.H - ohlcv.L)
data.sellVol := ohlcv.V - data.buyVol
data.pcBuy := data.buyVol / ohlcv.V * 100
data.pcSell := 100 - data.pcBuy
data.isBuyGreater := data.buyVol > data.sellVol
data.higherVol := data.isBuyGreater ? data.buyVol : data.sellVol
data.lowerVol := data.isBuyGreater ? data.sellVol : data.buyVol
data.higherCol := data.isBuyGreater ? C_Up : C_Down
data.lowerCol := data.isBuyGreater ? C_Down : C_Up
data
//------------------------------------------
// Get volume data |
//------------------------------------------
ohlcv = OHLCV.new()
volData = calcVolumes(ohlcv)
// Plot volumes and create labels
plot(ohlcv.V, color=color.new(volData.higherCol, 90), style=plot.style_columns, title='Total',display = display.all - display.status_line)
plot(ohlcv.V, color=volData.higherCol, style=plot.style_stepline_diamond, title='Total2', linewidth = 2,display = display.pane)
plot(volData.higherVol, color=volData.higherCol, style=plot.style_columns, title='Higher Volume', display = display.all - display.status_line)
plot(volData.lowerVol , color=volData.lowerCol , style=plot.style_columns, title='Lower Volume',display = display.all - display.status_line)
S(D,F)=>str.tostring(D,F)
volStr = S(math.sign(ta.change(ohlcv.C)) * ohlcv.V, FV)
buyVolStr = S(volData.buyVol , FV )
sellVolStr = S(volData.sellVol , FV )
// ✅ MODIFICACIÓN: Porcentaje sin decimales
buyPercentStr = str.tostring(math.round(volData.pcBuy)) + " %"
sellPercentStr = str.tostring(math.round(volData.pcSell)) + " %"
totalbuyPercentC_ = volData.buyVol / (volData.buyVol + volData.sellVol) * 100
sup = not na(ohlcv.V)
if sup
TC = text.align_center
CW = color.white
var table tb = table.new(P_, 6, 6, bgcolor = na, frame_width = 2, frame_color = chart.fg_color, border_width = 1, border_color = CW)
tb.cell(0, 0, text = 'Volume Candles', text_color = #FFBF00, bgcolor = #0E2841, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 0, 5, 0)
tb.cell(0, 1, text = 'Current Volume', text_color = CW, bgcolor = #0B3040, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 1, 1, 1)
tb.cell(0, 2, text = 'Buy', text_color = #000000, bgcolor = #92D050, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 2, text = 'Sell', text_color = #000000, bgcolor = #FF0000, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 3, text = buyVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 3, text = sellVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 5, text = 'Net: ' + volStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 5, 1, 5)
tb.cell(0, 4, text = buyPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 4, text = sellPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
cellCount = 20
filledCells = 0
for r = 5 to 1 by 1
for c = 2 to 5 by 1
if filledCells < cellCount * (totalbuyPercentC_ / 100)
tb.cell(c, r, text = '', bgcolor = C_Up)
else
tb.cell(c, r, text = '', bgcolor = C_Down)
filledCells := filledCells + 1
filledCells
if Label
sp = ' '
l = label.new(bar_index, ohlcv.V,
text=str.format('Net: {0}\nBuy: {1} ({2})\nSell: {3} ({4})\n{5}/\\\n {5}l\n {5}l',
volStr, buyVolStr, buyPercentStr, sellVolStr, sellPercentStr, sp),
style=label.style_none, textcolor=volData.higherCol, size=sL, textalign=text.align_left)
if not History
(l ).delete()
//------------------------------------------
// Draw volume levels on the candlesticks |
//------------------------------------------
float base = na,float value = na
bool uc = usecandle and sup
if volData.isBuyGreater
base := math.min(ohlcv.O, ohlcv.C)
value := base + math.abs(ohlcv.O - ohlcv.C) * (volData.pcBuy / 100)
else
base := math.max(ohlcv.O, ohlcv.C)
value := base - math.abs(ohlcv.O - ohlcv.C) * (volData.pcSell / 100)
barcolor(sup ? color.new(na, na) : ohlcv.C < ohlcv.O ? color.red : color.green,display = usecandle? display.all:display.none)
UseC = uc ? volData.higherCol:color.new(na, na)
plotcandle(uc?base:na, uc?base:na, uc?value:na, uc?value:na,
title='Body', color=UseC, bordercolor=na, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
plotcandle(uc?ohlcv.O:na, uc?ohlcv.H:na, uc?ohlcv.L:na, uc?ohlcv.C:na,
title='Fill', color=color.new(UseC,80), bordercolor=UseC, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
//------------------------------------------------------------
// Plot the EMA and filter out the noise with volume control. |
//------------------------------------------------------------
float emaFast = ta.ema(ohlcv.C, emaFastLength)
float emaSlow = ta.ema(ohlcv.C, emaSlowLength)
bool signal = emaFast > emaSlow
color c_signal = signal ? C_Up : C_Down
float volumeMA = ta.sma(ohlcv.V, volumeConfirmationLength)
bool crossover = ta.crossover(emaFast, emaSlow)
bool crossunder = ta.crossunder(emaFast, emaSlow)
isVolumeConfirmed(source, length, ma) =>
math.sum(source > ma ? source : 0, length) >= math.sum(source < ma ? source : 0, length)
bool ISV = isVolumeConfirmed(ohlcv.V, volumeConfirmationLength, volumeMA)
bool crossoverConfirmed = crossover and (not useVolumeConfirmation or ISV)
bool crossunderConfirmed = crossunder and (not useVolumeConfirmation or ISV)
PF = MAV ? emaFast : na
PS = MAV ? emaSlow : na
p1 = plot(PF, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
p2 = plot(PS, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
fill(p1, p2, top_value=crossover ? emaFast : emaSlow,
bottom_value =crossover ? emaSlow : emaFast,
top_color =color.new(c_signal, 80),
bottom_color =color.new(c_signal, 95)
)
// ✅ Usar colores configurables para señales
plotshape(crossoverConfirmed and MAV, style=shape.triangleup , location=location.belowbar, color=buySignalColor , size=size.small, force_overlay=true,display =display.pane)
plotshape(crossunderConfirmed and MAV, style=shape.triangledown, location=location.abovebar, color=sellSignalColor, size=size.small, force_overlay=true,display =display.pane)
string msg = '---------\n'+"Buy volume ="+buyVolStr+"\nBuy Percent = "+buyPercentStr+"\nSell volume = "+sellVolStr+"\nSell Percent = "+sellPercentStr+"\nNet = "+volStr+'\n---------'
if crossoverConfirmed
alert("Price (" + str.tostring(close) + ") Crossed over MA\n" + msg, alert_freq)
if crossunderConfirmed
alert("Price (" + str.tostring(close) + ") Crossed under MA\n" + msg, alert_freq)
SMC Volatility Liquidity Prothis one’s a confluence signaler. it fires “BUY CALL” / “BUY PUT” labels only when four things line up at once: trend, volatility squeeze, a liquidity sweep, and MACD momentum. quick breakdown:
what each block does
Trend filter (context)
ema50 > ema200 ⇒ trendUp
ema50 < ema200 ⇒ trendDn
Plots both EMAs for visual context.
Volatility compression (setup)
20-period Bollinger Bands (stdev 2).
bb_squeeze is true when current band width < its 20-SMA ⇒ price is compressed (potential energy building).
Liquidity sweep (trigger)
Tracks 20-bar swing high/low.
Long sweep: high > swingHigh ⇒ price just poked above the prior 20-bar high (took buy-side liquidity).
Short sweep: low < swingLow ⇒ price just poked below the prior 20-bar low (took sell-side liquidity).
MACD momentum (confirmation)
Standard MACD(12,26,9) histogram.
Bullish: hist > 0 and rising versus previous bar.
Bearish: hist < 0 and falling.
the actual entry signals
LongEntry = trendUp AND bb_squeeze AND liquiditySweepLong AND macdBullish
→ prints a green “BUY CALL” label below the bar.
ShortEntry = trendDn AND bb_squeeze AND liquiditySweepShort AND macdBearish
→ prints a red “BUY PUT” label above the bar.
alerts & dashboard
Alerts: fires when those long/short conditions hit so you can set TradingView alerts on them.
On-chart dashboard (bottom-right):
Trend (Bullish/Bearish/Neutral)
Squeeze (Yes/No)
Liquidity (Long/Short/None)
Momentum (Bullish/Bearish/Neutral)
Current Signal (BUY CALL / BUY PUT / WAIT)
(btw the comment says “2 columns × 5 rows” but the table is actually 5 columns × 2 rows—values under each label across the row.)
what it’s trying to capture (in plain english)
Trade with the higher-timeframe bias (EMA 50 over 200).
Enter as volatility compresses (bands tight) and a sweep grabs stops beyond a 20-bar extreme.
Only pull the trigger when momentum agrees (MACD hist direction & side of zero).
caveats / tips
It’s an indicator, not a strategy—no entries/exits/backtests baked in.
Signals are strict (4 filters), so you’ll get fewer but “cleaner” prints; still not magical.
The liquidity-sweep check uses the prior bar’s 20-bar high/low ( ), so on bar close it won’t repaint; intrabar alerts may feel jumpy if you alert “on every tick.”
Consider adding:
Exit logic (e.g., ATR stop + take-profit, or opposite signal).
Minimum squeeze duration (e.g., bb_squeeze true for N bars) to avoid one-bar dips in width.
Cool-down after a signal to prevent clustering.
Session/time or volume filter if you only want liquid hours.
if you want, I can convert this into a backtestable strategy() version with ATR-based stops/targets and a few toggles, so you can see stats right away.
MACD (The Moving Average Convergence Divergence)The Moving Average Convergence Divergence (MACD) is a momentum indicator used in technical analysis to identify trends, measure their strength, and signal potential reversals. It is calculated by subtracting the 26-period Exponential Moving Average (EMA) from the 12-period EMA, creating the MACD line. A 9-period EMA of the MACD line, known as the signal line, is then plotted to generate buy or sell signals. Positive MACD values suggest upward momentum, while negative values indicate downward momentum. Traders often watch for crossovers, divergences, and movements relative to the zero line to make informed decisions.
BOCS AdaptiveBOCS Adaptive Strategy - Automated Volatility Breakout System
WHAT THIS STRATEGY DOES:
This is an automated trading strategy that detects consolidation patterns through volatility analysis and executes trades when price breaks out of these channels. Take-profit and stop-loss levels are calculated dynamically using Average True Range (ATR) to adapt to current market volatility. The strategy closes positions partially at the first profit target and exits the remainder at the second target or stop loss.
TECHNICAL METHODOLOGY:
Price Normalization Process:
The strategy begins by normalizing price to create a consistent measurement scale. It calculates the highest high and lowest low over a user-defined lookback period (default 100 bars). The current close price is then normalized using the formula: (close - lowest_low) / (highest_high - lowest_low). This produces values between 0 and 1, allowing volatility analysis to work consistently across different instruments and price levels.
Volatility Detection:
A 14-period standard deviation is applied to the normalized price series. Standard deviation measures how much prices deviate from their average - higher values indicate volatility expansion, lower values indicate consolidation. The strategy uses ta.highestbars() and ta.lowestbars() functions to track when volatility reaches peaks and troughs over the detection length period (default 14 bars).
Channel Formation Logic:
When volatility crosses from a high level to a low level, this signals the beginning of a consolidation phase. The strategy records this moment using ta.crossover(upper, lower) and begins tracking the highest and lowest prices during the consolidation. These become the channel boundaries. The duration between the crossover and current bar must exceed 10 bars minimum to avoid false channels from brief volatility spikes. Channels are drawn using box objects with the recorded high/low boundaries.
Breakout Signal Generation:
Two detection modes are available:
Strong Closes Mode (default): Breakout occurs when the candle body midpoint math.avg(close, open) exceeds the channel boundary. This filters out wick-only breaks.
Any Touch Mode: Breakout occurs when the close price exceeds the boundary.
When price closes above the upper channel boundary, a bullish breakout signal generates. When price closes below the lower boundary, a bearish breakout signal generates. The channel is then removed from the chart.
ATR-Based Risk Management:
The strategy uses request.security() to fetch ATR values from a specified timeframe, which can differ from the chart timeframe. For example, on a 5-minute chart, you can use 1-minute ATR for more responsive calculations. The ATR is calculated using ta.atr(length) with a user-defined period (default 14).
Exit levels are calculated at the moment of breakout:
Long Entry Price = Upper channel boundary
Long TP1 = Entry + (ATR × TP1 Multiplier)
Long TP2 = Entry + (ATR × TP2 Multiplier)
Long SL = Entry - (ATR × SL Multiplier)
For short trades, the calculation inverts:
Short Entry Price = Lower channel boundary
Short TP1 = Entry - (ATR × TP1 Multiplier)
Short TP2 = Entry - (ATR × TP2 Multiplier)
Short SL = Entry + (ATR × SL Multiplier)
Trade Execution Logic:
When a breakout occurs, the strategy checks if trading hours filter is satisfied (if enabled) and if position size equals zero (no existing position). If volume confirmation is enabled, it also verifies that current volume exceeds 1.2 times the 20-period simple moving average.
If all conditions are met:
strategy.entry() opens a position using the user-defined number of contracts
strategy.exit() immediately places a stop loss order
The code monitors price against TP1 and TP2 levels on each bar
When price reaches TP1, strategy.close() closes the specified number of contracts (e.g., if you enter with 3 contracts and set TP1 close to 1, it closes 1 contract). When price reaches TP2, it closes all remaining contracts. If stop loss is hit first, the entire position exits via the strategy.exit() order.
Volume Analysis System:
The strategy uses ta.requestUpAndDownVolume(timeframe) to fetch up volume, down volume, and volume delta from a specified timeframe. Three display modes are available:
Volume Mode: Shows total volume as bars scaled relative to the 20-period average
Comparison Mode: Shows up volume and down volume as separate bars above/below the channel midline
Delta Mode: Shows net volume delta (up volume - down volume) as bars, positive values above midline, negative below
The volume confirmation logic compares breakout bar volume to the 20-period SMA. If volume ÷ average > 1.2, the breakout is classified as "confirmed." When volume confirmation is enabled in settings, only confirmed breakouts generate trades.
INPUT PARAMETERS:
Strategy Settings:
Number of Contracts: Fixed quantity to trade per signal (1-1000)
Require Volume Confirmation: Toggle to only trade signals with volume >120% of average
TP1 Close Contracts: Exact number of contracts to close at first target (1-1000)
Use Trading Hours Filter: Toggle to restrict trading to specified session
Trading Hours: Session input in HHMM-HHMM format (e.g., "0930-1600")
Main Settings:
Normalization Length: Lookback bars for high/low calculation (1-500, default 100)
Box Detection Length: Period for volatility peak/trough detection (1-100, default 14)
Strong Closes Only: Toggle between body midpoint vs close price for breakout detection
Nested Channels: Allow multiple overlapping channels vs single channel at a time
ATR TP/SL Settings:
ATR Timeframe: Source timeframe for ATR calculation (1, 5, 15, 60, etc.)
ATR Length: Smoothing period for ATR (1-100, default 14)
Take Profit 1 Multiplier: Distance from entry as multiple of ATR (0.1-10.0, default 2.0)
Take Profit 2 Multiplier: Distance from entry as multiple of ATR (0.1-10.0, default 3.0)
Stop Loss Multiplier: Distance from entry as multiple of ATR (0.1-10.0, default 1.0)
Enable Take Profit 2: Toggle second profit target on/off
VISUAL INDICATORS:
Channel boxes with semi-transparent fill showing consolidation zones
Green/red colored zones at channel boundaries indicating breakout areas
Volume bars displayed within channels using selected mode
TP/SL lines with labels showing both price level and distance in points
Entry signals marked with up/down triangles at breakout price
Strategy status table showing position, contracts, P&L, ATR values, and volume confirmation status
HOW TO USE:
For 2-Minute Scalping:
Set ATR Timeframe to "1" (1-minute), ATR Length to 12, TP1 Multiplier to 2.0, TP2 Multiplier to 3.0, SL Multiplier to 1.5. Enable volume confirmation and strong closes only. Use trading hours filter to avoid low-volume periods.
For 5-15 Minute Day Trading:
Set ATR Timeframe to match chart or use 5-minute, ATR Length to 14, TP1 Multiplier to 2.0, TP2 Multiplier to 3.5, SL Multiplier to 1.2. Volume confirmation recommended but optional.
For Hourly+ Swing Trading:
Set ATR Timeframe to 15-30 minute, ATR Length to 14-21, TP1 Multiplier to 2.5, TP2 Multiplier to 4.0, SL Multiplier to 1.5. Volume confirmation optional, nested channels can be enabled for multiple setups.
BACKTEST CONSIDERATIONS:
Strategy performs best during trending or volatility expansion phases
Consolidation-heavy or choppy markets produce more false signals
Shorter timeframes require wider stop loss multipliers due to noise
Commission and slippage significantly impact performance on sub-5-minute charts
Volume confirmation generally improves win rate but reduces trade frequency
ATR multipliers should be optimized for specific instrument characteristics
COMPATIBLE MARKETS:
Works on any instrument with price and volume data including forex pairs, stock indices, individual stocks, cryptocurrency, commodities, and futures contracts. Requires TradingView data feed that includes volume for volume confirmation features to function.
KNOWN LIMITATIONS:
Stop losses execute via strategy.exit() and may not fill at exact levels during gaps or extreme volatility
request.security() on lower timeframes requires higher-tier TradingView subscription
False breakouts inherent to breakout strategies cannot be completely eliminated
Performance varies significantly based on market regime (trending vs ranging)
Partial closing logic requires sufficient position size relative to TP1 close contracts setting
RISK DISCLOSURE:
Trading involves substantial risk of loss. Past performance of this or any strategy does not guarantee future results. This strategy is provided for educational purposes and automated backtesting. Thoroughly test on historical data and paper trade before risking real capital. Market conditions change and strategies that worked historically may fail in the future. Use appropriate position sizing and never risk more than you can afford to lose. Consider consulting a licensed financial advisor before making trading decisions.
ACKNOWLEDGMENT & CREDITS:
This strategy is built upon the channel detection methodology created by AlgoAlpha in the "Smart Money Breakout Channels" indicator. Full credit and appreciation to AlgoAlpha for pioneering the normalized volatility approach to identifying consolidation patterns and sharing this innovative technique with the TradingView community. The enhancements added to the original concept include automated trade execution, multi-timeframe ATR-based risk management, partial position closing by contract count, volume confirmation filtering, and real-time position monitoring.
RSI(7) + MACD ZoneTitle: RSI(7) + MACD Zone Combo
Description:
This indicator combines RSI (7) and MACD (12,26,9) into a single panel with a unified scale for easier analysis.
RSI (7) is plotted in white and automatically turns red when the market reaches overbought (>70) or oversold (<30) conditions.
MACD is normalized to align with the RSI scale (0–100).
A value of 50 represents MACD = 0.
Above 50 (teal) indicates positive momentum.
Below 50 (red) indicates negative momentum.
This combination allows traders to quickly identify when short-term RSI conditions align with overall momentum shifts from MACD.
How to use:
Look for potential buy opportunities when RSI is oversold (<30) and MACD is above 50 (positive momentum).
Look for potential sell opportunities when RSI is overbought (>70) and MACD is below 50 (negative momentum).
Use in conjunction with price action and risk management — not as a standalone signal.
Trader Marks Trailing SL + TP (BE @ 60%)This script provides a unique stop-loss and take-profit management tool designed for swing traders.
It introduces a two-stage stop-loss logic that is not available in standard TradingView tools:
Break-Even Protection: Once a defined profit threshold (e.g. 66%) is reached, the stop-loss automatically moves to break-even.
ATR-Based Trailing Stop: After a chosen delay (e.g. 12 hours), the script activates a dynamic trailing stop that follows market volatility using the ATR.
Flexible Ratchet Mechanism: The stop-loss can be locked at new profit levels and will never move backwards.
This combination allows traders to secure profits while still giving the trade room to develop. The indicator is especially useful for swing trading on 4H and daily timeframes but can be applied to other styles as well.
How to use:
Enter your entry price, stop-loss, and take-profit levels.
Choose your trailing mode: Exact S/L+ (simple) or Advanced (Delay + BE + Ratchet).
Adjust parameters such as ATR length or activation delay to match your strategy.
The script helps you balance risk and reward by ensuring that once the trade moves in your favor, you cannot lose the initial risk, while still benefiting from extended market moves.
Stochastic [Paifc0de]Stochastic — clean stochastic oscillator with visual masking, neutral markers, and basic filters
What it does
This indicator plots a standard stochastic oscillator (%K with smoothing and %D) and adds practical quality-of-life features for lower timeframes: optional visual masking when %K hugs overbought/oversold, neutral K–D cross markers, session-gated edge triangles (K crossing 20/80), and simple filters (minimum %K slope, minimum |K–D| gap, optional %D slope agreement, mid-zone mute, and a cooldown between markers). Display values are clamped to 0–100 to keep the panel scale stable. The tool is for research/education and does not generate entries/exits or financial advice.
Default preset: 20 / 10 / 10
K Length = 20
Classic lookback used in many textbooks. On intraday charts it balances responsiveness and stability: short enough to react to momentum shifts, long enough to avoid constant whipsaws. In practice it captures ~the last 20 bars’ position of close within the high–low range.
K Smoothing = 10
A 10-period SMA applied to the raw %K moderates the “saw-tooth” effect that raw stochastic can exhibit in choppy phases. The smoothing reduces over-reaction to micro spikes while preserving the main rhythm of swings; visually, %K becomes a continuous path that is easier to read.
D Length = 10
%D is the moving average of smoothed %K. With 10, %D becomes a clearly slower guide line. The larger separation between %K(10-SMA) and %D(10-SMA of %K) produces cleaner crosses and fewer spurious toggles than micro settings (e.g., 3/3/3). On M5–M15 this pair often yields readable cross cycles without flooding the chart.
How the 20/10/10 trio behaves
In persistent trends, %K will spend more time near 20 or 80; the 10-period smoothing delays flips slightly and emphasizes only meaningful turn attempts.
In ranges, %K oscillates around mid-zone (40–60). With 10/10 smoothing, cross signals cluster less densely; combining with the |K–D| gap filter helps keep only decisive crosses.
If your symbol is unusually volatile or illiquid, reduce K Length (e.g., 14) or reduce K Smoothing (e.g., 7) to keep responsiveness. If crosses feel late, decrease D Length (e.g., 7). If noise is excessive, increase K Smoothing first, then consider raising D Length.
Visuals
OB/OS lines: default 80/20 reference levels and a midline at 50.
Masking near edges: %K can be temporarily hidden when it is pressing an edge, approaching it with low slope, or going nearly flat near the boundary. This keeps the panel readable during “stuck at the edge” phases.
Soft glow (optional): highlights %K’s active path; can be turned off.
Light/Dark palette: quick toggle to match your chart theme.
Scale safety: all plotted values (lines, fills, markers) are clamped to 0–100 to prevent the axis from expanding beyond the stochastic range.
Markers and filters
Neutral K–D cross markers: circles in the mid-zone when %K crosses %D.
Edge triangles: show when %K crosses 20 or 80; can be restricted to a session window (02:00–12:00 ET).
Filters (optional):
Min %K slope: require a minimum absolute slope so very flat crosses are ignored.
Min |K–D| gap: demand separation between lines at the cross moment.
%D slope agreement: keep crosses that align with %D’s direction.
Mid-zone mute: suppress crosses inside a user-defined 40–60 band (defaults).
Cooldown: minimum bars between successive markers.
Parameters (quick guide)
K Length / K Smoothing / D Length: core stochastic settings. Start with 20/10/10; tune K Smoothing first if you see too much jitter.
Overbought / Oversold (80/20): adjust for assets that tend to trend (raise to 85/15) or mean-revert (lower to 75/25).
Slope & gap filters: increase on very noisy symbols; reduce if you miss too many crosses.
Session window (triangles only): use if you want edge markers only during active hours.
Marker size and offset: cosmetic; they do not affect calculations.
Alerts
K–D Cross Up (filtered) and K–D Cross Down (filtered): fire when a cross passes your filters/cooldown.
Edge Up / Edge Down: fire when %K crosses the 20/80 levels.
All alerts confirm on bar close.
Notes & attribution
Original implementation and integration by Paifc0de; no third-party code is copied.
This indicator is for research/education and does not provide entries/exits or financial advice.
MACD COM PONTOS//@version=5
indicator(title="MACD COM PONTOS", shorttitle="MACD COM PONTOS")
//Plot Inputs
res = input.timeframe("", "Indicator TimeFrame")
fast_length = input.int(title="Fast Length", defval=12)
slow_length = input.int(title="Slow Length", defval=26)
src = input.source(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 999, defval = 9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options= )
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options= )
// Show Plots T/F
show_macd = input.bool(true, title="Show MACD Lines", group="Show Plots?", inline="SP10")
show_macd_LW = input.int(3, minval=0, maxval=5, title = "MACD Width", group="Show Plots?", inline="SP11")
show_signal_LW= input.int(2, minval=0, maxval=5, title = "Signal Width", group="Show Plots?", inline="SP11")
show_Hist = input.bool(true, title="Show Histogram", group="Show Plots?", inline="SP20")
show_hist_LW = input.int(5, minval=0, maxval=5, title = "-- Width", group="Show Plots?", inline="SP20")
show_trend = input.bool(true, title = "Show MACD Lines w/ Trend Color", group="Show Plots?", inline="SP30")
show_HB = input.bool(false, title="Show Highlight Price Bars", group="Show Plots?", inline="SP40")
show_cross = input.bool(false, title = "Show BackGround on Cross", group="Show Plots?", inline="SP50")
show_dots = input.bool(true, title = "Show Circle on Cross", group="Show Plots?", inline="SP60")
show_dots_LW = input.int(5, minval=0, maxval=5, title = "-- Width", group="Show Plots?", inline="SP60")
//show_trend = input(true, title = "Colors MACD Lines w/ Trend Color", group="Show Plots?", inline="SP5")
// MACD Lines colors
col_macd = input.color(#FF6D00, "MACD Line ", group="Color Settings", inline="CS1")
col_signal = input.color(#2962FF, "Signal Line ", group="Color Settings", inline="CS1")
col_trnd_Up = input.color(#4BAF4F, "Trend Up ", group="Color Settings", inline="CS2")
col_trnd_Dn = input.color(#B71D1C, "Trend Down ", group="Color Settings", inline="CS2")
// Histogram Colors
col_grow_above = input.color(#26A69A, "Above Grow", group="Histogram Colors", inline="Hist10")
col_fall_above = input.color(#B2DFDB, "Fall", group="Histogram Colors", inline="Hist10")
col_grow_below = input.color(#FF5252, "Below Grow", group="Histogram Colors",inline="Hist20")
col_fall_below = input.color(#FFCDD2, "Fall", group="Histogram Colors", inline="Hist20")
// Alerts T/F Inputs
alert_Long = input.bool(true, title = "MACD Cross Up", group = "Alerts", inline="Alert10")
alert_Short = input.bool(true, title = "MACD Cross Dn", group = "Alerts", inline="Alert10")
alert_Long_A = input.bool(false, title = "MACD Cross Up & > 0", group = "Alerts", inline="Alert20")
alert_Short_B = input.bool(false, title = "MACD Cross Dn & < 0", group = "Alerts", inline="Alert20")
// Calculating
fast_ma = request.security(syminfo.tickerid, res, sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length))
slow_ma = request.security(syminfo.tickerid, res, sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length))
macd = fast_ma - slow_ma
signal = request.security(syminfo.tickerid, res, sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length))
hist = macd - signal
// MACD Trend and Cross Up/Down conditions
trend_up = macd > signal
trend_dn = macd < signal
cross_UP = signal >= macd and signal < macd
cross_DN = signal <= macd and signal > macd
cross_UP_A = (signal >= macd and signal < macd) and macd > 0
cross_DN_B = (signal <= macd and signal > macd) and macd < 0
// Condition that changes Color of MACD Line if Show Trend is turned on..
trend_col = show_trend and trend_up ? col_trnd_Up : trend_up ? col_macd : show_trend and trend_dn ? col_trnd_Dn: trend_dn ? col_macd : na
//Var Statements for Histogram Color Change
var bool histA_IsUp = false
var bool histA_IsDown = false
var bool histB_IsDown = false
var bool histB_IsUp = false
histA_IsUp := hist == hist ? histA_IsUp : hist > hist and hist > 0
histA_IsDown := hist == hist ? histA_IsDown : hist < hist and hist > 0
histB_IsDown := hist == hist ? histB_IsDown : hist < hist and hist <= 0
histB_IsUp := hist == hist ? histB_IsUp : hist > hist and hist <= 0
hist_col = histA_IsUp ? col_grow_above : histA_IsDown ? col_fall_above : histB_IsDown ? col_grow_below : histB_IsUp ? col_fall_below :color.silver
// Plot Statements
//Background Color
bgcolor(show_cross and cross_UP ? col_trnd_Up : na, editable=false)
bgcolor(show_cross and cross_DN ? col_trnd_Dn : na, editable=false)
//Highlight Price Bars
barcolor(show_HB and trend_up ? col_trnd_Up : na, title="Trend Up", offset = 0, editable=false)
barcolor(show_HB and trend_dn ? col_trnd_Dn : na, title="Trend Dn", offset = 0, editable=false)
//Regular Plots
plot(show_Hist and hist ? hist : na, title="Histogram", style=plot.style_columns, color=color.new(hist_col ,0),linewidth=show_hist_LW)
plot(show_macd and signal ? signal : na, title="Signal", color=color.new(col_signal, 0), style=plot.style_line ,linewidth=show_signal_LW)
plot(show_macd and macd ? macd : na, title="MACD", color=color.new(trend_col, 0), style=plot.style_line ,linewidth=show_macd_LW)
hline(0, title="0 Line", color=color.new(color.gray, 0), linestyle=hline.style_dashed, linewidth=1, editable=false)
plot(show_dots and cross_UP ? macd : na, title="Dots", color=color.new(trend_col ,0), style=plot.style_circles, linewidth=show_dots_LW, editable=false)
plot(show_dots and cross_DN ? macd : na, title="Dots", color=color.new(trend_col ,0), style=plot.style_circles, linewidth=show_dots_LW, editable=false)
//Alerts
if alert_Long and cross_UP
alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD Crosses Up.", alert.freq_once_per_bar_close)
if alert_Short and cross_DN
alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD Crosses Down.", alert.freq_once_per_bar_close)
//Alerts - Stricter Condition - Only Alerts When MACD Crosses UP & MACD > 0 -- Crosses Down & MACD < 0
if alert_Long_A and cross_UP_A
alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD > 0 And Crosses Up.", alert.freq_once_per_bar_close)
if alert_Short_B and cross_DN_B
alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD < 0 And Crosses Down.", alert.freq_once_per_bar_close)
//End Code
Hosoda’s CloudsMany investors aim to develop trading systems with a high win rate, mistakenly associating it with substantial profits. In reality, high returns are typically achieved through greater exposure to market trends, which inevitably lowers the win rate due to increased risk and more volatile conditions.
The system I present, called “Hosoda’s Clouds” in honor of Goichi Hosoda , the creator of the Ichimoku Kinko Hyo indicator, is likely one of the first profitable systems many traders will encounter. Designed to capture trends, it performs best in markets with clear directional movements and is less suitable for range-bound markets like Forex, which often exhibit lateral price action.
This system is not recommended for low timeframes, such as minute charts, due to the random and emotionally driven nature of price movements in those periods. For a deeper exploration of this topic, I recommend reading my article “Timeframe is Everything”, which discusses the critical importance of selecting the appropriate timeframe.
I suggest testing and applying the “Hosoda’s Clouds” strategy on assets with a strong trending nature and a proven track record of performance. Ideal markets include Tesla (1-hour, 4-hour, and daily), BTC/USDT (daily), SPY (daily), and XAU/USD (daily), as these have consistently shown clear directional trends over time.
Commissions and Configuration
Commissions can be adjusted in the system’s settings to suit individual needs. For evaluating the effectiveness of “Hosoda’s Clouds,” I’ve used a standard commission of $1 per order as a baseline, though this can be modified in the code to accommodate different brokers or preferences.
The margin per trade is set to $1,000 by default, but users are encouraged to experiment with different margin settings in the configuration to match their trading style.
Rules of the “Hosoda’s Clouds” System (Bullish Strategy)
This strategy is designed to capture trending movements in bullish markets using the Ichimoku Kinko Hyo indicator. The rules are as follows:
Long Entry: A long position is triggered when the Tenkan-sen crosses above the Kijun-sen below the Ichimoku cloud, identifying potential reversals or bounces in a bearish context.
Stop Loss (SL): Placed at the low of the candle 12 bars prior to the entry candle. This setting has proven optimal in my tests, but it can be adjusted in the code based on risk tolerance.
Take Profit (TP): The position is closed when the Tenkan-sen crosses below the bottom of the Ichimoku cloud (the minimum of Senkou Span A and Senkou Span B).
Notes on the Code
margin_long=0: Ideal for strategies requiring a fixed position size, particularly useful for manual entries or testing with a constant capital allocation.
margin_long=100: Recommended for high-frequency systems where positions are closed quickly, simulating gradual growth based on realized profits and reflecting real-world broker constraints.
System Performance
The following performance metrics account for $1 per order commissions and were tested on the specified assets and timeframes:
Tesla (H1)
Trades: 148
Win Rate: 29.05%
Period: Jan 2, 2014 – Jan 6, 2020 (+172%)
Simple Annual Growth Rate: +34.3%
Trades: 130
Win Rate: 30.77%
Period: Jan 2, 2020 – Sep 24, 2025 (+858.90%)
Simple Annual Growth Rate: +150.7%
Tesla (H4)
Trades: 102
Win Rate: 32.35%
Period: Jun 29, 2010 – Sep 24, 2025 (+11,356.36%)
Simple Annual Growth Rate: +758.5%
Tesla (Daily)
Trades: 56
Win Rate: 35.71%
Period: Jun 29, 2010 – Sep 24, 2025 (+3,166.64%)
Simple Annual Growth Rate: +211.5%
BTC/USDT (Daily)
Trades: 44
Win Rate: 31.82%
Period: Sep 30, 2017 – Sep 24, 2025 (+2,592.23%)
Simple Annual Growth Rate: +324.8%
SPY (Daily)
Trades: 81
Win Rate: 37.04%
Period: Jan 23, 1993 – Sep 24, 2025 (+476.90%)
Simple Annual Growth Rate: +14.3%
XAU/USD (Daily)
Trades: 216
Win Rate: 32.87%
Period: Jan 6, 1833 – Sep 24, 2025 (+5,241.73%)
Simple Annual Growth Rate: +27.1%
SPX (Daily)
Trades: 217
Win Rate: 38.25%
Period: Feb 1, 1871 – Sep 24, 2025 (+16,791.02%)
Simple Annual Growth Rate: +108.1%
Conclusion
With the “ Hosoda’s Clouds ” strategy, I aim to showcase the potential of technical analysis to generate consistent profits in trending markets, challenging recent doubts about its effectiveness. My goal is for this system to serve as both a practical tool for traders and a source of inspiration for the trading community I deeply respect. I hope it encourages the creation of new strategies, fosters creativity in technical analysis, and empowers traders to approach the markets with confidence and discipline.
Volume DMAO [DCAUT]█ Volume DMAO Indicator
📊 OVERVIEW
The Volume DMAO (Dual Moving Average Oscillator) applies PPO-style calculation to volume data rather than price. It measures the percentage difference between fast and slow moving averages of volume, providing insights into volume momentum and market participation trends.
🎯 CONCEPTS
Signal Interpretation
Positive Values : Current volume above historical average (expansion phase)
Negative Values : Current volume below historical average (contraction phase)
Rising Trend : Volume momentum accelerating (increasing participation)
Falling Trend : Volume momentum decelerating (decreasing participation)
Primary Applications
Volume Confirmation : Validate price movements with volume momentum analysis
Divergence Detection : Spot potential reversals when volume diverges from price
Trend Strength : Assess volume participation in price trends
Entry/Exit Signals : Time trades based on volume momentum shifts
📋 PARAMETER SETUP
Input Parameters
Fast Length : Period for fast moving average (default: 12)
Slow Length : Period for slow moving average (default: 50)
MA Type : Moving average algorithm (default: EMA)
📊 COLOR CODING
Histogram Colors
Dark Green : Positive and rising (strong volume expansion)
Light Green : Positive and falling (weakening volume expansion)
Light Red : Negative and rising (recovering from volume contraction)
Dark Red : Negative and falling (strong volume contraction)
💡 CORE VALUE
Unlike traditional volume indicators, Volume DMAO provides normalized percentage readings that:
- Enable comparison across different timeframes and instruments
- Reveal volume momentum changes before price movements
- Identify market phases through volume participation analysis
CDC Action Zone (TH) by MeowToolsThe CDC Action Zone indicator is like a stock market traffic light — it tells you when it’s green to go and when it’s red to stop. By combining just two EMAs (12 and 26), it highlights Buy and Sell zones clearly, cutting through market noise and keeping you on the right side of the trend. Think of it as a radar that spots the big moves before most people notice, giving you the confidence to ride the trend and exit before getting trapped. Meow 😺 give it a try and see how it can help your portfolio take off 🚀📈