Squeeze Weekday Frequency [CHE] Squeeze Weekday Frequency — Tracks historical frequency of low-volatility squeezes by weekday to inform timing of low-risk setups.
Summary
This indicator monitors periods of unusually low volatility, defined as when the average true range falls below a percentile threshold, and tallies their occurrences across each weekday. By aggregating these counts over the chart's history, it reveals patterns in squeeze frequency, helping traders avoid or target specific days for reduced noise. The approach uses persistent counters to ensure accurate daily tallies without duplicates, providing a robust view of weekday biases in volatility regimes.
Motivation: Why this design?
Traders often face inconsistent signal quality due to varying volatility patterns tied to the trading calendar, such as quieter mid-week sessions or busier Mondays. This indicator addresses that by binning low-volatility events into weekday buckets, allowing users to spot recurring low-activity days where trends may develop with less whipsaw. It focuses on historical aggregation rather than real-time alerts, emphasizing pattern recognition over prediction.
What’s different vs. standard approaches?
- Reference baseline: Traditional volatility trackers like simple moving averages of range or standalone Bollinger Band squeezes, which ignore temporal distribution.
- Architecture differences:
- Employs array-based persistent counters for each weekday to accumulate events without recounting.
- Includes duplicate prevention via day-key tracking to handle sparse data.
- Features on-demand sorting and conditional display modes for focused insights.
- Practical effect: Charts show a persistent table of ranked weekdays instead of transient plots, making it easier to glance at biases like higher squeezes on Fridays, which reduces the need for manual logging and highlights calendar-driven edges.
How it works (technical)
The indicator first computes the average true range over a specified lookback period to gauge recent volatility. It then ranks this value against its own history within a sliding window to identify squeezes when the rank drops below the threshold. Each bar's timestamp is resolved to a weekday using the selected timezone, and a unique day identifier is generated from the date components.
On detecting a squeeze and valid price data, it checks against a stored last-marked day for that weekday to avoid multiple counts per day. If it's a new occurrence, the corresponding weekday counter in an array increments. Total days and data-valid days are tracked separately for context.
At the chart's last bar, it sums all counters to compute shares, sorts weekdays by their squeeze proportions, and populates a table with the selected subset. The table alternates row colors and highlights the peak weekday. An info label above the final bar summarizes totals and the top day. Background shading applies a faint red to squeeze bars for visual confirmation. State persists via variable arrays initialized once, ensuring counts build incrementally without resets.
Parameter Guide
ATR Length — Sets the lookback for measuring average true range, influencing squeeze sensitivity to short-term swings. Default: 14. Trade-offs/Tips: Shorter values increase responsiveness but raise false positives in chop; longer smooths for stability, potentially missing early squeezes.
Percentile Window (bars) — Defines the history length for ranking the current ATR, balancing recent relevance with sample size. Default: 252. Trade-offs/Tips: Narrower windows adapt faster to regime shifts but amplify noise; wider ones stabilize ranks yet lag in fast markets—aim for 100-500 bars on daily charts.
Squeeze threshold (PR < x) — Determines the cutoff for low-volatility classification; lower values flag rarer, tighter squeezes. Default: 10.0. Trade-offs/Tips: Tighter thresholds (under 5) yield fewer but higher-quality signals, reducing clutter; looser (over 20) captures more events at the cost of relevance.
Timezone — Selects the reference for weekday assignment; exchange default aligns with asset's session. Default: Exchange. Trade-offs/Tips: Use custom for cross-market analysis, but verify alignment to avoid offset errors in global pairs.
Show — Toggles the results table visibility for quick on/off of the display. Default: true. Trade-offs/Tips: Disable in multi-indicator setups to save screen space; re-enable for periodic reviews.
Pos — Positions the table on the chart pane for optimal viewing. Default: Top Right. Trade-offs/Tips: Bottom options suit long-term charts; test placements to avoid overlapping price action.
Font — Adjusts text size in the table for readability at different zooms. Default: normal. Trade-offs/Tips: Smaller fonts fit more data but strain eyes on small screens; larger for presentations.
Dark — Applies a dark color scheme to the table for contrast against chart backgrounds. Default: true. Trade-offs/Tips: Toggle false for light themes; ensures legibility without manual recoloring.
Display — Filters table rows to show all, top three, or bottom three weekdays by squeeze share. Default: All. Trade-offs/Tips: Use "Top 3" for focus on high-frequency days in active trading; "All" for full audits.
Reading & Interpretation
Red-tinted backgrounds mark individual squeeze bars, indicating current low-volatility conditions. The table's summary row shows the highest squeeze count, its percentage of total events, and the associated weekday in teal. Detail rows list selected weekdays with their absolute counts, proportional shares, and a left arrow for the peak day—higher percentages signal days where squeezes cluster, suggesting potential for calmer trend development. The info label reports overall days observed, valid data days, and reiterates the top weekday with its count. Drifting counts toward zero on a weekday imply rarity, while elevated ones point to habitual low-activity sessions.
Practical Workflows & Combinations
- Trend following: Scan for squeezes on high-frequency weekdays as entry filters, confirming with higher highs or lower lows in the structure; pair with momentum oscillators to time breaks.
- Exits/Stops: On low-squeeze days, widen stops for breathing room, tightening them during peak squeeze periods to guard against false breaks—use the table's percentages as a regime proxy.
- Multi-asset/Multi-TF: Defaults work across forex and indices on hourly or daily frames; for stocks, adjust percentile window to 100 for shorter histories. Scale thresholds up by 5-10 points for high-vol assets like crypto to maintain signal sparsity.
Behavior, Constraints & Performance
- Repaint/confirmation: Counts update only on confirmed bars via day-key changes, with no future references—live bars may shade red tentatively but tallies finalize at session close.
- security()/HTF: Not used, so no higher-timeframe repaint risks; all computations stay in the chart's resolution.
- Resources: Relies on a fixed-size array of seven elements and small loops for sorting and table fills, capped at 5000 bars back—efficient for most charts but may slow on very long intraday histories.
- Known limits: Ignores weekends and holidays implicitly via data presence; early chart bars lack full percentile context, leading to initial undercounting; assumes continuous sessions, so gaps in data (e.g., news halts) skew totals.
Sensible Defaults & Quick Tuning
Start with the built-in values for broad-market daily charts: ATR at 14, window at 252, threshold at 10. For noisier environments, lower the threshold to 5 and shorten the window to 100 to prioritize rare squeezes. If too few events appear, raise the threshold to 15 and extend ATR to 20 for broader capture. To combat overcounting in sparse data, widen the window to 500 while keeping others stock—monitor the info label's data-days count before trusting patterns.
What this indicator is—and isn’t
This serves as a statistical overlay for spotting calendar-based volatility biases, aiding in session selection and filter design. It is not a standalone signal generator, predictive model, or risk manager—integrate it with price action, volume, and broader strategy rules for decisions.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Search in scripts for "charts"
Composite Time ProfileComposite Time Profile Overlay (CTPO) - Market Profile Compositing Tool
Automatically composite multiple time periods to identify key areas of balance and market structure
What is the Composite Time Profile Overlay?
The Composite Time Profile Overlay (CTPO) is a Pine Script indicator that automatically composites multiple time periods to identify key areas of balance and market structure. It's designed for traders who use market profile concepts and need to quickly identify where price is likely to find support or resistance.
The indicator analyzes TPO (Time Price Opportunity) data across different timeframes and merges overlapping profiles to create composite levels that represent the most significant areas of balance. This helps you spot where institutional traders are likely to make decisions based on accumulated price action.
Why Use CTPO for Market Profile Trading?
Eliminate Manual Compositing Work
Instead of manually drawing and compositing profiles across different timeframes, CTPO does this automatically. You get instant access to composite levels without spending time analyzing each individual period.
Spot Areas of Balance Quickly
The indicator highlights the most significant areas of balance by compositing overlapping profiles. These areas often act as support and resistance levels because they represent where the most trading activity occurred across multiple time periods.
Focus on What Matters
Rather than getting lost in individual session profiles, CTPO shows you the composite levels that have been validated across multiple timeframes. This helps you focus on the levels that are most likely to hold.
How CTPO Works for Market Profile Traders
Automatic Profile Compositing
CTPO uses a proprietary algorithm that:
- Identifies period boundaries based on your selected timeframe (sessions, daily, weekly, monthly, or auto-detection)
- Calculates TPO profiles for each period using the C2M (Composite 2 Method) row sizing calculation
- Merges overlapping profiles using configurable overlap thresholds (default 50% overlap required)
- Updates composite levels as new price action develops in real-time
Key Levels for Market Profile Analysis
The indicator displays:
- Value Area High (VAH) and Value Area Low (VAL) levels calculated from composite TPO data
- Point of Control (POC) levels where most trading occurred across all composited periods
- Composite zones representing areas of balance with configurable transparency
- 1.618 Fibonacci extensions for breakout targets based on composite range
Multiple Timeframe Support
- Sessions: For intraday market profile analysis
- Daily: For swing trading with daily profiles
- Weekly: For position trading with weekly structure
- Monthly: For long-term market profile analysis
- Auto: Automatically selects timeframe based on your chart
Trading Applications for Market Profile Users
Support and Resistance Trading
Use composite levels as dynamic support and resistance zones. These levels often hold because they represent areas where significant trading decisions were made across multiple timeframes.
Breakout Trading
When composite levels break, they often lead to significant moves. The indicator calculates 1.618 Fibonacci extensions to give you clear targets for breakout trades.
Mean Reversion Strategies
Value Area levels represent the price range where most trading activity occurred. These levels often act as magnets, drawing price back when it moves too far from the mean.
Institutional Level Analysis
Composite levels represent areas where institutional traders have made significant decisions. These levels often hold more weight than traditional technical analysis levels because they're based on actual trading activity.
Key Features for Market Profile Traders
Smart Compositing Logic
- Automatic overlap detection using price range intersection algorithms
- Configurable overlap thresholds (minimum 50% overlap required for merging)
- Dead composite identification (profiles that become engulfed by newer composites)
- Real-time updates as new price action develops using barstate.islast optimization
Visual Customization
- Customizable colors for active, broken, and dead composites
- Adjustable transparency levels for each composite state
- Premium/Discount zone highlighting based on current price vs composite range
- TPO aggression coloring using TPO distribution analysis to identify buying/selling pressure
- Fibonacci level extensions with 1.618 target calculations based on composite range
Clean Chart Presentation
- Only shows the most relevant composite levels (maximum 10 active composites)
- Eliminates clutter from individual session profiles
- Focuses on areas of balance that matter most to current price action
Real-World Trading Examples
Day Trading with Session Composites
Use session-based composites to identify intraday areas of balance. The VAH and VAL levels often act as natural profit targets and stop-loss levels for scalping strategies.
Swing Trading with Daily Composites
Daily composites provide excellent swing trading levels. Look for price reactions at composite zones and use the 1.618 extensions for profit targets.
Position Trading with Weekly Composites
Weekly composites help identify major trend changes and long-term areas of balance. These levels often hold for months or even years.
Risk Management
Composite levels provide natural stop-loss levels. If a composite level breaks, it often signals a significant shift in market sentiment, making it an ideal place to exit losing positions.
Why Composite Levels Work
Composite levels work because they represent areas where significant trading decisions were made across multiple timeframes. When price returns to these levels, traders often remember the previous price action and make similar decisions, creating self-fulfilling prophecies.
The compositing process uses a proprietary algorithm that ensures only levels validated across multiple time periods are displayed. This means you're looking at levels that have proven their significance through actual market behavior, not just random technical levels.
Technical Foundation
The indicator uses TPO (Time Price Opportunity) data combined with price action analysis to identify areas of balance. The C2M row sizing method ensures accurate profile calculations, while the overlap detection algorithm (minimum 50% price range intersection) ensures only truly significant composites are displayed. The algorithm calculates row size based on ATR (Average True Range) divided by 10, then converts to tick size for precise level calculations.
How the Code Actually Works
1. Period Detection and ATR Calculation
The code first determines the appropriate timeframe based on your chart:
- 1m-5m charts: Session-based profiles
- 15m-2h charts: Daily profiles
- 4h charts: Weekly profiles
- 1D charts: Monthly profiles
For each period type, it calculates the number of bars needed for ATR calculation:
- Sessions: 540 minutes divided by chart timeframe
- Daily: 1440 minutes divided by chart timeframe
- Weekly: 7 days worth of minutes divided by chart timeframe
- Monthly: 30 days worth of minutes divided by chart timeframe
2. C2M Row Size Calculation
The code calculates True Range for each bar in the determined period:
- True Range = max(high-low, |high-prevClose|, |low-prevClose|)
- Averages all True Range values to get ATR
- Row Size = (ATR / 10) converted to tick size
- This ensures each TPO row represents a meaningful price movement
3. TPO Profile Generation
For each period, the code:
- Creates price levels from lowest to highest price in the range
- Each level is separated by the calculated row size
- Counts how many bars touch each price level (TPO count)
- Finds the level with highest count = Point of Control (POC)
- Calculates Value Area by expanding from POC until 68.27% of total TPO blocks are included
4. Overlap Detection Algorithm
When a new profile is created, the code checks if it overlaps with existing composites:
- Calculates overlap range = min(currentVAH, prevVAH) - max(currentVAL, prevVAL)
- Calculates current profile range = currentVAH - currentVAL
- Overlap percentage = (overlap range / current profile range) * 100
- If overlap >= 50%, profiles are merged into a composite
5. Composite Merging Logic
When profiles overlap, the code creates a new composite by:
- Taking the earliest start bar and latest end bar
- Using the wider VAH/VAL range (max of both profiles)
- Keeping the POC from the profile with more TPO blocks
- Marking the composite as "active" until price breaks through
6. Real-Time Updates
The code uses barstate.islast to optimize performance:
- Only recalculates on the last bar of each period
- Updates active composite with live price action if enabled
- Cleans up old composites to prevent memory issues
- Redraws all visual elements from scratch each bar
7. Visual Rendering System
The code uses arrays to manage drawing objects:
- Clears all lines/boxes arrays on every bar
- Iterates through composites array to redraw everything
- Uses different colors for active, broken, and dead composites
- Calculates 1.618 Fibonacci extensions for broken composites
Getting Started with CTPO
Step 1: Choose Your Timeframe
Select the period type that matches your trading style:
- Use "Sessions" for day trading
- Use "Daily" for swing trading
- Use "Weekly" for position trading
- Use "Auto" to let the indicator choose based on your chart timeframe
Step 2: Customize the Display
Adjust colors, transparency, and display options to match your charting preferences. The indicator offers extensive customization options to ensure it fits seamlessly into your existing analysis.
Step 3: Identify Key Levels
Look for:
- Composite zones (blue boxes) - major areas of balance
- VAH/VAL lines - value area boundaries
- POC lines - areas of highest trading activity
- 1.618 extension lines - breakout targets
Step 4: Develop Your Strategy
Use these levels to:
- Set entry points near composite zones
- Place stop losses beyond composite levels
- Take profits at 1.618 extension levels
- Identify trend changes when major composites break
Perfect for Market Profile Traders
If you're already using market profile concepts in your trading, CTPO eliminates the manual work of compositing profiles across different timeframes. Instead of spending time analyzing each individual period, you get instant access to the composite levels that matter most.
The indicator's automated compositing process ensures you're always looking at the most relevant areas of balance, while its real-time updates keep you informed of changes as they happen. Whether you're a day trader looking for intraday levels or a position trader analyzing long-term structure, CTPO provides the market profile intelligence you need to succeed.
Streamline Your Market Profile Analysis
Stop wasting time on manual compositing. Let CTPO do the heavy lifting while you focus on executing profitable trades based on areas of balance that actually matter.
Ready to Streamline Your Market Profile Trading?
Add the Composite Time Profile Overlay to your charts today and experience the difference that automated profile compositing can make in your trading performance.
ZLEMA Trend Index 2.0ZTI — ZLEMA Trend Index 2.0 (0–1000)
Overview
Price Mapped ZTI v2.0 - Enhanced Zero-Lag Trend Index.
This indicator is a significant upgrade to the original ZTI v1.0, featuring enhanced resolution from 0-100 to 0-1000 levels for dramatically improved price action accuracy. The Price Mapped ZTI uses direct price-to-level mapping to eliminate statistical noise and provide true proportional representation of market movements.
Key Innovation: Instead of statistical normalization, this version maps current price position within a user-defined lookback period directly to the ZTI scale, ensuring perfect correlation with actual price movements. I believe this is the best way to capture trends instead of directly on the charts using a plethora of indicators which introduces bad signals resulting in drawdowns. The RSI-like ZTI overbought and oversold lines filter valid trends by slicing through the current trading zone. Unlike RSI that can introduce false signals, the ZTI levels 1 to 1000 is faithfully mapped to the lowest to highest price in the current trading zone (lookback period in days) which can be changed in the settings. The ZTI line will never go off the beyond the ZTI levels in case of extreme trend continuation as the trading zone is constantly updated to reflect only the most recent bars based on lookback days.
Core Features
✅ 10x Higher Resolution - 0-1000 scale provides granular movement detection
✅ Adjustable Trading Zone - Customizable lookback period from 1-50 days
✅ Price-Proportional Mapping - Direct correlation between price position and ZTI level
✅ Zero Statistical Lag - No rolling averages or standard deviation calculations
✅ Multi-Strategy Adaptability - Single parameter adjustment for different trading styles
Trading Zone Optimization
📊 Lookback Period Strategies
Short-term (1-3 days):
Ultra-responsive to recent price action
Perfect for scalping and day trading
Tight range produces more sensitive signals
Medium-term (7-14 days):
Balanced view of recent trading range
Ideal for swing trading
Captures meaningful support/resistance levels
Long-term (21-30 days):
Broader market context
Excellent for position trading
Smooths out short-term market noise
⚡ Market Condition Adaptation
Volatile Markets: Use shorter lookback (3-5 days) for tighter ranges
Trending Markets: Use longer lookback (14-21 days) for broader context
Ranging Markets: Use medium lookback (7-10 days) for clear boundaries
🎯 Timeframe Optimization
1-minute charts: 1-2 day lookback
5-minute charts: 2-5 day lookback
Hourly charts: 7-14 day lookback
Daily charts: 21-50 day lookback
Trading Applications
Scalping Setup (2-day lookback):
Super tight range for quick reversals
ZTI 800+ = immediate short opportunity
ZTI 200- = immediate long opportunity
Swing Trading Setup (10-day lookback):
Meaningful swing levels captured
ZTI extremes = high-probability reversal zones
More stable signals, reduced whipsaws
Advanced Usage
🔧 Real-Time Adaptability
Trending days: Increase to 14+ days for broader perspective
Range-bound days: Decrease to 3 days for tighter signals
High volatility: Shorter lookback for responsiveness
Low volatility: Longer lookback to avoid false signals
💡 Multi-Timeframe Approach
Entry signals: Use 7-day ZTI on main timeframe
Trend confirmation: Use 21-day ZTI on higher timeframe
Exit timing: Use 3-day ZTI for precise exits
🌐 Session Optimization
Asian session: Shorter lookback (3-5 days) for range-bound conditions
London/NY session: Longer lookback (7-14 days) for trending conditions
How It Works
The indicator maps the current price position within the specified lookback period directly to a 0-1000 scale and plots it using ZLEMA (Zero Lag Exponential Moving Average) which has the least lag of the available popular moving averages:
Price at recent high = ZTI at 1000
Price at recent low = ZTI at 1
Price at mid-range = ZTI at 500
This creates perfect proportional representation where every price movement translates directly to corresponding ZTI movement, eliminating the false signals common in traditional oscillators.
This single, versatile indicator adapts to any market condition, timeframe, or trading style through one simple parameter adjustment, making it an essential tool for traders at every level.
Credits
ZLEMA techniques widely attributed to John Ehlers.
Disclaimer
This tool is for educational purposes only and is not financial advice. Backtest and forward‑test before live use, and always manage risk.
Please note that I set this as closed source to prevent source code cloning by others, repackaging and republishing which results in multiple confusing choices of the same indicator.
Timeframe Resistance Evaluation And Detection - CoffeeKillerTREAD - Timeframe Resistance Evaluation And Detection Guide
🔔 Important Technical Limitation 🔔
**This indicator does NOT fetch true higher timeframe data.** Instead, it simulates higher timeframe levels by aggregating data from your current chart timeframe. This means:
- Results will vary depending on what chart timeframe you're viewing
- Levels may not match actual higher timeframe candle highs/lows
- You might miss important wicks or gaps that occurred between chart timeframe bars
- **Always verify levels against actual higher timeframe charts before trading**
Welcome traders! This guide will walk you through the TREAD (Timeframe Resistance Evaluation And Detection) indicator, a multi-timeframe analysis tool developed by CoffeeKiller that identifies support and resistance confluence across different time periods.(I am 50+ year old trader and always thought I was bad a teaching and explaining so you get a AI guide. I personally use this on the 5 minute chart with the default settings, but to each there own and if you can improve the trend detection methods please DM me. I would like to see the code. Thanks)
Core Components
1. Dual Timeframe Level Tracking
- Short Timeframe Levels: Tracks opening price extremes within shorter periods
- Long Timeframe Levels: Tracks actual high/low extremes within longer periods
- Dynamic Reset Mechanism: Levels reset at the start of each new timeframe period
- Momentum Detection: Identifies when levels change mid-period, indicating active price movement
2. Visual Zone System
- High Zones: Areas between long timeframe highs and short timeframe highs
- Low Zones: Areas between long timeframe lows and short timeframe lows
- Fill Coloring: Dynamic colors based on whether levels are static or actively changing
- Momentum Highlighting: Special colors when levels break during active periods
3. Customizable Display Options
- Multiple Plot Styles: Line, circles, or cross markers
- Flexible Timeframe Selection: Wide range of short and long timeframe combinations
- Color Customization: Separate colors for each level type and momentum state
- Toggle Controls: Show/hide different elements based on trading preference
Main Features
Timeframe Settings
- Short Timeframe Options: 15m, 30m, 1h, 2h, 4h
- Long Timeframe Options: 1h, 2h, 4h, 8h, 12h, 1D, 1W
- Recommended Combinations:
- Scalping: 15m/1h or 30m/2h
- Day Trading: 30m/4h or 1h/4h
- Swing Trading: 4h/1D or 1D/1W
Display Configuration
- Level Visibility: Toggle short/long timeframe levels independently
- Fill Zone Control: Enable/disable colored zones between levels
- Momentum Fills: Special highlighting for actively changing levels
- Line Customization: Width, style, and color options for all elements
Color System
- Short TF High: Default red for resistance levels
- Short TF Low: Default green for support levels
- Long TF High: Transparent red for broader resistance context
- Long TF Low: Transparent green for broader support context
- Momentum Colors: Brighter colors when levels are actively changing
Technical Implementation Details
How Level Tracking Works
The indicator uses a custom tracking function that:
1. Detects Timeframe Periods: Uses `time()` function to identify when new periods begin
2. Tracks Extremes: Monitors highest/lowest values within each period
3. Resets on New Periods: Clears tracking when timeframe periods change
4. Updates Mid-Period: Continues tracking if new extremes are reached
The Timeframe Limitation Explained
`pinescript
// What the indicator does:
short_tf_start = ta.change(time(short_timeframe)) != 0 // Detects 30m period start
= track_highest(open, short_tf_start) // BUT uses chart TF opens!
// What true multi-timeframe would be:
// short_tf_high = request.security(syminfo.tickerid, short_timeframe, high)
`
This means:
- On a 5m chart with 30m/4h settings: Tracks 5m bar opens during 30m and 4h windows
- On a 1m chart with same settings: Tracks 1m bar opens during 30m and 4h windows
- Results will be different between chart timeframes
- May miss important price action that occurred between your chart's bars
Visual Elements
1. Level Lines
- Short TF High: Upper resistance line from shorter timeframe analysis
- Short TF Low: Lower support line from shorter timeframe analysis
- Long TF High: Broader resistance context from longer timeframe
- Long TF Low: Broader support context from longer timeframe
2. Zone Fills
- High Zone: Area between long TF high and short TF high (potential resistance cluster)
- Low Zone: Area between long TF low and short TF low (potential support cluster)
- Regular Fill: Standard transparency when levels are static
- Momentum Fill: Enhanced visibility when levels are actively changing
3. Dynamic Coloring
- Static Periods: Normal colors when levels haven't changed recently
- Active Periods: Momentum colors when levels are being tested/broken
- Confluence Zones: Different intensities based on timeframe alignment
Trading Applications
1. Support/Resistance Trading
- Entry Points: Trade bounces from zone boundaries
- Confluence Areas: Focus on areas where short and long TF levels cluster
- Zone Breaks: Enter on confirmed breaks through entire zones
- Multiple Timeframe Confirmation: Stronger signals when both timeframes align
2. Range Trading
- Zone Boundaries: Use fill zones as range extremes
- Mean Reversion: Trade back toward opposite zone when price reaches extremes
- Breakout Preparation: Watch for momentum color changes indicating potential breakouts
- Risk Management: Place stops outside the opposite zone
3. Trend Following
- Direction Bias: Trade in direction of zone breaks
- Pullback Entries: Enter on pullbacks to broken zones (now support/resistance)
- Momentum Confirmation: Use momentum coloring to confirm trend strength
- Multiple Timeframe Alignment: Strongest trends when both timeframes agree
4. Scalping Applications
- Quick Bounces: Trade rapid moves between zone boundaries
- Momentum Signals: Enter when momentum colors appear
- Short-Term Targets: Use opposite zone as profit target
- Tight Stops: Place stops just outside current zone
Optimization Guide
1. Timeframe Selection
For Different Trading Styles:
- Scalping: 15m/1h - Quick levels, frequent updates
- Day Trading: 30m/4h - Balanced view, good for intraday moves
- Swing Trading: 4h/1D - Longer-term perspective, fewer false signals
- Position Trading: 1D/1W - Major structural levels
2. Chart Timeframe Considerations
**Important**: Your chart timeframe affects results
- Lower Chart TF: More granular level tracking, but may be noisy
- Higher Chart TF: Smoother levels, but may miss important price action
- Recommended: Use chart timeframe 2-4x smaller than short indicator timeframe
3. Display Settings
- Busy Charts: Disable fills, show only key levels
- Clean Analysis: Enable all fills and momentum coloring
- Multi-Monitor Setup: Use different color schemes for easy identification
- Mobile Trading: Increase line width for visibility
Best Practices
1. Level Verification
- Always Cross-Check: Verify levels against actual higher timeframe charts
- Multiple Timeframes: Check 2-3 different chart timeframes for consistency
- Price Action Confirmation: Wait for candlestick confirmation at levels
- Volume Analysis: Combine with volume for stronger confirmation
2. Risk Management
- Stop Placement: Use zones rather than exact prices for stops
- Position Sizing: Reduce size when zones are narrow (higher risk)
- Multiple Targets: Scale out at different zone boundaries
- False Break Protection: Allow for minor zone penetrations
3. Signal Quality Assessment
- Momentum Colors: Higher probability when momentum coloring appears
- Zone Width: Wider zones often provide stronger support/resistance
- Historical Testing: Backtest on your preferred timeframe combinations
- Market Conditions: Adjust sensitivity based on volatility
Advanced Features
1. Momentum Detection System
The indicator tracks when levels change mid-period:
`pinescript
short_high_changed = short_high != short_high and not short_tf_start
`
This identifies:
- Active level testing
- Potential breakout situations
- Increased market volatility
- Trend acceleration points
2. Dynamic Color System
Complex conditional logic determines fill colors:
- Static Zones: Regular transparency for stable levels
- Active Zones: Enhanced colors for changing levels
- Mixed States: Different combinations based on user preferences
- Custom Overrides: User can prioritize certain color schemes
3. Zone Interaction Analysis
- Convergence: When short and long TF levels approach each other
- Divergence: When timeframes show conflicting levels
- Alignment: When both timeframes agree on direction
- Transition: When one timeframe changes while other remains static
Common Issues and Solutions
1. Inconsistent Levels
Problem: Levels look different on various chart timeframes
Solution: Always verify against actual higher timeframe charts
2. Missing Price Action
Problem: Important wicks or gaps not reflected in levels
Solution: Use chart timeframe closer to indicator's short timeframe setting
3. Too Many Signals
Problem: Excessive level changes and momentum alerts
Solution: Increase timeframe settings or reduce chart timeframe granularity
4. Lagging Signals
Problem: Levels seem to update too slowly
Solution: Decrease chart timeframe or use more sensitive timeframe combinations
Recommended Setups
Conservative Approach
- Timeframes: 4h/1D
- Chart: 1h
- Display: Show fills only, no momentum coloring
- Use: Swing trading, position management
Aggressive Approach
- Timeframes: 15m/1h
- Chart: 5m
- Display: All features enabled, momentum highlighting
- Use: Scalping, quick reversal trades
Balanced Approach
- Timeframes: 30m/4h
- Chart: 15m
- Display: Selective fills, momentum on key levels
- Use: Day trading, multi-session analysis
Final Notes
**Remember**: This indicator provides a synthetic view of multi-timeframe levels, not true higher timeframe data. While useful for identifying potential confluence areas, always verify important levels by checking actual higher timeframe charts.
**Best Results When**:
- Combined with actual multi-timeframe analysis
- Used for confluence confirmation rather than primary signals
- Applied with proper risk management
- Verified against price action and volume
**DISCLAIMER**: This indicator and its signals are intended solely for educational and informational purposes. The timeframe limitation means results may not reflect true higher timeframe levels. Always conduct your own analysis and verify levels independently before making trading decisions. Trading involves significant risk of loss.
[tradinghook] - Renko Trend Reversal Strategy V2Title: Renko Trend Reversal Strategy
Short Title: - Renko TRS
> Special thanks to for manually calculating `renkoClose` and `renkoOpen` values in order to remove the infamous repaint issue
Description:
The Renko Trend Reversal Strategy ( - Renko TRS) is a powerful and original trading approach designed to identify trend reversals in financial markets using Renko charts. Renko charts differ from traditional time-based charts, as they focus solely on price movements and ignore time, resulting in a clearer representation of market trends. This strategy leverages Renko charts in conjunction with the Average True Range (ATR) to capture trend reversals with high precision and effectiveness.
Key Concepts:
Renko Charts: Renko charts are unique chart types that only plot price movements beyond a predefined brick size, ignoring time and noise. By doing so, they provide a more straightforward depiction of market trends, eliminating insignificant price fluctuations and making it easier to spot trend reversals.
Average True Range (ATR): The strategy utilizes the ATR indicator, which measures market volatility and provides valuable insights into potential price movements. By setting the brick size of the Renko chart based on the ATR, the strategy adapts to changing market conditions, ensuring optimal performance across various instruments and timeframes.
How it Works:
The Renko Trend Reversal Strategy is designed to identify trend reversal points and generate buy or sell signals based on the following principles:
Renko Brick Generation: The strategy calculates the ATR over a user-defined period (ATR Length) and utilizes this value to determine the size of Renko bricks. Larger ATR values result in bigger bricks, capturing higher market volatility, while smaller ATR values create smaller bricks for calmer market conditions.
Buy and Sell Signals: The strategy generates buy signals when the Renko chart's open price crosses below the close price, indicating a potential bullish trend reversal. Conversely, sell signals are generated when the open price crosses above the close price, suggesting a bearish trend reversal. These signals help traders identify potential entry points to capitalize on market movements.
Stop Loss and Take Profit Management: To manage risk and protect profits, the strategy incorporates dynamic stop-loss and take-profit levels. The stop-loss level is calculated as a percentage of the Renko open price, ensuring a fixed risk amount for each trade. Similarly, the take-profit level is set as a percentage of the Renko open price to secure potential gains.
How to Use:
Inputs: Before using the strategy, traders can customize several parameters to suit their trading preferences. These inputs include the ATR Length, Stop Loss Percentage, Take Profit Percentage, Start Date, and End Date. Adjusting these settings allows users to optimize the strategy for different market conditions and risk tolerances.
Chart Setup: Apply the - Renko TRS script to your desired financial instrument and timeframe on TradingView. The Renko chart will dynamically adjust its brick size based on the ATR Length parameter.
Buy and Sell Signals: The strategy will generate green "Buy" labels below bullish reversal points and red "Sell" labels above bearish reversal points on the Renko chart. These labels indicate potential entry points for long and short trades, respectively.
Risk Management: The strategy automatically calculates stop-loss and take-profit levels based on the user-defined percentages. Traders can ensure proper risk management by using these levels to protect their capital and secure profits.
Backtesting and Optimization: Before implementing the strategy live, traders are encouraged to backtest it on historical data to assess its performance across various market conditions. Adjust the input parameters through optimization to find the most suitable settings for specific instruments and timeframes.
Conclusion:
The - Renko Trend Reversal Strategy is a unique and versatile tool for traders looking to identify trend reversals with greater accuracy. By combining Renko charts and the Average True Range (ATR) indicator, this strategy adapts to market dynamics and provides clear entry and exit signals. Traders can harness the power of Renko charts while effectively managing risk through stop-loss and take-profit levels. Before using the strategy in live trading, backtesting and optimization will help traders fine-tune the parameters for optimal performance. Start exploring trend reversals with the - Renko TRS and take your trading to the next level.
(Note: This description is for illustrative purposes only and does not constitute financial advice. Traders are advised to thoroughly test the strategy and exercise sound risk management practices when trading in real markets.)
[tradinghook] - Renko Trend Reversal Strategy - Renko Trend Reversal Strategy
Short Title: - Renko TRS
Description:
The Renko Trend Reversal Strategy ( - Renko TRS) is a powerful and original trading approach designed to identify trend reversals in financial markets using Renko charts. Renko charts differ from traditional time-based charts, as they focus solely on price movements and ignore time, resulting in a clearer representation of market trends. This strategy leverages Renko charts in conjunction with the Average True Range (ATR) to capture trend reversals with high precision and effectiveness.
Key Concepts:
Renko Charts: Renko charts are unique chart types that only plot price movements beyond a predefined brick size, ignoring time and noise. By doing so, they provide a more straightforward depiction of market trends, eliminating insignificant price fluctuations and making it easier to spot trend reversals.
Average True Range (ATR): The strategy utilizes the ATR indicator, which measures market volatility and provides valuable insights into potential price movements. By setting the brick size of the Renko chart based on the ATR, the strategy adapts to changing market conditions, ensuring optimal performance across various instruments and timeframes.
How it Works:
The Renko Trend Reversal Strategy is designed to identify trend reversal points and generate buy or sell signals based on the following principles:
Renko Brick Generation: The strategy calculates the ATR over a user-defined period (ATR Length) and utilizes this value to determine the size of Renko bricks. Larger ATR values result in bigger bricks, capturing higher market volatility, while smaller ATR values create smaller bricks for calmer market conditions.
Buy and Sell Signals: The strategy generates buy signals when the Renko chart's open price crosses below the close price, indicating a potential bullish trend reversal. Conversely, sell signals are generated when the open price crosses above the close price, suggesting a bearish trend reversal. These signals help traders identify potential entry points to capitalize on market movements.
Stop Loss and Take Profit Management: To manage risk and protect profits, the strategy incorporates dynamic stop-loss and take-profit levels. The stop-loss level is calculated as a percentage of the Renko open price, ensuring a fixed risk amount for each trade. Similarly, the take-profit level is set as a percentage of the Renko open price to secure potential gains.
How to Use:
Inputs: Before using the strategy, traders can customize several parameters to suit their trading preferences. These inputs include the ATR Length, Stop Loss Percentage, Take Profit Percentage, Start Date, and End Date. Adjusting these settings allows users to optimize the strategy for different market conditions and risk tolerances.
Chart Setup: Apply the - Renko TRS script to your desired financial instrument and timeframe on TradingView. The Renko chart will dynamically adjust its brick size based on the ATR Length parameter.
Buy and Sell Signals: The strategy will generate green "Buy" labels below bullish reversal points and red "Sell" labels above bearish reversal points on the Renko chart. These labels indicate potential entry points for long and short trades, respectively.
Risk Management: The strategy automatically calculates stop-loss and take-profit levels based on the user-defined percentages. Traders can ensure proper risk management by using these levels to protect their capital and secure profits.
Backtesting and Optimization: Before implementing the strategy live, traders are encouraged to backtest it on historical data to assess its performance across various market conditions. Adjust the input parameters through optimization to find the most suitable settings for specific instruments and timeframes.
Conclusion:
The - Renko Trend Reversal Strategy is a unique and versatile tool for traders looking to identify trend reversals with greater accuracy. By combining Renko charts and the Average True Range (ATR) indicator, this strategy adapts to market dynamics and provides clear entry and exit signals. Traders can harness the power of Renko charts while effectively managing risk through stop-loss and take-profit levels. Before using the strategy in live trading, backtesting and optimization will help traders fine-tune the parameters for optimal performance. Start exploring trend reversals with the - Renko TRS and take your trading to the next level.
(Note: This description is for illustrative purposes only and does not constitute financial advice. Traders are advised to thoroughly test the strategy and exercise sound risk management practices when trading in real markets.)
ICT Premium/Discount Zones [Exponential-X]Premium/Discount Zones - Visual Market Structure Tool
Overview
This indicator helps traders visualize premium and discount price zones based on recent market structure. It automatically identifies swing highs and lows within a specified lookback period and divides the price range into three key areas: Premium Zone, Equilibrium, and Discount Zone.
What This Indicator Does
The script continuously monitors price action and calculates:
Highest High and Lowest Low within the lookback period
Equilibrium Level - the midpoint between the swing high and low
Premium Zone - the area from equilibrium to the swing high (typically viewed as relatively expensive price levels)
Discount Zone - the area from the swing low to equilibrium (typically viewed as relatively cheap price levels)
Core Calculation Method
The indicator uses pivot point logic to identify significant swing highs and lows based on the pivot strength parameter. It then calculates the highest high and lowest low over the specified lookback period. The equilibrium is computed as the arithmetic mean of these two extremes, creating a fair value reference point.
The zones are dynamically updated as new price data becomes available, ensuring the visualization remains relevant to current market conditions.
Key Features
Dynamic Zone Detection
Automatically adjusts zones based on recent price action
Uses customizable lookback period for flexibility across different timeframes
Employs pivot strength parameter to filter out minor price fluctuations
Visual Clarity
Color-coded zones for easy identification (red for premium, green for discount)
Optional equilibrium line display
Adjustable zone label placement
Customizable color schemes to match your charting preferences
Alert Capabilities
Alerts when price enters the premium zone
Alerts when price enters the discount zone
Alerts when price returns to equilibrium
Helps traders monitor key zone interactions without constant chart watching
Customization Options
Adjustable lookback period (5-500 bars)
Configurable pivot strength for swing detection (1-20 bars)
Control over box extension into the future
Toggle labels and equilibrium line on/off
Full color customization for all visual elements
How to Use This Indicator
Setup
Add the indicator to your chart
Adjust the lookback period to match your trading timeframe (shorter for intraday, longer for swing trading)
Set pivot strength to filter out noise (higher values for major swings, lower for more frequent updates)
Customize colors and labels to your preference
Interpretation
Premium Zone: Price trading here may indicate potential resistance or selling opportunities when aligned with other technical factors
Discount Zone: Price trading here may indicate potential support or buying opportunities when aligned with other technical factors
Equilibrium: Acts as a fair value reference point where price often consolidates or reacts
Trading Applications
This tool works well when combined with other forms of analysis such as:
Trend identification indicators
Volume analysis
Support and resistance levels
Price action patterns
Market structure analysis
Important Considerations
This indicator identifies zones based purely on historical price data
Premium and discount zones are relative to the recent lookback period
The effectiveness varies across different market conditions and timeframes
Should be used as part of a comprehensive trading strategy, not in isolation
Past price structure does not guarantee future price behavior
Technical Details
Calculation Method
Uses Pine Script's ta.pivothigh() and ta.pivotlow() functions for swing detection
Employs ta.highest() and ta.lowest() for range calculation
Updates dynamically with each new bar
Draws zones using box objects for clear visual representation
Performance Optimization
Efficiently manages box and line objects to minimize resource usage
Uses conditional plotting to reduce unnecessary calculations
Limited to essential visual elements for chart clarity
Timeframe Compatibility
This indicator works on all timeframes but the recommended settings vary:
1-5 minute charts: Lookback period 10-20, Pivot strength 3-5
15-60 minute charts: Lookback period 20-50, Pivot strength 5-10
Daily charts: Lookback period 50-100, Pivot strength 10-15
Weekly charts: Lookback period 20-50, Pivot strength 5-10
Adjust these values based on the volatility of your specific instrument.
Limitations and Considerations
What This Indicator Does NOT Do
Does not provide buy or sell signals on its own
Does not predict future price movements
Does not account for fundamental factors or market events
Does not guarantee profitability or accuracy
Market Condition Awareness
In strong trending markets, price may remain in premium or discount zones for extended periods
During ranging conditions, price typically oscillates between zones more predictably
High volatility can cause frequent zone recalculations
Low volatility may result in narrow zones with limited practical use
Risk Considerations
Premium and discount are relative concepts, not absolute values
What appears as a discount zone may continue lower in a downtrend
What appears as a premium zone may continue higher in an uptrend
Always use proper risk management and position sizing
Consider multiple timeframe analysis for context
Version Information
This indicator is written in Pine Script v6, ensuring compatibility with the latest TradingView features and optimal performance.
Final Notes
This tool is designed to enhance your market analysis by providing a clear visual representation of premium and discount price zones. It should be used as one component of a well-rounded trading approach that includes proper risk management, multiple forms of analysis, and realistic expectations about market behavior.
The concept of premium and discount zones is rooted in auction market theory and the idea that price oscillates around fair value. However, traders should understand that these zones are interpretive tools based on historical data and do not constitute trading advice or predictions about future price action.
Remember to backtest any strategy using this indicator on historical data before applying it to live trading, and always trade responsibly within your risk tolerance.
Disclaimer: The information provided by this indicator is for educational and informational purposes only. It does not constitute financial advice, investment advice, trading advice, or any other sort of advice. Always conduct your own research and consult with qualified financial professionals before making trading decisions.
HTF Candles Pro by MurshidFx# HTF Candles Pro by MurshidFx
## Professional Trading Indicator for Multi-Timeframe Market Structure Analysis
**HTF Candles Pro** is an advanced, open-source trading indicator that synthesizes Higher Timeframe (HTF) candle visualization with CISD (Change in State of Delivery) detection, providing comprehensive market structure analysis across multiple timeframes. Designed for traders at all experience levels—from scalpers to swing traders—this tool enables precise alignment of trades with higher timeframe momentum while identifying critical market structure transitions.
---
## Core Functionality
This indicator integrates three essential analytical frameworks:
- **HTF Candle Visualization** – Inspired by the innovative work of Fadi x MMT's MTF Candles indicator
- **CISD Detection System** – Algorithmic identification of significant market structure reversals
- **Intelligent Session Level Management** – Automated consolidation of overlapping session markers for enhanced chart clarity
The result is a sophisticated yet streamlined analytical tool that delivers actionable market insights with minimal visual complexity.
---
## Feature Set
### Higher Timeframe Candle Analysis
Monitor higher timeframe price action seamlessly without chart switching. The indicator employs automatic HTF selection based on current timeframe, with manual override capability.
**Components:**
- **Primary HTF Display**: Automatically positioned adjacent to current price action
- **Secondary HTF Display**: Optional dual-timeframe analysis capability
- **Adaptive Time Labeling**: Context-aware formatting (intraday times, day names, week numbers)
- **Real-Time Countdown**: Optional timer displaying remaining time until HTF candle close
- **Customizable Color Schemes**: Full color customization for bullish and bearish candles
### CISD Detection (Change in State of Delivery)
The CISD system identifies critical inflection points where market structure undergoes directional change, signaling potential trend reversals or continuations.
**Mechanism:**
- **Market Structure Monitoring**: Continuous tracking of swing highs and lows
- **Liquidity Sweep Detection**: Identification of stop-hunt patterns preceding reversals
- **Reversal Confirmation**: Validation-based CISD level plotting upon structure break confirmation
- **Clear Visual Signals**: Bullish CISD (blue) and bearish CISD (red) demarcation
- **Optimized Display**: Default 5-bar line length (adjustable) minimizes chart clutter
**Technical Definition:**
CISD occurs when price breaches structure in one direction—typically sweeping liquidity and triggering stops—then reverses to break structure in the opposite direction, indicating a fundamental shift in market delivery bias.
### Intelligent Session Level Management
Eliminates visual clutter caused by overlapping session opens at identical price levels through automated consolidation.
**Functionality:**
- **Automatic Consolidation**: Merges multiple concurrent session opens into single reference lines
- **Combined Labeling**: Creates unified labels (e.g., "Week-Day Open," "4H-Day-Week Open")
- **Enhanced Clarity**: Maintains professional chart aesthetics while preserving all relevant information
**Supported Session Intervals:**
- 30-Minute Opens
- 4-Hour Opens
- Daily Opens
- Weekly Opens
- Monthly Opens
### Advanced Market Structure Tools
**Liquidity Sweep Identification:**
Highlights price wicks extending beyond previous HTF extremes that close within range—characteristic liquidity grab patterns.
**HTF Midpoint Reference:**
Displays the 50% retracement level of the most recent completed HTF candle, serving as a key reference for entries and profit targets.
**HTF Opening Price:**
Tracks current HTF candle open price, frequently functioning as dynamic support or resistance.
**Interval Demarcation:**
Visual separators defining HTF period boundaries for enhanced temporal clarity.
### Information Dashboard
Compact, customizable dashboard displaying:
- Current symbol and active timeframe
- HTF candle countdown timer
- Active trading session (Asia/London/New York)
- Current date and time
Flexible positioning: configurable for any chart corner.
---
## Default Configuration
Optimized settings for immediate professional-grade chart presentation:
- **Secondary HTF**: Disabled (enable for multi-timeframe comparative analysis)
- **CISD Bullish Color**: Blue (#0080ff) – optimal visibility with reduced eye strain
- **CISD Line Width**: 1 pixel – subtle yet discernible
- **CISD Line Length**: 5 bars – balanced visibility without excessive clutter
- **Session Opens**: Smart consolidation enabled – eliminates overlapping labels
---
## Application Strategies
### Trend Following
1. Monitor CISD confirmations aligned with HTF trend direction
2. Utilize HTF candle color for directional bias confirmation
3. Execute entries on pullbacks to HTF midpoint or open price levels
### Reversal Trading
1. Identify counter-trend CISD formations
2. Await HTF candle close confirming new directional bias
3. Use session opens as secondary confirmation levels
### Scalping
1. Trade exclusively in HTF candle direction
2. Employ lower timeframe CISD signals for precise entry timing
3. Target HTF midpoint or subsequent session open levels
### Structure-Based Trading
1. Mark liquidity sweep levels as potential reversal zones
2. Monitor CISD formations at key session opens
3. Confirm trend changes via HTF candle closes
---
## Customization Parameters
Comprehensive customization options:
- **Color Schemes**: Independent control of bull/bear candles, borders, CISD signals, session levels
- **Dimensional Settings**: Candle width, line thickness, label sizing
- **Display Quantities**: HTF candle count (1-10 range)
- **Positioning**: Candle offset, dashboard placement, label positioning
- **Line Styles**: Solid, dashed, or dotted rendering
- **Timeframe Selection**: Manual secondary HTF specification
---
## Attribution
**HTF Candle Visualization:**
The HTF candle rendering methodology draws inspiration from Fadi x MMT's "MTF Candles" indicator. Their elegant implementation of multi-timeframe candle visualization provided valuable reference for this development. Recognition and appreciation to their contribution to the TradingView community.
**CISD Detection:**
Proprietary CISD detection algorithm engineered to identify market structure transitions with high signal clarity and reduced false positive rate.
**Session Level Consolidation:**
Custom-developed intelligent grouping system addressing the common challenge of overlapping session labels at coincident price levels.
---
## Open Source License
This indicator is released as open source for the TradingView community. Permitted uses include:
- Implementation in live trading
- Educational study for Pine Script learning
- Personal modification and customization
- Distribution among trading communities
Community contributions, improvements, and derivative works are welcomed and encouraged.
---
## Implementation Guide
1. **Installation**: Click "Add to Chart"
2. **Configuration Access**: Open indicator settings panel
3. **Initial Use**: Default settings provide optimal starting configuration
4. **Optional Features**: Enable secondary HTF for multi-timeframe analysis
5. **Theme Integration**: Adjust color schemes to match chart aesthetics
---
## Best Practices
**Timeframe Optimization:**
- 1-5 minute charts: Optimal with 15m or 1H HTF
- 15-30 minute charts: Effective with 4H HTF
- 1-4 hour charts: Suitable for Daily HTF
- Daily charts: Best utilized with Weekly/Monthly HTF
**CISD Trading Guidelines:**
- Require CISD confirmation before position entry
- Prioritize CISD signals at significant levels (session opens, HTF midpoints)
- Confirm CISD direction aligns with HTF candle bias
- Apply contextual filtering—not all CISD signals warrant trades
**Session Open Strategy:**
- Weekly opens typically provide robust support/resistance
- Daily opens offer reliable intraday reference points
- 4-Hour opens effective for short-term scalping
- Consolidated labels (e.g., "Week-Day Open") indicate confluence zones with elevated significance
---
## Technical Specifications
**Performance Optimization:**
- Intelligent object management prevents TradingView rendering limits
- Efficient array processing for session consolidation
- Proper memory management through systematic object deletion
- Consistent performance across all timeframe ranges
**Compatibility:**
- Universal timeframe support
- Optimized for all market types (forex, stocks, crypto, futures)
- Minimal computational overhead
---
## Support & Development
**Feedback Channels:**
- Comment section for user feedback and suggestions
- Bug reports and feature requests welcomed
- Community-driven enhancement consideration
**Documentation:**
- Well-commented source code for learning purposes
- Clear section organization for easy navigation
- Comprehensive type definitions for structural clarity
- Educational value for market structure concept understanding
---
## Version Information
**Version:** 1.0 (Initial Release)
**License:** Open Source
**Category:** Multi-Timeframe Analysis | Market Structure
**Compatibility:** All Timeframes
**Language:** Pine Script v5
---
**For optimal results:**
- Provide feedback through comments
- Share with trading communities
- Submit enhancement suggestions
- Report technical issues for resolution
**Professional Support:**
Available through comment section for technical inquiries, implementation questions, and feature requests.
---
*Developed for the TradingView trading community | Professional-grade market structure analysis | Open source contribution*
Change of Character FanChange of Character Fan
Overview
The Change of Character Fan is designed to help traders detect shifts (changes of character) in market direction and sentiment before they become fully visible through traditional candlestick analysis. Instead of relying solely on the shape or close of candlesticks, this indicator offers a direct, real-time look at the internal price action occurring within a single bar. This visibility into intrabar dynamics can potentially allow traders to enter or exit trades earlier, minimize false signals, and reduce their dependence on multiple lower-timeframe charts.
How it Works:
The indicator plots a "fan" consisting of five distinct slope lines within the current bar. Each line represents the internal trend of price movement based on user-defined lower timeframe data intervals.
By default, these intervals are set to 3, 5, 8, 13, and 21 samples from 1-second timeframe data.
Each line only appears when it has collected the minimum required number of intrabar data points.
The fan lines use a progressive opacity scale (lighter to darker), visually highlighting the confidence level or probability of directional continuation within the current bar.
At the open of every new bar, the fan disappears completely and gradually reappears as new data is gathered, ensuring clarity and eliminating outdated signals.
Understanding the Mathematics: Linear Regression Model
This indicator is built around the concept of a linear regression model. Linear regression is a statistical technique used to model and analyze relationships between variables—in this case, time (independent variable) and price (dependent variable).
How Linear Regression Works:
Linear regression fits a straight line (called a "line of best fit") through a set of data points, minimizing the overall distance between each point and the line itself.
Mathematically, this is achieved by minimizing the squared differences (errors) between the observed values (actual prices) and the predicted values (prices on the line).
The linear model used here can be expressed in the form:
y = mx + b
where:
𝑦
y is the predicted price,
𝑥
x represents time (each data sample interval),
𝑚
m is the slope of the line, representing the direction and velocity of the trend,
𝑏
b is the intercept (the theoretical price when x=0).
Why a Linear Model is Beneficial in this Indicator:
Simplicity and Reliability: Linear regression is simple, robust, and widely accepted as a baseline predictive model. It requires minimal computational resources, providing instant updates in real-time trading conditions.
Immediate Directional Feedback: The slope derived from linear regression immediately communicates the directional tendency of recent price action. A positive slope indicates upward pressure, and a negative slope signals downward pressure.
Noise Reduction: Even when price fluctuations are noisy or erratic, linear regression summarizes overall direction clearly, making it easier to detect genuine directional shifts (change of character) rather than random price noise.
Intrabar Analysis: Traditional candlestick analysis relies on fully formed candles, potentially delaying signals. By using linear regression on very short-term (intrabar) data, traders can detect shifts in momentum more quickly, providing an earlier signal than conventional candle patterns alone.
Practical Application:
This indicator helps traders to visually identify:
Early Trend Reversals: Intrabar analysis reveals momentum shifts potentially signaling reversals before they become obvious on conventional candles.
Momentum Continuations: Confidence is gained when all lines in the fan are clearly pointing in the same direction, indicating strong intrabar conviction.
Reduced False Signals: Traditional candlestick signals (e.g., hammer candles) sometimes produce false signals due to intrabar noise. By looking directly into intrabar dynamics, traders gain better context on whether candle patterns reflect genuine directional change or merely noise.
Important Requirements and Recommendations:
Subscription Requirements:
A TradingView subscription that supports sub-minute data (e.g., 1-second or 5-second resolution) is strongly recommended.
If your subscription doesn't include this data granularity, you must use a 1-minute lower timeframe, significantly reducing responsiveness. In this scenario, it's best suited for a 15-minute or higher chart, adjusting intervals to shorter periods.
Live Data Essential:
Real-time market data subscription is essential for the accuracy and effectiveness of this indicator.
Using delayed data reduces responsiveness and weakens the indicator's primary advantage.
Recommended Settings for Different Chart Timeframes:
1-minute chart: Use 1-second lower timeframe intervals (default intervals: 3, 5, 8, 13, 21).
5-minute chart: Adjust to a 5- or 10-second lower timeframe, possibly reducing intervals to shorter periods (e.g., 3, 5, 8, 10, 12).
15-minute or higher charts: Adjust lower timeframe to 1-minute if granular data is unavailable, with reduced interval lengths to maintain responsiveness.
Conclusion:
The Change of Character Fan empowers traders with early insight into directional shifts within each candle, significantly enhancing reaction speed, signal accuracy, and reducing dependency on multiple charts. Built on robust linear regression mathematics, it combines clarity, responsiveness, and ease-of-use in a powerful intrabar analysis tool.
Trade smarter, see sooner, and react faster.
UM EMA SMA WMA HMA with Directional Color ChangeUM EMA SMA WMA HMA with Directional Color Change
Description:
This is a Swiss Army knife type of Moving Average tool. Select your favorite Moving Average type, EMA - Exponential Moving Average, SMA - Simple Moving Average, WMA - Weighted Moving Average, or HMA - Hull Moving Average. Then selection your number of periods. The MA line is green when trending higher and red when trending lower. The fill between price and the MA line matches the red/green of the direction.
Defaults and Configuration:
The default setting is 65 period and EMA. Line colors and optional fill colors are user-configurable.
Alerts:
An alert can be set on the MA for directional color changes (red to green, or green to red) Right click the indicator and select Add Alert. Then select Bullish or Bearish color change.
Suggested Uses:
Add this to any timeframe chart with your favorite Moving averages. A strategy I use frequently is to "stretch" the Moving average. For example if you like the 8 day moving average on the daily chart, try the 52 period Moving average on the hourly chart. (6.5 market hours per day * 8) By looking at smaller time frames with longer MAs you get smoother color transitions on the Moving average. Add multiple instances of the MA. I prefer to use a smaller quick MA with a longer MA that represents a longer time frame.
Another use case I also like is the color transition over a Moving Average crossover. While I do like the daily 2/6 and 8/3 moving average crossovers, red-to-green and green-to-red color transitions seem to work with less lag than the crossovers.
Suggested Settings:
Daily charts: 8 EMA
Hourly charts: 55 EMA
30 minute charts: 65 WMA. (I like this one for inverse ETFs)
3 minutes charts: 178 EMA and 233 EMA
I also like to round MA settings up or down to the nearest fibonacci number: 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, etc.
chrono_utilsLibrary "chrono_utils"
Collection of objects and common functions that are related to datetime windows session days and time
ranges. The main purpose of this library is to handle time-related functionality and make it easy to reason about a
future bar and see if it is part of a predefined user session and/or inside a datetime window. All existing session
functions I found in the documentation e.g. "not na(time(timeframe, session, timezone))" are not suitable for
strategies, since the execution of the orders is delayed by one bar due to the execution happening at the bar close.
So a prediction for the next bar is necessary. Moreover, a history operator with a negative value is not allowed e.g.
`not na(time(timeframe, session, timezone) )` expression is not valid. Thus, I created this library to overcome
this small but very important limitation. In the meantime, I added useful functionality to handle session-based
behavior. An interesting utility that emerged from this development is data anomaly detection where a comparison
between the prediction and the actual value is happening. If those two values are different then a data inconsistency
happens between the prediction bar and the actual bar (probably due to a holiday or half session day etc..)
exTimezone(timezone)
exTimezone - Convert extended timezone to timezone string
Parameters:
timezone (simple string) : - The timezone or a special string
Returns: string representing the timezone
nameOfDay(day)
nameOfDay - Convert the day id into a short nameOfDay
Parameters:
day (int) : - The day id to convert
Returns: - The short name of the day
today()
today - Get the day id of this day
Returns: - The day id
nthDayAfter(day, n)
nthDayAfter - Get the day id of n days after the given day
Parameters:
day (int) : - The day id of the reference day
n (int) : - The number of days to go forward
Returns: - The day id of the day that is n days after the reference day
nextDayAfter(day)
nextDayAfter - Get the day id of next day after the given day
Parameters:
day (int) : - The day id of the reference day
Returns: - The day id of the next day after the reference day
nthDayBefore(day, n)
nthDayBefore - Get the day id of n days before the given day
Parameters:
day (int) : - The day id of the reference day
n (int) : - The number of days to go forward
Returns: - The day id of the day that is n days before the reference day
prevDayBefore(day)
prevDayBefore - Get the day id of previous day before the given day
Parameters:
day (int) : - The day id of the reference day
Returns: - The day id of the previous day before the reference day
tomorrow()
tomorrow - Get the day id of the next day
Returns: - The next day day id
normalize(num, min, max)
normalizeHour - Check if number is inthe range of
Parameters:
num (int)
min (int)
max (int)
Returns: - The normalized number
normalizeHour(hourInDay)
normalizeHour - Check if hour is valid and return a noralized hour range from
Parameters:
hourInDay (int)
Returns: - The normalized hour
normalizeMinute(minuteInHour)
normalizeMinute - Check if minute is valid and return a noralized minute from
Parameters:
minuteInHour (int)
Returns: - The normalized minute
monthInMilliseconds(mon)
monthInMilliseconds - Calculate the miliseconds in one bar of the timeframe
Parameters:
mon (int) : - The month of reference to get the miliseconds
Returns: - The number of milliseconds of the month
barInMilliseconds()
barInMilliseconds - Calculate the miliseconds in one bar of the timeframe
Returns: - The number of milliseconds in one bar
method init(this, fromDateTime, toDateTime)
init - Initialize the time window object from boolean values of each session day
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object that will hold the from and to datetimes
fromDateTime (int) : - The starting datetime of the time window
toDateTime (int) : - The ending datetime of the time window
Returns: - The time window object
method init(this, refTimezone, chTimezone, fromDateTime, toDateTime)
init - Initialize the time window object from boolean values of each session day
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object that will hold the from and to datetimes
refTimezone (simple string) : - The timezone of reference of the 'from' and 'to' dates
chTimezone (simple string) : - The target timezone to convert the 'from' and 'to' dates
fromDateTime (int) : - The starting datetime of the time window
toDateTime (int) : - The ending datetime of the time window
Returns: - The time window object
method init(this, sun, mon, tue, wed, thu, fri, sat)
init - Initialize the session days object from boolean values of each session day
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
sun (bool) : - Is Sunday a trading day?
mon (bool) : - Is Monday a trading day?
tue (bool) : - Is Tuesday a trading day?
wed (bool) : - Is Wednesday a trading day?
thu (bool) : - Is Thursday a trading day?
fri (bool) : - Is Friday a trading day?
sat (bool) : - Is Saturday a trading day?
Returns: - The session days objectfrom_chart
method init(this, unixTime)
init - Initialize the object from the hour and minute of the session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
unixTime (int) : - The unix time
Returns: - The session time object
method init(this, hourInDay, minuteInHour)
init - Initialize the object from the hour and minute of the session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
hourInDay (int) : - The hour of the time
minuteInHour (int) : - The minute of the time
Returns: - The session time object
method init(this, hourInDay, minuteInHour, refTimezone)
init - Initialize the object from the hour and minute of the session time
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
hourInDay (int) : - The hour of the time
minuteInHour (int) : - The minute of the time
refTimezone (string) : - The timezone of reference of the 'hour' and 'minute'
Returns: - The session time object
method init(this, startTime, endTime)
init - Initialize the object from the start and end session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
startTime (SessionTime) : - The time the session begins
endTime (SessionTime) : - The time the session ends
Returns: - The session time range object
method init(this, startTimeHour, startTimeMinute, endTimeHour, endTimeMinute, refTimezone)
init - Initialize the object from the start and end session time
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
startTimeHour (int) : - The time hour the session begins
startTimeMinute (int) : - The time minute the session begins
endTimeHour (int) : - The time hour the session ends
endTimeMinute (int) : - The time minute the session ends
refTimezone (string)
Returns: - The session time range object
method init(this, days, timeRanges)
init - Initialize the user session object from session days and time range
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
days (SessionDays) : - The session days object that defines the days the session is happening
timeRanges (SessionTimeRange ) : - The array of all the session time ranges during a session day
Returns: - The user session object
method to_string(this)
to_string - Formats the time window into a human-readable string
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The string of the time window
method to_string(this)
to_string - Formats the session days into a human-readable string with short day names
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The string of the session day short names
method to_string(this)
to_string - Formats the session time into a human-readable string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The string of the session time
method to_string(this)
to_string - Formats the session time into a human-readable string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The string of the session time
method to_string(this)
to_string - Formats the user session into a human-readable string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - The string of the user session
method to_string(this)
to_string - Formats the bar into a human-readable string
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The string of the bar times
method to_string(this)
to_string - Formats the chart session into a human-readable string
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
Returns: - The string of the chart session
method get_size_in_secs(this)
get_size_in_secs - Count the seconds from start to end in the given timeframe
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The number of seconds inside the time widow for the given timeframe
method get_size_in_secs(this)
get_size_in_secs - Calculate the seconds inside the session
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The number of seconds inside the session
method get_size_in_bars(this)
get_size_in_bars - Count the bars from start to end in the given timeframe
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The number of bars inside the time widow for the given timeframe
method get_size_in_bars(this)
get_size_in_bars - Calculate the bars inside the session
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The number of bars inside the session for the given timeframe
method from_chart(this)
from_chart - Initialize the session days object from the chart
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
Returns: - The user session object
method from_chart(this)
from_chart - Initialize the session time range object from the chart
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
Returns: - The session time range object
method from_chart(this)
from_chart - Initialize the session object from the chart
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that will hold the days and the time range shown in the chart
Returns: - The chart session object
method to_sess_string(this)
to_sess_string - Formats the session days into a session string with day ids
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object
Returns: - The string of the session day ids
method to_sess_string(this)
to_sess_string - Formats the session time into a session string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The string of the session time
method to_sess_string(this)
to_sess_string - Formats the session time into a session string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The string of the session time
method to_sess_string(this)
to_sess_string - Formats the user session into a session string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - The string of the user session
method to_sess_string(this)
to_sess_string - Formats the chart session into a session string
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
Returns: - The string of the chart session
method from_sess_string(this, sess)
from_sess_string - Initialize the session days object from the session string
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
sess (string) : - The session string part that represents the days
Returns: - The session days object
method from_sess_string(this, sess)
from_sess_string - Initialize the session time object from the session string in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object that will hold the hour and minute of the time
sess (string) : - The session string part that represents the time HHmm
Returns: - The session time object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the session time object from the session string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object that will hold the hour and minute of the time
sess (string) : - The session string part that represents the time HHmm
refTimezone (simple string) : - The timezone of reference of the 'hour' and 'minute'
Returns: - The session time object
method from_sess_string(this, sess)
from_sess_string - Initialize the session time range object from the session string in exchange timezone (syminfo.timezone)
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
sess (string) : - The session string part that represents the time range HHmm-HHmm
Returns: - The session time range object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the session time range object from the session string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
sess (string) : - The session string part that represents the time range HHmm-HHmm
refTimezone (simple string) : - The timezone of reference of the time ranges
Returns: - The session time range object
method from_sess_string(this, sess)
from_sess_string - Initialize the user session object from the session string in exchange timezone (syminfo.timezone)
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
sess (string) : - The session string that represents the user session HHmm-HHmm,HHmm-HHmm:ddddddd
Returns: - The session time range object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the user session object from the session string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
sess (string) : - The session string that represents the user session HHmm-HHmm,HHmm-HHmm:ddddddd
refTimezone (simple string) : - The timezone of reference of the time ranges
Returns: - The session time range object
method nth_day_after(this, day, n)
nth_day_after - The nth day after the given day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
day (int) : - The day id of the reference day
n (int) : - The number of days after
Returns: - The day id of the nth session day of the week after the given day
method nth_day_before(this, day, n)
nth_day_before - The nth day before the given day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
day (int) : - The day id of the reference day
n (int) : - The number of days after
Returns: - The day id of the nth session day of the week before the given day
method next_day(this)
next_day - The next day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The day id of the next session day of the week
method previous_day(this)
previous_day - The previous day that is session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The day id of the previous session day of the week
method get_sec_in_day(this)
get_sec_in_day - Count the seconds since the start of the day this session time represents
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The number of seconds passed from the start of the day until that session time
method get_ms_in_day(this)
get_ms_in_day - Count the milliseconds since the start of the day this session time represents
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The number of milliseconds passed from the start of the day until that session time
method eq(this, other)
eq - Compare two bars
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
other (Bar) : - The bar object to compare with
Returns: - Whether this bar is equal to the other one
method get_open_time(this)
get_open_time - The open time object
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The open time object
method get_close_time(this)
get_close_time - The close time object
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The close time object
method get_time_range(this)
get_time_range - Get the time range of the bar
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The time range that the bar is in
getBarNow()
getBarNow - Get the current bar object with time and time_close timestamps
Returns: - The current bar
getFixedBarNow()
getFixedBarNow - Get the current bar with fixed width defined by the timeframe. Note: There are case like SPX 15min timeframe where the last session bar is only 10min. This will return a bar of 15 minutes
Returns: - The current bar
method is_in_window(this, win)
is_in_window - Check if the given bar is between the start and end dates of the window
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes of the window
win (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - Whether the current bar is inside the datetime window
method is_in_timerange(this, rng)
is_in_timerange - Check if the given bar is inside the session time range
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes
rng (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - Whether the bar is inside the session time range and if this part of the next trading day
method is_in_days(this, days)
is_in_days - Check if the given bar is inside the session days
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if its day is a trading day
days (SessionDays) : - The session days object with the day selection
Returns: - Whether the current bar day is inside the session
method is_in_session(this, sess)
is_in_session - Check if the given bar is inside the session as defined by the input params (what "not na(time(timeframe.period, this.to_sess_string()) )" should return if you could write it
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes
sess (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - Whether the current time is inside the session
method next_bar(this, offsetBars)
next_bar - Predicts the next bars open and close time based on the charts session
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
offsetBars (simple int) : - The number of bars forward
Returns: - Whether the current time is inside the session
DateTimeWindow
DateTimeWindow - Object that represents a datetime window with a beginning and an end
Fields:
fromDateTime (series int) : - The beginning of the datetime window
toDateTime (series int) : - The end of the datetime window
SessionDays
SessionDays - Object that represent the trading days of the week
Fields:
days (map) : - The map that contains all days of the week and their session flag
SessionTime
SessionTime - Object that represents the time (hour and minutes)
Fields:
hourInDay (series int) : - The hour of the day that ranges from 0 to 24
minuteInHour (series int) : - The minute of the hour that ranges from 0 to 59
minuteInDay (series int) : - The minute of the day that ranges from 0 to 1440. They will be calculated based on hourInDay and minuteInHour when method is called
SessionTimeRange
SessionTimeRange - Object that represents a range that extends from the start to the end time
Fields:
startTime (SessionTime) : - The beginning of the time range
endTime (SessionTime) : - The end of the time range
isOvernight (series bool) : - Whether or not this is an overnight time range
UserSession
UserSession - Object that represents a user-defined session
Fields:
days (SessionDays) : - The map of the user-defined trading days
timeRanges (SessionTimeRange ) : - The array with all time ranges of the user-defined session during the trading days
Bar
Bar - Object that represents the bars' open and close times
Fields:
openUnixTime (series int) : - The open time of the bar
closeUnixTime (series int) : - The close time of the bar
chartDayOfWeek (series int)
ChartSession
ChartSession - Object that represents the default session that is shown in the chart
Fields:
days (SessionDays) : - A map with the trading days shown in the chart
timeRange (SessionTimeRange) : - The time range of the session during a trading day
isFinalized (series bool)
Trend Following $BTC - Multi-Timeframe Structure + ReversTREND FOLLOWING STRATEGY - MULTI-TIMEFRAME STRUCTURE BREAKOUT SYSTEM
Strategy Overview
This is an enhanced Turtle Trading system designed for cryptocurrency spot trading. It combines Donchian Channel breakouts with multi-timeframe structure filtering and ATR-based dynamic risk management. The strategy trades both long and short positions using reverse signal exits to maximize trend capture.
Core Features
Multi-Timeframe Structure Filtering
The strategy uses Swing High/Low analysis to identify market structure trends. You can customize the structure timeframe (default: 3 minutes) to match your trading style. Only enters trades aligned with the identified trend direction, avoiding counter-trend positions that often lead to losses.
Reverse Signal Exit System
Instead of using fixed stop-losses or time-based exits, this strategy exits positions only when a reverse entry signal triggers. This approach maximizes trend profits and reduces premature exits during normal market retracements.
ATR Dynamic Pyramiding
Automatically adds positions when price moves 0.5 ATR in your favor. Supports up to 2 units maximum (adjustable). This pyramid scaling enhances profitability during strong trends while maintaining disciplined risk management.
Complete Risk Management
Fixed position sizing at 5000 USD per unit. Includes realistic commission fees of 0.06% (Binance spot rate). Initial capital set at 10,000 USD. All backtest parameters reflect real-world trading conditions.
Trading Logic
Entry Conditions
Long Entry: Close price breaks above the 20-period high AND structure trend is bullish (price breaks above Swing High)
Short Entry: Close price breaks below the 20-period low AND structure trend is bearish (price breaks below Swing Low)
Position Scaling
Long positions: Add when price rises 0.5 ATR or more
Short positions: Add when price falls 0.5 ATR or more
Maximum 2 units including initial entry
Exit Conditions
Long Exit: Triggers when short entry signal appears (price breaks 20-period low + structure turns bearish)
Short Exit: Triggers when long entry signal appears (price breaks 20-period high + structure turns bullish)
Default Parameters
Channel Settings
Entry Channel Period: 20 (Donchian Channel breakout period)
Exit Channel Period: 10 (reserved parameter)
ATR Settings
ATR Period: 20
Stop Loss ATR Multiplier: 2.0
Add Position ATR Multiplier: 0.5
Structure Filter
Swing Length: 300 (Swing High/Low calculation period)
Structure Timeframe: 3 minutes
Adjust these based on your trading timeframe and asset volatility
Position Management
Maximum Units: 2 (including initial entry)
Capital Per Unit: 5000 USD
Visualization Features
Background Colors
Light Green: Bullish market structure
Light Red: Bearish market structure
Dark Green: Long position entry
Dark Red: Short position entry
Optional Display Elements (Default: OFF)
Entry and exit channel lines
Structure high/low reference lines
ATR stop-loss indicator
Next position add level
Entry/exit labels
Alert Message Format
The strategy sends notifications with the following format:
Entry: "5m Long EP:90450.50"
Add Position: "15m Add Long 2/2 EP:91000.25"
Exit: "5m Close Long Reverse Signal"
Where the first part shows your current chart timeframe and EP indicates Entry Price
Backtest Settings
Capital Allocation
Initial Capital: 10,000 USD
Per Entry: 5,000 USD (split into 2 potential entries)
Leverage: 0x (spot trading only)
Trading Costs
Commission: 0.06% (Binance spot VIP0 rate)
Slippage: 0 (adjust based on your experience)
Best Use Cases
Ideal Scenarios
Trending markets with clear directional movement
Moderate to high volatility assets
Timeframes from 1-minute to 4-hour charts
Best suited for major cryptocurrencies with good liquidity
Not Recommended For
Highly volatile choppy/ranging markets
Low liquidity small-cap coins
Extreme market conditions or black swan events
Usage Recommendations
Timeframe Guidelines
1-5 minute charts: Use for scalping, consider Swing Length 100-160
15-30 minute charts: Good for short-term trading, Swing Length 50-100
1-4 hour charts: Suitable for swing trading, Swing Length 20-50
Optimization Tips
Always backtest on historical data before live trading
Adjust swing length based on asset volatility and your timeframe
Different cryptocurrencies may require different parameter settings
Enable visualization options initially to understand entry/exit points
Monitor win rate and drawdown during backtesting
Technical Details
Built on Pine Script v6
No repainting - uses proper bar referencing with offset
Prevents lookahead bias with lookahead=off parameter
Strategy mode with accurate commission and slippage modeling
Multi-timeframe security function for structure analysis
Proper position state tracking to avoid duplicate signals
Risk Disclaimer
This strategy is provided for educational and research purposes only. Past performance does not guarantee future results. Backtesting results may differ from live trading due to slippage, execution delays, and changing market conditions. The strategy performs best in trending markets and may experience drawdowns during ranging conditions. Always practice proper risk management and never risk more than you can afford to lose. It is recommended to paper trade first and start with small position sizes when going live.
How to Use
Add the strategy to your TradingView chart
Select your desired timeframe (1m to 4h recommended)
Adjust parameters based on your risk tolerance and trading style
Review backtest results in the Strategy Tester tab
Set up alerts for automated notifications
Consider paper trading before risking real capital
Tags
Trend Following, Turtle Trading, Donchian Channel, Structure Breakout, ATR, Cryptocurrency, Spot Trading, Risk Management, Pyramiding, Multi-Timeframe Analysis
---
Strategy Name: Trend Following BTC
Version: v1.0
Pine Script Version: v6
Last Updated: December 2025
Breakouts & Pullbacks [Trendoscope®]🎲 Breakouts & Pullbacks - All-Time High Breakout Analyzer
Probability-Based Post-Breakout Behavior Statistics | Real-Time Pullback & Runup Tracker
A professional-grade Pine Script v6 indicator designed specifically for analyzing the historical and real-time behavior of price after strong All-Time High (ATH) breakouts. It automatically detects significant ATH breakouts (with configurable minimum gap), measures the depth and duration of pullbacks, the speed of recovery, and the subsequent run-up strength — then turns all this data into easy-to-read statistical probabilities and percentile ranks.
Perfect for swing traders, breakout traders, and anyone who wants objective, data-driven insight into questions like:
“How deep do pullbacks usually get after a strong ATH breakout?”
“How many bars does it typically take to recover the breakout level?”
“What is the median run-up after recovery?”
“Where is the current pullback or run-up relative to historical ones?”
🎲 Core Concept & Methodology
Indicator is more suitable for indices or index ETFs that generally trade in all-time highs however subjected to regular pullbacks, recovery and runups.
For every qualified ATH breakout, the script identifies 4 distinct phases:
Breakout Point – The exact bar where price closes above the previous ATH after at least Minimum Gap bars.
Pullback Phase – From breakout candle high → lowest low before price recovers back above the breakout level.
Recovery Phase – From the pullback low → the bar where price first trades back above the original breakout price.
Post-Recovery Run-up Phase – From the recovery point → current price (or highest high achieved so far).
Each completed cycle is stored permanently and used to build a growing statistical database unique to the loaded chart and timeframe.
🎲 Visual Elements
Yellow polyline triangle connecting Previous ATH / Pullback point(start), New ATH Breakout point (end), Recovery point (lowest pullback price), and extends to recent ATH price.
Small green label at the pullback low showing detailed tooltip on hover with all measured values
Clean, color-coded statistics table in the top-right corner (visible only on the last bar)
Powerful Statistics Table – The Heart of the Indicator
The table constantly compares the current situation against all past qualified breakouts and shows details about pullbacks, and runups that help us calculate the probability of next pullback, recovery or runup.
🎲 Settings & Inputs
Minimum Gap
The minimum number of bars that must pass between breaking a new ATH and the previous one.
Higher values = stricter filter → only the strongest, cleanest breakouts are counted.
Lower values = more data points (useful on lower timeframes or very trending instruments).
Recommendation:
Daily charts: 30–50
4H charts: 40–80
1H charts: 100–200
🎲 How to Use It in Practice
This indicator helps investors to understand when to be bullish, bearish or cautious and anticipate regular pullbacks, recovery of markets using quantitative methods.
The indicator does not generate buy/sell signals. However, helps traders set expectations and anticipate market movements based on past behavior.
Liquidity Grab + RSI Divergence═══════════════════════════════════════════════════════════════
LIQUIDITY GRAB + RSI DIVERGENCE INDICATOR
═══════════════════════════════════════════════════════════════
📌 OVERVIEW
This indicator identifies high-probability reversals by combining:
• Liquidity sweeps (stop hunts)
• RSI divergence confirmation
• Filters false breakouts automatically
═══════════════════════════════════════════════════════════════
🟢 BUY SIGNAL (Green Triangle Up)
REQUIRES BOTH CONDITIONS:
1. Liquidity Grab Below Previous Low
• Price breaks BELOW recent low
• Candle CLOSES ABOVE that low
• Traps sellers who shorted the breakdown
2. Bullish RSI Divergence
• Price: Lower Low (LL)
• RSI: Higher Low (HL)
• Shows weakening downward momentum
➜ Result: Potential bullish reversal
═══════════════════════════════════════════════════════════════
🔴 SELL SIGNAL (Red Triangle Down)
REQUIRES BOTH CONDITIONS:
1. Liquidity Grab Above Previous High
• Price breaks ABOVE recent high
• Candle CLOSES BELOW that high
• Traps buyers who bought the breakout
2. Bearish RSI Divergence
• Price: Higher High (HH)
• RSI: Lower High (LH)
• Shows weakening upward momentum
➜ Result: Potential bearish reversal
═══════════════════════════════════════════════════════════════
📊 VISUAL INDICATORS
Main Signals:
🔺 Large Green Triangle = BUY (Liq Grab + Bullish Div)
🔻 Large Red Triangle = SELL (Liq Grab + Bearish Div)
Reference Levels:
━ Red Line = Previous High Level
━ Green Line = Previous Low Level
Additional Markers (Optional):
○ Small Green Circle = Liquidity grab low only
○ Small Red Circle = Liquidity grab high only
✕ Small Blue Cross = Bullish divergence only
✕ Small Orange Cross = Bearish divergence only
═══════════════════════════════════════════════════════════════
⚙️ SETTINGS
1. Lookback Period (Default: 20)
• Range: 5-100
• Sets how far back to identify previous highs/lows
• Higher = fewer but stronger levels
• Lower = more frequent but weaker levels
2. RSI Length (Default: 14)
• Range: 5-50
• Standard RSI calculation period
• 14 is industry standard
3. RSI Divergence Lookback (Default: 5)
• Range: 3-20
• Controls pivot point sensitivity
• Higher = fewer divergence signals
• Lower = more divergence signals
4. Show Labels (Default: ON)
• Toggle BUY/SELL text labels
• Disable for cleaner chart view
═══════════════════════════════════════════════════════════════
💡 HOW TO USE
Step 1: WAIT FOR CONFIRMATION
• Only trade LARGE TRIANGLE signals
• Ignore small circles/crosses alone
Step 2: CHECK TIMEFRAME
• Best on: 15min, 1H, 4H, Daily
• Avoid: 1min, 5min (too noisy)
Step 3: CONFIRM CONTEXT
• Check overall market trend
• Identify key support/resistance
• Look for confluence with price action
Step 4: ENTRY & RISK MANAGEMENT
• Enter on signal candle close or pullback
• Stop loss below/above the liquidity grab wick
• Target: Previous swing high/low or key levels
• Risk/Reward: Minimum 1:2 ratio
Step 5: SET ALERTS
• Create alert for "BUY Signal"
• Create alert for "SELL Signal"
• Never miss opportunities
═══════════════════════════════════════════════════════════════
✅ BEST PRACTICES
DO:
✓ Use on multiple timeframes for confluence
✓ Combine with support/resistance zones
✓ Wait for both conditions (liq grab + divergence)
✓ Practice on demo account first
✓ Use proper position sizing
DON'T:
✗ Trade every small circle/cross
✗ Use on very low timeframes (<15min)
✗ Ignore overall market context
✗ Trade without stop loss
✗ Risk more than 1-2% per trade
═══════════════════════════════════════════════════════════════
⚠️ IMPORTANT NOTES
• This is a CONFIRMATION tool, not a holy grail
• No indicator is 100% accurate
• Combine with your trading strategy
• Backtest on your preferred instruments
• Adjust parameters for your trading style
• Higher timeframes = more reliable signals
• Always use risk management
═══════════════════════════════════════════════════════════════
🔔 ALERTS INCLUDED
Two alert conditions are built-in:
1. "BUY Signal" - Liquidity Grab + Bullish RSI Divergence
2. "SELL Signal" - Liquidity Grab + Bearish RSI Divergence
═══════════════════════════════════════════════════════════════
📈 RECOMMENDED SETTINGS BY TIMEFRAME
5-15 Min Charts:
• Lookback: 10-15
• RSI Length: 14
• RSI Div Lookback: 3-5
1H-4H Charts:
• Lookback: 20-30
• RSI Length: 14
• RSI Div Lookback: 5-7
Daily Charts:
• Lookback: 30-50
• RSI Length: 14
• RSI Div Lookback: 7-10
═══════════════════════════════════════════════════════════════
Good luck and trade safe! 🚀
Magnificent 7 OscillatorThe Magnificent 7 Oscillator is a sophisticated momentum-based technical indicator designed to analyze the collective performance of the seven largest technology companies in the U.S. stock market (Apple, Microsoft, Alphabet, Amazon, NVIDIA, Tesla, and Meta). This indicator incorporates established momentum factor research and provides three distinct analytical modes: absolute momentum tracking, equal-weighted market comparison, and relative performance analysis. The tool integrates five different oscillator methodologies and includes advanced breadth analysis capabilities.
Theoretical Foundation
Momentum Factor Research
The indicator's foundation rests on seminal momentum research in financial markets. Jegadeesh and Titman (1993) demonstrated that stocks with strong price performance over 3-12 month periods tend to continue outperforming in subsequent periods¹. This momentum effect was later incorporated into formal factor models by Carhart (1997), who extended the Fama-French three-factor model to include a momentum factor (UMD - Up Minus Down)².
The momentum calculation methodology follows the academic standard:
Momentum(t) = / P(t-n) × 100
Where P(t) is the current price and n is the lookback period.
The focus on the "Magnificent 7" stocks reflects the increasing market concentration observed in recent years. Fama and French (2015) noted that a small number of large-cap stocks can drive significant market movements due to their substantial index weights³. The combined market capitalization of these seven companies often exceeds 25% of the total S&P 500, making their collective momentum a critical market indicator.
Indicator Architecture
Core Components
1. Data Collection and Processing
The indicator employs robust data collection with error handling for missing or invalid security data. Each stock's momentum is calculated independently using the specified lookback period (default: 14 periods).
2. Composite Oscillator Calculation
Following Fama-French factor construction methodology, the indicator offers two weighting schemes:
- Equal Weight: Each active stock receives identical weighting (1/n)
- Market Cap Weight: Reserved for future enhancement
3. Oscillator Transformation Functions
The indicator provides five distinct oscillator types, each with established technical analysis foundations:
a) Momentum Oscillator (Default)
- Pure rate-of-change calculation
- Centered around zero
- Direct implementation of Jegadeesh & Titman methodology
b) RSI (Relative Strength Index)
- Wilder's (1978) relative strength methodology
- Transformed to center around zero for consistency
- Scale: -50 to +50
c) Stochastic Oscillator
- George Lane's %K methodology
- Measures current position within recent range
- Transformed to center around zero
d) Williams %R
- Larry Williams' range-based oscillator
- Inverse stochastic calculation
- Adjusted for zero-centered display
e) CCI (Commodity Channel Index)
- Donald Lambert's mean reversion indicator
- Measures deviation from moving average
- Scaled for optimal visualization
Operational Modes
Mode 1: Magnificent 7 Analysis
Tracks the collective momentum of the seven constituent stocks. This mode is optimal for:
- Technology sector analysis
- Growth stock momentum assessment
- Large-cap performance tracking
Mode 2: S&P 500 Equal Weight Comparison
Analyzes momentum using an equal-weighted S&P 500 reference (typically RSP ETF). This mode provides:
- Broader market momentum context
- Size-neutral market analysis
- Comparison baseline for relative performance
Mode 3: Relative Performance Analysis
Calculates the momentum differential between Magnificent 7 and S&P 500 Equal Weight. This mode enables:
- Sector rotation analysis
- Style factor assessment (Growth vs. Value)
- Relative strength identification
Formula: Relative Performance = MAG7_Momentum - SP500EW_Momentum
Signal Generation and Thresholds
Signal Classification
The indicator generates three signal states:
- Bullish: Oscillator > Upper Threshold (default: +2.0%)
- Bearish: Oscillator < Lower Threshold (default: -2.0%)
- Neutral: Oscillator between thresholds
Relative Performance Signals
In relative performance mode, specialized thresholds apply:
- Outperformance: Relative momentum > +1.0%
- Underperformance: Relative momentum < -1.0%
Alert System
Comprehensive alert conditions include:
- Threshold crossovers (bullish/bearish signals)
- Zero-line crosses (momentum direction changes)
- Relative performance shifts
- Breadth Analysis Component
The indicator incorporates market breadth analysis, calculating the percentage of constituent stocks with positive momentum. This feature provides insights into:
- Strong Breadth (>60%): Broad-based momentum
- Weak Breadth (<40%): Narrow momentum leadership
- Mixed Breadth (40-60%): Neutral momentum distribution
Visual Design and User Interface
Theme-Adaptive Display
The indicator automatically adjusts color schemes for dark and light chart themes, ensuring optimal visibility across different user preferences.
Professional Data Table
A comprehensive data table displays:
- Current oscillator value and percentage
- Active mode and oscillator type
- Signal status and strength
- Component breakdowns (in relative performance mode)
- Breadth percentage
- Active threshold levels
Custom Color Options
Users can override default colors with custom selections for:
- Neutral conditions (default: Material Blue)
- Bullish signals (default: Material Green)
- Bearish signals (default: Material Red)
Practical Applications
Portfolio Management
- Sector Allocation: Use relative performance mode to time technology sector exposure
- Risk Management: Monitor breadth deterioration as early warning signal
- Entry/Exit Timing: Utilize threshold crossovers for position sizing decisions
Market Analysis
- Trend Identification: Zero-line crosses indicate momentum regime changes
- Divergence Analysis: Compare MAG7 performance against broader market
- Volatility Assessment: Oscillator range and frequency provide volatility insights
Strategy Development
- Factor Timing: Implement growth factor timing strategies
- Momentum Strategies: Develop systematic momentum-based approaches
- Risk Parity: Use breadth metrics for risk-adjusted portfolio construction
Configuration Guidelines
Parameter Selection
- Momentum Period (5-100): Shorter periods (5-20) for tactical analysis, longer periods (50-100) for strategic assessment
- Smoothing Period (1-50): Higher values reduce noise but increase lag
- Thresholds: Adjust based on historical volatility and strategy requirements
Timeframe Considerations
- Daily Charts: Optimal for swing trading and medium-term analysis
- Weekly Charts: Suitable for long-term trend analysis
- Intraday Charts: Useful for short-term tactical decisions
Limitations and Considerations
Market Concentration Risk
The indicator's focus on seven stocks creates concentration risk. During periods of significant rotation away from large-cap technology stocks, the indicator may not represent broader market conditions.
Momentum Persistence
While momentum effects are well-documented, they are not permanent. Jegadeesh and Titman (1993) noted momentum reversal effects over longer time horizons (2-5 years).
Correlation Dynamics
During market stress, correlations among the constituent stocks may increase, reducing the diversification benefits and potentially amplifying signal intensity.
Performance Metrics and Backtesting
The indicator includes hidden plots for comprehensive backtesting:
- Individual stock momentum values
- Composite breadth percentage
- S&P 500 Equal Weight momentum
- Relative performance calculations
These metrics enable quantitative strategy development and historical performance analysis.
References
¹Jegadeesh, N., & Titman, S. (1993). Returns to buying winners and selling losers: Implications for stock market efficiency. Journal of Finance, 48(1), 65-91.
Carhart, M. M. (1997). On persistence in mutual fund performance. Journal of Finance, 52(1), 57-82.
Fama, E. F., & French, K. R. (2015). A five-factor asset pricing model. Journal of Financial Economics, 116(1), 1-22.
Wilder, J. W. (1978). New concepts in technical trading systems. Trend Research.
Time HighlightHow This Works:
Time Conversion: The script converts the current time to HHMM format (e.g., 9:16 becomes 916) for easy comparison.
Timeframe Detection: It checks the current chart's timeframe:
For 1-minute charts: Exactly matches the target times
For 5-minute charts: Checks if the target time falls within the 5-minute window
For 15-minute charts: Checks if the target time falls within the 15-minute window
Highlighting: When the condition is met, it highlights the candle with a semi-transparent yellow color.
Note:
The script will work on 1-minute, 5-minute, and 15-minute timeframes only
The highlight appears on the candle that contains the specified time
The transparency is set to 70% so you can still see the candle through the highlight
You can adjust the transparency level by changing the transp parameter (0 = fully opaque, 100 = fully transparent).
make a pine script which change the color of the candle in yellow color in 1,5,15 timeframe at the time of 9:16, 9:31, 9:46
COVID Statistics Tracker & Model Projections by Cryptorhythms😷 COVID-19 Coronavirus Tracker & Statistics Tools by Cryptorhythms 😷
📜Intro
I wanted to put some more meaning behind the numbers for 2020's Covid pandemic. I hope this tool can help people analyze and deal with these hard times. With these metrics I hope to give greater depth and dimension to whats available. While also at the same time creating something that looks decently presentable and gives actionable information.
I had planned on including a few forecasting models and letting the user play with values to see how social distancing works. But alas I couldnt complete those in the scope of time I gave myself for the indicator. If you are interested in collaborating on it, I will share what I have with you and we can further work on it.
📋Description
The script contains 3 main parts you will interact with. I suggest you enable the chart labels for "indicator name" and "indicator last value" to make the charts more readable (right click on the scale of your chart and goto the "labels" pop out menu). Depending on what plots and data you choose to chart, logarithmic and regular scales can both be applied in different situations. To get similar visuals to the examples I will show below, you can goto the indicator options > style tab. I then play with the line styles, colors and transparencies to achieve the nice looking charts. Please also note there is a distinction between "Infected" and "Infectious". A model telling you the number of infected doesnt designate whether that person can still pass the virus on to others (infectious). So Infectious numbers are usually lower than total confirmed, but this isnt always the case if for example a country wasnt testing very much during the early phase or something else.
🚧Disclaimer
I am not a medical professional and none of this should be considered medical advice. All of the models, numbers and math I sourced from professional places but this is not a guarantee of the future only an approximation based on current information. Numbers change daily and so can these models!
🌐PART ONE
In this area you select a region to read the proper statistics data from tradingview. You can do global totals, country totals, or for a few places (AU, CA, CN, US) you can see state/province totals. Remember to SELECT ONLY ONE region.
🧮PART TWO
The Plots/Stats/Data section includes:
1. ) Plot the Days to Double Number of Confirmed
2. ) Plot the Infection Growth Ratio
3. ) Plot Fatality Risk Rate (Total Deaths / Total Outcomes)
4. ) Plot Overall Fatality Rate / Recovery Rate
5. ) Plot % of World Infected & % of USA Infected
6. ) Plot Daily New Deaths, Confirmed & Recovered
7. ) Plot Daily Change Percentages
🎱PART THREE
Forecasting Models and Settings:
1 .) Plot the % of Custom Population Infected (Vs. the Region Selected in Part 1 of Settings)
2 .) Plot the True Num. of Infectious (Death Model / DM)
3 .) Plot the Current and Next Weeks Cumulative Infection Projection (DM)
4 .) Plot Estimated Infection Rates? (DM)
5 .) Enable Basic Trajectory Projection?
6 .) Plot the Likelihood of > 0 **Infectious** in a Group (DM) for Today, Tomorrow and Next Week
7 .) Plot the True Num. of Infected (Confirmed/Tested Model)
8 .) Plot the Estimated Epidemiology for 7 and 14 Days Out (Hospital Beds, ICU Beds, Ventilator Units)
Planned But not completed
9.) SIR Epidemiology Model
10.) Exponential Growth Plot & Correlation
To use the Estimator for likelihood of Infected in N group of people you need to do 2 things. Select and use "Custom Population" as the population source for part 3. Then you need to enable "Custom Infected" as the source for the model. Then you enter your geographical area's population and confirmed cases. Its best to goto the smallest / most granular level of data available to accurately estimate the likelihood. So for instance in the order of least effective to most effective data source: global, country, state, county, city...etc.
If you do not understand what these terms or numbers represent, please read the source materials I have linked in the code, or use google. I dont have the time or expertise to explain all the various specific methods and terms included here. This entire project was a learning journey for me and I have zero experience in epidemiology so please excuse any errors I may have made. (and tell me, so I can change it!)
🔮Future Additions
If anyone has a model or stat they would like included I will be happy to add your code to this toolbox to make it more effective and give you credit here in the description. If you want to collaborate please message me.
📊Some Example Charts:
The Cryptorhythms Team wish you and your families all the absolute best of health!
P.S. Stay safe and act smart I dont think this will be the EOTW.
CDP - Counter-Directional-Pivot🎯 CDP - Counter-Directional-Pivot
📊 Overview
The Counter-Directional-Pivot (CDP) indicator calculates five critical price levels based on the previous day's OHLC data, specifically designed for multi-timeframe analysis. Unlike standard pivot points, CDP levels are calculated using a unique formula that identifies potential reversal zones where price action often changes direction.
⚡ What Makes This Script Original
This implementation solves several technical challenges that existing pivot indicators face:
🔄 Multi-Timeframe Consistency: Values remain identical across all timeframes (1m, 5m, 1h, daily) - a common problem with many pivot implementations
🔒 Intraday Stability: Uses advanced value-locking technology to prevent the "stepping" effect that occurs when pivot lines shift during the trading session
💪 Robust Data Handling: Optimized for both liquid and illiquid stocks with enhanced data synchronization
🧮 CDP Calculation Formula
The indicator calculates five key levels using the previous day's High (H), Low (L), and Close (C):
CDP = (H + L + C) ÷ 3 (Central Decision Point)
AH = 2×CDP + H – 2×L (Anchor High - Strong Resistance)
NH = 2×CDP – L (Near High - Moderate Resistance)
AL = 2×CDP – 2×H + L (Anchor Low - Strong Support)
NL = 2×CDP – H (Near Low - Moderate Support)
✨ Key Features
🎨 Visual Elements
📈 Five Distinct Price Levels: Each with customizable colors and line styles
🏷️ Smart Label System: Shows exact price values for each level
📋 Optional Value Table: Displays all levels in an organized table format
🎯 Clean Chart Display: Minimal visual clutter while maximizing information
⚙️ Technical Advantages
🔐 Session-Locked Values: Prices are locked at market open, preventing intraday shifts
🔄 Multi-Timeframe Sync: Perfect consistency between daily and intraday charts
✅ Data Validation: Built-in checks ensure reliable calculations
🚀 Performance Optimized: Efficient code structure for fast loading
💼 Trading Applications
🔄 Reversal Zones: AH and AL often act as strong turning points
💥 Breakout Confirmation: Price movement beyond these levels signals trend continuation
🛡️ Risk Management: Use levels for stop-loss and take-profit placement
🏗️ Market Structure: Understand daily ranges and potential price targets
📚 How to Use
🚀 Basic Setup
Add the indicator to your chart (works on any timeframe)
Customize colors for easy identification of support/resistance zones
Enable the value table for quick reference of exact price levels
📈 Trading Strategy Examples
🟢 Long Bias: Look for bounces at NL or AL levels
🔴 Short Bias: Watch for rejections at NH or AH levels
💥 Breakout Trading: Enter positions when price decisively breaks through anchor levels
↔️ Range Trading: Use CDP as the central reference point for range-bound markets
🎯 Advanced Strategy Combinations
RSI Integration for Enhanced Signals: 📊
📉 Oversold Bounces: Combine RSI below 30 with price touching AL/NL levels for high-probability long entries
📈 Overbought Rejections: Look for RSI above 70 with price rejecting AH/NH levels for short opportunities
🔍 Divergence Confirmation: When RSI shows bullish divergence at support levels (AL/NL) or bearish divergence at resistance levels (AH/NH), it often signals stronger reversal potential
⚡ Momentum Confluence: RSI crossing 50 while price breaks through CDP can confirm trend direction changes
⚙️ Configuration Options
🎨 Line Customization: Adjust width, style (solid/dashed/dotted), and colors
👁️ Display Preferences: Toggle individual levels, labels, and value table
📍 Table Position: Place the value table anywhere on your chart
🔔 Alert System: Get notifications when price crosses key levels
🔧 Technical Implementation Details
🎯 Data Reliability
The script uses request.security() with lookahead settings to ensure historical accuracy while maintaining real-time functionality. The value-locking mechanism prevents the common issue where pivot levels shift during the trading day.
🔄 Multi-Timeframe Logic
⏰ Intraday Charts: Display previous day's calculated levels as stable horizontal lines
📅 Daily Charts: Show current day's levels based on yesterday's OHLC
🔍 Consistency Check: All timeframes reference the same source data
🤔 Why CDP vs Standard Pivots?
Counter-Directional Pivots often provide more accurate reversal points than traditional pivot calculations because they incorporate the relationship between high/low ranges and closing prices more effectively. The formula creates levels that better reflect market psychology and institutional trading behaviors.
💡 Best Practices
💧 Use on liquid markets for most reliable results
📊 RSI Combination: Add RSI indicator for overbought/oversold confirmation and divergence analysis
📊 Combine with volume analysis for confirmation
🔍 Consider multiple timeframe analysis (daily levels on hourly charts)
📝 Test thoroughly in paper trading before live implementation
💪 Example Market Applications
NASDAQ:AAPL AAPL - Tech stock breakouts through AH levels
$NYSE:SPY SPY - Index trading with CDP range analysis
NASDAQ:TSLA TSLA - Volatile stock reversals at AL/NL levels
⚠️ This indicator is designed for educational and analytical purposes. Always combine with proper risk management and additional technical analysis tools.
Rate of Change HistogramExplanation of Modifications
Converting ROC to Histogram:
Original ROC: The ROC is calculated as roc = 100 * (source - source ) / source , plotted as a line oscillating around zero.
Modification: Instead of plotting roc as a line, it’s now plotted as a histogram using style=plot.style_columns. This makes the ROC values visually resemble the MACD histogram, with bars extending above or below the zero line based on momentum.
Applying MACD’s Four-Color Scheme:
Logic: The histogram’s color is determined by:
Above Zero (roc >= 0): Bright green (#26A69A) if ROC is rising (roc > roc ), light green (#B2DFDB) if falling (roc < roc ).
Below Zero (roc < 0): Bright red (#FF5252) if ROC is falling (roc < roc ), light red (#FFCDD2) if rising (roc > roc ).
Implementation: Used the exact color logic and hex codes from the MACD code, applied to the ROC histogram. This highlights momentum ebbs (falling ROC, fading waves) and flows (rising ROC, strengthening waves).
Removing Signal Line:
Unlike the previous attempt, no signal line is added. The histogram is purely the ROC value, ensuring it directly reflects price change momentum without additional smoothing, making it faster and more responsive to pulse waves, as you indicated ROC performs better than other oscillators.
Alert Conditions:
Added alerts to match the MACD’s logic, triggering when the ROC histogram crosses the zero line:
Rising to Falling: When roc >= 0 and roc < 0, signaling a potential wave peak (e.g., end of Wave 3 or C).
Falling to Rising: When roc <= 0 and roc > 0, indicating a potential wave bottom (e.g., start of Wave 1 or rebound).
These alerts help identify transitions in 3-4 wave pulse patterns.
Plotting:
Histogram: Plotted as columns (plot.style_columns) with the four-color scheme, directly representing ROC momentum.
Zero Line: Kept the gray zero line (#787B86) for reference, consistent with the MACD.
Removed ROC Line/Signal Line: Since you want the ROC to act as the histogram itself, no additional lines are plotted.
Inputs:
Retained the original length (default 9) and source (default close) inputs for consistency.
Removed signal-related inputs (e.g., signal_length, sma_signal) as they’re not needed for a pure ROC histogram.
How This ROC Histogram Works for Wave Pulses
Wave Alignment:
Above Zero (Bullish Momentum): Positive ROC bars indicate flows (e.g., impulse Waves 1, 3, or rebounds in Wave B/C). Bright green bars show accelerating momentum (strong pulses), while light green bars suggest fading momentum (potential wave tops).
Below Zero (Bearish Momentum): Negative ROC bars indicate ebbs (e.g., corrective Waves 2, 4, A, or C). Bright red bars show increasing bearish momentum (strong pullbacks), while light red bars suggest slowing declines (potential wave bottoms).
3-4 Wave Pulses:
In a 3-wave A-B-C correction: Wave A (down) shows bright red bars (falling ROC), Wave B (up) shows bright/light green bars (rising ROC), and Wave C (down) shifts back to red bars.
In a 4-wave consolidation: Alternating green/red bars highlight the rhythmic ebbs and flows as momentum oscillates.
Timing:
Zero-line crossovers mark wave transitions (e.g., from Wave 2 to Wave 3).
Color changes (e.g., bright to light green) signal momentum shifts within waves, helping identify pulse peaks/troughs.
Advantages Over MACD:
The ROC histogram is more responsive than the MACD histogram because ROC directly measures price change percentage, while MACD relies on moving average differences, which introduce lag. This makes the ROC histogram better for capturing rapid 3-4 wave pulses, as you noted.
Example Usage
For a stock with 3-4 wave pulses on a 5-minute chart:
Wave 1 (Flow): ROC rises above zero, histogram turns bright green (rising momentum), indicating a strong bullish pulse.
Wave 2 (Ebb): ROC falls below zero, histogram shifts to bright red (falling momentum), signaling a corrective pullback.
Wave 3 (Flow): ROC crosses back above zero, histogram becomes bright green again, confirming a powerful pulse.
Wave 4 (Ebb): ROC dips slightly, histogram turns light green (falling momentum above zero) or light red (rising momentum below zero), indicating consolidation.
Alerts trigger on zero-line crosses (e.g., from Wave 2 to Wave 3), helping time trades.
Settings Recommendations
Default (length=9): Works well for most time frames, balancing sensitivity and smoothness.
Intraday Pulses: Use length=5 or length=7 for faster signals on 5-minute or 15-minute charts.
Daily Charts: Try length=12 or length=14 for broader wave cycles.
Testing: Apply to a stock with clear wave patterns (e.g., tech stocks like AAPL or TSLA) and adjust length to match the pulse frequency you observe.
Notes
Confirmation: Pair the ROC histogram with price action (e.g., Fibonacci retracements, support/resistance) to validate wave counts, as momentum oscillators can be noisy in choppy markets.
Divergences: Watch for divergences (e.g., price makes a higher high, but ROC histogram bars are lower) to spot wave reversals, especially at Wave 3 or C ends.
Comparison to MACD: The ROC histogram is faster and more direct, making it ideal for short-term pulse waves, but it may be more volatile, so use with technical levels for precision.
Multi-Timeframe VWAP Master ProThe Multi-Timeframe VWAP Suite is a comprehensive and highly customizable indicator designed for traders who rely on Volume-Weighted Average Price (VWAP) across multiple timeframes and periods. This tool provides a complete suite of VWAP calculations, including daily, weekly, monthly, quarterly, yearly, and custom VWAPs, allowing traders to analyze price action and volume trends with precision. Whether you're a day trader, swing trader, or long-term investor, this indicator offers unparalleled flexibility and depth for your trading strategy.
Multi-Timeframe VWAPs:
Daily, Weekly, Monthly, Quarterly, and Yearly VWAPs: Track VWAP across various timeframes to identify key support and resistance levels.
Customizable Timeframes: Use the SMA timeframe input to adjust the period for moving averages and other calculations.
Previous Period VWAPs:
Previous Daily, Weekly, Monthly, and Quarterly VWAPs: Analyze historical VWAP levels to understand past price behavior and identify potential reversal zones.
Previous Year Quarterly VWAPs: Compare current price action to VWAP levels from specific quarters of the previous year.
Custom VWAPs:
Custom Start Date and Timeframe: Define your own VWAP periods by specifying a start date and timeframe, allowing for tailored analysis.
Dynamic Custom VWAP Calculation: Automatically calculates VWAP based on your custom inputs, ensuring flexibility for unique trading strategies.
Seasonal and Yearly VWAPs:
April, July, and October VWAPs: Analyze seasonal trends by tracking VWAP levels for specific months.
Yearly VWAP: Get a broader perspective on long-term price trends with the yearly VWAP.
SMA Integration:
SMA Overlay: Combine VWAP analysis with a Simple Moving Average (SMA) for additional confirmation of trends and reversals.
Customizable SMA Length and Timeframe: Adjust the SMA settings to match your trading style and preferences.
User-Friendly Customization:
Toggle Visibility and Labels: Easily enable or disable the display of specific VWAPs and their labels to keep your chart clean and focused.
Color Customization: Each VWAP line and label is color-coded for easy identification and can be customized to suit your preferences.
Dynamic Labeling:
Automatic Labels: Labels are dynamically placed on the last bar, providing clear and concise information about each VWAP level.
Customizable Label Text: Labels include detailed information, such as the timeframe or custom period, for quick reference.
Flexible Timeframe Detection:
Automatic Timeframe Detection: The indicator automatically detects new days, weeks, months, and quarters, ensuring accurate VWAP calculations.
Support for Intraday and Higher Timeframes: Works seamlessly on all chart timeframes, from 1-minute to monthly charts.
Previous Year Quarterly VWAPs:
Q1, Q2, Q3, Q4 VWAPs: Compare current price action to VWAP levels from specific quarters of the previous year.
User-Selectable Year: Choose the year for which you want to calculate previous quarterly VWAPs.
Persistent Monthly VWAPs:
Option to Persist Monthly VWAPs Year-Round: Keep monthly VWAP levels visible even after the month ends for ongoing analysis.
Comprehensive Analysis: Combines multiple VWAP timeframes and periods into a single tool, eliminating the need for multiple indicators.
Customizable and Flexible: Tailor the indicator to your specific trading strategy with customizable timeframes, periods, and settings.
Enhanced Decision-Making: Gain deeper insights into price action and volume trends across different timeframes, helping you make more informed trading decisions.
Clean and Organized Charts: Toggle visibility and labels to keep your chart clutter-free while still accessing all the information you need.
Ideal For:
Day Traders: Use daily and intraday VWAPs to identify intraday support and resistance levels.
Swing Traders: Analyze weekly and monthly VWAPs to spot medium-term trends and reversals.
Long-Term Investors: Leverage quarterly and yearly VWAPs to understand long-term price behavior and key levels.
Seasonal Traders: Track April, July, and October VWAPs to capitalize on seasonal trends.
The Multi-Timeframe VWAP Suite is a powerful and versatile tool for traders of all styles and timeframes. With its comprehensive suite of VWAP calculations, customizable settings, and user-friendly design, it provides everything you need to analyze price action and volume trends with precision and confidence. Whether you're looking to fine-tune your intraday strategy or gain a broader perspective on long-term trends, this indicator has you covered.
Unmitigated 50% of the RangeThis indicator is designed to display unmitigated 50% zones of price ranges within two swing (High and Low) points. The 50% level serves as a probable target for retracements before the price resumes its movement in the direction of the most recent swing. The underlying theory is that Price Action tends to correct unbalanced price zones by returning to 50% of the range.
The indicator identifies highs and lows utilizing the “Left Swing Sensitivity” setting, which detects the high/low points within the specified number of bars. It then ensures that the zone meets a minimum size requirement, configured via the “Minimum Leg Size” setting, to filter out smaller legs/zones that would not provide sufficient profit and loss opportunities for entries at 50% and take profit at the most recent swing point.
To prevent duplication of zones when the price is gradually moving up, an "Auto Adjust Levels" setting is available. Enabled by default, this feature automatically cleans up smaller zones, retaining only the primary zone between the most recent swing point and the outer swing.
Additionally, the indicator automatically removes mitigated zones where the price has returned to the 50% level, thus maintaining clean charts.
There are several visualization settings available, offering comprehensive control over what is displayed on the charts:
Control the color and style of the lines representing the 1, 0, and 50% levels.
Choose whether to display labels and if they should show the price at the rendered levels.
Optionally extend the lines/labels to the right for each level.
Multi-Chart Widget [LuxAlgo]The Multi-Chart Widget tool is a comprehensive solution crafted for traders and investors looking to analyze multiple financial instruments simultaneously. With the capability to showcase up to three additional charts, users can customize each chart by selecting different financial instruments, and timeframes.
Users can add various widely used technical indicators to the charts such as the relative strength index, Supertrend, moving averages, Bollinger Bands...etc.
🔶 USAGE
The tool offers traders and investors a comprehensive view of multiple charts simultaneously. By displaying up to three additional charts alongside the primary chart, users can analyze assets across different timeframes, compare their performance, and make informed decisions.
Users have the flexibility to choose from various customizable chart types, including the recently added "Volume Candles" option.
This tool allows adding to the chart some of the most widely used technical indicators, such as the Supertrend, Bollinger Bands, and various moving averages.
In addition to the charting capabilities, the tool also features a dynamic statistic panel that provides essential metrics and key insights into the selected assets. Users can track performance indicators such as relative strength, trend, and volatility, enabling them to identify trends, patterns, and trading opportunities efficiently.
🔶 DETAILS
A brief overview of the indicators featured in the statistic panel is given in the sub-section below:
🔹Dual Supertrend
The Dual Supertrend is a modified version of the Supertrend indicator, which is based on the concept of trend following. It generates buy or sell signals by analyzing the asset's price movement. The Dual Supertrend incorporates two Supertrend indicators with different parameters to provide potentially more accurate signals. It helps traders identify trend reversals and establish trend direction in a more responsive manner compared to a single Supertrend.
🔹Relative Strength Index
The Relative Strength Index is a momentum oscillator that measures the speed and change of price movements. RSI oscillates between 0 and 100 and is typically used to identify overbought or oversold conditions in a market. Traditionally, RSI values above 70 are considered overbought, suggesting that the asset may be due for a reversal or correction, while RSI values below 30 are considered oversold, indicating potential buying opportunities.
🔹Volatility
Volatility in trading refers to the degree of variation or fluctuation in the price of a financial instrument, such as a stock, currency pair, or commodity, over a certain period of time. It is a measure of the speed and magnitude of price changes and reflects the level of uncertainty or risk in the market. High volatility implies that prices are experiencing rapid and significant movements, while low volatility suggests that prices are relatively stable and are not changing much. Traders often use volatility as an indicator to assess the potential risk and return of an investment and to make informed decisions about when to enter or exit trades.
🔹R-Squared (R²)
R-squared, also known as the coefficient of determination, is a statistical measure that indicates the proportion of the variance in the dependent variable that is predictable from the independent variable(s). In other words, it quantifies the goodness of fit of a regression model to the observed data. R-squared values range from %0 to %100, with higher values indicating a better fit of the model to the data. An R-squared of 100% means that all movements of a security are completely explained by movements in the index, while an R-squared value of %0 indicates that the model does not explain any of the variability in the dependent variable.
In simpler terms, in investing, a high R-squared, from 85% to 100%, indicates that the stock’s or fund’s performance moves relatively in line with the index. Conversely, a low R-squared (around 70% or less) indicates that the fund's performance tends to deviate significantly from the movements of the index.
🔶 SETTINGS
🔹Mini Chart(s) Generic Settings
Mini Charts Separator: This option toggles the visibility of the separator lines.
Number Of Bars: Specifies the number of bars to be displayed for each mini chart.
Horizontal Offset: Determines the distance at which the mini charts will be displayed from the primary chart.
🔹Mini Chart Settings: Top - Middle - Bottom
Mini Chart Top/Middle/Bottom: Toggle the visibility of the selected mini chart.
Symbol: Choose the financial instrument to be displayed in the mini chart. If left as an empty string, it will default to the current chart instrument.
Timeframe: This option determines the timeframe used for calculating the mini charts. If a timeframe lower than the chart's timeframe is selected, the calculations will be based on the chart's timeframe.
Chart Type: Selection from various chart types for the mini charts, including candles, volume candles, line, area, columns, high-low, and Heikin Ashi.
Chart Size: Determines the size of the mini chart.
Technical Indicator: Selection from various technical indicators to be displayed on top of the mini charts.
Note : Chart sizing is relative to other mini charts. For example, If all the mini charts are sized to x5 relative to each other, the result will be the same as if they were all sized as x1. This is because the relative proportions between the mini charts remain consistent regardless of their absolute sizes. Therefore, their positions and sizes relative to each other remain unchanged, resulting in the same visual representation despite the differences in absolute scale.
🔹Supertrend Settings
ATR Length: is the lookback length for the ATR calculation.
Factor: is what the ATR is multiplied by to offset the bands from price.
Color: color customization option.
🔹Moving Average Settings
Type: is the type of the moving average, available types of moving averages include SMA (Simple Moving Average), EMA (Exponential Moving Average), RMA (Root Mean Square Moving Average), HMA (Hull Moving Average), WMA (Weighted Moving Average), and VWMA (Volume Weighted Moving Average).
Source: Determines what data from each bar will be used in calculations.
Length: The time period to be used in calculating the Moving Average.
Color: Color customization option.
🔹Bollinger Bands Settings
Basis Type: Determines the type of Moving Average that is applied to the basis plot line.
Source: Determines what data from each bar will be used in calculations.
Length: The time period to be used in calculating the Moving Average which creates the base for the Upper and Lower Bands.
StdDev: The number of Standard Deviations away from the Moving Average that the Upper and Lower Bands should be.
Color: Color customization options for basis, upper and lower bands.
🔹Mini Chart(s) Panel Settings
Mini Chart(s) Panel: Controls the visibility of the panel containing the mini charts.
Dual Supertrend: Toggles the display of the evaluated dual super trend, based on the super trend settings provided below the option. The definitions for the options are the same as stated above for the super trend.
Relative Strength Index: Toggles the display of the evaluated RSI, based on the source and length settings provided below the option.
Volatility: Toggles the display of the calculated Volatility, based on the length settings provided below the option.
R-Squared: Toggles the display of the calculated R-Squared (R²), based on the length settings provided below the option.
🔶 LIMITATIONS
The tool allows users to display mini charts featuring various types of instruments alongside the primary chart instrument. However, there's a limitation: the selected primary chart instrument must have an ACTIVE market status. Alternatively, if the primary chart instrument is not active, the mini chart instruments must belong to the same exchange and have the same type as the primary chart instrument.
Market Cycle Master The Market Cycle Master (MCM) by © DarkPoolCrypto is a sophisticated trading system designed to bridge the gap between standard retail trend indicators and institutional-grade risk management. Unlike traditional indicators that simply provide entry signals based on a single timeframe, this system employs a "Confluence Engine" that requires multi-timeframe (MTF) alignment before generating a signal.
Crucially, this script integrates a live Risk Management Calculator directly into the chart overlay. This feature allows traders to stop guessing position sizes and instead execute trades based on a fixed percentage of account equity at risk, calculating the exact lot size relative to the dynamic stop-loss level.
Core Concept and Logic
This system operates on three distinct layers of logic to filter out noise and identifying high-probability trend continuations:
1. The Trend Architecture (Layer 1) At its core, the script utilizes an adaptive ATR-based SuperTrend calculation. This allows the system to adjust to market volatility dynamically. When volatility expands, the trend bands widen to prevent premature stop-outs. When volatility contracts, the bands tighten to capture early reversals.
2. Institutional Context / Multi-Timeframe Filter (Layer 2) This is the primary filter of the Pro system. The script monitors a higher timeframe (default: 4-Hour) in the background.
Bullish Context: If the Higher Timeframe (HTF) is in an uptrend, the script will only permit LONG signals on your current chart.
Bearish Context: If the HTF is in a downtrend, the script will only permit SHORT signals.
Grayscale Filters: If the current chart's trend opposes the Higher Timeframe trend (e.g., a 5-minute uptrend during a 4-hour downtrend), the candles will be painted GRAY. This indicates a low-probability "Counter-Trend" environment, and no signals will be generated.
3. Money Flow Filtering (Layer 3) To prevent buying tops or selling bottoms, the system utilizes the Money Flow Index (MFI). Long signals are filtered if volume-weighted momentum is already overbought, and Short signals are filtered if oversold.
The Risk Management HUD
The Heads-Up Display (HUD) is the distinguishing feature of this tool. It transforms the indicator from a visual aid into a trading terminal.
Trend Direction: Displays the current verified trend.
MTF Status: Shows the state of the Higher Timeframe trend.
Volatility: Displays the current ATR value.
Stop Loss: Displays the exact price level of the trend line.
Risk Calculator:
Risk ($): Shows the total dollar amount you will lose if the stop loss is hit (based on your settings).
Units: Calculates exactly how much Crypto, Stock, or FX lots to purchase to match your risk parameters.
Guide: How to Use
Configuration
Trend Architecture: Adjust the "Volatility Factor" (Default: 3.0). Higher values reduce noise but delay entries. Lower values are faster but riskier.
Institutional Context: Select the "Higher Timeframe."
If trading 1m to 15m charts: Set HTF to 4 Hours (240).
If trading 1H to 4H charts: Set HTF to Daily (1D).
Risk Calculator:
Account Size: Enter your total trading capital.
Risk Per Trade: Enter the percentage of your account you are willing to lose on a single trade (e.g., 1.0%).
Trading Strategy
The Signal: Wait for a "Sniper Long" or "Sniper Short" label. This appears only when price action, volatility, and the higher timeframe consensus all align.
The Execution: Look at the HUD under "Units." Open a position for that specific amount.
The Stop Loss: Place your hard Stop Loss at the price shown in the HUD ("Stop Loss" row). This corresponds to the trend line.
The Exit: Close the position if the candle color turns Gray (loss of momentum/consensus) or if an opposing signal appears.
Disclaimer
This script and the information provided herein are for educational and entertainment purposes only. They do not constitute financial advice, investment advice, trading advice, or any other advice. Trading in financial markets involves a high degree of risk and may result in the loss of your entire capital.
The "Risk Calculator" included in this script provides theoretical values based on mathematical formulas relative to the price data provided by TradingView. It does not account for slippage, spread, exchange fees, or liquidity gaps. Always verify calculations manually before executing live trades. Past performance of any trading system is not indicative of future results. The author assumes no responsibility for any losses incurred while using this script.






















