Santa's Secrets | FractalystSanta’s Secrets is a visually engaging trading tool that infuses holiday cheer into your charts. Inspired by the enchanting, mysterious vibes of the holiday season, this indicator overlays price charts with dynamic, multi-colored glitches that sync with market data, delivering a festive and whimsical visual experience.
The indicator brings a magical touch to your charts, featuring characters from classic holiday themes (e.g., Santa, reindeer, snowflakes, gift boxes) to create a fun and festive “glitch effect.” Users can select a theme for their matrix characters, adding a holiday twist to their trading visuals. As the market data moves, these themed characters are randomly picked and displayed on the chart in a colorful cascade.
Underlying Calculations and Logic
1.Character Management:
The indicator uses arrays to manage different sets of holiday-themed characters, such as Santa’s sleigh, snowflakes, and reindeer. These arrays allow dynamic selection and update of characters as the market moves, mimicking a festive glitch effect.
2. Current and Previous States:
Arrays track the current and previous states of characters, ensuring smooth transitions between visual updates. This dual-state management enables the effects to look like a magical, continuous movement, just like Santa’s sleigh cruising through the winter night.
3. Transparency Control:
Transparency levels are controlled through arrays, adjusting opacity to create subtle fading effects or more intense visual appearances. The result is a festive glow that can fade or intensify depending on the market’s volatility.
4. Rain Effect Simulation:
To create the “snowfall” or “glitching lights” effect, the indicator manages arrays that simulate falling characters, like snowflakes or candy canes, continuously updating their position and visibility. As new characters enter the top of the screen, older ones disappear from the bottom, with fading transparency to simulate a seamless flow.
5. Operational Flow:
• Initialization: Arrays initialize the characters and transparency controls, readying the script for smooth and continuous updates during trading.
• Updates: During each cycle, new characters are selected and the old ones shift, with updates in both content and appearance ensuring the matrix effect is visually appealing.
• Rendering: The arrays control how the characters are rendered, ensuring the magical holiday effect stays lively and eye-catching without interrupting the trading flow.
How to Use Santa’s Secrets Indicator
1. Apply the Indicator to Your Charts:
Add the Santa’s Secrets indicator to your chart, activating the holiday-themed visual effect on your selected trading instrument or time frame.
2. Select Your Holiday Theme:
In the settings, choose the holiday theme or character set. Whether it’s Santa’s sleigh, reindeer, snowflakes, or gift boxes, pick the one that brings the most festive cheer to your charts.
3. Choose Your Visual Effect (Snowfall or Glitch Burst):
Select between the “Snowfall” effect, where characters gently drift down the chart like snowflakes, or the “Glitch Burst” effect, where characters explode outward in a burst of holiday cheer, representing bursts of market volatility.
4. Adjust the Color for Holiday Vibes:
Customize the color of the characters to match your chart’s aesthetic or reflect different market conditions. Choose from red for a downtrend, green for an uptrend, or opt for a gradient of colors to capture a true holiday spirit.
5. Fit the Matrix to Your Display:
Adjust the width and height of the matrix display to make sure it fits perfectly with your chart layout. Ensure it doesn’t obscure your view while still providing the holiday-themed magic.
What Makes Santa’s Secrets Indicator Unique?
Holiday Theme Selection:
Santa’s Secrets allows traders to choose from a variety of holiday-themed characters. Whether you prefer the traditional Santa’s sleigh, snowflakes, reindeer, or gift boxes, you can bring the festive spirit into your trading. This personalized touch adds a fun, holiday twist to your charts and keeps you engaged during the festive season.
Dynamic Effects:
Choose between two exciting visual modes – Snowfall Mode or Glitch Burst Mode. The Snowfall Mode brings a gentle, peaceful effect with characters cascading down the chart like snowflakes, while Glitch Burst Mode creates a more intense effect, radiating characters outward in an explosive, holiday-themed display.
Customizable Holiday Colors:
Traders can fully customize the color of the matrix characters to match their trading environment. Whether you want a traditional red and green for a Christmas mood or a blue and white snow effect, Santa’s Secrets allows you to create the perfect holiday atmosphere while you trade.
Universal Display Compatibility:
No matter what screen or device you’re using – whether it’s a large monitor, laptop, or mobile – Santa’s Secrets is fully adjustable to fit your screen size. The holiday effect remains visually striking without compromising the integrity of your chart data.
Wishing you a happy year filled with success, growth, and profitable trades.🎅🎁
Let's kick off the new year strong with Santa's Secrets! 🚀🎄
Search in scripts for "chart"
Watchlist & Symbols Distribution [Daveatt]TLDR;
I got bored so I just coded the TradingView watchlist interface in Pinescript :)
TLDR 2:
Sharing it open-source what took me 1 full day to code - haven't coded in Pinescript in a long time, so I'm a bit slow for now :)
█ OVERVIEW
This script offers a comprehensive market analysis tool inspired by TradingView's native watchlist interface features.
It combines an interactive watchlist with powerful distribution visualization capabilities and a performance comparison panel.
The script was developed with a focus on providing multiple visualization methods while working within PineScript's limitations.
█ DEVELOPMENT BACKGROUND
The pie chart implementation was greatly inspired by the ( "Crypto Map Dashboard" script / )
adapting its circular visualization technique to create dynamic distribution charts. However, due to PineScript's 500-line limitation per script, I had to optimize the code to allow users to switch between pie chart analysis and performance comparison modes rather than displaying both simultaneously.
█ SETUP AND DISPLAY
For optimal visualization, users need to adjust the chart's display settings manually.
This involves:
Expanding the indicator window vertically to accommodate both the watchlist and graphical elements
Adjusting the Y-axis scale by dragging it to ensure proper spacing for the comparison panel grid
Modifying the X-axis scale to achieve the desired time window display
Fine-tuning these adjustments whenever switching between pie chart and comparison panel modes
These manual adjustments are necessary due to PineScript's limitations in controlling chart scaling programmatically. While this requires some initial setup, it allows users to customize the display to their preferred viewing proportions.
█ MAIN FEATURES
Distribution Analysis
The script provides three distinct distribution visualization modes through a pie chart.
Users can analyze their symbols by exchanges, asset types (such as Crypto, Forex, Futures), or market sectors.
If you can't see it well at first, adjust your chart scaling until it's displayed nicely.
Asset Exchanges
www.tradingview.com
Asset Types
Asset Sectors
The pie charts feature an optional 3D effect with adjustable depth and angle parameters. To enhance visual customization, four different color schemes are available: Default, Pastel, Dark, and Neon.
Each segment of the pie chart includes interactive tooltips that can be configured to show different levels of detail. Importantly, the pie chart only visualizes the distribution of selected assets (those marked with a checkmark in the watchlist), providing a focused view of the user's current interests.
Interactive Watchlist
The watchlist component displays real-time data for up to 10 user-defined symbols. Each entry shows current price, price changes (both absolute and percentage), volume metrics, and a comparison toggle.
The table is dynamically updated and features color-coded entries that correspond to their respective performance lines in the comparison chart. The watchlist serves as both an information display and a control panel for the comparison feature.
Performance Comparison
One of the script's most innovative features is its performance comparison panel.
Using polylines for smooth visualization, it tracks the 30-day performance of selected symbols relative to a 0% baseline.
The comparison chart includes a sophisticated grid system with 5% intervals and a dynamic legend showing current performance values.
The polyline implementation allows for fluid, continuous lines that accurately represent price movements, providing a more refined visual experience than traditional line plots. Like the pie charts, the comparison panel only displays performance lines for symbols that have been selected in the watchlist, allowing users to focus on their specific assets of interest.
█ TECHNICAL IMPLEMENTATION
The script utilizes several advanced PineScript features:
Dynamic array management for symbol tracking
Polyline-based charting for smooth performance visualization
Real-time data processing with security calls
Interactive tooltips and labels
Optimized drawing routines to maintain performance
Selective visualization based on user choices
█ CUSTOMIZATION
Users can personalize almost every aspect of the script:
Symbol selection and comparison preferences
Visual theme selection with four distinct color schemes
Pie chart dimensions and positioning
Tooltip information density
Component visibility toggles
█ LIMITATIONS
The primary limitation stems from PineScript's 500-line restriction per script.
This constraint necessitated the implementation of a mode-switching system between pie charts and the comparison panel, as displaying both simultaneously would exceed the line limit. Additionally, the script relies on manual chart scale adjustments, as PineScript doesn't provide direct control over chart scaling when overlay=false is enabled.
However, these limitations led to a more focused and efficient design approach that gives users control over their viewing experience.
█ CONCLUSION
All those tools exist in the native TradingView watchlist interface and they're better than what I just did.
However, now it exists in Pinescript... so I believe it's a win lol :)
3-Bar (Outside Bar) Scanner with Table Display# 3-Bar (Outside Bar) Scanner with Table Display
## Overview
The **3-Bar (Outside Bar) Scanner with Table Display** is a custom TradingView indicator designed for traders who utilize **The Strat** methodology. This indicator scans for **3-bar (Outside Bar)** patterns across multiple symbols and displays the results in a convenient table format directly on your chart.
## Purpose
- **Efficient Multi-Symbol Scanning**: Monitor up to four symbols simultaneously for 3-bar patterns without the need to switch between charts.
- **Real-Time Updates**: The table dynamically updates with new price data, providing immediate insights into potential trading opportunities.
- **Visual Clarity**: Displays whether a 3-bar is bullish ("3 Up") or bearish ("3 Down"), helping you quickly interpret market sentiment.
## How It Works
- **Data Retrieval**: The indicator uses `request.security()` to fetch high, low, open, and close prices for the specified symbols and timeframe.
- **3-Bar Detection**:
- **Outside Bar Criteria**: Checks if the current candle's high is higher than the previous candle's high and the current low is lower than the previous low.
- **Direction Determination**:
- **"3 Up"**: If the candle closes higher than it opens (bullish candle).
- **"3 Down"**: If the candle closes lower than it opens (bearish candle).
- **Table Display**:
- The table shows the **Symbol**, **Timeframe**, and **State** ("3 Up", "3 Down", or blank if no pattern detected).
- Customizable colors and positioning to fit your chart's aesthetics.
## Best Use Cases
- **Rapid Market Analysis**: Ideal for traders needing a quick overview of multiple assets for potential 3-bar setups.
- **Strategic Decision-Making**: Helps identify key reversal or continuation patterns in alignment with **The Strat** principles.
- **Scalable Monitoring**: By utilizing TradingView's multi-chart layouts, you can expand monitoring beyond four symbols.
## Instructions for Use
### Adding the Indicator to Your Chart
1. **Copy the Code**: Use the provided Pine Script code for the indicator.
2. **Create a New Indicator**:
- In TradingView, click on **Pine Editor** at the bottom of the platform.
- Paste the code into the editor.
3. **Save and Add to Chart**:
- Click **Save** and give your indicator a name.
- Click **Add to Chart** to apply it.
### Customizing the Inputs
- **Symbols**:
- **Symbol 1**: Leave blank to use the current chart's symbol or enter a specific symbol (e.g., `AAPL`).
- **Symbol 2 to Symbol 4**: Enter additional symbols or leave them blank.
- **Timeframe**: Select your desired timeframe (e.g., `D` for Daily, `60` for 60-minute).
- **Table Colors**:
- Customize header and data colors for better visibility against your chart background.
### Interpreting the Table
- **Symbol**: Displays the symbol without the exchange prefix for clarity.
- **Timeframe**: Shows the timeframe applied to the analysis.
- **State**:
- **"3 Up"**: A bullish outside bar where the candle closed higher than it opened.
- **"3 Down"**: A bearish outside bar where the candle closed lower than it opened.
- **Blank**: No 3-bar pattern detected on the latest candle.
### Monitoring More Than Four Symbols
- **Multi-Chart Layout**:
- Use TradingView's multi-chart feature to display multiple charts within a single workspace.
- Apply the indicator to each chart. For example:
- **Four-Chart Grid**: Monitor up to 16 symbols by setting up four charts, each with the indicator tracking four symbols.
- **Steps**:
1. Arrange your workspace into a multi-chart layout.
2. Add the indicator to each chart.
3. Input different symbols into the indicator on each chart.
## Example Usage
Suppose you want to monitor the following symbols on a Daily timeframe:
- **Symbol 1**: *(Leave blank to use the current chart's symbol, e.g., `SPY`)*
- **Symbol 2**: `AAPL`
- **Symbol 3**: `TSLA`
- **Symbol 4**: `AMZN`
After adding the indicator and entering these symbols:
- **SPY**: The table shows "3 Up" in the State column, indicating a bullish outside bar.
- **AAPL**: No 3-bar pattern detected; the State column is blank.
- **TSLA**: The table shows "3 Down," indicating a bearish outside bar.
- **AMZN**: The table shows "3 Up," indicating another bullish outside bar.
This setup allows you to quickly assess which symbols are exhibiting significant patterns that may warrant further analysis or action.
## Notes
- **Customization**: Feel free to adjust the table's position and colors to suit your preferences.
- **Limitations**:
- Be aware of TradingView's limitations on `request.security()` calls, which may vary based on your subscription plan.
- The indicator is designed to monitor up to four symbols per instance due to these limitations.
- **Scalability**:
- By using multi-chart layouts, you can effectively monitor more symbols without overloading a single chart.
- This approach allows you to scale up your monitoring capabilities to fit your trading strategy.
## Conclusion
The **3-Bar (Outside Bar) Scanner with Table Display** is a valuable tool for traders who utilize **The Strat** methodology. It streamlines the process of identifying key 3-bar patterns across multiple symbols and timeframes, enhancing your ability to make informed trading decisions quickly.
By integrating this indicator into your trading routine, you can:
- Stay alert to significant market movements.
- Reduce the time spent manually scanning charts.
- Increase efficiency in executing your trading strategy.
---
Feel free to share this indicator with the Strat community. Feedback and suggestions are welcome to further enhance its functionality. Happy trading!
Candle Boxes (Border + Midline + Open level)📦 Candle Boxes (Border + Midline + Open Level)
Candle Boxes is a visual multi-timeframe (HTF) tool designed to display higher-timeframe candle structure directly on a lower-timeframe chart.
It helps traders understand HTF context without constantly switching between timeframes.
🔍 What this indicator displays
For each HTF candle, the indicator draws:
HTF Box
Top = HTF High
Bottom = HTF Low
Horizontal span = full HTF candle duration
Border color
Bullish HTF candle → bullish color
Bearish HTF candle → bearish color
Midline (50%) – optional
Exact midpoint of the HTF range: (High + Low) / 2
HTF Open level – optional
Horizontal line at the HTF candle open price
All elements are drawn without background fill to keep the chart clean and readable.
⏱ Multi-Timeframe logic
HTF is selected using the HTF (box timeframe) input
Data is retrieved via request.security() with no repainting
Levels update only while the HTF candle is forming
Once the HTF candle closes, its box and lines remain fixed
🧠 Intended use
This indicator is designed for:
visualizing higher-timeframe context on lower charts
analyzing HTF structure without changing timeframe
supporting:
support & resistance analysis
price action studies
intraday and swing trading context
This tool does not generate buy/sell signals and is not a trading strategy.
⚙️ Settings
HTF & history
HTF (box timeframe) – higher timeframe used to build boxes
Keep last HTF boxes – number of most recent HTF boxes to keep
used to comply with TradingView object limits
the script automatically removes the oldest boxes and lines
Visual options
Border (on/off, width, transparency, colors)
Midline (on/off, colors, transparency)
HTF Open line (on/off, color, width, transparency)
⚠️ Important notes
TradingView enforces strict limits on drawn objects (boxes and lines)
This indicator is optimized to:
display as much historical data as technically possible
automatically manage and delete older objects
Higher HTF → fewer boxes visible in history
Lower HTF → more boxes, faster object-limit usage
🔁 Suggested Timeframe Combinations
This indicator is designed to work best when the selected HTF is significantly higher than the chart timeframe.
Below are practical, commonly used combinations:
Intraday trading
Chart: 5m → HTF: 1H
Chart: 15m → HTF: 4H
Useful for identifying higher-timeframe structure during active trading sessions.
Swing trading
Chart: 30m → HTF: 4H
Chart: 1H → HTF: Daily
Helps visualize major HTF ranges and key levels while managing trades over multiple days.
Higher-timeframe analysis
Chart: 1H → HTF: Weekly
Chart: 4H → HTF: Weekly
Best suited for understanding broader market context, range behavior, and HTF price positioning.
General guideline
A 4× to 8× ratio between chart timeframe and HTF is usually a good starting point
Larger ratios provide cleaner structure but fewer visible boxes
Smaller ratios provide more detail but consume object limits faster
These combinations are guidelines only and can be adjusted based on personal trading style and market conditions.
📌 Disclaimer
This indicator is a visual analysis tool only.
It does not provide financial advice or guarantee any trading outcome.
All trading decisions are made at your own risk.
Always combine this tool with your own analysis and risk management rules.
Harmonic Patterns (Experimental) [Kodexius]Harmonic Patterns (Experimental) is a multi pattern harmonic geometry scanner that automatically detects, validates, and draws classic harmonic structures directly on your chart. The script continuously builds a pivot map (swing highs and swing lows), then evaluates the most recent pivot sequence against a library of harmonic ratio templates such as Gartley, Bat, Deep Bat, Butterfly, Crab, Deep Crab, Cypher, Shark, Alt Shark, 5-0, AB=CD, and 3 Drives.
Unlike simple “pattern exists / pattern doesn’t exist” indicators, this version scores candidates by accuracy . Each pattern includes “ideal” ratio targets, and the script computes a total error score by measuring how far the observed ratios deviate from the ideal. When multiple patterns could match the same pivot structure, the script selects the best match (lowest total error) and displays that one. This reduces clutter and makes the output more practical in real market conditions where many ratio ranges overlap.
The end result is a clean, information rich visualization of harmonic opportunities that is:
-Pivot based and swing aware
-Ratio validated with configurable tolerance
-Direction filtered (bullish, bearish, or both)
-Ranked by accuracy to prefer higher quality matches
Note: This is an experimental pattern engine intended for research, confluence and chart study. Harmonic patterns are probabilistic and can fail often. Always combine with your own risk management and confirmation tools.
🔹 Features
🔸Pivot Detection
The script uses pivot functions to detect structural turning points:
-Pivot Left Bars controls how many bars must exist on the left of the pivot
-Pivot Right Bars controls confirmation delay on the right (smaller value reacts faster)
Additionally, a Min Swing Distance (%) filter can ignore tiny swings to reduce noise. Pivots are stored separately for highs and lows and capped by Max Pivots to Store to keep the script efficient.
🔸Pattern Library (XABCD and Beyond)
Supported structures include:
-Gartley, Bat, Deep Bat, Butterfly, Crab, Deep Crab
-Cypher (uses XC extension and CD retracement logic)
-Shark and Alt Shark (0-X-A-B-C mapping)
-5-0 (AB and BC extensions with CD retracement)
-AB=CD (symmetry and proportionality checks)
-3 Drives (6 point structure, drive and retracement ratios)
Each pattern is defined by ratio ranges and also “ideal” ratio targets used for scoring.
🔸 Pattern Fibonacci Rules (Detailed Ratio Definitions)
This script validates each harmonic template by measuring a small set of Fibonacci relationships between the legs of the pattern. All measurements are computed using absolute price distance (so the ratios are direction independent), and then a directional sanity check ensures the geometry is positioned correctly for bullish or bearish cases.
How ratios are measured
Most patterns in this script use the standard X A B C D harmonic structure. Four ratios are evaluated:
1) XB retracement of XA
This measures how much price retraces from A back toward X when forming point B .
xbRatio = |B - A| / |A - X|
2) AC retracement of AB
This measures how much point C retraces the AB leg.
acRatio = |C - B| / |B - A|
3) BD extension of BC
This measures the “drive” from C into D relative to the BC leg.
bdRatio = |D - C| / |C - B|
4) XD retracement of XA
This is the most important “completion” ratio in many patterns. It measures where D lands relative to the original XA swing.
xdRatio = |D - A| / |A - X|
Important: the script applies a user defined Fibonacci Tolerance to each accepted range, meaning the pattern can still pass even if ratios are slightly off from the textbook values.
🔸 XABCD Pattern Ratio Templates
Below are the exact ratio rules used by the templates in this script.
Gartley
-XB must be ~0.618 of XA
-AC must be between 0.382 and 0.886 of AB
-BD must be between 1.272 and 1.618 extension of BC
-XD must be ~0.786 of XA
In practice, Gartley is a “non extension” structure, meaning D usually remains inside the X boundary .
Bat
-XB between 0.382 and 0.50 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD ~0.886 of XA
Bat patterns typically complete deeper than Gartley and often create a sharper reaction at D.
Deep Bat
-XB ~0.886 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD ~0.886 of XA
Deep Bat uses the same completion zone as Bat, but requires a much deeper B point.
Butterfly
-XB ~0.786 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD between 1.272 and 1.618 of XA
Butterfly is an extension pattern . That means D is expected to break beyond X (in the completion direction).
Crab
-XB between 0.382 and 0.618 of XA
-AC between 0.382 and 0.886 of AB
-BD between 2.24 and 3.618 of BC
-XD ~1.618 of XA
Crab is also an extension pattern . It often produces a very deep D completion and a strong reaction zone.
Deep Crab
-XB ~0.886 of XA
-AC between 0.382 and 0.886 of AB
-BD between 2.0 and 3.618 of BC
-XD ~1.618 of XA
Deep Crab combines a deep B point with a strong XA extension completion.
🔸 Cypher Fibonacci Rules (XC Based)
Cypher is not validated with the same four ratios as XABCD patterns. Instead it uses an XC based completion model:
1) B as a retracement of XA
xb = |B - A| / |A - X| // AB/XA
Must be between 0.382 and 0.618 .
2) C as an extension from X relative to XA
xc = |C - X| / |A - X| // XC/XA
Must be between 1.272 and 1.414 .
3) D as a retracement of XC
xd = |D - C| / |C - X| // CD/XC
Must be ~ 0.786 .
This makes Cypher structurally different: the “completion” is defined as a retracement of the entire XC leg, not XA.
🔸 Shark and Alt Shark Fibonacci Rules (0-X-A-B-C Mapping)
Shark patterns are commonly defined as 0 X A B C . In this script the pivots are mapped like this:
0 = pX, X = pA, A = pB, B = pC, C = pD
So the final pivot (stored as pD) is labeled as C on the chart.
Three ratios are validated:
1) AB relative to XA
ab_xa = |B - A| / |A - X|
Must be between 1.13 and 1.618 .
2) BC relative to AB
bc_ab = |C - B| / |B - A|
Must be between 1.618 and 2.24 .
3) OC relative to OX
oc_ox = |C - 0| / |X - 0|
For Shark it must be between 0.886 and 1.13 .
For Alt Shark it must be between 1.13 and 1.618 (a deeper / more extended completion).
🔸 5-0 Fibonacci Rules
5-0 is validated as a sequence of extensions and then a fixed retracement:
1) AB extension of XA
ab_xa = |B - A| / |A - X|
Must be between 1.13 and 1.618 .
2) BC extension of AB
bc_ab = |C - B| / |B - A|
Must be between 1.618 and 2.24 .
3) CD retracement of BC
cd_bc = |D - C| / |C - B|
Must be approximately 0.50 .
Note that for 5-0 the script does not rely on an XA completion ratio like 0.786 or 1.618. The defining completion is the 0.5 retracement of BC.
🔸 AB=CD Fibonacci Rules
AB=CD is a symmetry pattern and is treated differently from the harmonic templates:
1) AB and CD length symmetry
The script checks if CD is approximately equal to AB within tolerance.
2) BC proportion
BC/AB is expected to fall in a common Fibonacci retracement zone:
-approximately 0.618 to 0.786 (with a looser tolerance in code)
3) CD/BC expansion
CD/BC is expected to be an expansion ratio:
-approximately 1.272 to 1.618 (also with a looser tolerance)
This allows the script to capture both classic equal leg AB=CD and common “expanded” variations.
🔸 3 Drives Fibonacci Rules (6 Point Structure)
3 Drives is a 6 point structure and is validated using retracement ratios and extension ratios:
Retracement rules
Retracement 1 must be between 0.618 and 0.786 of Drive 1
Retracement 2 must be between 0.618 and 0.786 of Drive 2
Extension rules
Drive 2 must be between 1.272 and 1.618 of Retracement 1
Drive 3 must be between 1.272 and 1.618 of Retracement 2
This pattern is meant to capture rhythm and proportional repetition rather than a single XA completion ratio.
🔸 Why the script can show “ratio labels” on legs
If you enable Show Fibonacci Values on Legs , the script prints the measured ratios near the midpoint of each leg (or diagonal, depending on pattern type). This makes it easy to visually confirm:
-Which ratios caused the pattern to pass
-How close the structure is to ideal harmonic values
-Why one template was preferred over another via the accuracy score
🔸 Fibonacci Tolerance Control
All ratio checks use a single tolerance input (percentage). This tolerance expands or contracts the acceptable ratio ranges, letting you decide whether you want:
-Tight, high precision matches (lower tolerance)
-Broader, more frequent matches (higher tolerance)
🔸 Direction Filter (Bullish Only / Bearish Only / Both)
You can restrict scanning to bullish patterns, bearish patterns, or allow both. This is useful if you are aligning with higher timeframe bias or only trading one side of the market.
🔸 Best Match Selection (Anti Clutter Logic)
When a new pivot confirms, the script evaluates all enabled patterns against the latest pivot sequence and keeps the one with the smallest total error score. This is especially helpful because many harmonic templates overlap in real time. Instead of drawing multiple conflicting labels, you get one “most accurate” candidate.
🔸 Clean Visual Rendering and Optional Details
The drawing system can display:
-Main structure lines (X-A-B-C-D or special mappings)
-Dashed diagonals for geometric context (XB, AC, BD, XD)
-Pattern fill to visually highlight the structure zone
-Point labels (X,A,B,C,D or 0..5 for 3 Drives, 0-X-A-B-C for Shark)
-Leg Fibonacci labels placed around midpoints for fast ratio reading
All colors (bullish and bearish line and fill) are configurable.
🔸 Pattern Spacing and Display Limits
To keep charts readable, the script includes:
-Max Patterns to Display to limit on-chart drawings
-Min Bars Between Patterns to avoid repeated signals too close together in the same direction
Older patterns are automatically deleted once the display limit is exceeded.
🔸 Alerts
When enabled, alerts trigger on new confirmed detections:
-Bullish Pattern Detected
-Bearish Pattern Detected
Alerts fire once per bar when a new pattern is confirmed by a fresh pivot.
🔹 Calculations
This section summarizes the core logic used under the hood.
1) Pivot Detection and Swing Filtering
The script confirms pivots using right side confirmation, then optionally filters them by minimum swing distance relative to the last opposite pivot.
// Pivot detection
float pHigh = ta.pivothigh(high, pivotLeftBars, pivotRightBars)
float pLow = ta.pivotlow(low, pivotLeftBars, pivotRightBars)
// Example swing distance filter (conceptual)
abs(newPivot - lastOppPivot) / lastOppPivot >= minSwingPercent
Pivots are stored in capped arrays (high pivots and low pivots), ensuring performance and stable memory usage.
2) Ratio Measurements (Retracement and Extension)
The engine measures harmonic ratios using two core helpers:
Retracement measures how much the third point retraces the previous leg.
Extension measures how much the next leg extends relative to the previous leg.
// Retracement: (p3 - p2) compared to (p2 - p1)
calcRetracement(p1, p2, p3) =>
float leg = math.abs(p2.price - p1.price)
float retr = math.abs(p3.price - p2.price)
leg != 0 ? retr / leg : na
// Extension: (p4 - p3) compared to (p3 - p2)
calcExtension(p2, p3, p4) =>
float leg = math.abs(p3.price - p2.price)
float ext = math.abs(p4.price - p3.price)
leg != 0 ? ext / leg : na
For a standard XABCD pattern the script evaluates:
-XB retracement of XA
-AC retracement of AB
-BD extension of BC
-XD retracement of XA
3) Tolerance Based Range Check
Ratio validation uses a flexible range check that expands min and max by the tolerance percent:
isInRange(value, minVal, maxVal, tolerance) =>
float tolMin = minVal * (1.0 - tolerance)
float tolMax = maxVal * (1.0 + tolerance)
value >= tolMin and value <= tolMax
This means even “fixed” ratios (like 0.786) still allow a user controlled deviation.
4) Positional Sanity Check for D (Beyond X or Not)
Some harmonic patterns require D to remain within X (non extension patterns), while others require D to break beyond X (extension patterns). The script enforces that using a boolean flag in each template.
Conceptually:
-If the pattern is an extension type, D should cross beyond X in the expected direction
-If the pattern is not extension type, D should stay on the correct side of X
This prevents visually incorrect “ratio matches” that violate the intended geometry.
5) Template Definitions (Ranges + Ideal Targets)
Every pattern includes ratio ranges plus ideal values. The ideal values are used only for scoring quality, not for pass/fail. Example concept:
-Ranges determine validity
-Ideal targets determine ranking
6) Accuracy Scoring (Total Error)
When a candidate passes all validity checks, the script computes an accuracy score by summing absolute deviations from ideal ratios:
calcError(value, ideal) =>
math.abs(value - ideal)
// Total error is the sum of the four leg errors (as available for the pattern)
totalError =
calcError(xbRatio, xbIdeal) +
calcError(acRatio, acIdeal) +
calcError(bdRatio, bdIdeal) +
calcError(xdRatio, xdIdeal)
Lower score means closer to the “textbook” harmonic proportions.
7) Best Match Resolution (Choosing One Winner)
When multiple enabled patterns match the same pivot structure, the script selects the one with the lowest totalError:
updateBest(currentBest, newCandidate) =>
result = currentBest
if not na(newCandidate)
if na(currentBest) or newCandidate.totalError < currentBest.totalError
result := newCandidate
result
This is a major practical feature because it reduces clutter and highlights the highest quality interpretation.
8) Bullish and Bearish Scanning Logic
The scanner runs when pivots confirm:
-Bullish patterns are evaluated on a newly confirmed pivot low (potential D)
-Bearish patterns are evaluated on a newly confirmed pivot high (potential D)
From that D pivot, the script searches backward through stored pivots to build a valid pivot sequence (X,A,B,C,D). If 3 Drives is enabled, it also attempts to find the extra preceding point needed for the 6 point structure.
9) Rendering: Lines, Fill, Labels, and Leg Fib Text
After detection the script draws:
-Primary legs with thicker lines
-Geometric diagonals with dashed lines (for XABCD types)
-Optional fill between selected legs to emphasize the structure area
-A summary label showing direction, pattern name, and ratios
-Optional point labels and leg ratio labels placed near midpoints
To avoid overlapping with candles, the script offsets labels using ATR:
float yOff = math.max(ta.atr(14) * 0.15, syminfo.mintick * 10)
10) Pattern Lifecycle and Cleanup
To respect chart limits and keep visuals clean, the script deletes old drawings once the maximum visible patterns threshold is exceeded. This includes lines, fills, and labels.
P&F Label Overlay🧙 The Wizard's Challenge: P&F Label Overlay on Your Chart
This is a custom Pine Script indicator designed to overlay the classic Point & Figure (P&F) pattern directly onto your standard candlestick or bar chart. While Pine Script offers built-in, dedicated P&F charts, this indicator was created as a challenging and experimental project to satisfy the goal of visualizing the P&F X's and O's directly on the price bars.
❶. How to Use This Code on TradingView
1. Copy the Code: Copy the entire Pine Script code provided above.
2. Open Pine Editor: On TradingView, click the "Pine Editor" tab at the bottom of your chart.
3. Replace Content: Delete any existing code in the editor and paste this P&F script.
4. Add to Chart: Click the "Add to Chart" button (usually located near the top right of the Pine Editor).
5. Access Settings: The indicator, named "P&F Label Overlay: The Wizard's Challenge," will appear on your chart. You can click the gear icon ( ) next to its name on the chart to adjust the inputs.
❷. 🎛️ Key Settings & Customization (Inputs)
The indicator provides core P&F settings that you can customize to fit your analysis style:
✅ Enable Auto Box Size (Default: True): When enabled, the box size is automatically calculated as a percentage of the current price, making it dynamic.
・Auto Box Size Basis (%): Sets the percentage used to calculate the dynamic box size. (e.g., 2% of the price).
・Fixed Box Size (Price Units): When "Enable Auto Box Size" is disabled, this value is used as the static box size (e.g., a value of 5.0 for a $5 box).
・Reversal Count (Default: 3): This is the crucial P&F parameter (the Reversal Factor). It determines how many boxes the price must move in the opposite direction to trigger a column reversal (e.g., 3 means price must reverse by 3 \times \text{BOX\_SIZE}).
Calculation Source: Allows you to choose the price data used for calculations (e.g., close, hl2 (High/Low/2), etc.).
❸. 🎯 The Challenge: Why an Overlay?
This indicator represents an experimental and challenging endeavor made in collaboration with an AI. It stems from the strong desire to visualize P&F patterns overlaid on a conventional chart, which is not a native function in Pine Script's standard indicator plotting system.
・Leveraging Drawing Objects: The core of this challenge relies on cleverly using Pine Script's label.new() drawing objects to represent the "X" and "O" symbols. This is a highly non-standard way to draw a P&F chart, as it requires complex logic to manage the drawing coordinates, price levels, and column spacing on the time-based chart.
・The Current Status: We've successfully achieved the initial goal: visualizing the X and O patterns as an overlay. Achieving a perfectly aligned, full-featured P&F chart (where columns align precisely, and price rounding is fully consistent across all columns) is far more complex, but this code provides a strong foundation.
❹. 🛠️ Technical Highlights
Tick-Precision Rounding: The custom function f_roundToTick() is critical. It ensures that the calculated box size and the lastPrice are always rounded to the nearest minimum tick size (syminfo.mintick) of the asset. This maintains high precision and accuracy relative to the market's price movements.
・Column Indexing: The currentColumnIndex variable is used to simulate the horizontal movement of P&F columns by adding a fractional offset to the bar_index when drawing the labels. This is what makes the pattern appear as distinct columns.
・Garbage Collection: The activeLabels array and the MAX_LABELS limit ensure that old labels are deleted (label.delete()) as new ones are drawn. This is a crucial performance optimization to prevent TradingView's label limit (500) from being exceeded and to maintain a smooth experience.
❺. 🚀 A Platform for Deep Customization
While TradingView's built-in indicators are excellent, every trader has their "personal best settings." View this code as a starting point for your own analytical environment. You can use it as a base to pursue deeper custom features, such as:
・Different drawing styles or colors based on momentum.
・Automated detection and signaling of specific P&F patterns (e.g., Double Top Buy, Triple Bottom Sell).
Please feel free to try it on your chart! We welcome any feedback you might have as we continue to refine this experimental overlay.
I do not speak English at all. Please understand that if you send me a message, I may not be able to reply, or my reply may have a different meaning. Thank you for your understanding.
Power RSI Segment Runner [CHE] Power RSI Segment Runner — Tracks RSI momentum across higher timeframe segments to detect directional switches for trend confirmation.
Summary
This indicator calculates a running Relative Strength Index adapted to segments defined by changes in a higher timeframe, such as daily closes, providing a smoothed view of momentum within each period. It distinguishes between completed segments, which fix the final RSI value, and ongoing ones, which update in real time with an exponential moving average filter. Directional switches between bullish and bearish momentum trigger visual alerts, including overlay lines and emojis, while a compact table displays current trend strength as a progress bar. This segmented approach reduces noise from intra-period fluctuations, offering clearer signals for trend persistence compared to standard RSI on lower timeframes.
Motivation: Why this design?
Standard RSI often generates erratic signals in choppy markets due to constant recalculation over fixed lookback periods, leading to false reversals that mislead traders during range-bound or volatile phases. By resetting the RSI accumulation at higher timeframe boundaries, this indicator aligns momentum assessment with broader market cycles, capturing sustained directional bias more reliably. It addresses the gap between short-term noise and long-term trends, helping users filter entries without over-relying on absolute overbought or oversold thresholds.
What’s different vs. standard approaches?
- Baseline Reference: Diverges from the classic Wilder RSI, which uses a fixed-length exponential moving average of gains and losses across all bars.
- Architecture Differences:
- Segments momentum resets at higher timeframe changes, isolating calculations per period instead of continuous history.
- Employs persistent sums for ups and downs within segments, with on-the-fly RSI derivation and EMA smoothing.
- Integrates switch detection logic that clears prior visuals on reversal, preventing clutter from outdated alerts.
- Adds overlay projections like horizontal price lines and dynamic percent change trackers for immediate trade context.
- Practical Effect: Charts show discrete RSI endpoints for past segments alongside a curved running trace, making momentum evolution visually intuitive. Switches appear as clean, extendable overlays, reducing alert fatigue and highlighting only confirmed directional shifts, which aids in avoiding whipsaws during minor pullbacks.
How it works (technical)
The indicator begins by detecting changes in the specified higher timeframe, such as a new daily bar, to define segment boundaries. At each boundary, it finalizes the prior segment's RSI by summing positive and negative price changes over that period and derives the value from the ratio of those sums, then applies an exponential moving average for smoothing. Within the active segment, it accumulates ongoing ups and downs from price changes relative to the source, recalculating the running RSI similarly and smoothing it with the same EMA length.
Points for the running RSI are collected into an array starting from the segment's onset, forming a curved polyline once sufficient bars accumulate. Comparisons between the running RSI and the last completed segment's value determine the current direction as long, short, or neutral, with switches triggering deletions of old visuals and creation of new ones: a label at the RSI pane, a vertical dashed line across the RSI range, an emoji positioned via ATR offset on the price chart, a solid horizontal line at the switch price, a dashed line tracking current close, and a midpoint label for percent change from the switch.
Initialization occurs on the first bar by resetting accumulators, and visualization gates behind a minimum bar count since the segment start to avoid early instability. The trend strength table builds vertically with filled cells proportional to the rounded RSI value, colored by direction. All drawing objects update or extend on subsequent bars to reflect live progress.
Parameter Guide
EMA Length — Controls the smoothing applied to the running RSI; higher values increase lag but reduce noise. Default: 10. Trade-offs: Shorter settings heighten sensitivity for fast markets but risk more false switches; longer ones suit trending conditions for stability.
Source — Selects the price data for change calculations, typically close for standard momentum. Default: close. Trade-offs: Open or high/low may emphasize gaps, altering segment intensity.
Segment Timeframe — Defines the higher timeframe for segment resets, like daily for intraday charts. Default: D. Trade-offs: Shorter frames create more frequent but shorter segments; longer ones align with major cycles but delay resets.
Overbought Level — Sets the upper threshold for potential overbought conditions (currently unused in visuals). Default: 70. Trade-offs: Adjust for asset volatility; higher values delay bearish warnings.
Oversold Level — Sets the lower threshold for potential oversold conditions (currently unused in visuals). Default: 30. Trade-offs: Lower values permit deeper dips before signaling bullish potential.
Show Completed Label — Toggles labels at segment ends displaying final RSI. Default: true. Trade-offs: Enables historical review but can crowd charts on dense timeframes.
Plot Running Segment — Enables the curved polyline for live RSI trace. Default: true. Trade-offs: Visualizes intra-segment flow; disable for cleaner panes.
Running RSI as Label — Displays current running RSI as a forward-projected label on the last bar. Default: false. Trade-offs: Useful for quick reads; may overlap in tight scales.
Show Switch Label — Activates RSI pane labels on directional switches. Default: true. Trade-offs: Provides context; omit to minimize pane clutter.
Show Switch Line (RSI) — Draws vertical dashed lines across the RSI range at switches. Default: true. Trade-offs: Marks reversal bars clearly; extends both ways for reference.
Show Solid Overlay Line — Projects a horizontal line from switch price forward. Default: true. Trade-offs: Acts as dynamic support/resistance; wider lines enhance visibility.
Show Dashed Overlay Line — Tracks a dashed line from switch to current close. Default: true. Trade-offs: Shows price deviation; thinner for subtlety.
Show Percent Change Label — Midpoint label tracking percent move from switch. Default: true. Trade-offs: Quantifies progress; centers dynamically.
Show Trend Strength Table — Displays right-side table with direction header and RSI bar. Default: true. Trade-offs: Instant strength gauge; fixed position avoids overlap.
Activate Visualization After N Bars — Delays signals until this many bars into a segment. Default: 3. Trade-offs: Filters immature readings; higher values miss early momentum.
Segment End Label — Color for completed RSI labels. Default: 7E57C2. Trade-offs: Purple tones for finality.
Running RSI — Color for polyline and running elements. Default: yellow. Trade-offs: Bright for live tracking.
Long — Color for bullish switch visuals. Default: green. Trade-offs: Standard for uptrends.
Short — Color for bearish switch visuals. Default: red. Trade-offs: Standard for downtrends.
Solid Line Width — Thickness of horizontal overlay line. Default: 2. Trade-offs: Bolder for emphasis on key levels.
Dashed Line Width — Thickness of tracking and vertical lines. Default: 1. Trade-offs: Finer to avoid dominance.
Reading & Interpretation
Completed segment RSIs appear as static points or labels in purple, indicating the fixed momentum at period close—values drifting toward the upper half suggest building strength, while lower half implies weakness. The yellow curved polyline traces the live smoothed RSI within the current segment, rising for accumulating gains and falling for losses. Directional labels and lines in green or red flag switches: green for running momentum exceeding the prior segment's, signaling potential uptrend continuation; red for the opposite.
The right table's header colors green for long, red for short, or gray for neutral/wait, with filled purple bars scaling from bottom (low RSI) to top (high), topped by the numeric value. Overlay elements project from switch bars: the solid green/red line as a price anchor, dashed tracker showing pullback extent, and percent label quantifying deviation—positive for alignment with direction, negative for counter-moves. Emojis (up arrow for long, down for short) float above/below price via ATR spacing for quick chart scans.
Practical Workflows & Combinations
- Trend Following: Enter long on green switch confirmation after a higher high in structure; filter with table strength above midpoint for conviction. Pair with volume surge for added weight.
- Exits/Stops: Trail stops to the solid overlay line on pullbacks; exit if percent change reverses beyond 2 percent against direction. Use wait bars to confirm without chasing.
- Multi-Asset/Multi-TF: Defaults suit forex/stocks on 1H-4H with daily segments; for crypto, shorten EMA to 5 for volatility. Scale segment TF to weekly for daily charts across indices.
- Combinations: Overlay on EMA clouds for confluence—switch aligning with cloud break strengthens signal. Add volatility filters like ATR bands to debounce in low-volume regimes.
Behavior, Constraints & Performance
Signals confirm on bar close within segments, with running polyline updating live but gated by minimum bars to prevent flicker. Higher timeframe changes may introduce minor repaints on timeframe switches, mitigated by relying on confirmed HTF closes rather than intrabar peeks. Resource limits cap at 500 labels/lines and 50 polylines, pruning old objects on switches to stay efficient; no explicit loops, but array growth ties to segment length—suitable for up to 500-bar histories without lag.
Known limits include delayed visualization in short segments and insensitivity to overbought/oversold levels, as thresholds are inputted but not actively visualized. Gaps in source data reset accumulators prematurely, potentially skewing early RSI.
Sensible Defaults & Quick Tuning
Start with EMA length 10, daily segments, and 3-bar wait for balanced responsiveness on hourly charts. For excessive switches in ranging markets, increase wait bars to 5 or EMA to 14 to dampen noise. If signals lag in trends, drop EMA to 5 and use 1H segments. For stable assets like indices, widen to weekly segments; tune colors for dark/light themes without altering logic.
What this indicator is—and isn’t
This tool serves as a momentum visualization and switch detector layered over price action, aiding trend identification and confirmation in segmented contexts. It is not a standalone trading system, predictive model, or risk calculator—always integrate with broader analysis, position sizing, and stop-loss discipline. View it as an enhancement for discretionary setups, not automated alerts without validation.
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
Bitcoin vs. Gold correlation with lagBTC vs Gold (Lag) + Correlation — multi-timeframe, publication notes
What it does
Plots Gold on the same chart as Bitcoin, with a configurable lead/lag.
Lets you choose how the series is displayed:
Gold shifted forward (+lag on chart) — shows gold ahead of BTC on the time axis (visual offset).
Gold aligned to BTC (gold lag) — standard alignment; gold is lagged for calculation and plotted in place.
BTC 200D Lag (BTC shifted forward) — visualizes BTC shifted forward (like popular “BTC 200D Lag” charts).
Computes Pearson correlations between BTC (no lag) and Gold (with lag) over multiple lookback windows equivalent to:
30d, 60d, 90d, 180d, 365d, 2y (730d), 3y (1095d), 5y (1825d).
Shows a table with the correlation values, automatically scaled to the current timeframe.
Why this is useful
A common macro claim is that BTC tends to follow Gold with a delay (e.g., ~200 trading days). This tool lets you:
Visually advance Gold (or BTC) to see that lead-lag relationship on the chart.
Quantify the relationship with rolling correlations.
Switch timeframes (D/W/M/…): everything automatically stays in sync.
Quick start
Open a BTC chart (any exchange).
Add the indicator.
Set Gold symbol (default TVC:GOLD; alternatives: OANDA:XAUUSD, COMEX:GC1!, etc.).
Choose Lag value and Lag unit (Days/Weeks/Months/Years/Bars).
Pick Visual Mode:
To mirror those “BTC 200D Lag” posts: choose “BTC 200D Lag (BTC shifted forward)” with 200 Days.
To view Gold 200D ahead of BTC: select “Gold shifted forward (+lag on chart)” with 200 Days.
Keep Rebase to 100 ON for an apples-to-apples visual scale. (You can move the study to the left price scale if needed.)
Inputs
Gold symbol: external series to pair with BTC.
Lag value: numeric value.
Lag unit: Days, Weeks, Months (≈30d), Years (≈365d), or direct Bars.
Visual mode:
Gold shifted forward (+lag on chart) → gold is offset to the right by the lag (visual only).
Gold aligned to BTC (gold lag) → standard plot (no visual offset); correlations still use lagged gold.
BTC 200D Lag (BTC shifted forward) → BTC is offset to the right by the lag (visual only).
Rebase to 100 (visual): rescales each series to 100 on its first valid bar for clearer comparison.
Show gold without lag (debug): optional reference line.
Show price tag for gold (lag): toggles the track price label.
Timeframe handling
The study uses the current chart timeframe for both BTC and Gold (timeframe.period).
Lag in time units (Days/Weeks/Months/Years) is internally converted to an integer number of bars of the active timeframe (using timeframe.in_seconds).
Example: on W (weekly), 200 days ≈ 29 bars.
On intraday timeframes, days are converted proportionally.
Correlation math
Correlation = ta.correlation(BTC, Gold_lagged, length_in_bars)
Lookback lengths are the bar-equivalents of 30/60/90/180/365/730/1095/1825 days in the active timeframe.
Important: correlations are computed on prices (not returns). If you prefer returns-based correlation (often more statistically robust), duplicate the script and replace price inputs with change(close) or ta.roc(close, 1).
Reading the table
Window: nominal day label (e.g., 30d, 1y, 5y).
Bars (TF): how many bars that window equals on the current timeframe.
Correlation: Pearson coefficient . Background tint shows intensity and sign.
Tips & caveats
Visual offsets (offset=) move series on screen only; they don’t affect the math. The math always uses BTC (no lag) × Gold (lagged).
With large lags on high timeframes, early bars will be na (normal). Scroll forward / reduce lag.
If your Gold feed doesn’t load, try an alternative symbol that your plan supports.
Rebase to 100 helps visibility when BTC ($100k) and Gold ($2k) share a scale.
Months/Years use 30/365-day approximations. For exact control, use Days or Bars.
Correlations on very short lengths or sparse data can be unstable; consider the longer windows for sturdier signals.
This is a visual/analytical tool, not a trading signal. Always apply independent risk management.
Suggested setups
Replicate “BTC 200D Lag” charts:
Visual Mode: BTC 200D Lag (BTC shifted forward)
Lag: 200 Days
Rebase: ON
Gold leads BTC (Gold ahead):
Visual Mode: Gold shifted forward (+lag on chart)
Lag: 200 Days
Rebase: ON
Compatibility: Pine v6, overlay study.
Best with: BTCUSD (any exchange) + a reliable Gold feed.
Author’s note: Lead-lag relationships are not stable over time; treat correlations as descriptive, not predictive.
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛
Lorentzian Theory Classifier🧮 Lorentzian Theory Classifier: An Observatory for Market Spacetime
Transcend the flat plane of traditional charting. Enter the curved, dynamic reality of market spacetime. The Lorentzian Theory Classifier (LTC) is not an indicator; it is a computational observatory. It is an instrument engineered to decode the geometry of market behavior, revealing the hidden curvatures and resonant frequencies that precede significant turning points.
We discard the outdated tools of Euclidean simplicity and embrace a more profound truth: financial markets, much like the cosmos described by general relativity, are governed by a fabric that is warped by the mass of participation and the energy of volatility. The LTC is your lens to perceive this fabric, to move beyond predicting lines on a chart and begin reading the very architecture of probability.
The Resonance Manifold: Standard Euclidean models search for historical analogues within a rigid sphere, missing the crucial outliers that define market extremes. The LTC's Lorentzian Resonance engine operates in a curved, non-Euclidean space, allowing it to connect with these "fat-tail" events—the true genesis points of major reversals.
🌌 THE THEORETICAL FRAMEWORK: A new Grand Unified Theory of Market Analysis
The LTC is built upon a revolutionary synthesis of concepts from special relativity, quantum mechanics, and information theory. It reframes market analysis not as a problem of forecasting, but as a problem of state recognition in a non-Euclidean manifold.
1. The Lorentzian Kernel: The Mathematics of Reality
Financial markets are not Gaussian. Their reality is one of "fat tails"—sudden, high-impact events that standard models dismiss as anomalies. The LTC acknowledges this reality by using the mathematically pure and robust Lorentzian kernel as its core engine:
Similarity(x, y) = 1 / (1 + (||x − y||² / γ²))
||x − y||²: The squared distance between the current market state (x) and a historical state (y) in our 8-dimensional feature space.
γ (Gamma): A dynamic bandwidth parameter, our "Lorentz factor," which adapts to market entropy (chaos). In calm markets, gamma is small, demanding precise resonance. In chaotic markets, gamma expands, intelligently seeking broader patterns.
This heavy-tailed function is revolutionary. It correctly assigns profound significance to the rare, extreme events that truly define market structure, while gracefully tuning out the noise of mundane price action. It doesn't just calculate; it understands context.
2. The 8-Dimensional State Vector: The Market's Quantum Fingerprint
To achieve a holistic view, the LTC projects the market onto an 8-dimensional Hilbert space, where each dimension represents a critical "observable":
Momentum & Acceleration (f_rsi, f_roc): The market's velocity and its rate of change.
Cyclical Position (f_stoch, f_cci): The market's location within its recent oscillation cycles.
Energy & Participation (f_vol, f_cor): The force of capital flow and its harmony with price.
Chaos & Uncertainty (f_ent, f_mom): The degree of randomness and the standardized force of price changes.
These are not eight separate indicators. They are entangled properties of a single "market wavefunction." The LTC's genius lies in measuring the geometric distance between these complete quantum states.
3. The k-NN Oracle: A Council of Past Universes
The LTC employs a k-Nearest Neighbors algorithm, but in our curved Lorentzian spacetime. It poses a constant, profound question: " Which moments in history are most geometrically congruent to the present moment across all eight dimensions? "
It then summons a "council" of these historical neighbors. Each neighbor's future outcome (did price ascend or descend?) casts a vote, weighted by its resonant similarity. The result is a probabilistic forecast of stunning clarity:
Prognosis: The final weighted consensus on future direction.
Assurance: The degree of unanimity within the council—a direct measure of the prediction's confidence.
The Funnel of Conviction: The LTC's process is a rigorous distillation of information. Raw, chaotic market data is resolved into a clean 8-dimensional state vector. The Lorentzian Kernel filters these states for resonance, which are then passed to the k-NN Oracle for a vote. Noise is eliminated at each stage, resulting in a single, validated, high-conviction signal.
⚙️ THE COMMAND CONSOLE: A Guide to Calibrating Your Observatory
Mastering the LTC's inputs is to become an architect of your own analytical universe. Each parameter is a dial that tunes the observatory's focus, from galactic structures to subatomic fluctuations. The tooltips in-script—over 6,000 words of documentation—provide immediate reference; this guide provides the philosophy.
A summarized guide to the Core, Signal, Supreme, and Visual controls is included directly in the indicator's code and tooltips. We encourage all users to explore these settings to tune the LTC to their unique analytical style.
🏆 THE SUPREME DASHBOARD: Your Mission Control
The dashboard is not a data table; it is your command interface with market reality. It translates the intricate dance of probabilities and vectors into clear, actionable intelligence.
⚡ ORACLE STATUS
Prognosis: The primary directional vector. Its color, magnitude, and emoji (⚡) reveal the strength and conviction of the Oracle's forward guidance.
Assurance: A real-time gauge of prediction quality, from "LOW" (high uncertainty) to "ELITE" (overwhelming statistical consensus). Interpret this as your core risk metric: trade with conviction when Assurance is ELITE; trade with caution when it is LOW.
🔮 RESONANCE ANALYSIS
Chaos: A direct measurement of market entropy. "LOW CHAOS" signifies a predictable, orderly regime. "HIGH CHAOS" is a warning of randomness and unpredictability, where trend-following logic may fail.
Turbulence: A measure of raw volatility. When the market is "TURBULENT," expect wider price swings and increased risk. Use this metric to adjust stop-loss distances and profit targets dynamically.
🏆 PERFORMANCE & ⚔️ GUARD METRICS
These sections provide illustrative statistics on the script's recent historical behavior. Metrics like Yield Ratio and Guard Index offer a quick heuristic on the prevailing risk-reward environment. Crucially, these are for observational context only and are not a substitute for your own rigorous testing and analysis.
🎨 THE VISUAL MANIFESTATION: Charting the Unseen
The LTC's visuals are designed to transform your chart from a 2D price graph into a 4D informational battlespace.
The Dynamic Aura (Background Color): This is the ambient energy field of the market. A luminous green (Ascend) signifies a bullish resonance field; a deep red (Descend) indicates bearish pressure.
The Assurance Shroud (Blue Bands): A visualization of confidence. When the shroud is wide and expansive , the Oracle's vision is clear and its predictions are robust.
The Prognosis Arc (Curved Line): A geodesic projection of the market's most likely path, based on the current Prognosis.
The Turbulence Cloud (Orange Mist): A visual warning system for market chaos. When this entropic mist expands , it is a clear sign that you are navigating a nebula of high unpredictability.
Oracle Markers (▲▼): The final, validated signals. These are not merely pivot points. They are moments in spacetime where a structural pivot has been confirmed and then ratified by a high-conviction vote from the Lorentzian Oracle. They are the pinnacles of confluence.
The Analyst's Observatory: The LTC transforms your chart into a command center for market analysis, providing a complete, at-a-glance view of market state, risk, and probabilistic trajectory.
🔧 THE ARCHITECT'S VISION: From a Blank Slate to a New Cosmos
The LTC was not assembled; it was derived. It began not with code, but with first principles, asking: "If we were to build an instrument to measure the market today, unbound by the technical dogmas of the 20th century, what would it look like?" The answer was clear: it must be multi-dimensional, it must be adaptive, and it must be built on a mathematical framework that respects the "fat-tailed" nature of reality.
The decision to use a pure Lorentzian kernel was non-negotiable. It represented a commitment to intellectual honesty over computational ease. The development of the Supreme Dashboard was driven by the philosophy of the "glass cockpit"—a belief that a trader's greatest asset is not a black box signal, but a transparent and intuitive flow of high-quality information. This script is the result of that unwavering vision: to create not just another indicator, but a new lens through which to perceive the market.
⚠️ RISK DISCLOSURE & PHILOSOPHY OF USE
The Lorentzian Theory Classifier is an instrument of profound analytical power, intended for the serious, discerning trader. It does not generate infallible signals. It generates high-probability, data-driven hypotheses based on a rigorous and transparent methodology. All trading involves substantial risk, and the future is fundamentally unknowable. Past performance, whether real or simulated, is no guarantee of future results. Use this tool to augment your own skill, to confirm your own analysis, and to manage your own risk within a well-defined trading plan.
"The effort to understand the universe is one of the very few things that lifts human life a little above the level of farce, and gives it some of the grace of tragedy."
— Steven Weinberg, Nobel Laureate in Physics
Trade with rigor. Trade with perspective. Trade with enlightenment. Trade with insight. Trade with anticipation.
— Dskyz, for DAFE Trading Systems
TREV Candles - Range-Based Trend ReversalTREV Candles - Range-Based Trend Reversal Chart Implementation
What is a Trend Reversal (TREV) Chart?
A Trend Reversal chart, also known as a Point & Figure chart variation, is a unique charting method that focuses on price movement thresholds rather than time intervals. Unlike traditional candlestick charts where each candle represents a fixed time period, TREV candles form only when price moves by predefined amounts in ticks.
TREV charts eliminate time-based noise and focus purely on significant price movements, making them ideal for identifying genuine trend changes and continuation patterns.
How TREV Candles Work
This indicator implements true TREV logic with two critical thresholds:
Trend Size: The number of ticks price must move in the current direction to form a trend continuation candle
Reversal Size: The number of ticks price must move against the current direction to form a reversal candle and change the overall trend direction
Key TREV Rules Enforced:
Direction Changes Only Through Reversals: You cannot go from bullish trend directly to bearish trend - a reversal candle must occur first
Threshold-Based Formation: Candles form only when price thresholds are breached, not on time
Logical Wick Placement: Wicks only appear on the "open" side of candles where price temporarily moved against the formation direction
Multiple Candles Per Bar: When price moves significantly, several TREV candles can form within a single time-based bar
Four Distinct Candle Types
Bullish Trend (Green): Continues upward movement when trend threshold is hit
Bearish Trend (Red): Continues downward movement when trend threshold is hit
Bullish Reversal (Blue): Changes from bearish to bullish direction when reversal threshold is breached
Bearish Reversal (Orange): Changes from bullish to bearish direction when reversal threshold is breached
Practical Trading Applications
Trend Identification: Clear visual representation of when trends are continuing vs. reversing
Noise Reduction: Filters out insignificant price movements that don't meet threshold requirements
Support/Resistance: TREV levels often act as significant support and resistance zones
Breakout Confirmation: When price forms multiple trend candles in succession, it confirms strong directional movement
Reversal Signals: Reversal candles provide early warning of potential trend changes
Technical Implementation Features
Intelligent Price Path Processing: Analyzes the assumed price path within each bar (Low→High→Close for bullish bars, High→Low→Close for bearish bars)
Automatic Tick Size Detection: Works with any instrument by automatically detecting the correct tick size
Manual Override Option: Allows manual tick size specification for custom analysis
Impossible Scenario Prevention: Built-in logic prevents impossible wick configurations and direction changes
PineScript Optimization: Efficient state management and drawing limits handling for smooth performance
Comprehensive Styling Options
Each of the four candle types offers complete visual customization:
Body Colors: Independent color settings for each candle type's body
Border Colors: Separate border color customization
Border Styles: Choose from solid, dashed, or dotted borders
Wick Colors: Individual wick color settings for each candle type
Default Color Scheme:
🟢 Bullish Trend: Green body and wicks
🔵 Bullish Reversal: Blue body and wicks
🔴 Bearish Trend: Red body and wicks
🟠 Bearish Reversal: Orange body and wicks
Configuration Guidelines
Trend Size: Larger values create fewer, more significant trend candles. Smaller values increase sensitivity
Reversal Size: Should typically be smaller than trend size. Controls how easily the trend direction can change
Tick Size: Use "auto" for most instruments. Manual override useful for custom point values or backtesting
Ideal Use Cases
Swing Trading: Identify major trend changes and continuation patterns
Scalping: Use smaller thresholds to catch quick reversals and momentum shifts
Position Trading: Use larger thresholds to filter noise and focus on major trend moves
Multi-Timeframe Analysis: Compare TREV patterns across different threshold settings
Support/Resistance Trading: TREV close levels often become significant price zones
Why This Implementation is Superior
True TREV Logic: Enforces proper trend reversal rules that many implementations ignore
No Impossible Scenarios: Prevents wicks on both sides of candles and impossible direction changes
Professional Visualization: Clean, customizable appearance suitable for serious analysis
Performance Optimized: Handles large datasets without lag or drawing limit issues
Educational Value: Helps traders understand the difference between time-based and threshold-based charting
Perfect for traders who want to see beyond time-based noise and focus on what price is actually doing - moving in significant, measurable amounts that matter for trading decisions.
Pattern Detector [theUltimator5]🎯 Overview
The Pattern Detector is a comprehensive technical analysis indicator that automatically identifies and visualizes multiple pattern types on your charts. Built with advanced ZigZag technology and sophisticated pattern recognition algorithms, this tool helps traders spot high-probability trading opportunities across all timeframes and markets.
✨ Key Features
🔍 Multi-Pattern Detection System
Harmonic Patterns: Butterfly, Gartley, Bat, and Crab patterns with precise Fibonacci ratios
Classic Reversal Patterns: Head & Shoulders and Inverse Head & Shoulders
Double Patterns: Double Tops and Double Bottoms with extreme validation
Wedge Patterns: Rising and Falling Wedges with volume confirmation
📊 Advanced ZigZag Engine
Customizable sensitivity (5-50 levels)
Depth multiplier for multi-timeframe analysis
Real-time pivot detection with noise filtering
Option to display ZigZag lines only for pure price action analysis
🎨 Visualization
Clean pattern lines with distinct color coding
Point labeling system (X, A, B, C, D for harmonics / LS, H, RS for H&S)
Pattern name displays with bullish/bearish direction
Price target projections with arrow indicators
Subtle pattern fills for enhanced visibility
🛠️ Settings & Configuration
Core ZigZag Settings
ZigZag Sensitivity (5-50): Controls pattern detection sensitivity. Lower values detect more patterns but may include noise. Higher values focus on major swings only.
ZigZag Depth Multiplier (1-5): Multiplies sensitivity for deeper analysis. Level 1 = most responsive, Level 5 = major swings only.
Pattern Detection Toggles
Show ZigZag Lines Only: Displays pure ZigZag without pattern detection for price structure analysis
Detect Harmonic Patterns: Enable/disable Fibonacci-based harmonic pattern detection
Detect Head & Shoulders: Toggle classic reversal pattern identification
Detect Double Tops/Bottoms: Enable double pattern detection with extreme validation
Detect Wedge Patterns: Toggle wedge pattern detection with volume confirmation
Display Options
Show Pattern Names: Display pattern names directly on chart (e.g., "Butterfly (Bullish)")
Show Point Labels: Add lettered labels at key pattern points for structure identification
Project Harmonic Targets: Show projected completion points for incomplete harmonic patterns
📈 Pattern Types Explained
Harmonic Patterns 🦋
Advanced Fibonacci-based patterns that provide high-probability reversal signals:
Butterfly: AB=0.786 XA, BC=0.382-0.886 AB, CD=1.618-2.24 BC
Gartley: AB=0.618 XA, BC=0.382-0.886 AB, CD=1.272-1.618 BC
Bat: AB=0.382-0.50 XA, BC=0.382-0.886 AB, CD=1.618-2.24 BC
Crab: AB=0.382-0.618 XA, BC=0.382-0.886 AB, CD=2.24-3.618 BC
Head & Shoulders 👤
Classic three-peak reversal pattern indicating trend exhaustion:
Standard H&S: Bearish reversal at tops
Inverse H&S: Bullish reversal at bottoms
Automatic neckline validation and price target calculation
Double Patterns 📊
Powerful reversal patterns with extreme validation:
Double Top: Two similar highs with valley between (bearish)
Double Bottom: Two similar lows with peak between (bullish)
Includes lookback period validation to ensure patterns are significant extremes
Wedge Patterns 📐
Continuation/reversal patterns with converging trend lines:
Rising Wedge: Converging upward slopes (typically bearish)
Falling Wedge: Converging downward slopes (typically bullish)
Volume confirmation required for increased accuracy
🎯 Trading Applications
Entry Signals
Harmonic Patterns: Enter at point D completion with targets at point A
H&S Patterns: Enter on neckline break with calculated targets
Double Patterns: Enter on support/resistance break with measured moves
Wedge Patterns: Enter on breakout direction with volume confirmation
Risk Management
Use pattern structure for logical stop placement
Pattern invalidation levels provide clear exit rules
Multiple pattern confirmation increases probability
Multi-Timeframe Analysis
Higher ZigZag depth for longer-term patterns
Lower sensitivity for short-term trading patterns
Combine with other timeframes for confluence
⚙️ Optimal Settings
For Day Trading (1m-15m charts)
ZigZag Sensitivity: 5-9
Depth Multiplier: 1-2
Enable all pattern types for maximum opportunities
For Swing Trading (1H-4H charts)
ZigZag Sensitivity: 9-15
Depth Multiplier: 2-3
Focus on harmonic and H&S patterns
For Position Trading (Daily+ charts)
ZigZag Sensitivity: 15-25
Depth Multiplier: 3-5
Emphasize major harmonic and double patterns
🔧 Technical Specifications
Maximum Lookback: 5000 bars for comprehensive analysis
Pattern Overlap Prevention: Intelligent filtering prevents duplicate patterns
Performance Optimized: Efficient algorithms for real-time detection
Volume Integration: Advanced volume analysis for wedge confirmation
Fibonacci Precision: 10% tolerance for harmonic ratio validation
📚 How to Use
Add to Chart: Apply indicator to any timeframe/market
Configure Settings: Adjust sensitivity based on trading style
Enable Patterns: Toggle desired pattern types
Analyze Results: Look for completed patterns with clear structure
Plan Trades: Use price targets and pattern invalidation for trade management
Perfect for both novice and experienced traders seeking systematic pattern recognition with visualization and entry/exit signals.
Range Bar Gaps DetectorRange Bar Gaps Detector
Overview
The Range Bar Gaps Detector identifies price gaps across multiple range bar sizes (12, 24, 60, and 120) on any trading instrument, helping traders spot potential support/resistance zones or breakout opportunities. Designed for Pine Script v6, this indicator detects gaps on range bars and exports data for use in companion scripts like Range Bar Gaps Overlap, making it ideal for multi-timeframe gap analysis.
Key Features
Multi-Range Gap Detection: Identifies gaps on 12, 24, 60, and 120-range bars, capturing both bullish (gap up) and bearish (gap down) price movements.
Customizable Sensitivity: Includes a user-defined minimum deviation (default: 10% of 14-period SMA) for 12-range gaps to filter out noise.
7-Day Lookback: Automatically prunes gaps older than 7 days to focus on recent, relevant price levels.
Data Export: Serializes up to 10 gaps per range (tops, bottoms, start bars, highest/lowest prices, and age) for seamless integration with overlap analysis scripts.
Debugging Support: Plots gap counts and aggregation data in the Data Window for easy verification of detected gaps.
How It Works
The indicator aggregates price movements to simulate higher range bars (24, 60, 120) from a base range bar chart. It detects gaps when the price jumps significantly between bars, ensuring gaps meet the minimum deviation threshold for 12-range bars. Gaps are stored in arrays, serialized for external use, and pruned after 7 days to maintain efficiency.
Usage
Add to your range bar chart (e.g., 12-range) to detect gaps across multiple ranges.
Use alongside the Range Bar Gaps Overlap indicator to visualize gaps and their overlaps as boxes on the chart.
Check the Data Window to confirm gap counts and sizes for each range (12, 24, 60, 120).
Adjust the "Minimal Deviation (%) for 12-Range" input to control gap detection sensitivity.
Settings
Minimal Deviation (%) for 12-Range: Set the minimum gap size for 12-range bars (default: 10% of 14-period SMA).
Range Sizes: Fixed at 24, 60, and 120 for higher range bar aggregation.
Notes
Ensure the script is published under your TradingView username (e.g., GreenArrow2005) for use with companion scripts.
Best used on range bar charts to maintain consistent gap detection.
For advanced overlap analysis, pair with the Range Bar Gaps Overlap indicator to highlight zones where gaps from different ranges align.
Ideal For
Traders seeking to identify key price levels for support/resistance or breakout strategies.
Multi-timeframe analysts combining gap data across various range bar sizes.
Developers building custom indicators that leverage gap data for advanced charting.
1H/3m Concept [RunRox]🕘 1H/3m Concept is a versatile trading methodology based on liquidity sweeps from fractal points identified on higher timeframes, followed by price reversals at these key moments.
Below, I will explain this concept in detail and provide clear examples demonstrating its practical application.
⁉️ WHAT IS A FRACTALS?
In trading, a fractal is a technical analysis pattern composed of five consecutive candles, typically highlighting local market turning points. Specifically, a fractal high is formed when a candle’s high is higher than the highs of the two candles on either side, whereas a fractal low occurs when a candle’s low is lower than the lows of the two adjacent candles on both sides.
Traders use fractals as reference points for identifying significant support and resistance levels, potential reversal areas, and liquidity zones within price action analysis. Below is a screenshot illustrating clearly formed fractals on the chart.
📌 ABOUT THE CONCEPT
The 1H/3m Concept involves marking Higher Timeframe (HTF) fractals directly onto a Lower Timeframe (LTF) chart. When a liquidity sweep occurs at an HTF fractal level, we remain on the same LTF chart (since all HTF fractals are already plotted on this lower timeframe) and wait for a clear Market Structure Shift (MSS) to identify our potential entry point.
Below is a schematic illustration clearly demonstrating how this concept works in practice.
Below is another 💡 real-chart example , showing liquidity in the form of a 1H fractal, swept by a rapid impulse move. Immediately afterward, a clear Market Structure Shift (MSS) occurs, signaling a potential entry point into the trade.
Another example is shown below, where we see our hourly fractal, from which price clearly reacts, providing an opportunity to search for an entry point.
As illustrated on the chart, the fractal levels from the higher timeframe are clearly displayed, but we’re working directly on the 5-minute chart. This allows us to remain on one timeframe without needing to switch back and forth between charts to spot such trading setups.
🔍 MTF FRACTALS
This concept can be applied across various HTF-LTF timeframe combinations. Although our examples illustrate 1H fractals used on a 5-minute chart, you can effectively utilize many other timeframe combinations, such as:
30m HTF fractals on 1m chart
1H HTF fractals on 3m chart
4H HTF fractals on 15m chart
1D HTF fractals on 1H chart
The key idea behind this concept is always the same: identify liquidity at fractal levels on the higher timeframe (HTF), then wait for a clear Market Structure Shift (MSS) on the lower timeframe (LTF) to enter trades.
⚙️ SETTINGS
🔷 Trade Direction – Select the preferred trading direction (Long, Short, or Both).
🔷 HTF – Choose the higher timeframe from which fractals will be displayed on the current chart.
🔷 HTF Period – Number of candles required on both sides of a fractal candle (before and after) to confirm fractal formation on the HTF.
🔷 Current TF Period – Sensitivity to the impulse that sweeps liquidity, used for identifying and forming the MSS line.
🔷 Show HTF – Enable or disable displaying HTF fractal lines on your chart. You can also customize line style and color.
🔷 Max Age (Bars) – Number of recent bars within which fractals from the selected HTF will be displayed.
🔷 Show Entry – Enable or disable displaying the MSS line on the chart.
🔷 Enable Alert – Activates TradingView alerts whenever the MSS line is crossed.
You can also enable 🔔 alerts, which notify you whenever price crosses the MSS line. This significantly simplifies the process of identifying these setups on your charts. Simply configure your preferred timeframes and wait for notifications when the MSS line is crossed.
🔶 We greatly appreciate your feedback and suggestions for improving the indicator!
[TehThomas] - ICT Volume ImbalanceThis script is a Volume Imbalance (VI) detector and visualizer for use on the TradingView platform. The goal of the script is to automatically identify areas where there are significant imbalances in the volume of trades between consecutive candlesticks and visually highlight these areas. These imbalances can provide traders with valuable insights about the market’s current condition, often signaling potential reversal or continuation points based on price and volume action.
ICT (Inner Circle Trader) Concept of Volume Imbalances
Volume imbalances are a critical concept in the ICT trading methodology. They refer to situations where there is an unusual or significant difference in volume between two consecutive candlesticks, which might indicate institutional or large player activity. According to ICT principles, these imbalances can show us areas of market inefficiency or potential price manipulation. By identifying these imbalances, traders can gain an edge in understanding where the market is likely to move next.
Bullish and Bearish Volume Imbalances:
Bullish Volume Imbalance: This occurs when there is a strong increase in buying pressure, typically indicated by a higher volume on a candle that closes significantly above the previous one, often leaving a gap or larger price movement. The market could be preparing to push higher, and the volume shows a clear shift in buying demand.
Bearish Volume Imbalance:
Conversely, a bearish imbalance occurs when there is a strong increase in selling pressure, typically signaled by a candle that closes significantly lower than the previous one, again with higher volume. This could indicate that large players are offloading positions, and the price is likely to drop further.
Key Features and Functions of the Script
The script automates the process of detecting these volume imbalances and visually marking them on a price chart. Let’s explore its functionality in detail.
1. Inputs Section
The script allows for significant customization through its input options, which help traders adjust the detection and visualization of volume imbalances based on their individual preferences and trading style. Below are the details:
lookback (250 bars): This input specifies the number of bars (or candles) the script should look back when analyzing the volume imbalance. By setting this to 250, the user is looking at the last 250 bars on the chart to detect any significant volume imbalances. This period is adjustable between 50 to 500 bars.
volumeThreshold (1.0 multiplier): This input helps set the sensitivity for identifying volume imbalances. The script compares the volume of the current candle with the previous one, and if the current volume exceeds the previous volume by this threshold multiplier (in this case, 1.0 means at least equal to the previous volume), then it triggers an imbalance. Users can adjust the multiplier to suit different market conditions.
showBoxes (true/false): This toggle determines whether the boxes representing volume imbalances are drawn on the chart. When enabled, the script visually highlights the imbalances with colored boxes.
fillBaseColor (orange with 80% opacity): This is the color setting for the background of the imbalance boxes. A softer color (like orange with opacity) ensures the imbalance is highlighted without obscuring the price action.
borderColor (gray): The color of the border around the imbalance boxes. This adds a visual distinction to make the imbalance areas more visible.
borderWidth (1 pixel): This controls the width of the box's border to adjust how prominent it appears.
rightOffset (30 bars): This input controls how far the imbalance box extends to the right on the chart. It helps users anticipate the potential continuation of the imbalance beyond the current candle.
allowWickOverlap (true/false): This setting allows imbalances to be identified even if the wicks of the two consecutive candlesticks overlap. If set to false, only imbalances where the bodies of the candlesticks don’t overlap are considered.
showBrokenBoxes (true/false): If enabled, once a volume imbalance no longer holds true (i.e., the price breaks through the box), the box is marked as "broken." If disabled, the box is deleted when the imbalance condition no longer applies.
brokenBoxColor (red): This controls the color of the box when it is broken, which can be used as a visual cue that the imbalance was invalidated or no longer valid for analysis.
2. Volume Imbalance Function
This is the core function of the script, where the logic to detect bullish and bearish volume imbalances is implemented.
Bullish Imbalance Condition:
The first condition checks if the low of the current candle is greater than the high of the previous candle. This suggests that the market is moving upward with buying pressure.
The second condition checks whether the volume of the current candle is higher than the previous candle by the volumeThreshold multiplier. If both conditions are satisfied, a bullish imbalance is detected.
Bearish Imbalance Condition:
The first condition checks if the high of the current candle is lower than the low of the previous candle. This suggests downward price action with selling pressure.
The second condition checks whether the current volume exceeds the previous volume by the threshold
Allow Wick Overlap: If allowWickOverlap is set to true, the script will still detect imbalances if the wicks of the two candles overlap (common in volatile markets). If false, imbalances are only considered if the wicks do not overlap.
3. Box Creation and Management
When a volume imbalance is detected, the script creates a box on the chart:
The bullish imbalance box is drawn using the minimum of the open and close of the current bar as the top boundary and the maximum of the open and close of the previous bar as the bottom boundary.
Conversely, the bearish imbalance box is drawn in reverse, using the maximum of the current bar’s open and close as the top boundary and the minimum of the previous bar’s open and close as the bottom boundary.
Once the box is created, it is displayed on the chart with the specified background color, border color, and width.
4. Processing Existing Boxes
After detecting a new imbalance and drawing a box, the script checks whether the box should still remain on the chart:
If the price moves beyond the boundaries of the imbalance box, the box is marked as broken (if showBrokenBoxes is enabled), and its color is changed to red, signifying that the imbalance is no longer valid.
If the box remains intact (i.e., the price has not broken the defined boundaries), the script keeps the box extended to the right as the market continues to evolve.
5. Removing Outdated Boxes
Lastly, the script removes boxes that are older than the specified lookback period. For example, if a box was created 250 bars ago, it will be deleted after that period. This ensures the chart stays clean and only focuses on relevant imbalances.
Why This Script is Useful for Traders
This script is extremely valuable for traders, especially those following the ICT methodology, because it automates the process of detecting market inefficiencies or imbalances that might signal future price action. Here’s why it’s particularly useful:
Identifying Key Areas of Interest: Volume imbalances often point to areas where institutional or large-scale traders have entered the market. These areas could provide clues about the next significant move in the market.
Visualizing Market Structure: By automatically drawing boxes around volume imbalances, the script helps traders visually identify potential areas of support, resistance, or turning points, enabling them to make informed trading decisions.
Time Efficiency: Instead of manually analyzing each candlestick and volume spike, this script does the heavy lifting, saving traders valuable time and allowing them to focus on other aspects of their strategy.
Enhanced Trade Entries and Exits: By understanding where volume imbalances are occurring, traders can time their entries (buying during bullish imbalances and selling during bearish ones) and exits (as imbalances break) more effectively, thus improving their chances of success.
Conclusion
In summary, this script is a powerful tool for traders looking to implement volume imbalance strategies based on the ICT methodology. It automates the identification and visualization of significant imbalances in price and volume, offering traders a clear visual representation of potential market turning points. By customizing the settings, traders can tailor the script to their preferred timeframes and sensitivity, making it a flexible and effective tool for any trading strategy.
__________________________________________
Thanks for your support!
If you found this idea helpful or learned something new, drop a like 👍 and leave a comment, I’d love to hear your thoughts! 🚀
Make sure to follow me for more price action insights, free indicators, and trading guides. Let’s grow and trade smarter together! 📈
ImbalancesThis Pine Script is a trading indicator designed to identify imbalances in the market, specifically on candlestick charts. An imbalance refers to situations where there is a significant difference between buyers and sellers, which can create gaps or areas of inefficiency in the price. These imbalances often act as zones where price may return to "fill" or correct these inefficiencies.
1. Identifying Imbalances
The script analyzes candlestick patterns to detect imbalances based on the relationship between the highs, lows, and closes of consecutive candles. Specifically, it looks for:
Top Imbalances (Bearish): Areas where selling pressure has dominated, causing inefficiencies in the price. These are represented by patterns like multiple consecutive bearish candles or bearish gaps.
Bottom Imbalances (Bullish): Areas where buying pressure has dominated, leading to bullish gaps or inefficiencies.
When an imbalance is detected, the script highlights the area using visual boxes on the chart.
2. Visual Representation
The indicator uses colored boxes to show imbalances directly on the chart:
Top (Bearish) Imbalances: Highlighted using shades of red.
Bottom (Bullish) Imbalances: Highlighted using shades of green.
The boxes are further categorized into three states based on their level of mitigation:
Unmitigated: The imbalance has not been "filled" by price yet.
Partially Mitigated: Price has entered the imbalance zone but not completely filled it.
Fully Mitigated: Price has completely filled the imbalance zone.
3. Mitigation Logic
The concept of mitigation refers to the price revisiting an imbalance zone to correct the inefficiency:
If price fully or partially revisits an imbalance zone, the box's color changes to indicate the mitigation level (e.g., from unmitigated to partially/fully mitigated).
Fully mitigated boxes may be removed or recolored, depending on user preferences.
4. User Customization
The script provides several inputs to customize its behavior:
Enable or disable top and bottom imbalance detection.
Color settings: Users can define different colors for unmitigated, partially mitigated, and fully mitigated imbalances.
Mitigation display options: Users can choose whether to show fully mitigated imbalances on the chart or remove them.
5. Key Calculations
Imbalance Size: The size of the imbalance is calculated as the price difference between a candle's high and low across the relevant pattern.
Pattern Detection: The script checks for specific candlestick patterns (e.g., three consecutive bearish candles) to identify potential imbalances.
6. Practical Use Case
This indicator is useful for traders who:
Rely on supply and demand zones for their trading strategies.
Look for areas where price is likely to return (retesting unmitigated imbalances can signal potential trade setups).
Want to visually track market inefficiencies over time.
In Summary
The "Imbalances" indicator highlights and tracks price inefficiencies on candlestick charts. It marks zones where buying or selling pressure was dominant, and it dynamically updates these zones based on price action to indicate their mitigation status. This tool is particularly helpful for traders who use price action and market structure in their strategies.
Days Higher Than Current PriceThe "Days Higher Than Current Price" indicator is a color-coded tool that provides insights into the historical price performance of an underlying asset. By analyzing the number of bars prior to the selected day that had higher closing prices, this indicator visually represents the comparative strength or weakness of the current price level.
The "Days Higher" indicator utilizes a color-coded scheme to indicate the number of days in the asset's price history where the closing prices were higher than the current day's price. The color spectrum ranges from red to blue, representing varying levels of historical price strength.
Color Coding:
The color coding scheme of the indicator offers a quick and intuitive understanding of the price performance:
Red: Represents a higher number of days in the asset's price history where the closing prices were higher than the current day's price. This suggests a weaker price trend or a potential reversal and indicates relative price weakness.
Blue: Represents a lower number of days in the asset's price history where the closing prices were higher than the current day's price. This indicates a strong trend of higher prices and suggests relative price strength.
Orange & Green: Correspond to different numbers of days where the closing prices were higher than the current day's price. The specific color gradations between red and blue reflect increasing or decreasing historical price strength.
Methodology:
The "Days Higher" indicator examines each bar in the asset's price history leading up to the selected day. It counts the number of bars where the closing prices were higher than the current day's price.
The indicator then assigns a specific color to the price chart based on the count of such days, providing a visual representation of historical price strength relative to the current price level.
Utility:
The "Days Higher" indicator offers traders and investors a unique perspective on the historical price performance of an asset. By assessing the color-coded chart, market participants can quickly gauge the presence of strong or weak historical price trends.
This information can be used to identify potential support or resistance levels, assess the overall strength of a trend, or evaluate the likelihood of a price reversal. Traders may incorporate this indicator into their analysis to make more informed trading decisions based on the historical price strength indicated by the color-coded chart.
It is important to note that this tool should be used in conjunction with other technical analysis tools and indicators to validate signals and make well-rounded trading decisions.
Example Charts:
-Indices-
-Stocks-
-Cryptos-
-Multi-Timeframe-
Batoot Algo PureBatoot Algo (Pure Analysis Mode)
Indicator Overview
Batoot Algo is an advanced technical analysis indicator based on:
Price Action and geometric chart patterns
Higher Timeframe (HTF) trend filtering
Volume confirmation
Breakout & Retest logic
Head & Shoulders pattern detection
Analysis-only indicator. No Buy/Sell labels on the chart. Alerts and Dashboard only.
The goal is clean charts and smarter trading decisions.
---
Entry Modes
Aggressive (Breakout)
Immediate entry on breakout
Requires:
Confirmed breakout
High volume
Optional trend alignment
Conservative (Retest)
Breakout → Wait for retest → Confirmation candle
Reduces false signals
Suitable for patient trading
---
HTF Trend Filter
Uses EMA crossover on higher timeframe:
EMA 50
EMA 200
EMA50 > EMA200 → Bullish EMA50 < EMA200 → Bearish
Filter can be enabled or disabled in settings.
---
Price Patterns Detected
Automatically detects and draws:
Bullish / Bearish Flags
Channels
Triangles / Pennants
Rising Wedge (Bearish)
Falling Wedge (Bullish)
The area between support and resistance lines is dynamically filled based on the pattern.
---
Yellow Candle (High Volume)
Yellow candles indicate High Volume.
Triggered when:
Current candle volume >= Average volume of last 20 candles × volume multiplier
Default multiplier: 1.5
Confirms strong breakouts. Not a standalone entry signal.
---
Head & Shoulders Detection
Supports:
Head & Shoulders (Bearish)
Inverse Head & Shoulders (Bullish)
Neckline drawn automatically. Breakout validated with volume. Pattern status shown in Dashboard.
---
Dashboard
Displays:
Entry Mode (Aggressive / Conservative)
HTF Trend
Current Pattern
Head & Shoulders Status
Market Status: ENTRY BUY, ENTRY SELL, WAIT RETEST, SCANNING
---
Alerts
Alerts trigger only when:
Pattern confirmed
Breakout / Retest logic satisfied
High volume confirmed
Trend filter (if enabled) passes
No trade labels plotted on chart.
---
License & Attribution
Licensed under Creative Commons Attribution 4.0 (CC BY 4.0)
Free to use and modify. Attribution required. Removing or changing the author name is not allowed.
---
This indicator is for technical analysis purposes only and is not financial advice. Always use proper risk management.
---
Clean chart, smart analysis, better trading decisions.
Pivot Points - Market Structure with percent changeRULES:
1) Inputs that control pivots
• leftBars: how many bars to the left of the pivot must be lower (for a high pivot) or higher (for a low pivot).
• rightBars: how many bars to the right of the pivot must be lower (for a high pivot) or higher (for a low pivot).
These two values define the “strictness” of a swing.
2) Pivot High logic (ta.pivothigh)
A pivot high is confirmed at bar t when:
• The high at t is the maximum within the window:
○ from t - leftBars through t + rightBars
• In practical terms:
○ the prior leftBars bars have highs below that high
○ the next rightBars bars have highs below that high
In code:
• ph = ta.pivothigh(high, leftBars, rightBars)
Behavior:
• ph returns the pivot high price, but only after rightBars future bars have printed.
• Until then it returns na.
Where it is plotted:
• When ph is confirmed on the current bar, the actual pivot occurred rightBars bars ago, so we place the label at:
○ pivotBar = bar_index - rightBars
○ price = ph
3) Pivot Low logic (ta.pivotlow)
A pivot low is confirmed at bar t when:
• The low at t is the minimum within the window:
○ from t - leftBars through t + rightBars
• In practical terms:
○ the prior leftBars bars have lows above that low
○ the next rightBars bars have lows above that low
In code:
• pl = ta.pivotlow(low, leftBars, rightBars)
Same confirmation behavior:
• pl only becomes non-na after rightBars bars have passed.
• The label is plotted at bar_index - rightBars.
4) Confirmation delay (important)
Because pivots need “future” bars to confirm, every pivot is lagged by rightBars bars. This is expected and correct: it prevents repainting of the pivot point once confirmed.
5) The alternation rule (your added constraint)
On top of the raw pivot detection above, the script enforces:
• You cannot accept another pivot high until a pivot low has been accepted.
• You cannot accept another pivot low until a pivot high has been accepted.
Implementation:
• Track lastAccepted = "high" or "low".
• Only process pivotHigh when lastAccepted != "high".
• Only process pivotLow when lastAccepted != "low".
This is what prevents consecutive HHs (or LHs) printing without an intervening HL/LL pivot, and vice versa.
REALTIME BARS THAT ARE NOT REPAINTED BUT HAVE A 3 BAR DELAY ON THE CHART TIMEFRAME:
The confirmation delay is exactly rightBars bars.
• A pivot is only confirmed after rightBars future bars have printed.
• So the signal arrives rightBars × your chart timeframe after the actual turning point.
Examples:
• If rightBars = 3:
○ On a Daily chart: ~3 trading days after the pivot bar.
○ On a 65-minute chart: 3 × 65 = 195 minutes (about 3h 15m) after the pivot bar.
○ On a 10-minute chart: 30 minutes after the pivot bar.
Note: the pivot label is plotted back on the pivot bar (bar_index - rightBars), but you only learn it rightBars bars later.
CVD-MACD### CVD-MACD (Research)
The CVD-MACD is a research-oriented indicator that combines Cumulative Volume Delta (CVD) with the classic MACD framework to provide insights into market momentum and potential reversals. Unlike a standard MACD based on price, this version uses CVD (the running total of buy vs. sell volume delta) as its input source, offering a volume-driven perspective on trend strength and divergences.
Key Features:
- **CVD-Based MACD Calculation**: Computes MACD using CVD instead of price, highlighting volume imbalances that may precede price moves.
- **Dual Divergence Detection**: Identifies bullish/bearish divergences on both the MACD line and histogram, with configurable pivot lookbacks and filters (e.g., momentum decay and zero-side consistency).
- **Visual Flexibility**: Toggle divergences in the indicator pane or overlaid on the main chart, with optional raw CVD line for reference.
- **Alerts**: Built-in conditions for bullish and bearish divergences to notify users of potential setups.
###This indicator is designed for research and experimentation—it's not financial advice. It performs best on liquid assets with reliable volume data (e.g., stocks, futures). I've shared this to gather community feedback: please test it thoroughly and point out any bugs, inefficiencies, or improvements! For example, if you spot issues with divergence detection on certain timeframes or symbols, let me know in the comments. Your input will help refine it.
Inspired by volume analysis techniques; open to collaborations or forks.
## User Manual for CVD-MACD (Research)
### Overview
The CVD-MACD indicator transforms traditional MACD by using Cumulative Volume Delta (CVD) as the base input. CVD accumulates the net delta between estimated buy and sell volume per bar, providing a volume-centric view of momentum. The indicator plots a MACD line, signal line, and histogram, while also detecting divergences on both the MACD line and histogram for potential reversal signals.
This manual covers setup, interpretation, and troubleshooting.
Note: This is a research tool—backtest and validate on your own data before using in live trading.
### Installation and Setup
1. **Add to Chart**: Search for "CVD-MACD (Research)" in TradingView's indicator library or paste the script into the Pine Editor and add it to your chart.
2. **Compatibility**: Works on any timeframe and symbol with volume data. Best on daily/intraday charts for stocks, forex, or futures. Avoid illiquid symbols where volume may be unreliable.
3. **Customization**: All inputs are configurable via the indicator's settings panel. Defaults are optimized for general use but can be tuned based on asset volatility.
### Input Parameters
The inputs are grouped for ease of use:
#### MACD Settings
- **Fast EMA (CVD)** (default: 12): Length of the fast EMA applied to CVD. Shorter values make it more responsive to recent volume changes.
- **Slow EMA (CVD)** (default: 26): Length of the slow EMA on CVD. Longer values smooth out noise for trend identification.
- **Signal EMA** (default: 9): Smoothing period for the signal line (EMA of the MACD line).
#### Divergence Logic (MACD Line)
- **Pivot Lookback (MACD Line)** (default: 5): Bars to look left/right for detecting pivots on the MACD line. Higher values detect larger swings but may miss smaller divergences.
- **Max Lookback Range (MACD Line)** (default: 50): Maximum bars between two pivots to consider a divergence valid. Prevents detecting outdated signals.
- **Enable Momentum Decay Filter (Histogram)** (default: false): When enabled, requires the histogram to show decaying momentum (absolute value decreasing) for MACD-line divergences to trigger.
#### Histogram Divergence
- **Pivot Lookback (Histogram)** (default: 5): Similar to above, but for histogram pivots.
- **Max Lookback Range (Histogram)** (default: 50): Max bars for histogram divergence detection.
- **Show Histogram Divergences in Indicator Pane** (default: true): Displays dashed lines and "H" labels for histogram divergences in the sub-window.
- **Show Histogram Divergences on Main Chart** (default: true): Overlays histogram divergences on the price chart with semi-transparent lines and labels.
- **Require Histogram to Stay on Same Side of Zero** (default: true): Filters divergences to only those where the histogram doesn't cross zero between pivots, ensuring consistent momentum direction.
#### Visuals (Dual View)
- **Show MACD-Line Divergences (Indicator Pane)** (default: true): Draws solid lines and "L" labels for MACD-line divergences in the sub-window.
- **Show MACD-Line Divergences (Main Chart)** (default: true): Overlays MACD-line divergences on the price chart.
- **Show Raw CVD Line** (default: false): Plots the underlying CVD as a faint gray line for reference.
### How to Interpret the Indicator
1. **Core Plots**:
- **MACD Line** (blue): Difference between fast and slow CVD EMAs. Above zero indicates building buy volume momentum; below zero shows sell dominance.
- **Signal Line** (orange): EMA of the MACD line. Crossovers can signal potential entries/exits (e.g., MACD above signal = bullish).
- **Histogram** (columns): MACD minus signal. Green shades for positive/expanding bars (bullish momentum); red for negative/contracting (bearish). Fading colors indicate weakening momentum.
- **Zero Line** (gray horizontal): Reference for bullish (above) vs. bearish (below) territory.
- **Raw CVD** (optional gray line): The cumulative buy-sell delta. Rising = net buying; falling = net selling.
2. **Divergences**:
- **Bullish (Green Lines/Labels)**: Occur when price makes lower lows, but MACD line or histogram makes higher lows. Suggests weakening downside momentum and potential reversal up. Look for "L" (MACD line) or "H" (histogram) labels.
- **Bearish (Red Lines/Labels)**: Price higher highs vs. MACD/histogram lower highs. Indicates fading upside and possible downturn.
- **Dual View**: Divergences appear in the indicator pane (sub-window) for clean analysis and overlaid on the main chart for price context. Histogram divergences use dashed lines to distinguish from MACD-line (solid).
- **Filters**: Momentum decay ensures only "hidden" or weakening divergences trigger. Zero-side filter prevents false signals from oscillating histograms.
3. **Alerts**:
- **Bullish Divergence (L or H)**: Triggers on either MACD-line or histogram bullish divergence. Message: "CVD-MACD Bullish Divergence detected on {{ticker}}".
- **Bearish Divergence (L or H)**: Similar for bearish. Use TradingView's alert setup to notify via email/SMS/webhook.
- Tip: Combine with price action (e.g., support/resistance) for confirmation.
### Usage Tips and Strategies
- **Trend Confirmation**: Use in uptrends for bullish divergences (pullback buys) or downtrends for bearish (short entries).
- **Timeframe Selection**: Higher timeframes (e.g., daily) for swing trading; lower (e.g., 15-min) for intraday. Adjust pivot lookbacks accordingly (shorter for faster charts).
- **Combination Ideas**: Pair with RSI for overbought/oversold confirmation or VWAP for intraday volume context.
- **Risk Management**: Divergences are probabilistic—not guarantees. Always use stop-losses based on recent swings.
- **Performance Notes**: Backtest on historical data via TradingView's Strategy Tester. CVD relies on accurate volume; test on exchanges like NYSE/NASDAQ.
### Known Limitations and Troubleshooting
- **Volume Dependency**: CVD estimation assumes linear buy/sell distribution based on bar position—may be less accurate on thin markets or during gaps.
- **Repainting**: Pivots and divergences can repaint as new data arrives (common in pivot-based indicators). Use on closed bars for reliability.
- **Resource Usage**: High max_bars_back (5000) ensures deep history; reduce if chart loads slowly.
- **No Signals on Low-Volume Bars**: If CVD flatlines, check symbol volume—some crypto/forex pairs have inconsistent data.
- **Community Feedback**: If you encounter bugs (e.g., false divergences on specific symbols/timeframes), missing alerts, or calculation errors, please comment below with details like symbol, timeframe, and screenshots. Suggestions for enhancements (e.g., more filters or visuals) are welcome!
If you have questions or find issues, drop a comment—let's improve this together!
eBacktesting - Learning: Head & ShoulderseBacktesting - Learning: Head & Shoulders
Head & Shoulders is one of the most recognizable reversal patterns in day trading. It helps you spot moments when a trend may be losing strength and a turn becomes more likely—often around a “neckline” level where the market either breaks and continues the reversal, or holds and keeps trending.
This indicator highlights both:
- Head & Shoulders (bearish): potential shift from bullish strength to bearish reversal
- Inverse Head & Shoulders (bullish): potential shift from bearish strength to bullish reversal
It marks the structure on the chart (left shoulder, head, right shoulder) and flags the moment the pattern is confirmed, so you can practice reading the story behind price action instead of guessing.
These indicators are built to pair perfectly with the eBacktesting extension, where traders can practice these concepts step-by-step. Backtesting concepts visually like this is one of the fastest ways to learn, build confidence, and improve trading performance.
Educational use only. Not financial advice.
Crypto Swing Pro [All-in-One] v2 [R2D2]1. Introduction
Crypto Swing Pro (CSP) is a professional-grade technical analysis suite designed for high-volatility cryptocurrency markets. It consolidates the top five institutional-grade indicators—RSI, EMAs, OBV, MACD, and Bollinger Bands—into a single overlay.
New in v2.0: The script now includes a fully integrated Alert System. You no longer need to stare at the chart all day. You can set the script to email you or ping your phone exactly when a MACD Cross occurs or when Volatility Squeezes, ensuring you never miss a move.
2. Installation
1. Open TradingView: Go to your chart.
2. Open Pine Editor: Click the tab at the bottom of the screen.
3. Paste Code: Delete existing code and paste the v2.0 script above.
4. Save: Name it CSP v2.
5. Add to Chart: Click "Add to Chart".
3. How to Set Up Alerts
This is the most powerful feature of v2.0. You can set alerts for specific conditions without needing to write code.
1. Click the "Alert" Button: Located on the top menu bar of TradingView (looks like an alarm clock).
2. Condition: In the "Condition" dropdown menu, select CSP v2.
3. Select Trigger: A second dropdown will appear. Choose the specific signal you want to track:
MACD Buy Signal: Triggers when MACD crosses bullish.
RSI Oversold (<30): Triggers when price is mathematically cheap.
Volatility Squeeze: Triggers when a big move is imminent.
Price Cross Over 200 EMA: Triggers on major trend reversals.
4. Options: Select "Once Per Bar Close" (Recommended to avoid false signals during the candle fluctuation).
5. Notify: Check "Notify in App" or "Send Email".
6. Create: Click Create. You will now be notified even if you are asleep.
4. The Dashboard (HUD)
The on-screen table gives you an instant "Health Check" of the asset.
Indicator Status Meaning
RSI (14) Green (<30) Oversold. Look for long entries.
Red (>70) Overbought. Look to take profit.
MACD BULLISH Momentum is up.
TREND UPTREND Price is above the 200 EMA (White Line).
VOLATILITY SQUEEZE CRITICAL: Market is coiling. A breakout is coming soon.
VOLUME ACCUMULATION Whales are buying (OBV is rising).
5. Configuration & Visuals
Hover over the indicator name on the chart and click the Settings (Gear) icon.
Toggle Indicators: Uncheck any indicator (like Bollinger Bands or EMA 20) to hide them if you want a cleaner view. The Dashboard will still calculate them in the background.
Dashboard Position: Move the table to any corner or turn it off entirely if it blocks your price view.
Color Themes: Adjust the RSI background colors or EMA colors to fit your chart theme (Light/Dark mode).
6. Best Practices
The "Squeeze" Play: If you get a Volatility Squeeze alert, do not enter immediately. Wait for the price to break out of the Bollinger Bands. The squeeze is the "Get Ready" signal; the breakout is the "Go" signal.
The "Trend" Filter: If the 200 EMA (White Line) is above the price (Downtrend), ignore all "MACD Buy" alerts. Trade with the macro trend, not against it.
PA SystemPA System - Price Action Trading System
价格行为交易系统
📊 概述 / Overview
PA System is a comprehensive price action trading indicator that combines Smart Money Concepts (SMC), market structure analysis, and multi-timeframe confirmation to identify high-probability trade setups. Designed for both manual traders and algorithmic trading systems.
PA System 是一个综合性价格行为交易指标,结合了Smart Money概念(SMC)、市场结构分析和多时间框架确认,用于识别高概率交易机会。适用于手动交易者和算法交易系统。
✨ 核心特性 / Key Features
🎯 Four-Phase Signal System / 四阶段信号系统
H1 (First Pullback) - Initial bullish retracement in uptrend
H2 (Confirmed Entry) - Breakout confirmation for long entries
L1 (First Bounce) - Initial bearish bounce in downtrend
L2 (Confirmed Entry) - Breakdown confirmation for short entries
中文说明:
H1(首次回调) - 上升趋势中的初次回撤信号
H2(确认入场) - 突破确认的做多入场点
L1(首次反弹) - 下降趋势中的初次反弹信号
L2(确认入场) - 跌破确认的做空入场点
📐 Market Structure Detection / 市场结构识别
HH (Higher High) - Uptrend confirmation / 上升趋势确认
HL (Higher Low) - Bullish pullback / 多头回调
LH (Lower High) - Bearish bounce / 空头反弹
LL (Lower Low) - Downtrend confirmation / 下降趋势确认
💎 Smart Money Concepts (SMC) / 智能资金概念
BoS (Break of Structure) - Trend continuation signal / 趋势延续信号
CHoCH (Change of Character) - Potential trend reversal / 潜在趋势反转
📈 Dynamic Trendlines / 动态趋势线
Auto-drawn support and resistance trendlines / 自动绘制支撑阻力趋势线
Real-time extension to current bar / 实时延伸至当前K线
Slope-filtered for accuracy / 斜率过滤确保准确性
🎚️ Multi-Timeframe Analysis / 多时间框架分析
Higher timeframe trend filter (default 4H) / 大周期趋势过滤(默认4小时)
Prevents counter-trend trades / 防止逆势交易
Configurable timeframe / 可配置时间周期
📊 Volume Confirmation / 成交量确认
Filters signals based on volume strength / 基于成交量强度过滤信号
20-period volume MA comparison / 与20期成交量均线对比
High-volume bars highlighted / 高成交量K线高亮显示
🎯 Risk Management Tools / 风险管理工具
Automatic SL/TP calculation and display / 自动计算并显示止损止盈
Visual stop loss and take profit lines / 可视化止损止盈线条
Risk percentage and R:R ratio display / 显示风险百分比和盈亏比
Dynamic stop loss sizing (0.3% - 1.5%) / 动态止损范围(0.3% - 1.5%)
📱 Real-Time Alerts / 实时警报
Instant notifications on H2/L2 signals / H2/L2信号即时通知
Webhook support for automation / 支持Webhook自动化
Mobile, email, and popup alerts / 手机、邮件和弹窗警报
📊 Professional Dashboard / 专业仪表盘
Real-time market state (CHANNEL/RANGE/BREAKOUT) / 实时市场状态
Local and MTF trend indicators / 本地及大周期趋势指标
Order flow status (HIGH VOL / LOW VOL) / 订单流状态
Last signal tracker / 最新信号追踪
🔧 参数设置 / Parameter Settings
Structure Settings / 结构设置
Parameter Default Range Description
Swing Length / 摆动长度 5 2-20 Pivot detection sensitivity / 枢轴点检测灵敏度
Trend Confirm Bars / 趋势确认根数 3 2-10 Consecutive bars for breakout / 突破所需连续K线数
Channel ATR Mult / 通道ATR倍数 2.0 1.0-5.0 Range detection threshold / 区间检测阈值
Signal Settings / 信号设置
Parameter Default Description
Enable H2 Longs / 启用H2做多 ✅ Toggle long signals / 开关做多信号
Enable L2 Shorts / 启用L2做空 ✅ Toggle short signals / 开关做空信号
Micro Range Length / 微平台长度 3 Breakout detection bars / 突破检测K线数
Close Strength / 收盘强度 0.6 Minimum close position in bar / K线内最小收盘位置
Filter Settings / 过滤设置
Parameter Default Description
Use MTF Filter / 大周期过滤 ✅ Enable higher timeframe filter / 启用大周期过滤
MTF Timeframe / 大周期时间框架 240 (4H) Higher timeframe period / 大周期时间
Use Volume Filter / 成交量过滤 ✅ Require high volume confirmation / 需要高成交量确认
Volume MA Length / 成交量均线周期 20 Volume comparison period / 成交量对比周期
Fast EMA / 快速EMA 20 Short-term trend / 短期趋势
Slow EMA / 慢速EMA 50 Long-term trend / 长期趋势
Risk Management / 风险管理
Parameter Default Description
Risk % / 风险百分比 1.0% Risk per trade / 每笔交易风险
R:R Ratio / 盈亏比 2.0 Reward to risk ratio / 盈亏比率
Max SL ATR / 最大止损ATR 3.0 Maximum stop loss in ATR / 最大止损ATR倍数
Min SL % / 最小止损百分比 0.3% Minimum stop loss percentage / 最小止损百分比
Max SL % / 最大止损百分比 1.5% Maximum stop loss percentage / 最大止损百分比
📖 使用方法 / How to Use
1. 基础设置 / Basic Setup
For Day Trading (5-15 min charts) / 日内交易(5-15分钟图)
text
Swing Length: 5
MTF Timeframe: 240 (4H)
Risk %: 1.0%
R:R: 2.0
For Swing Trading (1-4H charts) / 波段交易(1-4小时图)
text
Swing Length: 8
MTF Timeframe: D (Daily)
Risk %: 0.5%
R:R: 3.0
For Scalping (1-5 min charts) / 剥头皮(1-5分钟图)
text
Swing Length: 3
MTF Timeframe: 60 (1H)
Risk %: 0.5%
R:R: 1.5
Use Volume Filter: ✅
2. 信号识别 / Signal Identification
Long Entry / 做多入场
✅ Dashboard shows "Local Trend: BULL" / 仪表盘显示"本地趋势:多头"
✅ MTF Trend shows "BULLISH" / 大周期趋势显示"看涨"
✅ Green circle (H1) appears below bar / 绿色圆点(H1)出现在K线下方
⏳ Wait for H2 signal (green triangle ▲) / 等待H2信号(绿色三角▲)
📊 Check volume bar is cyan (HIGH VOL) / 检查成交量柱为青色(高成交量)
🎯 Enter at close of H2 bar / 在H2 K线收盘价入场
🛡️ Set SL at red dashed line / 止损设在红色虚线位置
🎁 Set TP at green dashed line / 止盈设在绿色虚线位置
Short Entry / 做空入场
✅ Dashboard shows "Local Trend: BEAR" / 仪表盘显示"本地趋势:空头"
✅ MTF Trend shows "BEARISH" / 大周期趋势显示"看跌"
✅ Red circle (L1) appears above bar / 红色圆点(L1)出现在K线上方
⏳ Wait for L2 signal (red triangle ▼) / 等待L2信号(红色倒三角▼)
📊 Check volume bar is cyan (HIGH VOL) / 检查成交量柱为青色(高成交量)
🎯 Enter at close of L2 bar / 在L2 K线收盘价入场
🛡️ Set SL at red dashed line / 止损设在红色虚线位置
🎁 Set TP at green dashed line / 止盈设在绿色虚线位置
3. 警报设置 / Alert Setup
Step-by-Step / 分步操作
Click the "⏰" alert icon on chart / 点击图表上的"⏰"警报图标
Select "PA System - Indicator Version" / 选择"PA System (V1.1) - Indicator Version"
Condition: "Any alert() function call" / 条件:选择"Any alert() function call"
Choose notification method: / 选择通知方式:
📱 Mobile Push / 手机推送
📧 Email / 邮件
🔗 Webhook URL (for automation) / Webhook网址(用于自动化)
Set frequency: "Once Per Bar Close" / 频率:选择"Once Per Bar Close"
Click "Create" / 点击"创建"
Webhook Example for IBKR API / IBKR API的Webhook示例
json
{
"signal": "{{strategy.order.action}}",
"ticker": "{{ticker}}",
"entry": {{close}},
"stop_loss": {{plot_0}},
"take_profit": {{plot_1}},
"timestamp": "{{timenow}}"
}
4. 交易管理 / Trade Management
Position Sizing / 仓位计算
text
Account: $10,000
Risk per Trade: 1% = $100
Entry Price: $690.45
Stop Loss: $687.38
Risk per Share: $690.45 - $687.38 = $3.07
Position Size: $100 / $3.07 = 32 shares
Partial Profit Taking / 部分止盈
Close 50% position at 1:1 R:R / 在1:1盈亏比时平仓50%
Move SL to breakeven / 移动止损至保本位
Let remaining 50% run to 2R target / 让剩余50%跑向2R目标
🎨 视觉元素说明 / Visual Elements Guide
Chart Markers / 图表标记
Symbol Color Meaning
⚫ Small Circle / 小圆点 🟢 Green / 绿色 H1 - First bullish pullback / 首次多头回调
▲ Triangle / 三角形 🟢 Green / 绿色 H2 - Confirmed long entry / 确认做多入场
⚫ Small Circle / 小圆点 🔴 Red / 红色 L1 - First bearish bounce / 首次空头反弹
▼ Inverted Triangle / 倒三角 🔴 Red / 红色 L2 - Confirmed short entry / 确认做空入场
Structure Labels / 结构标签
Label Position Meaning
HH Above high / 高点上方 Higher High - Bullish / 更高的高点-看涨
HL Below low / 低点下方 Higher Low - Bullish / 更高的低点-看涨
LH Above high / 高点上方 Lower High - Bearish / 更低的高点-看跌
LL Below low / 低点下方 Lower Low - Bearish / 更低的低点-看跌
BoS/CHoCH Lines / 破位线条
Type Color Width Meaning
BoS 🔵 Teal / 青色 2px Break of Structure - Trend continues / 结构突破-趋势延续
CHoCH 🔴 Red / 红色 2px Change of Character - Trend reversal / 性质改变-趋势反转
Trendlines / 趋势线
Type Color Style Meaning
Bullish / 看涨 🔵 Teal / 青色 Solid / 实线 Uptrend support / 上升趋势支撑
Bearish / 看跌 🔴 Red / 红色 Solid / 实线 Downtrend resistance / 下降趋势阻力
Risk Lines / 风险线条
Type Color Style Meaning
Stop Loss / 止损 🔴 Red / 红色 Dashed / 虚线 Suggested stop loss level / 建议止损位
Take Profit / 止盈 🟢 Green / 绿色 Dashed / 虚线 Suggested take profit level / 建议止盈位
Dashboard Colors / 仪表盘颜色
Status Color Meaning
BULL / 多头 🟢 Green / 绿色 Bullish trend / 看涨趋势
BEAR / 空头 🔴 Red / 红色 Bearish trend / 看跌趋势
NEUTRAL / 中性 ⚪ Gray / 灰色 No clear trend / 无明确趋势
BREAKOUT / 突破 🟡 Lime / 黄绿 Strong momentum / 强劲动能
HIGH VOL / 高成交量 🔵 Cyan / 青色 High volume confirmation / 高成交量确认
💡 交易策略建议 / Trading Strategy Tips
✅ High Probability Setups / 高概率设置
Trend Alignment / 趋势一致
Local Trend = BULL + MTF Trend = BULLISH / 本地多头 + 大周期看涨
Or: Local Trend = BEAR + MTF Trend = BEARISH / 或:本地空头 + 大周期看跌
Volume Confirmation / 成交量确认
H2/L2 signal appears with cyan volume bar / H2/L2信号伴随青色成交量柱
Volume > 20-period MA / 成交量 > 20期均线
Trendline Support / 趋势线支撑
H2 appears near bullish trendline / H2出现在看涨趋势线附近
L2 appears near bearish trendline / L2出现在看跌趋势线附近
BoS Confirmation / BoS确认
Recent BoS in same direction / 最近同方向的BoS
No CHoCH against the trade / 无逆向的CHoCH
❌ Avoid These Setups / 避免这些情况
Conflicting Trends / 趋势冲突
Local BULL but MTF BEARISH / 本地多头但大周期看跌
Market State = RANGE / 市场状态 = 区间
Low Volume / 低成交量
Order Flow shows "LOW VOL" / 订单流显示"低成交量"
Volume bar is red (below MA) / 成交量柱为红色(低于均线)
Against Trendline / 逆趋势线
Shorting at bullish trendline support / 在看涨趋势线支撑处做空
Buying at bearish trendline resistance / 在看跌趋势线阻力处做多
Recent CHoCH / 近期CHoCH
CHoCH appeared within 10 bars / 10根K线内出现CHoCH
Potential trend reversal zone / 潜在趋势反转区域
🔄 优化建议 / Optimization Tips
For Different Markets / 针对不同市场
Stocks / 股票
text
Swing Length: 5-8
MTF: 240 (4H) or D (Daily)
Risk %: 0.5-1.0%
Best on: SPY, QQQ, AAPL, TSLA
Forex / 外汇
text
Swing Length: 5
MTF: 240 (4H)
Risk %: 1.0-2.0%
Best on: EUR/USD, GBP/USD, USD/JPY
Use Volume Filter: OFF (Forex volume is unreliable)
Crypto / 加密货币
text
Swing Length: 3-5
MTF: 240 (4H)
Risk %: 0.5-1.0% (high volatility)
Max SL %: 2.0-3.0%
Best on: BTC, ETH, SOL
Futures / 期货
text
Swing Length: 5
MTF: 240 (4H)
Risk %: 1.0-1.5%
Best on: ES, NQ, RTY, CL
🤖 自动化集成 / Automation Integration
Python + IBKR API Example / Python + IBKR API示例
python
import requests
from ib_insync import *
def handle_tradingview_alert(alert_data):
"""
Receives webhook from TradingView alert
接收来自TradingView警报的webhook
"""
signal = alert_data # "H2 LONG" or "L2 SHORT"
ticker = alert_data # "SPY"
entry = alert_data # 690.45
stop_loss = alert_data # 687.38
take_profit = alert_data # 696.59
# Connect to IBKR
ib = IB()
ib.connect('127.0.0.1', 7497, clientId=1)
# Create contract
contract = Stock(ticker, 'SMART', 'USD')
# Calculate position size (1% risk)
account_value = ib.accountValues() .value
risk_amount = float(account_value) * 0.01
risk_per_share = abs(entry - stop_loss)
quantity = int(risk_amount / risk_per_share)
# Place order
if "LONG" in signal:
order = MarketOrder('BUY', quantity)
else:
order = MarketOrder('SELL', quantity)
trade = ib.placeOrder(contract, order)
# Set stop loss and take profit
ib.placeOrder(contract, StopOrder('SELL', quantity, stop_loss))
ib.placeOrder(contract, LimitOrder('SELL', quantity, take_profit))
ib.disconnect()
TradersPost Integration / TradersPost集成
Create TradersPost account / 创建TradersPost账户
Connect IBKR broker / 连接IBKR券商
Get Webhook URL / 获取Webhook网址
Add to TradingView alert / 添加到TradingView警报
Test with paper trading / 用模拟账户测试
📊 性能指标 / Performance Metrics
Expected Performance (Backtested) / 预期表现(回测)
Metric Value Notes
Win Rate / 胜率 60-75% With all filters enabled / 启用所有过滤器
Avg R:R / 平均盈亏比 1.8-2.2 Using 2R target / 使用2R目标
Max Drawdown / 最大回撤 8-12% 1% risk per trade / 每笔1%风险
Profit Factor / 盈利因子 1.8-2.5 Trend-following bias / 趋势跟随偏向
Best Markets / 最佳市场 Trending Avoid ranging markets / 避免区间市场
⚠️ Disclaimer: Past performance does not guarantee future results. Always test in paper trading first.
⚠️ 免责声明:历史表现不保证未来结果。请先在模拟账户测试。
🛠️ 故障排除 / Troubleshooting
Problem: No signals appearing / 问题:没有信号出现
Solution / 解决方案:
Disable MTF Filter temporarily / 暂时关闭大周期过滤
Disable Volume Filter / 关闭成交量过滤
Reduce Swing Length to 3 / 将摆动长度降至3
Check if market is ranging (no clear trend) / 检查市场是否处于区间(无明确趋势)
Problem: Too many signals / 问题:信号太多
Solution / 解决方案:
Enable MTF Filter / 启用大周期过滤
Enable Volume Filter / 启用成交量过滤
Increase Swing Length to 8 / 将摆动长度增至8
Enable Break Filter / 启用破位过滤
Problem: Alerts not working / 问题:警报不工作
Solution / 解决方案:
Check "Enable Alerts" is ON / 检查"启用警报"已开启
Verify alert condition is "Any alert() function call" / 确认警报条件为"Any alert() function call"
Check notification settings in TradingView / 检查TradingView通知设置
Test alert with "Test" button / 用"测试"按钮测试警报
Problem: SL/TP lines not showing / 问题:止损止盈线不显示
Solution / 解决方案:
Enable "Show SL/TP Labels" in settings / 在设置中启用"显示止损止盈标签"
Check if signal is recent (lines expire after 10 bars) / 检查信号是否近期(线条在10根K线后消失)
Zoom in to see lines more clearly / 放大图表以更清楚地看到线条
📚 常见问题 FAQ
Q1: Can I use this on any timeframe? / 可以在任何时间框架使用吗?
A: Yes, but works best on 5min-4H charts. Recommended: 15min (day trading), 1H (swing trading).
可以,但在5分钟-4小时图表效果最佳。推荐:15分钟(日内交易),1小时(波段交易)。
Q2: Do I need to enable all filters? / 需要启用所有过滤器吗?
A: No. Start with all enabled, then disable based on your risk tolerance. MTF filter is highly recommended.
不需要。从全部启用开始,然后根据风险承受能力禁用。强烈推荐MTF过滤器。
Q3: Can I automate this with IBKR? / 可以与IBKR自动化吗?
A: Yes! Use TradingView alerts + Webhook + Python script + IBKR API. See automation example above.
可以!使用TradingView警报 + Webhook + Python脚本 + IBKR API。参见上方自动化示例。
Q4: What's the difference between Strategy and Indicator version? / 策略版和指标版有什么区别?
A: Strategy = backtesting only. Indicator = real-time alerts + automation. Use both: backtest with strategy, trade with indicator.
策略版=仅回测。指标版=实时警报+自动化。两者结合使用:用策略版回测,用指标版交易。
Q5: Why does H2 appear but no trade? / 为什么出现H2但没有交易?
A: This is an indicator, not a strategy. You need to manually place orders or use automation via alerts.
这是指标,不是策略。你需要手动下单或通过警报使用自动化。
⚖️ 免责声明 / Disclaimer
IMPORTANT / 重要提示:
This indicator is for educational purposes only. Trading involves substantial risk of loss. Past performance does not guarantee future results. Always:
本指标仅供教育目的。交易涉及重大亏损风险。历史表现不保证未来结果。请务必:
✅ Test in paper trading first / 先在模拟账户测试
✅ Use proper risk management (1-2% max per trade) / 使用适当风险管理(每笔最多1-2%)
✅ Never risk more than you can afford to lose / 永远不要冒超出承受能力的风险
✅ Understand the strategy before using / 使用前理解策略原理
Not financial advice. Trade at your own risk.
非投资建议。交易风险自负。






















