OPEN-SOURCE SCRIPT
Auto-Anchored Fibonacci Volume Profile [Custom Array Engine]

Description:
1. The Theoretical Foundation: Structure vs. Participation In professional technical analysis, traders often struggle to reconcile two distinct datasets: Price Geometry (where price should go) and Market Participation (where money actually went).
2. Underlying Calculations (The Custom Engine) This script operates on a custom-built calculation engine that bypasses standard built-in functions entirely. It uses Pine Script Arrays to build a Volume Profile from scratch. Here is the breakdown of the proprietary code logic:
*A. The "Smart-Fill" Distribution Algorithm (Solves Gapping)
B. Dynamic Arrays & Split-Volume Logic The script initializes two separate floating-point arrays (buyVolArray and sellVolArray) sized to the user's resolution (up to 300 rows). It iterates through the specific time-window of the swing:
C. Custom Garbage Collection (Performance) To enable the "Auto-Anchoring" feature without causing chart lag or visual artifacts ("ghosting"), the script includes a Garbage Collection System. Before drawing a new profile, the script iterates through a tracking array of all existing objects (box.delete, line.delete) and clears them from memory. This ensures the indicator remains lightweight and responsive even when dragging chart margins or switching timeframes.
3. The Synthesis: Why Combine Them? The core philosophy of this script is Confluence. A Fibonacci level without volume is merely a suggestion; a Fibonacci level backed by volume is a defensive wall. By algorithmically anchoring a Volume Profile to the exact coordinates of a Fibonacci swing, this tool allows traders to instantly answer critical questions:
4. How to Read the Indicator
5. Settings & Customization
Disclaimer This script is an analytical tool for visualizing historical market data. It does not provide trade signals or financial advice.
1. The Theoretical Foundation: Structure vs. Participation In professional technical analysis, traders often struggle to reconcile two distinct datasets: Price Geometry (where price should go) and Market Participation (where money actually went).
- Why Fibonacci? (The Structure) Fibonacci Retracements map the mathematical structure of a trend. They identify psychological and algorithmic "interest zones" (0.382, 0.5, 0.618) where a correction is statistically likely to terminate. However, Fibonacci levels are theoretical—they are "lines in the sand" that do not guarantee liquidity or reaction.
- Why Volume Profile? (The Verification) Volume Profile maps the historical exchange of shares at specific price levels. It reveals "fair value" (High Volume Nodes) and "market imbalance" (Low Volume Nodes). It is the only tool that verifies if a specific price level was actually accepted by institutional participants.
2. Underlying Calculations (The Custom Engine) This script operates on a custom-built calculation engine that bypasses standard built-in functions entirely. It uses Pine Script Arrays to build a Volume Profile from scratch. Here is the breakdown of the proprietary code logic:
*A. The "Smart-Fill" Distribution Algorithm (Solves Gapping)
- The Problem: Standard volume scripts often assign a candle's entire volume to a single price row. In volatile markets or steep trends, this creates visual "gaps" or a "barcode" effect because price moved too fast to register on every row.
- My Solution: I wrote a custom loop that calculates the vertical overlap of every candle against the profile grid.
- The Math: Volume Per Bin = Total Candle Volume / Bins Touched.
- The Result: If a single volatile candle spans 10 price rows (bins), the script mathematically divides that volume and distributes it equally into all 10 array indices. This generates a solid, continuous distribution curve that accurately reflects price action through the entire candle range, not just the close.
B. Dynamic Arrays & Split-Volume Logic The script initializes two separate floating-point arrays (buyVolArray and sellVolArray) sized to the user's resolution (up to 300 rows). It iterates through the specific time-window of the swing:
- If Close >= Open, the calculated volume slice is injected into the Buy Array.
- If Close < Open, it is injected into the Sell Array.
- These arrays are then visually stacked to render the dual-color profile, allowing traders to see the "Delta" (Buyer vs. Seller aggression) at key structural levels.
C. Custom Garbage Collection (Performance) To enable the "Auto-Anchoring" feature without causing chart lag or visual artifacts ("ghosting"), the script includes a Garbage Collection System. Before drawing a new profile, the script iterates through a tracking array of all existing objects (box.delete, line.delete) and clears them from memory. This ensures the indicator remains lightweight and responsive even when dragging chart margins or switching timeframes.
3. The Synthesis: Why Combine Them? The core philosophy of this script is Confluence. A Fibonacci level without volume is merely a suggestion; a Fibonacci level backed by volume is a defensive wall. By algorithmically anchoring a Volume Profile to the exact coordinates of a Fibonacci swing, this tool allows traders to instantly answer critical questions:
- "Is the Golden Pocket (0.618) supported by a High Volume Node (HVN), or is it a Low Volume Node (LVN) that price might slice through?"
- "Is the Shallow Retracement (0.382) holding because of structural support, or just a lack of selling pressure?"
4. How to Read the Indicator
- The Geometry: The script automatically detects the trend and draws standard Fib levels (0, 0.236, 0.382, 0.5, 0.618, 0.786, 1.0).
- The Confluence Check: Look for the Point of Control (Red Line). If this High Volume Node aligns with a key Fib level (e.g., the 0.618), the probability of a reversal increases significantly.
- The Imbalance Check: Look for "Valleys" in the profile (Low Volume Nodes). These gaps often act as "slippage zones" where price travels quickly between structural levels.
- Buy/Sell Splits: The dual-color bars (Teal/Red) reveal the composition of the volume. A 0.618 level held up by dominant Buy Volume is a stronger bullish signal than one with mixed volume.
5. Settings & Customization
- Lookback Length: Sensitivity of the swing detection (Default: 200 bars).
- Resolution: Granularity of the profile rows (Default: 100). Higher values provide smoother definition.
- Width (%): Responsive sizing that scales the profile relative to the trend's duration.
- Extend Lines: Option to project structural levels infinitely to the right.
Disclaimer This script is an analytical tool for visualizing historical market data. It does not provide trade signals or financial advice.
开源脚本
秉承TradingView的精神,该脚本的作者将其开源,以便交易者可以查看和验证其功能。向作者致敬!您可以免费使用该脚本,但请记住,重新发布代码须遵守我们的网站规则。
免责声明
这些信息和出版物并非旨在提供,也不构成TradingView提供或认可的任何形式的财务、投资、交易或其他类型的建议或推荐。请阅读使用条款了解更多信息。
开源脚本
秉承TradingView的精神,该脚本的作者将其开源,以便交易者可以查看和验证其功能。向作者致敬!您可以免费使用该脚本,但请记住,重新发布代码须遵守我们的网站规则。
免责声明
这些信息和出版物并非旨在提供,也不构成TradingView提供或认可的任何形式的财务、投资、交易或其他类型的建议或推荐。请阅读使用条款了解更多信息。