POC Volume Bar (Highest Volume in Range)What the highlighted POC bar means
🔶 1. Institutional interest
A POC often identifies where big money stepped in.
🔶 2. Support or resistance pivot
Large volume often signals:
• A reversal
• A breakout
• Or the beginning of a trend
🔶 3. Liquidity magnet
Price tends to revisit high-volume bars.
They act like magnets.
🔶 4. Trend confirmation or exhaustion
High volume on:
• Green candle → bullish participation
• Red candle → distribution / aggressive selling
Wskaźniki i strategie
Market Structure Volume Time Velocity ProfileThis is the Market Structure Volume Time Velocity Profile (MSVTVP). It combines event-based profiling with advanced metrics like Time and Velocity (Flow Rate). Instead of fixed time periods, profiles are anchored to critical market events (Swings, Structure Breaks, Delta Breaks), giving you a precise view of value development during specific market phases.
## The 3 Dimensions of the Market
Unlike standard tools that only show Volume, MSVTVP allows you
to switch between three critical metrics:
1. **VOLUME Profile (The "Where"):**
* Shows standard acceptance. High volume nodes (HVN)
are magnets for price.
2. **TIME Profile (The "How Long"):**
* Similar to TPO, it measures how long price spent at each
level.
* **High Time:** True acceptance and fair value.
* **Low Time:** Rejection or rapid movement.
3. **VELOCITY Profile (The "How Fast"):**
* Measures the **speed of trading** (Contracts per Second).
This reveals the hidden intent of market participants.
* **High Velocity (Fast Flow):** Aggression. Initiative
buyers/sellers are hitting market orders rapidly. Often
seen at breakouts or in liquidity vacu.
* **Low Velocity (Slow Flow):** Absorption. Massive passive
limit orders are slowing price down despite high volume.
Often seen at major reversals ("hitting a brick wall").
Key Features:
1. **Event-Based Profile Anchoring:** The indicator starts a new
profile based on one of three user-selected events
('Profile Anchor'):
- **Swing:** A new profile begins when the 'impulse baseline'
(derived from intra-bar delta) changes. This baseline
adjusts when a new **price pivot** is confirmed: When a
price **high** forms, the baseline moves to the **lower**
of its previous level or the peak delta (max of
delta O/C) at the pivot. When a price **low** forms, it
moves to the **higher** of its previous level or the
trough delta (min of delta O/C) at the pivot.
- **Structure:** A new profile begins immediately on the bar
that *confirms* a market structure break (e.g., a new HH
or LL, based on a sequence of price pivots).
- **Delta:** A new profile begins immediately on the bar
that *confirms* a break in the *cumulative delta's*
market structure (e.g., a new HH or LL in the delta).
Both 'Swing' and 'Delta' anchors are derived from the same
**continuous (non-resetting) Cumulative Volume Profile Delta (CVPD)**,
which is built from the intra-bar statistical analysis.
2. **Statistical Profile Engine:** For each bar in the anchored
period, the indicator builds a volume profile on a lower
'Intra-Bar Timeframe'. Instead of simple tick counting, it
uses advanced statistical models:
- **Allocation ('Allot model'):** 'PDF' (Probability Density
Function) distributes volume proportionally across the
bar's range based on an assumed statistical model
(e.g., T4-Skew). 'Classic' assigns all volume to
the close.
- **Buy/Sell Split ('Volume Estimator'):** 'Dynamic'
applies a model that analyzes candle wicks and
recent trend to estimate buy/sell pressure. 'Classic'
classifies all volume based on the candle color.
3. **Visualization & Lag:** The indicator plots the final
profile (as a polygon) and the developing statistical
lines (POC, VA, VWAP, StdDev).
- **Note on Lag:** All anchor events require `Pivot Right Bars`
for confirmation.
- In 'Structure' and 'Delta' mode, the developing lines
(POC, VA, etc.) are plotted using a **non-repainting**
method (showing the value from `pivRi` bars ago).
- In 'Swing' mode, the profile is plotted **retroactively**,
starting *from the bar where the pivot occurred*. The
developing lines are also plotted with this full
`pivRi` lag to align with the past data.
4. **Flexible Display Modes:** The finalized profile can be displayed
in three ways: 'Up/Down' (buy vs. sell), 'Total' (combined
volume), and 'Delta' (net difference).
5. **Dynamic Row Sizing:** Includes an option ('Rows per Percent')
to automatically adjust the number of profile rows (buckets)
based on the profile's price range.
6. **Integrated Alerts:** Includes 13 alerts that trigger for:
- A new profile reset ('Profile was resetted').
- Price crossing any of the 6 developing levels (POC,
VA High/Low, VWAP, StdDev High/Low).
- **Alert Lag Assumption:** In 'Swing' mode, alerts are
delayed to match the retroactively plotted lines.
In 'Structure' and 'Delta' modes, alerts fire in
**real-time** based on the *current price* crossing
the *current (repainting)* value of the metric, which
may **differ from the non-repainting plotted line.**
**Caution: Real-Time Data Behavior (Intra-Bar Repainting)**
This indicator uses high-resolution intra-bar data. As a result, the
values on the **current, unclosed bar** (the real-time bar) will
update dynamically as new intra-bar data arrives. This includes
the values used for real-time alerts in 'Structure' and
'Delta' modes.
---
**DISCLAIMER**
1. **For Informational/Educational Use Only:** This indicator is
provided for informational and educational purposes only. It does
not constitute financial, investment, or trading advice, nor is
it a recommendation to buy or sell any asset.
2. **Use at Your Own Risk:** All trading decisions you make based on
the information or signals generated by this indicator are made
solely at your own risk.
3. **No Guarantee of Performance:** Past performance is not an
indicator of future results. The author makes no guarantee
regarding the accuracy of the signals or future profitability.
4. **No Liability:** The author shall not be held liable for any
financial losses or damages incurred directly or indirectly from
the use of this indicator.
5. **Signals Are Not Recommendations:** The alerts and visual signals
(e.g., crossovers) generated by this tool are not direct
recommendations to buy or sell. They are technical observations
for your own analysis and consideration.
Multi-Symbol EMA Crossover Scanner with Multi-Timeframe AnalysisDescription
What This Indicator Does:
This indicator is a comprehensive market scanner that monitors up to 10 symbols simultaneously across 4 different timeframes (15-minute, 1-hour, 4-hour, and daily) to detect exponential moving average (EMA) crossovers in real-time. Instead of manually checking multiple charts and timeframes for EMA crossover signals, this scanner automatically does the work for you and presents all detected signals in a clean, organized table that updates continuously throughout the trading session.
Key Features:
Multi-Symbol Monitoring: Scan up to 10 different symbols at once (stocks, forex, crypto, or any TradingView symbol)
Multi-Timeframe Analysis: Simultaneously tracks 4 timeframes (15m, 1H, 4H, 1D) with toggle options to enable/disable each
Comprehensive EMA Pairs: Detects crossovers between all major EMA combinations: 20×50, 20×100, 20×200, 50×100, 50×200, and 100×200
Real-Time Signal Feed: Displays the most recent signals in a sorted table (newest first) with timestamp, direction, price, and EMA pair information
Session Filter: Built-in time filter (default 10:00-18:00) to focus on specific trading hours and avoid pre-market/after-hours noise
Pagination System: Navigate through signals using a page selector when you have more signals than fit in one view
Signal Statistics: Footer displays total signals, bullish/bearish breakdown, and page navigation hints
Customizable Display: Choose table position (4 corners), signals per page (5-20), and maximum signal history (10-100)
How It Works:
The scanner uses the request.security() function to fetch EMA data from multiple symbols and timeframes simultaneously. For each symbol-timeframe combination, it calculates four exponential moving averages (20, 50, 100, and 200 periods) and monitors for crossovers:
Bullish Crossovers (▲ Green):
Faster EMA crosses above slower EMA
Indicates potential upward momentum
Common entry signals for long positions
Bearish Crossovers (▼ Red):
Faster EMA crosses below slower EMA
Indicates potential downward momentum
Common entry signals for short positions or exits
The scanner prioritizes crossovers involving faster EMAs (20×50) over slower ones (100×200), as faster crossovers typically generate more frequent signals. Each detected crossover is stored with its timestamp, allowing the scanner to sort signals chronologically and remove duplicates within the same timeframe.
Signal Table Columns:
Sym: Symbol name (abbreviated, e.g., "ASELS" instead of "BIST:ASELS")
TF: Timeframe where the crossover occurred (15m, 1h, 4h, 1D)
⏰: Exact time of the crossover (HH:MM format in Istanbul timezone)
↕: Direction indicator (▲ bullish green / ▼ bearish red)
₺: Price level where the crossover occurred (average of the two EMAs)
MA: Which EMA pair crossed (e.g., "20×50", "50×200")
How to Use:
For Day Traders:
Enable 15m and 1h timeframes
Monitor symbols from your watchlist
Use crossovers as entry timing signals in the direction of the larger trend
Adjust the time filter to match your trading session (e.g., market open to 2 hours before close)
For Swing Traders:
Enable 4h and 1D timeframes
Focus on 50×200 and 100×200 crossovers (golden/death crosses)
Look for multiple timeframe confluence (same symbol showing bullish crossovers on both 4h and 1D)
Use as a pre-market scanner to identify potential setups for the day
For Multi-Market Traders:
Mix symbols from different markets (stocks, forex, crypto)
Use the scanner to identify which markets are showing the most momentum
Track relative strength by comparing crossover frequency across symbols
Identify rotation opportunities when one asset shows bullish signals while another shows bearish
Setup Recommendations:
Default BIST (Turkish Stock Market) Setup:
The code comes pre-configured with 10 popular BIST stocks:
ASELS, EKGYO, THYAO, AKBNK, PGSUS, ASTOR, OTKAR, ALARK, ISCTR, BIMAS
For US Stocks:
Replace with symbols like: NASDAQ:AAPL, NASDAQ:TSLA, NASDAQ:NVDA, NYSE:JPM, etc.
For Forex:
Use pairs like: FX:EURUSD, FX:GBPUSD, FX:USDJPY, OANDA:XAUUSD, etc.
For Crypto:
Use exchanges like: BINANCE:BTCUSDT, COINBASE:ETHUSD, BINANCE:SOLUSDT, etc.
Settings Guide:
Symbol List (10 inputs):
Enter any valid TradingView symbol in "EXCHANGE:TICKER" format
Use symbols you actively trade or monitor
Mix different asset classes if desired
Timeframe Toggles:
15 Minutes: High-frequency signals, best for day trading
1 Hour: Balanced frequency, good for intraday swing trades
4 Hours: Lower frequency, quality swing trade signals
1 Day: Low frequency, major trend changes only
Time Filter:
Start Hour (10): Beginning of your trading session
End Hour (18): End of your trading session
Prevents signals during low-liquidity periods
Adjust to match your market's active hours
Display Settings:
Table Position: Choose corner placement (doesn't interfere with other indicators)
Max Signals (40): Total historical signals to keep in memory
Signals Per Page (10): How many rows to show at once
Page Number: Navigate through signal history (auto-adjusts to available pages)
What Makes This Original:
Multi-symbol scanners exist on TradingView, but this indicator's originality comes from:
Comprehensive EMA Pair Coverage: Most scanners focus on 1-2 EMA pairs, this monitors 6 different combinations simultaneously
Unified Multi-Timeframe View: Presents signals from 4 timeframes in a single, chronologically sorted feed rather than separate panels
Session-Aware Filtering: Built-in time filter prevents signal overload from 24-hour markets
Smart Pagination: Handles large signal volumes gracefully with page navigation instead of scrolling
Signal Deduplication: Prevents the same crossover from appearing multiple times if it persists across several bars
Price-at-Cross Recording: Captures the exact price where the crossover occurred, not just that it happened
Real-Time Statistics: Live tracking of bullish vs bearish signal distribution
Trading Strategy Examples:
Trend Confirmation Strategy:
Find a symbol showing bullish crossover on 1D (major trend change)
Wait for pullback
Enter when 1h shows bullish crossover (confirmation)
Exit when 1h shows bearish crossover
Multi-Timeframe Confluence:
Look for symbols appearing multiple times with same direction
Example: ASELS shows ▲ on both 4h and 1D = strong bullish signal
Avoid symbols showing conflicting signals (▲ on 1h but ▼ on 4h)
Rotation Scanner:
Monitor 10+ symbols from the same sector
Identify which are turning bullish (▲) first
Enter leaders, avoid laggards
Rotate out when crossovers turn bearish (▼)
Important Considerations:
Not a Complete System: EMA crossovers should be confirmed with price action, volume, and support/resistance analysis
Whipsaw Risk: During consolidation, EMAs can cross back and forth frequently (especially on 15m timeframe)
Lag: EMAs are lagging indicators; crossovers occur after the move has already begun
False Signals: More common during sideways markets; work best in trending environments
Symbol Limits: TradingView has limits on request.security() calls; this scanner uses 40 calls (10 symbols × 4 timeframes)
Performance: On lower-end devices, scanning 10 symbols across 4 timeframes may cause slight delays in chart updates
Best Practices:
Start with 5 symbols and 2 timeframes, then expand as you get comfortable
Use in conjunction with a main chart for price context
Don't trade every signal—filter for high-quality setups
Backtest your favorite EMA pairs on your symbols to understand their reliability
Adjust the time filter to exclude lunch hours if your market has low midday volume
Check the footer statistics—if you're getting 50+ signals per day, tighten your time filter or reduce symbols
Technical Notes:
Uses lookahead=barmerge.lookahead_off to prevent future data leakage
Signals are stored in arrays and sorted by timestamp (newest first)
Automatic daily reset clears old signals to prevent memory buildup
Table dynamically resizes based on signal count
All times displayed in Europe/Istanbul timezone (configurable in code)
YCGH ATH DrawdownHow the Indicator Measures Drawdown from ATH
The indicator continuously tracks and calculates the percentage decline from the all-time high (ATH) using a systematic approach.
ATH Tracking Mechanism
Dynamic ATH Calculation: The script maintains a persistent variable that stores the highest price ever reached. On each bar, it compares the current high with the stored ATH using ath := math.max(ath, high), updating the ATH whenever a new peak is reached.
VIX Calm vs Choppy (Bar Version, VIX High Threshold)This indicator tracks market stability by measuring how long the VIX stays below or above a chosen intraday threshold. Instead of looking at VIX closes, it uses VIX high, so even a brief intraday spike will flip the regime into “choppy.”
The tool builds a running clock of consecutive bars spent in each regime:
Calm regime: VIX high stays below the threshold
Choppy regime: VIX high hits or exceeds the threshold
Calm streaks plot as positive bars (light blue background).
Choppy streaks plot as negative bars (dark pink background).
This gives a clean picture of how long the market has been stable vs volatile — useful for trend traders, breakout traders, and anyone who watches risk-on/risk-off conditions. A table shows the current regime and streak length for quick reference.
YCGH Drawdown PercentilesWhat This Indicator Does?
The Drawdown Percentiles indicator tracks how far below the all-time high (ATH) a stock or asset is currently trading, then displays statistical percentiles of historical drawdowns in a customizable table.
Percentile Analysis: It collects up to 5,000 historical bars of drawdown data, sorts them, and calculates user-selected percentiles (default: 10th, 30th, 50th) to show where current drawdowns rank historically.
Visual Display: A table shows each percentile threshold with color-coded drawdown values, helping you quickly assess whether the current drawdown is typical or extreme compared to historical patterns.
Practical Use Cases
Risk Assessment: Identify if current drawdowns fall within normal ranges or represent extreme conditions requiring position adjustments.
Entry/Exit Timing: Use percentile rankings to time entries during historically shallow drawdowns (better conditions) and reduce exposure during deep drawdowns.
Strategy Comparison: Compare drawdown patterns across different assets or trading strategies to evaluate risk-adjusted performance.
LapseBacktestingTableLibrary "LapseBacktestingMetrics"
This library provides a robust set of quantitative backtesting and performance evaluation functions for Pine Script strategies. It’s designed to help traders, quants, and developers assess risk, return, and robustness through detailed statistical metrics — including Sharpe, Sortino, Omega, drawdowns, and trade efficiency.
Built to enhance any trading strategy’s evaluation framework, this library allows you to visualize performance with the quantlapseTable() function, producing an interactive on-chart performance table.
Credit to EliCobra and BikeLife76 for original concept inspiration.
curve(disp_ind)
Retrieves a selected performance curve of your strategy.
Parameters:
disp_ind (simple string): Type of curve to plot. Options include "Equity", "Open Profit", "Net Profit", "Gross Profit".
Returns: (float) Corresponding performance curve value.
cleaner(disp_ind, plot)
Filters and displays selected strategy plots for clean visualization.
Parameters:
disp_ind (simple string): Type of display.
plot (simple float): Strategy plot variable.
Returns: (float) Filtered plot value.
maxEquityDrawDown()
Calculates the maximum equity drawdown during the strategy’s lifecycle.
Returns: (float) Maximum equity drawdown percentage.
maxTradeDrawDown()
Computes the worst intra-trade drawdown among all closed trades.
Returns: (float) Maximum intra-trade drawdown percentage.
consecutive_wins()
Finds the highest number of consecutive winning trades.
Returns: (int) Maximum consecutive wins.
consecutive_losses()
Finds the highest number of consecutive losing trades.
Returns: (int) Maximum consecutive losses.
no_position()
Counts the maximum consecutive bars where no position was held.
Returns: (int) Maximum flat days count.
long_profit()
Calculates total profit generated by long positions as a percentage of initial capital.
Returns: (float) Total long profit %.
short_profit()
Calculates total profit generated by short positions as a percentage of initial capital.
Returns: (float) Total short profit %.
prev_month()
Measures the previous month’s profit or loss based on equity change.
Returns: (float) Monthly equity delta.
w_months()
Counts the number of profitable months in the backtest.
Returns: (int) Total winning months.
l_months()
Counts the number of losing months in the backtest.
Returns: (int) Total losing months.
checktf()
Returns the time-adjusted scaling factor used in Sharpe and Sortino ratio calculations based on chart timeframe.
Returns: (float) Annualization multiplier.
stat_calc()
Performs complete statistical computation including drawdowns, Sharpe, Sortino, Omega, trade stats, and profit ratios.
Returns: (array)
.
f_colors(x, nv)
Generates a color gradient for performance values, supporting dynamic table visualization.
Parameters:
x (simple string): Metric label name.
nv (simple float): Metric numerical value.
Returns: (color) Gradient color value for table background.
quantlapseTable(option, position)
Displays an interactive Performance Table summarizing all major backtesting metrics.
Includes Sharpe, Sortino, Omega, Profit Factor, drawdowns, profitability %, and trade statistics.
Parameters:
option (simple string): Table type — "Full", "Simple", or "None".
position (simple string): Table position — "Top Left", "Middle Right", "Bottom Left", etc.
Returns: (table) On-chart performance visualization table.
This library empowers advanced quantitative evaluation directly within Pine Script®, ideal for strategy developers seeking deeper performance diagnostics and intuitive on-chart metrics.
Periodic Volume Time Velocity ProfileThis is the Periodic Volume Time Velocity Profile (PVTVP). It is an advanced professional profiling tool that goes beyond standard volume analysis by introducing Time and Velocity (Flow Rate) as profile dimensions.
By analyzing high-resolution intra-bar data, it builds
precise profiles for any custom period (Session, Day, Week, etc.),
helping you understand not just *where* the market traded,
but *how* it traded there.
## The 3 Dimensions of the Market
Unlike standard tools that only show Volume, PVTVP allows you
to switch between three critical metrics:
1. **VOLUME Profile (The "Where"):**
* Shows standard acceptance. High volume nodes (HVN)
are magnets for price.
2. **TIME Profile (The "How Long"):**
* Similar to TPO, it measures how long price spent at each
level.
* **High Time:** True acceptance and fair value.
* **Low Time:** Rejection or rapid movement.
3. **VELOCITY Profile (The "How Fast"):**
* Measures the **speed of trading** (Contracts per Second).
This reveals the hidden intent of market participants.
* **High Velocity (Fast Flow):** Aggression. Initiative
buyers/sellers are hitting market orders rapidly. Often
seen at breakouts or in liquidity vacuums.
* **Low Velocity (Slow Flow):** Absorption. Massive passive
limit orders are slowing price down despite high volume.
Often seen at major reversals ("hitting a brick wall").
## Key Features
1. **Statistical Volume Profile Engine:** For each bar in the selected
period, the indicator builds a complete volume profile on a lower
'Intra-Bar Timeframe'. Instead of simple tick counting, it uses
**statistical models ('PDF' allocation)** to distribute volume
across price levels and **advanced classifiers ('Dynamic' split)**
to determine the buy/sell pressure within that profile.
2. **Flexible Profile Display:** The **finalized profile** (plotted at
the end of each period) can be visualized in three distinct
ways: 'Up/Down' (buy vs. sell), 'Total' (combined volume),
and 'Delta' (net difference).
3. **Developing Key Levels:** The indicator also plots the developing
Point of Control (POC), Value Area (VA), VWAP, and Standard
Deviation bands in real-time as the period unfolds, providing
live insights into the emerging market structure.
4. **Dynamic Row Sizing:** Includes an option ('Rows per Percent')
to automatically adjust the number of profile rows (buckets)
based on the profile's price range, maintaining a consistent
visual density.
5. **Integrated Alerts:** Includes 12 alerts that trigger when the
main price crosses over or under the key developing levels:
POC, VWAP, Value Area High/Low, and the +/- Standard
Deviation bands.
**Caution: Real-Time Data Behavior (Intra-Bar Repainting)**
This indicator uses high-resolution intra-bar data. As a result, the
values on the **current, unclosed bar** (the real-time bar) will
update dynamically as new intra-bar data arrives. This behavior is
normal and necessary for this type of analysis. Signals should only
be considered final **after the main chart bar has closed.**
---
**DISCLAIMER**
1. **For Informational/Educational Use Only:** This indicator is
provided for informational and educational purposes only. It does
not constitute financial, investment, or trading advice, nor is
it a recommendation to buy or sell any asset.
2. **Use at Your Own Risk:** All trading decisions you make based on
the information or signals generated by this indicator are made
solely at your own risk.
3. **No Guarantee of Performance:** Past performance is not an
indicator of future results. The author makes no guarantee
regarding the accuracy of the signals or future profitability.
4. **No Liability:** The author shall not be held liable for any
financial losses or damages incurred directly or indirectly from
the use of this indicator.
5. **Signals Are Not Recommendations:** The alerts and visual signals
(e.g., crossovers) generated by this tool are not direct
recommendations to buy or sell. They are technical observations
for your own analysis and consideration.
QQQ SR Pro.MARIA VICTORIAthis script is thinking to help traders to avoid false breakdown on resistant or support. try to improve enter en exist trading in any time frame, as well.
Braid Filter StrategyThis strategy is like a sophisticated set of traffic lights and speed limit signs for trading. It only allows a trade when multiple indicators line up to confirm a strong move, giving it its "Braid Filter" name—it weaves together several conditions.
The strategy is set up to use 100% of your account equity (your trading funds) on a trade and does not "pyramid" (it won't add to an existing trade).
1. The Main Trend Check (The Traffic Lights)
The strategy uses three main filters that must agree before it considers a trade.
A. The "Chad Filter" (Direction & Strength)
This is the heart of the strategy, a custom combination of three different Moving AveragesThese averages have fast, medium, and slow settings (3, 7, and 14 periods).
Go Green (Buy Signal): The fastest average is higher than the medium average, AND the three averages are sufficiently separated (not tangled up, which indicates a strong move).
Go Red (Sell Signal): The medium average is higher than the fastest average, AND the three averages are sufficiently separated.
Neutral (Wait): If the averages are tangled or the separation isn't strong enough.
Key Trigger: A primary condition for a signal is when the Chad Filter changes color (e.g., from Red/Grey to Green).
B. The EMA Trend Bars (Secondary Confirmation)
This is a simpler, longer-term filter using a 34-period Exponential Moving Average (EMA). It checks if the current candle's average price is above or below this EMA.
Green Bars: The price is above the 34 EMA (Bullish Trend).
Red Bars: The price is below the 34 EMA (Bearish Trend).
Trades only happen if the signal direction matches the bar color. For a Buy, the bar must be Green. For a Sell, the bar must be Red.
C. ADX/DI Filter (The Speed Limit Sign)
This uses the Average Directional Index (ADX) and Directional Movement Indicators (DI) to check if a trend is actually in motion and getting stronger.
Must-Have Conditions:
The ADX value must be above 20 (meaning there is a trend, not just random movement).
The ADX line must be rising (meaning the trend is accelerating/getting stronger).
The strategy will only trade when the trend is strong and building momentum.
2. The Trading Action (Entry and Exit)
When all three filters (Chad Filter color change, EMA Trend Bar color, and ADX strength/slope) align, the strategy issues a signal, but it doesn't enter immediately.
Entry Strategy (The "Wait-for-Confirmation" Approach):
When a Buy Signal appears, the strategy sets a "Buy Stop" order at the signal candle's closing price.
It then waits for up to 3 candles (Candles Valid for Entry). The price must move up and hit that Buy Stop price within those 3 candles to confirm the move and enter the trade.
A Sell Signal works the same way but uses a "Sell Stop" at the closing price, waiting for the price to drop and hit it.
Risk Management (Stop Loss and Take Profit):
Stop Loss: To manage risk, the strategy finds a recent significant low (for a Buy) or high (for a Sell) over the last 20 candles and places the Stop Loss there. This is a logical place where the current move would be considered "broken" if the price reaches it.
Take Profit: It uses a fixed Risk:Reward Ratio (set to 1.5 by default). This means the potential profit (Take Profit distance) is $1.50 for every $1.00 of risk (Stop Loss distance).
3. Additional Controls
Time Filter: You can choose to only allow trades during specific hours of the day.
Visuals: It shows a small triangle on the chart where the signal happens and colors the background to reflect the Chad Filter's trend (Green/Red/Grey) and the candle bars to show the EMA trend (Lime/Red).
🎯 Summary of the Strategy's Goal
This strategy is designed to capture strong, confirmed momentum moves. It uses a fast, custom indicator ("Chad Filter") to detect the start of a new move, confirms that move with a slower trend filter (34 EMA), and then validates the move's strength with the ADX. By waiting a few candles for the price to hit the entry level, it aims to avoid false signals.
Braid Filter StrategyAnother of TradeIQ's youtube strategies. It looks a little messy but it combines all the indicators into one so there are no extra panes. This strategy is like a sophisticated set of traffic lights and speed limit signs for trading. It only allows a trade when multiple indicators line up to confirm a strong move, giving it its "Braid Filter" name—it weaves together several conditions.
The strategy is set up to use 100% of your account equity (your trading funds) on a trade and does not "pyramid" (it won't add to an existing trade).
1. The Main Trend Check (The Traffic Lights)
The strategy uses three main filters that must agree before it considers a trade.
A. The "Braid Filter" (Direction & Strength)
This is the heart of the strategy, a custom combination of three different Moving Averages
These averages have fast, medium, and slow settings (3, 7, and 14 periods).
Go Green (Buy Signal): The fastest average is higher than the medium average, AND the three averages are sufficiently separated (not tangled up, which indicates a strong move).
Go Red (Sell Signal): The medium average is higher than the fastest average, AND the three averages are sufficiently separated.
Neutral (Wait): If the averages are tangled or the separation isn't strong enough.
Key Trigger: A primary condition for a signal is when the Chad Filter changes color (e.g., from Red/Grey to Green).
B. The EMA Trend Bars (Secondary Confirmation)
This is a simpler, longer-term filter using a 34-period Exponential Moving Average (EMA). It checks if the current candle's average price is above or below this EMA.
Green Bars: The price is above the 34 EMA (Bullish Trend).
Red Bars: The price is below the 34 EMA (Bearish Trend).
Trades only happen if the signal direction matches the bar color. For a Buy, the bar must be Green. For a Sell, the bar must be Red.
C. ADX/DI Filter (The Speed Limit Sign)
This uses the Average Directional Index (ADX) and Directional Movement Indicators (DI) to check if a trend is actually in motion and getting stronger.
Must-Have Conditions:
The ADX value must be above 20 (meaning there is a trend, not just random movement).
The ADX line must be rising (meaning the trend is accelerating/getting stronger).
The strategy will only trade when the trend is strong and building momentum.
2. The Trading Action (Entry and Exit)
When all three filters (Chad Filter color change, EMA Trend Bar color, and ADX strength/slope) align, the strategy issues a signal, but it doesn't enter immediately.
Entry Strategy (The "Wait-for-Confirmation" Approach):
When a Buy Signal appears, the strategy sets a "Buy Stop" order at the signal candle's closing price.
It then waits for up to 3 candles (Candles Valid for Entry). The price must move up and hit that Buy Stop price within those 3 candles to confirm the move and enter the trade.
A Sell Signal works the same way but uses a "Sell Stop" at the closing price, waiting for the price to drop and hit it.
Risk Management (Stop Loss and Take Profit):
Stop Loss: To manage risk, the strategy finds a recent significant low (for a Buy) or high (for a Sell) over the last 20 candles and places the Stop Loss there. This is a logical place where the current move would be considered "broken" if the price reaches it.
Take Profit: It uses a fixed Risk:Reward Ratio (set to 1.5 by default). This means the potential profit (Take Profit distance) is $1.50 for every $1.00 of risk (Stop Loss distance).
3. Additional Controls
Time Filter: You can choose to only allow trades during specific hours of the day.
Visuals: It shows a small triangle on the chart where the signal happens and colors the background to reflect the Chad Filter's trend (Green/Red/Grey) and the candle bars to show the EMA trend (Lime/Red).
🎯 Summary of the Strategy's Goal
This strategy is designed to capture strong, confirmed momentum moves. It uses a fast, custom indicator ("Chad Filter") to detect the start of a new move, confirms that move with a slower trend filter (34 EMA), and then validates the move's strength with the ADX. By waiting a few candles for the price to hit the entry level, it aims to avoid false signals.
BTCUSD / (inverted)DXY RatioShows relation between INVERTED DXY and BITCOIN ( blue line ) . With EMA-smoothing ( red line ).
Stochastic RSI - WT Confluence Signal Detectors (TraderDemircan)Description
What This Indicator Does:
This indicator combines two powerful momentum oscillators—WaveTrend and Stochastic RSI—to identify high-probability trading signals through confluence. Instead of relying on a single indicator that may generate false signals, this tool only triggers buy/sell alerts when both oscillators simultaneously confirm extreme market conditions and trend reversals. This confluence approach significantly reduces noise and helps traders focus on the most reliable setups.
Key Features:
Dual-Oscillator Confluence: Generates signals only when both WaveTrend crossovers and Stochastic RSI extreme levels align
Normalized Scale Display: Both oscillators are plotted on a unified -100 to +100 scale for easy visual comparison
Visual Signal Confirmation: Clear intersection points marked with colored circles, plus optional candle coloring at crossover moments
Customizable Thresholds: Adjust overbought/oversold levels for both oscillators to match your trading style and asset volatility
Clean Visual Presentation: Optional area fill showing WaveTrend momentum difference, making divergences easier to spot
How It Works:
The indicator operates on a confluence principle where multiple conditions must align:
For BUY Signals (Green):
WaveTrend 1 crosses above WaveTrend 2 (bullish crossover)
WaveTrend is in oversold territory (below -53 or -60)
Stochastic RSI K-line is below 20 (oversold)
For SELL Signals (Red):
WaveTrend 1 crosses below WaveTrend 2 (bearish crossover)
WaveTrend is in overbought territory (above 53 or 60)
Stochastic RSI K-line is above 80 (overbought)
WaveTrend Component:
Uses the hlc3 price (average of high, low, close) to calculate a channel index that identifies market momentum waves. The two WaveTrend lines (WT1 and WT2) act similarly to MACD, where crossovers indicate momentum shifts. The oscillator ranges from approximately -100 to +100, with extreme values suggesting potential reversals.
Stochastic RSI Component:
Applies stochastic calculations to RSI values rather than raw price, creating a more sensitive momentum indicator. Values above 80 indicate overbought conditions (potential selling opportunity), while values below 20 indicate oversold conditions (potential buying opportunity). The indicator includes both K-line (faster) and D-line (slower, smoothed) for additional confirmation.
Normalization Technology:
To enable direct visual comparison, the Stochastic RSI (normally 0-100 scale) is normalized to match WaveTrend's -100 to +100 scale. This allows traders to see both oscillators' movements in relation to the same reference levels, making divergences and convergences more apparent.
How to Use:
For Trend Traders:
Wait for confluence signals in the direction of the larger trend
Use buy signals in uptrends as entry points during pullbacks
Use sell signals in downtrends as entry points during bounces
For Reversal Traders:
Focus on confluence signals at major support/resistance levels
Look for divergences between price and oscillators before confluence signals
Consider stronger signals when both oscillators reach extreme levels (WT beyond ±60, Stoch beyond 20/80)
For Scalpers:
Lower the WaveTrend Channel Length (default 10) to 5-7 for more frequent signals
Tighten overbought/oversold thresholds slightly (e.g., WT: ±50, Stoch: 30/70)
Use on lower timeframes (5m, 15m) with strict stop losses
Settings Guide:
WaveTrend Parameters:
Channel Length (10): Controls sensitivity. Lower = more signals but more noise. Higher = fewer but more reliable signals
Average Length (21): Smoothing period for WT2. Higher values reduce whipsaws
Overbought Levels (60/53): Two-tier system. Breaching 60 indicates strong overbought, 53 is moderate
Oversold Levels (-60/-53): Mirror of overbought levels for downside extremes
Stochastic RSI Parameters:
K-Smooth (3): Smoothing for the K-line. Higher = smoother but delayed
D-Smooth (3): Additional smoothing for the D-line signal
RSI Period (14): Standard RSI calculation period
Stoch Period (14): Stochastic calculation lookback
Oversold (20) / Overbought (80): Classic thresholds for extreme conditions
Visual Options:
Show WT Difference Area: Displays the momentum difference between WT1 and WT2 as a blue shaded area
Show WT Intersection Points: Marks crossover points with colored circles (red for bearish, green for bullish)
Color Candles at Intersection: Changes candle colors at crossover moments (blue for bearish, yellow for bullish)
Show Stoch Over Signals: Displays when Stochastic RSI breaches extreme levels
What Makes This Original:
While WaveTrend and Stochastic RSI are established indicators, this script's originality lies in:
Confluence Logic: The specific combination requiring simultaneous confirmation from both oscillators in extreme zones, not just simple crossovers
Normalization Approach: Displaying both oscillators on the same -100 to +100 scale for direct visual comparison, which is not standard
Multi-Tier Overbought/Oversold: Using two levels (60/53) instead of one, allowing for nuanced signal strength assessment
Integrated Visual System: Combining area fills, intersection markers, and candle coloring in a coordinated display that shows momentum flow at a glance
Important Considerations:
This is a momentum-based oscillator system, which performs best in ranging or trending markets with clear swings
In strong trending markets, the oscillator may remain in extreme zones for extended periods (remain overbought during strong uptrends, oversold during strong downtrends)
Confluence signals are intentionally rare to maintain quality—expect fewer signals than with single-indicator systems
Always combine with price action analysis, support/resistance levels, and proper risk management
Not recommended for extremely low volatility or thin markets where oscillators may produce erratic readings
Best Timeframes:
Intraday: 15m, 1H (with tighter parameters)
Swing Trading: 4H, Daily (with default parameters)
Position Trading: Daily, Weekly (with extended Channel Length 15-20)
Typical Use Cases:
Identifying exhaustion points in trending markets
Timing entries during pullbacks in established trends
Spotting potential reversal zones at key price levels
Filtering out weak momentum signals during consolidation
@MO_XBT - EMA/MA ToolkitClean set of EMAs & MAs I use for trend tracking, momentum shifts, and cross signals
If you found this useful, follow me on X: @mo_xbt
TraderDemircan (Triz Global) Automatic Extend FibonacciDescription
What This Indicator Does:
This indicator automatically identifies the most significant swing low and swing high points within a customizable lookback period and plots comprehensive Fibonacci retracement and extension levels between them. Unlike manual Fibonacci tools, this script continuously updates the levels based on the most recent price action, making it ideal for traders who want to identify key support/resistance zones without constantly redrawing Fibonacci levels.
Key Features:
Automatic Swing Point Detection: Scans the specified lookback period to find the lowest low (starting point) and the highest high (ending point) to establish the Fibonacci range
Comprehensive Level Coverage: Plots 18 Fibonacci levels ranging from 0.0 (minimum) to 3.618 (maximum extension), including standard retracement levels (0.236, 0.382, 0.5, 0.618, 0.786) and popular extension levels (1.272, 1.414, 1.618, 2.0, 2.272, 2.382, 2.618, 3.0, 3.272, 3.618)
Visual Clarity: Each level is color-coded and can be individually toggled on/off for cleaner charts
Price and Percentage Labels: Shows both the actual price level and the Fibonacci percentage for easy reference
Flexible Display Options: Customize line width, style (solid/dashed/dotted), and extension direction
Dynamic Updates: Automatically recalculates levels as new price data becomes available
How It Works:
The indicator uses a left-to-right methodology, starting from the swing low (marked as 0.0 with a green diamond) and extending to the swing high (marked as 1.0 with a blue diamond). This approach follows natural price movement and makes the Fibonacci levels intuitive to read. The algorithm:
Identifies the lowest point within the lookback period (this becomes the 0.0 level)
Finds the highest point that occurred after the low point (this becomes the 1.0 level)
Calculates all retracement levels (0.0-1.0) and extension levels (above 1.0) based on this range
Plots horizontal lines with customizable styling and labels
How to Use:
For Retracement Trading: Watch for price reactions at key levels like 0.382, 0.5, and 0.618 (the Golden Ratio) during pullbacks in an uptrend
For Extension Targets: Use levels above 1.0 (especially 1.272, 1.414, and 1.618) to project potential profit targets
Adjust Sensitivity: Increase the "Pivot Sensibility" parameter for major swings only, or decrease it to capture more frequent price movements
Customize Lookback: Shorter periods (50-100 bars) work well for intraday trading, while longer periods (200-500 bars) suit swing trading and position trading
Settings:
Lookback Period: Controls how many candles back to search (10-500)
Pivot Sensibility: Determines the strength required to identify swing points (1-20)
Individual Level Toggles: Enable/disable any of the 18 Fibonacci levels
Visual Customization: Change colors, line thickness (1-5), and line style for each level
Label Options: Toggle price labels and percentage labels independently
Extension Controls: Choose to extend lines left, right, or both directions
What Makes This Original:
This indicator combines automatic swing detection with an extensive range of Fibonacci levels (18 total) that go well beyond the standard retracement tool. The left-to-right calculation methodology ensures logical level placement, while the comprehensive customization options allow traders to adapt the visual presentation to their specific trading style and chart setup.
Note: This indicator is designed for visual analysis and does not generate buy/sell signals. It's a tool to help identify potential support/resistance zones based on Fibonacci ratios. Always combine with other technical analysis methods and proper risk management.
ADR % Used (Subpane)I am Useless at reading ADR so I built this ADR Indicator With a dashboard to Inform me of the percentage of the range Used I use it with other Indicators especially price action and it tells you if it is safe to trade or not Quite Useful for me maybe you too
SISTEMA DE REVERSIONTrying to avoid false signal to enter o exit in any timeframe. To do so, I am using a support and resistant dynamic no lineal.
DAO - Demand Advanced Oscillator# DAO - Demand Advanced Oscillator
## 📊 Overview
DAO (Demand Advanced Oscillator) is a powerful momentum oscillator that measures buying and selling pressure by analyzing consecutive high-low relationships. It helps identify market extremes, divergences, and potential trend reversals.
**Values range from 0 to 1:**
- **Above 0.70** = Overbought (potential reversal down)
- **Below 0.30** = Oversold (potential reversal up)
- **0.30 - 0.70** = Neutral zone
---
## ✨ Key Features
✅ **Automatic Divergence Detection**
- Bullish divergences (price lower low + DAO higher low)
- Bearish divergences (price higher high + DAO lower high)
- Visual lines connecting divergence points
✅ **Multi-Timeframe Analysis**
- View higher timeframe DAO on current chart
- Perfect for trend alignment strategies
✅ **Signal Line (EMA)**
- Customizable EMA for trend confirmation
- Crossover signals for momentum shifts
✅ **Real-Time Statistics Dashboard**
- Current DAO value
- Market status (Overbought/Oversold/Neutral)
- Trend direction indicator
✅ **Complete Alert System**
- Overbought/Oversold signals
- Bullish/Bearish divergences
- Signal line crosses
- Level crosses
✅ **Fully Customizable**
- Adjustable periods and levels
- Customizable colors and zones
- Toggle features on/off
---
## 📈 Trading Signals
### 1. Divergences (Most Powerful)
**Bullish Divergence:**
- Price makes lower low
- DAO makes higher low
- Signal: Strong reversal up likely
**Bearish Divergence:**
- Price makes higher high
- DAO makes lower high
- Signal: Strong reversal down likely
### 2. Overbought/Oversold
**Overbought (>0.70):**
- Market may be overextended
- Consider taking profits or looking for shorts
- Can remain overbought in strong trends
**Oversold (<0.30):**
- Market may be oversold
- Consider buying opportunities
- Can remain oversold in strong downtrends
### 3. Signal Line Crossovers
**Bullish Cross:**
- DAO crosses above signal line
- Momentum turning positive
**Bearish Cross:**
- DAO crosses below signal line
- Momentum turning negative
### 4. Level Crosses
**Cross Above 0.30:** Exiting oversold zone (potential uptrend)
**Cross Below 0.70:** Exiting overbought zone (potential downtrend)
---
## ⚙️ Default Settings
📊 Oscillator Period: 14
Number of bars for calculation
📈 Signal Line Period: 9
EMA period for signal line
🔴 Overbought Level: 0.70
Upper threshold
🟢 Oversold Level: 0.30
Lower threshold
🎯 Divergence Detection: ON
Auto divergence identification
⏰ Multi-Timeframe: OFF
Higher TF overlay (optional)
All parameters are fully customizable!
---
## 🔔 Alerts
Six pre-configured alerts available:
1. DAO Overbought
2. DAO Oversold
3. DAO Bullish Divergence
4. DAO Bearish Divergence
5. DAO Signal Cross Up
6. DAO Signal Cross Down
**Setup:** Right-click indicator → Add Alert → Choose condition
---
## 💡 How to Use
### Best Practices:
✅ Focus on divergences (strongest signals)
✅ Combine with support/resistance levels
✅ Use multiple timeframes for confirmation
✅ Wait for price action confirmation
✅ Practice proper risk management
### Avoid:
❌ Trading on indicator alone
❌ Fighting strong trends
❌ Ignoring market context
❌ Overtrading
### Recommended Settings by Trading Style:
**Day Trading:** Period 7-10, All alerts ON
**Swing Trading:** Period 14-21, Divergence alerts
**Scalping:** Period 5-7, Signal crosses
**Position Trading:** Period 21-30, Weekly/Daily TF
---
## 🌍 Markets & Timeframes
**Works on all markets:**
- Forex (all pairs)
- Stocks (all exchanges)
- Cryptocurrencies
- Commodities
- Indices
- Futures
**Works on all timeframes:** 1m to Monthly
---
## 📊 How It Works
DAO calculates the ratio of buying pressure to total market pressure:
1. **Calculate Buying Pressure (DemandMax):**
- If current high > previous high: DemandMax = difference
- Otherwise: DemandMax = 0
2. **Calculate Selling Pressure (DemandMin):**
- If previous low > current low: DemandMin = difference
- Otherwise: DemandMin = 0
3. **Apply Smoothing:**
- Calculate SMA of DemandMax over N periods
- Calculate SMA of DemandMin over N periods
4. **Final Formula:**
```
DAO = SMA(DemandMax) / (SMA(DemandMax) + SMA(DemandMin))
```
This produces a normalized value (0-1) representing market demand strength.
---
## 🎯 Trading Strategies
### Strategy 1: Divergence Trading
- Wait for divergence label
- Confirm at support/resistance
- Enter on confirming candle
- Stop loss beyond recent swing
- Target: opposite level or 0.50
### Strategy 2: Overbought/Oversold
- Best for ranging markets
- Wait for extreme readings
- Enter on reversal from extremes
- Target: middle line (0.50)
### Strategy 3: Trend Following
- Identify trend direction first
- Use DAO to time entries in trend direction only
- Enter on pullbacks to oversold (uptrend) or overbought (downtrend)
- Trade with the trend
### Strategy 4: Multi-Timeframe
- Enable MTF feature
- Trade only when both timeframes align
- Higher TF = trend direction
- Lower TF = precise entry
---
## 📂 Category
**Primary:** Oscillators
**Secondary:** Statistics, Volatility, Momentum
---
## 🏷️ Tags
dao, oscillator, momentum, overbought-oversold, divergence, reversal, demand-indicator, price-exhaustion, statistics, volatility, forex, stocks, crypto, multi-timeframe, technical-analysis
---
## ⚠️ Disclaimer
**This indicator is for educational purposes only.** It does not constitute financial advice. Trading involves substantial risk of loss. Always conduct your own research, use proper risk management, and consult with financial professionals before making trading decisions. Past performance does not guarantee future results.
---
## 📄 License
Open source - Free to use for personal trading, modify as needed, and share with attribution.
---
**Version:** 1.0
**Status:** Production Ready ✅
**Pine Script:** v5
**Trademark-Free:** 100% Safe to Publish
---
*Made with 💙 for traders worldwide*
LibVeloLibrary "LibVelo"
This library provides a sophisticated framework for **Velocity
Profile (Flow Rate)** analysis. It measures the physical
speed of trading at specific price levels by relating volume
to the time spent at those levels.
## Core Concept: Market Velocity
Unlike Volume Profiles, which only answer "how much" traded,
Velocity Profiles answer "how fast" it traded.
It is calculated as:
`Velocity = Volume / Duration`
This metric (contracts per second) reveals hidden market
dynamics invisible to pure Volume or TPO profiles:
1. **High Velocity (Fast Flow):**
* **Aggression:** Initiative buyers/sellers hitting market
orders rapidly.
* **Liquidity Vacuum:** Price slips through a level because
order book depth is thin (low resistance).
2. **Low Velocity (Slow Flow):**
* **Absorption:** High volume but very slow price movement.
Indicates massive passive limit orders ("Icebergs").
* **Apathy:** Little volume over a long time. Lack of
interest from major participants.
## Architecture: Triple-Engine Composition
To ensure maximum performance while offering full statistical
depth for all metrics, this library utilises **object
composition** with a lazy evaluation strategy:
#### Engine A: The Master (`vpVol`)
* **Role:** Standard Volume Profile.
* **Purpose:** Maintains the "ground truth" of volume distribution,
price buckets, and ranges.
#### Engine B: The Time Container (`vpTime`)
* **Role:** specialized container for time duration (in ms).
* **Hack:** It repurposes standard volume arrays (specifically
`aBuy`) to accumulate time duration for each bucket.
#### Engine C: The Calculator (`vpVelo`)
* **Role:** Temporary scratchpad for derived metrics.
* **Purpose:** When complex statistics (like Value Area or Skewness)
are requested for **Velocity**, this engine is assembled
on-demand to leverage the full statistical power of `LibVPrf`
without rewriting complex algorithms.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
create(buckets, rangeUp, rangeLo, dynamic, valueArea, allot, estimator, cdfSteps, split, trendLen)
Construct a new `Velo` controller, initializing its engines.
Parameters:
buckets (int) : series int Number of price buckets ≥ 1.
rangeUp (float) : series float Upper price bound (absolute).
rangeLo (float) : series float Lower price bound (absolute).
dynamic (bool) : series bool Flag for dynamic adaption of profile ranges.
valueArea (int) : series int Percentage for Value Area (1..100).
allot (series AllotMode) : series AllotMode Allocation mode `Classic` or `PDF` (default `PDF`).
estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : series PriceEst PDF model for distribution attribution (default `Uniform`).
cdfSteps (int) : series int Resolution for PDF integration (default 20).
split (series SplitMode) : series SplitMode Buy/Sell split for the master volume engine (default `Classic`).
trendLen (int) : series int Look‑back for trend factor in dynamic split (default 3).
Returns: Velo Freshly initialised velocity profile.
method clone(self)
Create a deep copy of the composite profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo Profile object to copy.
Returns: Velo A completely independent clone.
method clear(self)
Reset all engines and accumulators.
Namespace types: Velo
Parameters:
self (Velo) : Velo Profile object to clear.
Returns: Velo Cleared profile (chaining).
method merge(self, srcVolBuy, srcVolSell, srcTime, srcRangeUp, srcRangeLo, srcVolCvd, srcVolCvdHi, srcVolCvdLo)
Merges external data (Volume and Time) into the current profile.
Automatically handles resizing and re-bucketing if ranges differ.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
srcVolBuy (array) : array Source Buy Volume bucket array.
srcVolSell (array) : array Source Sell Volume bucket array.
srcTime (array) : array Source Time bucket array (ms).
srcRangeUp (float) : series float Upper price bound of the source data.
srcRangeLo (float) : series float Lower price bound of the source data.
srcVolCvd (float) : series float Source Volume CVD final value.
srcVolCvdHi (float) : series float Source Volume CVD High watermark.
srcVolCvdLo (float) : series float Source Volume CVD Low watermark.
Returns: Velo `self` (chaining).
method addBar(self, offset)
Main data ingestion. Distributes Volume and Time to buckets.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
offset (int) : series int Offset of the bar to add (default 0).
Returns: Velo `self` (chaining).
method setBuckets(self, buckets)
Sets the number of buckets for the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
buckets (int) : series int New number of buckets.
Returns: Velo `self` (chaining).
method setRanges(self, rangeUp, rangeLo)
Sets the price range for the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
rangeUp (float) : series float New upper price bound.
rangeLo (float) : series float New lower price bound.
Returns: Velo `self` (chaining).
method setValueArea(self, va)
Set the percentage of volume/time for the Value Area.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
va (int) : series int New Value Area percentage (0..100).
Returns: Velo `self` (chaining).
method getBuckets(self)
Returns the current number of buckets in the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: series int The number of buckets.
method getRanges(self)
Returns the current price range of the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns:
rangeUp series float The upper price bound of the profile.
rangeLo series float The lower price bound of the profile.
method getArrayBuyVol(self)
Returns the internal raw data array for **Buy Volume** directly.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for buy volume.
method getArraySellVol(self)
Returns the internal raw data array for **Sell Volume** directly.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for sell volume.
method getArrayTime(self)
Returns the internal raw data array for **Time** (in ms) directly.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for time duration.
method getArrayBuyVelo(self)
Returns the internal raw data array for **Buy Velocity** directly.
Automatically executes _assemble() if data is dirty.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for buy velocity.
method getArraySellVelo(self)
Returns the internal raw data array for **Sell Velocity** directly.
Automatically executes _assemble() if data is dirty.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for sell velocity.
method getBucketBuyVol(self, idx)
Returns the **Buy Volume** of a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The buy volume.
method getBucketSellVol(self, idx)
Returns the **Sell Volume** of a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The sell volume.
method getBucketTime(self, idx)
Returns the raw accumulated time (in ms) spent in a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The time in milliseconds.
method getBucketBuyVelo(self, idx)
Returns the **Buy Velocity** (Aggressive Buy Flow) of a bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The buy velocity in .
method getBucketSellVelo(self, idx)
Returns the **Sell Velocity** (Aggressive Sell Flow) of a bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The sell velocity in .
method getBktBnds(self, idx)
Returns the price boundaries of a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns:
up series float The upper price bound of the bucket.
lo series float The lower price bound of the bucket.
method getPoc(self, target)
Returns Point of Control (POC) information for the specified target metric.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
pocIdx series int The index of the POC bucket.
pocPrice series float The mid-price of the POC bucket.
method getVA(self, target)
Returns Value Area (VA) information for the specified target metric.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
vaUpIdx series int The index of the upper VA bucket.
vaUpPrice series float The upper price bound of the VA.
vaLoIdx series int The index of the lower VA bucket.
vaLoPrice series float The lower price bound of the VA.
method getMedian(self, target)
Returns the Median price for the specified target metric distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
medianIdx series int The index of the bucket containing the median.
medianPrice series float The median price.
method getAverage(self, target)
Returns the weighted average price (VWAP/TWAP) for the specified target.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
avgIdx series int The index of the bucket containing the average.
avgPrice series float The weighted average price.
method getStdDev(self, target)
Returns the standard deviation for the specified target distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: series float The standard deviation.
method getSkewness(self, target)
Returns the skewness for the specified target distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: series float The skewness.
method getKurtosis(self, target)
Returns the excess kurtosis for the specified target distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: series float The excess kurtosis.
method getSegments(self, target)
Returns the fundamental unimodal segments for the specified target metric.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: matrix A 2-column matrix where each row is an pair.
method getCvd(self, target)
Returns Cumulative Volume/Velo Delta (CVD) information for the target metric.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
cvd series float The final delta value.
cvdHi series float The historical high-water mark of the delta.
cvdLo series float The historical low-water mark of the delta.
Velo
Velo Composite Velocity Profile Controller.
Fields:
_vpVol (VPrf type from AustrianTradingMachine/LibVPrf/2) : LibVPrf.VPrf Engine A: Master Volume source.
_vpTime (VPrf type from AustrianTradingMachine/LibVPrf/2) : LibVPrf.VPrf Engine B: Time duration container (ms).
_vpVelo (VPrf type from AustrianTradingMachine/LibVPrf/2) : LibVPrf.VPrf Engine C: Scratchpad for velocity stats.
_aTime (array) : array Pointer alias to `vpTime.aBuy` (Time storage).
_valueArea (series float) : int Percentage of total volume to include in the Value Area (1..100)
_estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : LibBrSt.PriceEst PDF model for distribution attribution.
_allot (series AllotMode) : AllotMode Attribution model (Classic or PDF).
_cdfSteps (series int) : int Integration resolution for PDF.
_isDirty (series bool) : bool Lazy evaluation flag for vpVelo.
Checklist (D1 / H4 / M15/30 BoS / VP / Fibo / S/R) This is a simple, visual checklist indicator that allows you to quickly assess how many of your strategy conditions are met, without affecting the chart itself. It is ideal for multi-timeframe strategies and point-by-point setup monitoring.
Auto Fibonacci RetraceNOTE: This script is for educational purposes only.
This Pine Script v6 indicator automates the drawing of Fibonacci retracement levels on a TradingView chart based on detected pivot highs and lows. It's designed to identify the most recent swing points in a price trend and plot horizontal lines at standard Fibonacci ratios (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%), along with optional labels for each level. The script is useful for traders who want dynamic, hands-free Fib retracements that update as new pivots form, helping to spot potential support/resistance zones without manual intervention.
Key Features
Automatic Pivot Detection: Uses TradingView's built-in ta.pivothigh and ta.pivotlow functions to find recent swing highs and lows. The sensitivity is adjustable via user inputs for "Left Bars" and "Right Bars" (default: 5 each), which define how many bars are checked on either side to confirm a pivot.
Trend Direction Awareness: Determines if the current swing is an uptrend (recent high after low) or downtrend (recent low after high) and orients the Fib levels accordingly—starting from the low in uptrends or high in downtrends.
Dynamic Drawing:
Plots dashed horizontal lines extending to the right of the chart for each Fib level.
Colors are predefined for visual distinction (e.g., blue for 23.6%, orange for 61.8%).
Lines and labels are cleared and redrawn only when a new pivot is detected or on initial load to prevent chart clutter.
Customizable Labels: Optional labels show the percentage (e.g., "61.8%") and can be positioned on the "Left" (at the swing start) or "Right" (pinned to the current bar, updating dynamically). Labels use semi-transparent backgrounds for readability.
Performance Optimizations: Uses arrays to manage lines and labels efficiently, with reverse-indexed loops for safe deletion. The max_bars_back=500 ensures it handles historical data without excessive computation.
User Inputs:
Left/Right Bars: Tune pivot detection (higher values for major trends, lower for shorter swings).
Show Fib Levels/Labels: Toggle visibility.
Label Position: "Left" or "Right" for placement flexibility.
Usage Instructions
Adding to Chart: Copy-paste into TradingView's Pine Editor, save as a new indicator, and add it to your chart via the "Indicators" menu.
Customization: Adjust inputs in the indicator settings panel. For example, set Left/Right Bars to 10 for daily charts in strong trends.
Best Practices:
Use on trending markets (e.g., stocks, forex, crypto like BTC/USD); avoid choppy sideways action.
Combine with other indicators (e.g., RSI for overbought/oversold confirmation) for better trade signals.
Test on historical data—zoom out to see how it redraws on past swings.
Limitations: Relies on pivot functions, so it may lag slightly (pivots confirm after "Right Bars"). Not a trading strategy—use for analysis only. No alerts built-in, but you can add alertcondition if extending it.
Potential Enhancements: Add extensions (e.g., 161.8%), user-defined levels, or alerts on price touches via simple modifications.
This script provides a clean, efficient way to visualize Fib retracements automatically, saving time compared to manual drawing. If you need further tweaks or integration into a full strategy, let me know!






















