RAT Moving Average Crossover StrategyThis is based on general moving average crossovers but some modifications made to generate buy sell signals.
Recherche dans les scripts pour "algo"
Weis pip zigzag jayyWhat you see here is the Weis pip zigzag wave plotted directly on the price chart. This script is the companion to the Weis pip wave ( ) which is plotted in the lower panel of the displayed chart and can be used as an alternate way of plotting the same results. The Weis pip zigzag wave shows how far in terms of price a Weis wave has traveled through the duration of a Weis wave. The Weis pip zigzag wave is used in combination with the Weis cumulative volume wave. The two waves must be set to the same "wave size".
To use this script you must set the wave size. Using the traditional Weis method simply enter the desired wave size in the box "Select Weis Wave Size" In this example, it is set to 5. Each wave for each security and each timeframe requires its own wave size. Although not the traditional method a more automatic way to set wave size would be to use ATR. This is not the true Weis method but it does give you similar waves and, importantly, without the hassle described above. Once the Weis wave size is set then the pip wave will be shown.
I have put a pip zigzag of a 5 point Weis wave on the bar chart - that is a different script. I have added it to allow your eye to see what a Weis wave looks like. You will notice that the wave is not in straight lines connecting wave tops to bottoms this is a function of the limitations of Pinescript version 1. This script would need to be in version 4 to allow straight lines. There are too many calculations within this script to allow conversion to Pinescript version 4 or even Version 3. I am in the process of rewriting this script to reduce the number of calculations and streamline the algorithm.
The numbers plotted on the chart are calculated to be relative numbers. The script is limited to showing only three numbers vertically. Only the highest three values of a number are shown. For example, if the highest recent pip value is 12,345 only the first 3 numerals would be displayed ie 123. But suppose there is a recent value of 691. It would not be helpful to display 691 if the other wave size is shown as 123. To give the appropriate relative value the script will show a value of 7 instead of 691. This informs you of the relative magnitude of the values. This is done automatically within the script. There is likely no need to manually override the automatically calculated value. I will create a video that demonstrates the manual override method.
What is a Weis wave? David Weis has been recognized as a Wyckoff method analyst he has written two books one of which, Trades About to Happen, describes the evolution of the now popular Weis wave. The method employed by Weis is to identify waves of price action and to compare the strength of the waves on characteristics of wave strength. Chief among the characteristics of strength is the cumulative volume of the wave. There are other markers that Weis uses as well for example how the actual price difference between the start of the Weis wave from start to finish. Weis also uses time, particularly when using a Renko chart. Weis specifically uses candle or bar closes to define all wave action ie a line chart.
David Weis did a futures io video which is a popular source of information about his method.
This is the identical script with the identical settings but without the offending links. If you want to see the pip Weis method in practice then search Weis pip wave. If you want to see Weis chart in pdf then message me and I will give a link or the Weis pdf. Why would you want to see the Weis chart for May 27, 2020? Merely to confirm the veracity of my algorithm. You could compare my Weis chart here () from the same period to the David Weis chart from May 27. Both waves are for the ES!1 4 hour chart and both for a wave size of 5.
Price Action and 3 EMAs Momentum plus Sessions FilterThis indicator plots on the chart the parameters and signals of the Price Action and 3 EMAs Momentum plus Sessions Filter Algorithmic Strategy. The strategy trades based on time-series (absolute) and relative momentum of price close, highs, lows and 3 EMAs.
I am still learning PS and therefore I have only been able to write the indicator up to the Signal generation. I plan to expand the indicator to Entry Signals as well as the full Strategy.
The strategy works best on EURUSD in the 15 minutes TF during London and New York sessions with 1 to 1 TP and SL of 30 pips with lots resulting in 3% risk of the account per trade. I have already written the full strategy in another language and platform and back tested it for ten years and it was profitable for 7 of the 10 years with average profit of 15% p.a which can be easily increased by increasing risk per trade. I have been trading it live in that platform for over two years and it is profitable.
Contributions from experienced PS coders in completing the Indicator as well as writing the Strategy and back testing it on Trading View will be appreciated.
STRATEGY AND INDICATOR PARAMETERS
Three periods of 12, 48 and 96 in the 15 min TF which are equivalent to 3, 12 and 24 hours i.e (15 min * period / 60 min) are the foundational inputs for all the parameters of the PA & 3 EMAs Momentum + SF Algo Strategy and its Indicator.
3 EMAs momentum parameters and conditions
• FastEMA = ema of 12 periods
• MedEMA = ema of 48 periods
• SlowEMA = ema of 96 periods
• All the EMAs analyse price close for up to 96 (15 min periods) equivalent to 24 hours
• There’s Upward EMA momentum if price close > FastEMA and FastEMA > MedEMA and MedEMA > SlowEMA
• There’s Downward EMA momentum if price close < FastEMA and FastEMA < MedEMA and MedEMA < SlowEMA
PA momentum parameters and conditions
• HH = Highest High of 48 periods from 1st closed bar before current bar
• LL = Lowest Low of 48 periods from 1st closed bar from current bar
• Previous HH = Highest High of 84 periods from 12th closed bar before current bar
• Previous LL = Lowest Low of 84 periods from 12th closed bar before current bar
• All the HH & LL and prevHH & prevLL are within the 96 periods from the 1st closed bar before current bar and therefore indicative of momentum during the past 24 hours
• There’s Upward PA momentum if price close > HH and HH > prevHH and LL > prevLL
• There’s Downward PA momentum if price close < LL and LL < prevLL and HH < prevHH
Signal conditions and Status (BuySignal, SellSignal or Neutral)
• The strategy generates Buy or Sell Signals if both 3 EMAs and PA momentum conditions are met for each direction and these occur during the London and New York sessions
• BuySignal if price close > FastEMA and FastEMA > MedEMA and MedEMA > SlowEMA and price close > HH and HH > prevHH and LL > prevLL and timeinrange (LDN&NY) else Neutral
• SellSignal if price close < FastEMA and FastEMA < MedEMA and MedEMA < SlowEMA and price close < LL and LL < prevLL and HH < prevHH and timeinrange (LDN&NY) else Neutral
Entry conditions and Status (EnterBuy, EnterSell or Neutral)(NOT CODED YET)
• ENTRY IS NOT AT THE SIGNAL BAR but at the current bar tick price retracement to FastEMA after the signal
• EnterBuy if current bar tick price <= FastEMA and current bar tick price > prevHH at the time of the Buy Signal
• EnterSell if current bar tick price >= FastEMA and current bar tick price > prevLL at the time of the Sell Signal
NAND PerceptronExperimental NAND Perceptron based upon Python template that aims to predict NAND Gate Outputs. A Perceptron is one of the foundational building blocks of nearly all advanced Neural Network layers and models for Algo trading and Machine Learning.
The goal behind this script was threefold:
To prove and demonstrate that an ACTUAL working neural net can be implemented in Pine, even if incomplete.
To pave the way for other traders and coders to iterate on this script and push the boundaries of Tradingview strategies and indicators.
To see if a self-contained neural network component for parameter optimization within Pinescript was hypothetically possible.
NOTE: This is a highly experimental proof of concept - this is NOT a ready-made template to include or integrate into existing strategies and indicators, yet (emphasis YET - neural networks have a lot of potential utility and potential when utilized and implemented properly).
Hardcoded NAND Gate outputs with Bias column (X0):
// NAND Gate + X0 Bias and Y-true
// X0 // X1 // X2 // Y
// 1 // 0 // 0 // 1
// 1 // 0 // 1 // 1
// 1 // 1 // 0 // 1
// 1 // 1 // 1 // 0
Column X0 is bias feature/input
Column X1 and X2 are the NAND Gate
Column Y is the y-true values for the NAND gate
yhat is the prediction at that timestep
F0,F1,F2,F3 are the Dot products of the Weights (W0,W1,W2) and the input features (X0,X1,X2)
Learning rate and activation function threshold are enabled by default as input parameters
Uncomment sections for more training iterations/epochs:
Loop optimizations would be amazing to have for a selectable length for training iterations/epochs but I'm not sure if it's possible in Pine with how this script is structured.
Error metrics and loss have not been implemented due to difficulty with script length and iterations vs epochs - I haven't been able to configure the input parameters to successfully predict the right values for all four y-true values for the NAND gate (only been able to get 3/4; If you're able to get all four predictions to be correct, let me know, please).
// //---- REFERENCE for final output
// A3 := 1, y0 true
// B3 := 1, y1 true
// C3 := 1, y2 true
// D3 := 0, y3 true
PLEASE READ: Source article/template and main code reference:
towardsdatascience.com
towardsdatascience.com
towardsdatascience.com
Baseline-C [ID: AC-P]The "AC-P" version of jiehonglim's NNFX Baseline script is my personal customized version of the NNFX Baseline concept as part of the NNFX Algorithm stack/structure for 1D Trend Trading for Forex. Everget's JMA implementation is used for the baseline smoothing method, with optional ATR bands at 1.0x and 1.5x from the baseline.
NNFX = No Nonsense Forex
Baseline = Component of the NNFX Algorithm that consists of a single moving average
Baseline ---> Meant to be used in conjunction with ATR/C1/C2/Vol Indicator/Exit Indicator as per NNFX Algorithm setup/structure. C1 is 1st Confirmation Indicator, C2 is 2nd Confirmation Indicator.
JMA (Jurik Moving Average) is used for the baseline and slow baseline.
A slow baseline option is included, but disabled by default.
The faint orange/purple lines are 1.0x/1.5x ATR from the Baseline, and are what I use as potential TP/SL targets or to evaluate when to stay out of a trade (chop/missed entry/exit/other/ATR breach), depending on the trade setup (in conjunction with C1/C2/Vol Indicator/Exit Indicator)
This script is heavily based upon jiehonglim's NNFX Baseline script for signaling, barcoloring, and ATR.
SSL Channel option included but disabled by default (Erwinbeckers SSL component)
POC (Point of Control) from Volume Profile is included/enabled by default for both the current timeframe and 12HR timeframe
03.freeman's InfoPanel Divergence Indicator was used a reference to replace the current/previous ATR information infopanel/info draw from jiehonglim's script. I'm not sure whether I like the previous way ATR info was displayed vs how I have it currently, but it's something that is completely optional:
Specifically: I am tuning this baseline/indicator for 1D trading as part of the NNFX system, for Forex.
DO NOT USE THIS INDICATOR WITHOUT PROPER TUNING/ADJUSTMENT for your timeframe and asset class.
Note about lack of alerts:
Alerts for baseline crosses (and other crosses) have been purposefully omitted for this version upon initial publication. While getting alerts for baseline crosses under certain conditions/filtered conditions that eliminate low-importance signals and crossover whipsaw would be great, it's something I'm still looking into.
SPECIFICALLY: There are entry, exit, take profit, and continuation signal components in relation to the Baseline to the rest of the NNFX Algorithm stack (ATR/C1/C2/Vol Indicator/Exit Indicator), including but limited to the "1 candle rule" and the "7 candle rule" as per NNFX.
Implementing alerts that are significant that also factor in these rules while reducing alert spam/false signals would be ideal, but it's also the HTF/Daily chart - visually, entry/exit/continuation signal alignment is easy to spot when trading 1D - alerts may be redundant/a pursuit in diminishing returns (for now).
//-------------------------------------------------------------------
// Acknowledgements/Reference:
// jiehonglim, NNFX Baseline Script - Moving Averages
//
// Fractured, Many Moving Averages
//
// everget, Jurik Moving Average/JMA
//
// 03.freeman, InfoPanel Divergence Indicator
//
// Ggqmna Volume stops
//
// Libertus RSI Divs
//
// ChrisMoody, CM_Price-Action-Bars-Price Patterns That Work
//
// Erwinbeckers SSL Channel
//
ICT Quant-Core: Liquidity Intelligence [Dual-Engine]🔥 THE ULTIMATE LIQUIDITY FILTERING ENGINE
Most SMC traders lose money because they "catch falling knives" on every local wick. This algorithm solves this problem by using DUAL-CORE logic and a signal quality scoring system.
This is no ordinary pivot indicator.
⚙️ HOW DOES IT WORK? (DUAL-CORE LOGIC)
The algorithm analyzes the market on two levels simultaneously:
1️⃣ MACRO CORE (Lookback 50 - "WHALE 🐋")
Tracks key levels from recent weeks/months.
This is where institutions build their positions.
Signals from this core have the highest priority (Score 10/10).
2️⃣ LOCAL CORE (Lookback 20 - "ROACH 🐟")
Tracks internal market structure and noise.
Signals are filtered by the Main Trend. If the trend is down, Local Longs are marked as "TRAP."
🧠 SMART FILTERS (QUANT LAYERS)
Instead of entering on every line touch, the script requires confirmation:
✅ RECLAIM LOGIC: Price must close back above/below the liquidity level (Swing Failure Pattern).
✅ RVOL FILTER: Requires relative volume > 1.2x the average (institutional track).
✅ SCORING SYSTEM (0-10): Each signal receives a score.
- 10/10: Macro Grab in line with the trend + high volume.
- 3/10: Local Grab against the trend (risky).
📊 ANALYTICAL DASHBOARD
In the lower right corner, you'll find the "Command Center":
- Trend Status (Distribution/Accumulation)
- Whale's Last Move (Price and Direction)
- Current Tactics (e.g., "Ignore Longs, Search for Shorts")
- Filter Status (RSI, Volume, Reclaim)
🚀 HOW TO USE IT?
1. Set the H4 timeframe.
2. Wait for a signal with a rating > 7/10.
3. Ignore "Fish/Local" signals (small icons) if they contradict the Dashboard color.
4. Entry occurs only after the candle closes (Reclaim).
Top 20 Adaptive Momentum [Trend Aligned]his script is an automated End-of-Day Momentum Dashboard designed to predict the next trading day's directional bias for the top 20 most volatile stocks. It analyzes institutional price action during the final 10 minutes of the trading session and filters signals based on the long-term trend.
How It Works
Trend Identification: The script calculates a 50-Day Moving Average proxy (using 5-minute data) to determine if a stock is in a Long-Term Uptrend or Downtrend.
Adaptive Signal Logic: Instead of a simple reversal strategy, the script adapts its prediction based on the trend context:
Trend Following: If a stock closes strong (Green) in an Uptrend, it signals Bullish Momentum (continuation).
Mean Reversion: If a stock closes strong (Green) in a Downtrend, it signals Bearish Reversion (fade the bounce).
Dip Buying: If a stock closes weak (Red) in an Uptrend, it signals Bullish Reversion (buy the dip).
Live Backtesting: The dashboard features a "Win Rate (3M)" column. This metric backtests the strategy over the past 3 months for each specific ticker, calculating the percentage of time the predicted bias resulted in a winning trade the following day.
Dashboard Columns
Ticker: The stock symbol.
Prev Day: The overall close vs. open of the previous session.
Trend (50d): The long-term trend direction (UP or DOWN).
BIAS TODAY: The actionable signal for the current session (📈 BULLISH or 📉 BEARISH).
Win Rate: The historical probability of success for this strategy on this specific stock.
Usage: Use this tool pre-market to identify high-probability setups where the previous day's closing momentum aligns with the long-term trend.
To effectively use the Top 20 Adaptive Momentum script, you need to treat it as a Pre-Market Screener. It performs the heavy lifting of analyzing trend, momentum, and historical probability instantly, giving you a "Cheat Sheet" for the trading day.
Here is a step-by-step guide on how to integrate it into your routine:
1. The Setup
Timeframe: Set your chart to 5 Minutes. The logic specifically hunts for the 15:50 (3:50 PM) and 15:55 (3:55 PM) candles, so the calculation works best on this timeframe.
Timing: Check this dashboard before the market opens (e.g., 9:00 AM EST) or shortly after the close (4:05 PM EST) to plan for the next session.
2. Reading the Dashboard Columns
Column What to Look For Actionable Insight
Trend (50d) UP (Green) or DOWN (Red) This tells you the "Big Picture." Only trade in this direction. If Trend is UP, you only want to see Bullish signals. If Trend is DOWN, you only want Bearish signals.
BIAS TODAY 📈 BULLISH Plan: Look for Long/Buy setups at the open. The algorithm predicts price will close higher today.
📉 BEARISH Plan: Look for Short/Sell setups at the open. The algorithm predicts price will close lower.
Win Rate (3M) Percentage (e.g., 65%) Confidence Filter. Only take trades on stocks with a Win Rate above 55-60%. This proves the stock historically respects this specific strategy.
3. The Strategy Scenarios (How to Trade)
Scenario A: The "Trend Continuation" (High Probability)
Dashboard: Trend is UP + Bias is BULLISH.
Context: The stock is strong long-term, and it closed strong yesterday (Momentum).
Execution: Watch for an opening gap up or an early breakout above the pre-market high. Go Long.
Scenario B: The "Dip Buy" (High Probability)
Dashboard: Trend is UP + Bias is BULLISH.
Context: The stock is strong long-term, but it pulled back yesterday (Weak Close). The script identifies this as a discount, not a reversal.
Execution: Watch for the stock to find support early. Use the "Master Sniper" (from your other script) to find a Discount Entry FVG.
Scenario C: The "Trap" (Avoid)
Dashboard: Win Rate is < 50%.
Context: The stock is choppy or news-driven. It does not follow technical momentum rules reliably.
Execution: Skip this stock. Move to the next one on the list.
4. Execution Workflow
Scan: Glance at the dashboard. Identify the 2-3 stocks with Green Bias + Green Trend (for Buys) or Red Bias + Red Trend (for Shorts).
Filter: Ensure their "Win Rate" is decent (over 55%).
Trade: Open the charts for those specific stocks. Use your execution indicators (like the Master Sniper) to time the entry on the 1-minute or 5-minute chart.
By using this dashboard, you stop guessing which stock to trade and focus entirely on executing the best setups.
DarkPool FlowDarkPool Flow is a professional-grade technical analysis tool designed to align retail traders with the dominant "smart money" flow. Unlike standard moving average crossovers that often generate false signals during consolidation, this script employs a multi-layered filtering engine to isolate high-probability trends.
The core philosophy of this indicator is that Trends are fractal. A sustainable move on a lower timeframe must be supported by momentum on a higher timeframe. By comparing a "Fast Signal Trend" against a "Slow Anchor Trend" (e.g., Daily vs. Weekly), the script identifies the market bias used by institutional algorithms.
This edition features a Smart Recovery Engine, ensuring that valid trends are not missed simply because momentum started slowly, and a Dynamic Cloud that visually represents the strength of the trend spread.
Key Features
1. Auto-Adaptive Timeframe Logic
The script eliminates the guesswork of Multi-Timeframe (MTF) selection. By enabling "Auto-Adapt," the indicator detects your current chart timeframe and automatically maps it to the mathematically correct institutional pairings:
Scalping (<15m): Uses 15-Minute Trend vs. 1-Hour Anchor.
Day Trading (15m - 1H): Uses 4-Hour Trend vs. Daily Anchor.
Swing Trading (4H - Daily): Uses Daily Trend vs. Weekly Anchor (The classic "Golden" setup).
Investing (Weekly): Uses 21-Week EMA vs. 50-Week SMA (Bull Market Support Band logic).
2. Smart Recovery Signal Engine
Standard crossover scripts often miss major moves if the specific breakout candle has low volume or weak ADX. This script utilizes a state-machine logic that "remembers" the trend direction. If a trend begins during low volatility (gray candles), the script waits. The moment volatility and momentum confirm the move, a Smart Recovery Signal is triggered, allowing you to enter an existing trend safely.
3. Chop Protection (Gray Candles)
Preservation of capital is the priority. The script analyzes the Average Directional Index (ADX) and Volatility (ATR).
Colored Candles (Green/Red): The market is trending with sufficient strength. Trading is permitted.
Gray Candles: The market is in a low-energy chop or consolidation (ADX < 20). Trading is discouraged.
4. Dynamic Trend Cloud
The space between the Fast and Slow trends is filled with a dynamic cloud.
Darker/Opaque Cloud: Indicates a widening spread, suggesting accelerating momentum.
Lighter/Transparent Cloud: Indicates a narrowing spread, suggesting the trend may be weakening or consolidating.
5. Pullback & Retest Signals (+)
While triangles mark the start of a trend, the Plus (+) signs mark low-risk opportunities to add to a position. These appear when price dips into the cloud, finds support at the "Fair Value" zone, and closes back in the direction of the trend with confirmed momentum.
User Guide & Strategy
Setup
Add the indicator to your chart.
For Beginners: Enable "Auto-Adaptive Timeframes" in the settings.
For Advanced Users: Disable Auto-Adapt and manually configure your Fast/Slow pairings (Default is Daily 50 EMA / Weekly 50 EMA).
Signal Mode: Choose "First Breakout Only" for a cleaner chart, or "All Signals" if you wish to see re-entry points during choppy starts.
Long Entry Criteria (Buy)
Trend: The Cloud must be Green (Fast Trend > Slow Trend).
Signal: A Green Triangle appears below the bar.
Confirmation: The signal candle must not be Gray.
Re-Entry: A small Green (+) sign appears, indicating a successful test of the cloud support.
Short Entry Criteria (Sell)
Trend: The Cloud must be Red (Fast Trend < Slow Trend).
Signal: A Red Triangle appears above the bar.
Confirmation: The signal candle must not be Gray.
Re-Entry: A small Red (+) sign appears, indicating a successful test of the cloud resistance.
Stop Loss & Risk Management
Stop Loss: A standard institutional stop loss is placed just beyond the Slow Trend Line (the outer edge of the cloud). If price closes beyond the Slow Trend, the macro thesis is invalid.
Take Profit: Target liquidity pools or use a trailing stop based on the Fast Trend line.
Settings Overview
Mode Selection: Toggle between Auto-Adaptive logic or Manual control.
Manual Configuration: Define the specific Timeframe, Length, and Type (EMA, SMA, WMA) for both Fast and Slow trends.
Signal Logic: Toggle "Show Pullback Signals" on/off. Switch between "First Breakout" or "All Signals."
Quality Filters: Toggle individual filters (ATR, RSI, ADX) to adjust sensitivity. Turning these off makes the script more responsive but increases false signals.
Visual Style: Customize colors for Bullish, Bearish, and Neutral (Gray) states. Adjust cloud transparency.
Disclaimer
Risk Warning: Trading financial markets involves a high degree of risk and is not suitable for all investors. You could lose some or all of your initial investment.
Educational Use Only: This script and the information provided herein are for educational and informational purposes only. They do not constitute financial advice, investment advice, trading advice, or any other recommendation.
No Guarantee: Past performance of any trading system or methodology is not necessarily indicative of future results. The "Institutional Trend" indicator is a tool to assist in technical analysis, not a crystal ball. The creators of this script assume no responsibility or liability for any trading losses or damages incurred as a result of using this tool. Always perform your own due diligence and consult with a qualified financial advisor before making investment decisions.
Kalman Ema Crosses - [JTCAPITAL]Kalman EMA Crosses - is a modified way to use Kalman Filters applied on Exponential Moving Averages (EMA Crosses) for Trend-Following.
Credits for the kalman function itself goes to @BackQuant
The Kalman filter is a recursive smoothing algorithm that reduces noise from raw price or indicator data, and in this script it is applied both directly to price and on top of EMA calculations. The goal is to create cleaner, more reliable crossover signals between two EMAs that are less prone to false triggers caused by volatility or market noise.
The indicator works by calculating in the following steps:
Source Selection
The script starts by selecting the price input (default is Close, but can be adjusted). This chosen source is the foundation for all further smoothing and EMA calculations.
Kalman Filtering on Price
Depending on user settings, the selected source is passed through one of two independent Kalman filters. The filter takes into account process noise (representing expected market randomness) and measurement noise (representing uncertainty in the price data). The Kalman filter outputs a smoothed version of price that minimizes noise and preserves underlying trend structure.
EMA Calculation
Two exponential moving averages (EMA 1 and EMA 2) are then computed on the Kalman-smoothed price. The lengths of these EMAs are fully customizable (default 15 and 25).
Kalman Filtering on EMA Values
Instead of directly using raw EMA curves, the script applies a second layer of Kalman filtering to the EMA values themselves. This step significantly reduces whipsaw behavior, creating smoother crossovers that emphasize real momentum shifts rather than temporary volatility spikes.
Trend Detection via EMA Crossovers
-A bullish trend is detected when EMA 1 (fast) crosses above EMA 2 (slow).
-A bearish trend is detected when EMA 1 crosses below EMA 2.
The detected trend state is stored and used to dynamically color the plots.
Visual Representation
Both EMAs are plotted on the chart. Their colors shift to blue during bullish phases and purple during bearish phases. The area between the two EMAs is filled with a shaded region to clearly highlight trending conditions.
Buy and Sell Conditions:
-Buy Condition: When the Kalman-smoothed EMA 1 crosses above the Kalman-smoothed EMA 2, a bullish crossover is confirmed.
-Sell Condition: When EMA 1 crosses below EMA 2, a bearish crossover is confirmed.
Users may enhance the robustness of these signals by adjusting process noise, measurement noise, or EMA lengths. Lower measurement noise values make the filter react faster (but potentially noisier), while higher values make it smoother (but slower).
Features and Parameters:
-Source: Selectable price input (Close, Open, High, Low, etc.).
-EMA 1 Length: Defines the fast EMA period.
-EMA 2 Length: Defines the slow EMA period.
-Process Noise: Controls how much randomness the Kalman filter assumes in price dynamics.
-Measurement Noise: Controls how much uncertainty is assumed in raw input data.
-Kalman Usage: Option to apply Kalman filtering either before EMA calculation (on price) or after (on EMA values).
Specifications:
Kalman Filter
The Kalman filter is an optimal recursive algorithm that estimates the state of a system from noisy measurements. In trading, it is used to smooth prices or indicator values. By balancing process noise (expected volatility) with measurement noise (data uncertainty), it generates a smoothed signal that reacts adaptively to market conditions.
Exponential Moving Average (EMA)
An EMA is a weighted moving average that emphasizes recent data more heavily than older data. This makes it more responsive than a simple moving average (SMA). EMAs are widely used to identify trends and momentum shifts.
EMA Crossovers
The crossing of a fast EMA above a slow EMA suggests bullish momentum, while the opposite suggests bearish momentum. This is a cornerstone technique in trend-following systems.
Dual Kalman Filtering
Applying Kalman both to raw price and to the EMAs themselves reduces whipsaws further. It creates crossover signals that are not only smoothed but also validated across two levels of noise reduction. This significantly enhances signal reliability compared to traditional EMA crossovers.
Process Noise
Represents the filter’s assumption about how much the underlying market can randomly change between steps. Higher values make the filter adapt faster to sudden changes, while lower values make it more stable.
Measurement Noise
Represents uncertainty in price data. A higher measurement noise value means the filter trusts the model more than the observed data, leading to smoother results. A lower value makes the filter more reactive to observed price fluctuations.
Trend Coloring & Fill
The use of dynamic colors and filled regions provides immediate visual recognition of trend states, helping traders act faster and with greater clarity.
Enjoy!
IDWM Master StructureExecutive Summary
The IDWM Master Structure is a Multi-Timeframe (MTF) trading tool designed to force discipline by aligning traders with the "Parent" trend. It functions by locking onto the "Completed Auction" of a higher timeframe candle (like a Daily or Weekly bar) and projecting that structure onto your lower timeframe chart. Its primary goal is to define the "Dealing Range"—the hard boundaries where value was previously established—so you don't get lost in the noise of smaller price movements.
1. The Principle of Completed Auctions (Hierarchy)
Most technical indicators curve dynamically with every price tick. This script acts differently because it relies on "Settled Arguments." A closed Daily candle represents a finished battle between buyers and sellers; the High and Low are the historical results of that battle.
To enforce this, the script automatically selects a "Parent" timeframe based on your view:
Scalping (charts below 15 minutes) uses the 4-Hour Auction.
Intraday trading (15 minutes to 4 Hours) uses the Daily Auction.
Swing trading (Daily chart) uses the Weekly Auction.
2. Liquidity Pools & The Sticky Range
The High and Low lines drawn by the indicator are not just support and resistance; they represent Liquidity Pools. In market theory, stop-losses (Sell Stops below Lows, Buy Stops above Highs) accumulate at these edges.
Smart money often pushes price just past these lines to grab this liquidity (a "Stop Hunt") before reversing direction. To account for this, the script uses a "Sticky Range" mechanism. It refuses to redraw the box simply because price touched the line. Instead, it uses an Average True Range (ATR) Buffer. A new structure is only formed if the candle closes decisively outside the range plus this volatility buffer. This ensures you are trading real breakouts, not liquidity sweeps.
3. Internal Range Mechanics (Premium vs. Discount)
Inside the Master Box, the script applies Equilibrium Theory to help with trade location.
The most important internal line is the Equilibrium (EQ), which marks the exact 50% point of the range.
Premium Zone (Above EQ): Price is mathematically "expensive" relative to the recent range. Algorithms generally look to establish Short positions here.
Discount Zone (Below EQ): Price is considered "cheap." Algorithms generally look to establish Long positions here.
It also plots the Master Open, which acts as a "Line in the Sand." If price is currently trading above the Master Open, the higher timeframe candle is Green (Bullish), suggesting longs have a higher probability. If below, the candle is Red (Bearish).
4. Wick Theory (Failed Auctions)
The script places special emphasis on the wicks of the Master Candle because a wick represents a "Failed Auction"—a price level the market tried to explore but ultimately rejected.
The indicator highlights the background of the wick area (from the High to the Body). On a retest, these zones often act as supply or demand blocks because the market remembers the previous failure.
It also calculates the "Consequent Encroachment," which is the 50% midpoint of the wick. The rule of thumb here is that if a candle body can close past 50% of a wick, the rejection is nullified, and price will likely travel to fill the entire wick.
5. Energy Expansion (Breakout Targets)
Market energy transfers from Consolidation (inside the box) to Expansion (the breakout). When the price finally breaks the "Sticky Range" (confirming via the ATR buffer), the script projects where that energy will go.
It uses the height of the previous range to calculate Fibonacci extensions. Specifically, it targets the 1.618 Extension, often called the "Golden Ratio." This is a statistically significant level where expansion moves tend to exhaust themselves and reverse.
6. Safety Protocol: Live Detection
A dashboard monitors the state of the parent candle. If the text turns Magenta with a warning symbol, it means the Higher Timeframe candle is "Live" (still forming).
Trading off a live structure is considered higher risk because the "Auction" isn't finished—the High or Low can still shift. The safest approach is to trade when the dashboard indicates a standard, locked, historical structure.
Simulateur Carnet d'Ordres & Liquidité [Sese] - Custom🔹 Indicator Name
Order Book & Liquidity Simulator - Custom
🔹 Concept and Functionality
This indicator is a technical analysis tool designed to visually simulate market depth (Order Book) and potential liquidity zones.
It is important to adhere to TradingView's transparency rules: This script does not access real Level 2 data (the actual exchange order book). Instead, it uses a deductive algorithm based on historical Price Action to estimate where Buy Limit (Bid) and Sell Limit (Ask) orders might be resting.
Methodology used by the script:
Pivot Detection: The indicator scans for significant Swing Highs and Swing Lows over a user-defined lookback period (Length).
Level Projection: These pivots are projected to the right as horizontal lines.
Red Lines (Ask): Represent potential resistance zones (sellers).
Blue Lines (Bid): Represent potential support zones (buyers).
Liquidity Management (Absorption): The script is dynamic. If the current price crosses a line, the indicator assumes the liquidity at that level has been consumed (orders filled). The line is then automatically deleted from the chart.
Density Profile (Right Side): Horizontal bars appear to the right of the current price. These approximate a "Time Price Opportunity" or Volume Profile, showing where the market has spent the most time recently.
🔹 User Manual (Settings)
Here is how to configure the inputs to match your trading style:
1. Detection Algorithm
Lookback Length (Candles): Determines the sensitivity of the pivots.
Low value (e.g., 10): Shows many lines (scalping/short term).
High value (e.g., 50): Shows only major structural levels (swing trading).
Volume Factor: (Technical note: In this specific code version, this variable is calculated but the lines are primarily drawn based on geometric pivots).
2. Visual Settings
Show Price Lines (Bid/Ask): Toggles the horizontal Support/Resistance lines on or off.
Show Volume Profile: Toggles the heatmap-style bars on the right side of the chart.
Extend Lines: If checked, untouched lines will extend to the right towards the current price bar.
3. Colors and Transparency Management
Customize the aesthetics to keep your chart clean:
Bid / Ask Colors: Choose your base colors (Default is Blue and Red).
Line Transparency (%): Crucial for chart visibility.
0% = Solid, bright colors.
80-90% = Very subtle, faint lines (recommended if you overlay this on other tools).
Text Size: Adjusts the size of the price labels ("BUY LIMIT" / "SELL LIMIT").
🔹 How to Read the Indicator
Rejections: Unbroken lines act as potential walls. Watch for price reaction when approaching a blue line (support) or red line (resistance).
Breakouts/Absorption: When a line disappears, it means the level has been breached. The market may then seek the next liquidity level (the next line).
Density (Right-side boxes): More opaque/visible boxes indicate a price zone "accepted" by the market (consolidation). Empty gaps suggest an imbalance where price might move through quickly.
⚠️ Disclaimer
This script is for educational and technical analysis purposes only. It is a simulation based on price history, not real-time order book data. Past performance is not indicative of future results. Trading involves risk.
Fast Autocorrelation Estimator█ Overview:
The Fast ACF and PACF Estimation indicator efficiently calculates the autocorrelation function (ACF) and partial autocorrelation function (PACF) using an online implementation. It helps traders identify patterns and relationships in financial time series data, enabling them to optimize their trading strategies and make better-informed decisions in the markets.
█ Concepts:
Autocorrelation, also known as serial correlation, is the correlation of a signal with a delayed copy of itself as a function of delay.
This indicator displays autocorrelation based on lag number. The autocorrelation is not displayed based over time on the x-axis. It's based on the lag number which ranges from 1 to 30. The calculations can be done with "Log Returns", "Absolute Log Returns" or "Original Source" (the price of the asset displayed on the chart).
When calculating autocorrelation, the resulting value will range from +1 to -1, in line with the traditional correlation statistic. An autocorrelation of +1 represents a perfect correlation (an increase seen in one time series leads to a proportionate increase in the other time series). An autocorrelation of -1, on the other hand, represents a perfect inverse correlation (an increase seen in one time series results in a proportionate decrease in the other time series). Lag number indicates which historical data point is autocorrelated. For example, if lag 3 shows significant autocorrelation, it means current data is influenced by the data three bars ago.
The Fast Online Estimation of ACF and PACF Indicator is a powerful tool for analyzing the linear relationship between a time series and its lagged values in TradingView. The indicator implements an online estimation of the Autocorrelation Function (ACF) and the Partial Autocorrelation Function (PACF) up to 30 lags, providing a real-time assessment of the underlying dependencies in your time series data. The Autocorrelation Function (ACF) measures the linear relationship between a time series and its lagged values, capturing both direct and indirect dependencies. The Partial Autocorrelation Function (PACF) isolates the direct dependency between the time series and a specific lag while removing the effect of any indirect dependencies.
This distinction is crucial in understanding the underlying relationships in time series data and making more informed decisions based on those relationships. For example, let's consider a time series with three variables: A, B, and C. Suppose that A has a direct relationship with B, B has a direct relationship with C, but A and C do not have a direct relationship. The ACF between A and C will capture the indirect relationship between them through B, while the PACF will show no significant relationship between A and C, as it accounts for the indirect dependency through B. Meaning that when ACF is significant at for lag 5, the dependency detected could be caused by an observation that came in between, and PACF accounts for that. This indicator leverages the Fast Moments algorithm to efficiently calculate autocorrelations, making it ideal for analyzing large datasets or real-time data streams. By using the Fast Moments algorithm, the indicator can quickly update ACF and PACF values as new data points arrive, reducing the computational load and ensuring timely analysis. The PACF is derived from the ACF using the Durbin-Levinson algorithm, which helps in isolating the direct dependency between a time series and its lagged values, excluding the influence of other intermediate lags.
█ How to Use the Indicator:
Interpreting autocorrelation values can provide valuable insights into the market behavior and potential trading strategies.
When applying autocorrelation to log returns, and a specific lag shows a high positive autocorrelation, it suggests that the time series tends to move in the same direction over that lag period. In this case, a trader might consider using a momentum-based strategy to capitalize on the continuation of the current trend. On the other hand, if a specific lag shows a high negative autocorrelation, it indicates that the time series tends to reverse its direction over that lag period. In this situation, a trader might consider using a mean-reversion strategy to take advantage of the expected reversal in the market.
ACF of log returns:
Absolute returns are often used to as a measure of volatility. There is usually significant positive autocorrelation in absolute returns. We will often see an exponential decay of autocorrelation in volatility. This means that current volatility is dependent on historical volatility and the effect slowly dies off as the lag increases. This effect shows the property of "volatility clustering". Which means large changes tend to be followed by large changes, of either sign, and small changes tend to be followed by small changes.
ACF of absolute log returns:
Autocorrelation in price is always significantly positive and has an exponential decay. This predictably positive and relatively large value makes the autocorrelation of price (not returns) generally less useful.
ACF of price:
█ Significance:
The significance of a correlation metric tells us whether we should pay attention to it. In this script, we use 95% confidence interval bands that adjust to the size of the sample. If the observed correlation at a specific lag falls within the confidence interval, we consider it not significant and the data to be random or IID (identically and independently distributed). This means that we can't confidently say that the correlation reflects a real relationship, rather than just random chance. However, if the correlation is outside of the confidence interval, we can state with 95% confidence that there is an association between the lagged values. In other words, the correlation is likely to reflect a meaningful relationship between the variables, rather than a coincidence. A significant difference in either ACF or PACF can provide insights into the underlying structure of the time series data and suggest potential strategies for traders. By understanding these complex patterns, traders can better tailor their strategies to capitalize on the observed dependencies in the data, which can lead to improved decision-making in the financial markets.
Significant ACF but not significant PACF: This might indicate the presence of a moving average (MA) component in the time series. A moving average component is a pattern where the current value of the time series is influenced by a weighted average of past values. In this case, the ACF would show significant correlations over several lags, while the PACF would show significance only at the first few lags and then quickly decay.
Significant PACF but not significant ACF: This might indicate the presence of an autoregressive (AR) component in the time series. An autoregressive component is a pattern where the current value of the time series is influenced by a linear combination of past values at specific lags.
Often we find both significant ACF and PACF, in that scenario simply and AR or MA model might not be sufficient and a more complex model such as ARMA or ARIMA can be used.
█ Features:
Source selection: User can choose either 'Log Returns' , 'Absolute Returns' or 'Original Source' for the input data.
Autocorrelation Selection: User can choose either 'ACF' or 'PACF' for the plot selection.
Plot Selection: User can choose either 'Autocorrelarrogram' or 'Historical Autocorrelation' for plotting the historical autocorrelation at a specified lag.
Max Lag: User can select the maximum number of lags to plot.
Precision: User can set the number of decimal points to display in the plot.
Linear Moments█ OVERVIEW
The Linear Moments indicator, also known as L-moments, is a statistical tool used to estimate the properties of a probability distribution. It is an alternative to conventional moments and is more robust to outliers and extreme values.
█ CONCEPTS
█ Four moments of a distribution
We have mentioned the concept of the Moments of a distribution in one of our previous posts. The method of Linear Moments allows us to calculate more robust measures that describe the shape features of a distribution and are anallougous to those of conventional moments. L-moments therefore provide estimates of the location, scale, skewness, and kurtosis of a probability distribution.
The first L-moment, λ₁, is equivalent to the sample mean and represents the location of the distribution. The second L-moment, λ₂, is a measure of the dispersion of the distribution, similar to the sample standard deviation. The third and fourth L-moments, λ₃ and λ₄, respectively, are the measures of skewness and kurtosis of the distribution. Higher order L-moments can also be calculated to provide more detailed information about the shape of the distribution.
One advantage of using L-moments over conventional moments is that they are less affected by outliers and extreme values. This is because L-moments are based on order statistics, which are more resistant to the influence of outliers. By contrast, conventional moments are based on the deviations of each data point from the sample mean, and outliers can have a disproportionate effect on these deviations, leading to skewed or biased estimates of the distribution parameters.
█ Order Statistics
L-moments are statistical measures that are based on linear combinations of order statistics, which are the sorted values in a dataset. This approach makes L-moments more resistant to the influence of outliers and extreme values. However, the computation of L-moments requires sorting the order statistics, which can lead to a higher computational complexity.
To address this issue, we have implemented an Online Sorting Algorithm that efficiently obtains the sorted dataset of order statistics, reducing the time complexity of the indicator. The Online Sorting Algorithm is an efficient method for sorting large datasets that can be updated incrementally, making it well-suited for use in trading applications where data is often streamed in real-time. By using this algorithm to compute L-moments, we can obtain robust estimates of distribution parameters while minimizing the computational resources required.
█ Bias and efficiency of an estimator
One of the key advantages of L-moments over conventional moments is that they approach their asymptotic normal closer than conventional moments. This means that as the sample size increases, the L-moments provide more accurate estimates of the distribution parameters.
Asymptotic normality is a statistical property that describes the behavior of an estimator as the sample size increases. As the sample size gets larger, the distribution of the estimator approaches a normal distribution, which is a bell-shaped curve. The mean and variance of the estimator are also related to the true mean and variance of the population, and these relationships become more accurate as the sample size increases.
The concept of asymptotic normality is important because it allows us to make inferences about the population based on the properties of the sample. If an estimator is asymptotically normal, we can use the properties of the normal distribution to calculate the probability of observing a particular value of the estimator, given the sample size and other relevant parameters.
In the case of L-moments, the fact that they approach their asymptotic normal more closely than conventional moments means that they provide more accurate estimates of the distribution parameters as the sample size increases. This is especially useful in situations where the sample size is small, such as when working with financial data. By using L-moments to estimate the properties of a distribution, traders can make more informed decisions about their investments and manage their risk more effectively.
Below we can see the empirical dsitributions of the Variance and L-scale estimators. We ran 10000 simulations with a sample size of 100. Here we can clearly see how the L-moment estimator approaches the normal distribution more closely and how such an estimator can be more representative of the underlying population.
█ WAYS TO USE THIS INDICATOR
The Linear Moments indicator can be used to estimate the L-moments of a dataset and provide insights into the underlying probability distribution. By analyzing the L-moments, traders can make inferences about the shape of the distribution, such as whether it is symmetric or skewed, and the degree of its spread and peakedness. This information can be useful in predicting future market movements and developing trading strategies.
One can also compare the L-moments of the dataset at hand with the L-moments of certain commonly used probability distributions. Finance is especially known for the use of certain fat tailed distributions such as Laplace or Student-t. We have built in the theoretical values of L-kurtosis for certain common distributions. In this way a person can compare our observed L-kurtosis with the one of the selected theoretical distribution.
█ FEATURES
Source Settings
Source - Select the source you wish the indicator to calculate on
Source Selection - Selec whether you wish to calculate on the source value or its log return
Moments Settings
Moments Selection - Select the L-moment you wish to be displayed
Lookback - Determine the sample size you wish the L-moments to be calculated with
Theoretical Distribution - This setting is only for investingating the kurtosis of our dataset. One can compare our observed kurtosis with the kurtosis of a selected theoretical distribution.
Support & Resistance Pro by 🅰🅻🅿Support & Resistance Pro by 🅰🅻🅿
A Multi-Layer Market Structure Engine for Professional Price Analysis
Support & Resistance Pro is a next-generation price structure algorithm designed to identify the most meaningful support and resistance levels across any market or timeframe.
Instead of relying on simple fractals, random pivots, or fixed-distance lines, this script analyzes the way price interacts with historical levels — including wick reactions, close rejections, structural pivots, retests, and liquidity sweeps.
The result is a clean, intelligent, and highly accurate market structure map that adapts to every style of trading.
🚀 Key Features
1. Multi-Layer S/R Engine (Up to 20 Dynamic Levels)
The algorithm computes and ranks up to 20 unique levels , from strongest to weakest.
Each level is scored using:
Structural pivot strength
Number of historical touches
Closeness of each interaction
Market memory & reaction weight
Breakout and retest behavior
This produces an objective hierarchy of price levels — ideal for scalping, day trading, or swing analysis.
2. Smart Strength Filter
To remove noise, the Smart Strength Filter evaluates how often price has interacted with each level and hides the ones that lack significance.
You can customize:
Lookback range
Minimum touch count
Touch tolerance sensitivity
This ensures your chart displays only the most relevant and reliable structural zones for the current environment.
3. Heat Map Intensity Coloring
Levels automatically change opacity based on their strength:
More touches → stronger color
Fewer touches → lighter color
This creates a natural visual heat map that highlights where market memory is strongest — perfect for identifying high-probability breakout or reversal zones.
4. Multi-Timeframe Compatibility
Project higher timeframe S/R onto lower timeframe charts to enhance confluence:
Day traders: render 4H levels on 5m–15m
Swing traders: render 1D levels on 1H
Scalpers: render 1H levels on 1m–3m
This gives you powerful structural awareness without switching charts.
5. Clean Visual Design
Every element has been designed to stay out of your way:
Choose your preferred level count (8–20)
Adjustable line thickness
Label sizing and offset controls
Optional price tags
Light or dark color-friendly styling
The visual layout is clean, modern, and tailored for long chart sessions.
6. Profile Presets for Every Trader
Four built-in trading profiles are included:
Scalp Mode
Reactive levels
Tight tolerance
Best for 1m–5m
Day Trade Mode
Balanced structure
Ideal for 5m–1H
Swing Mode
Broad pivots
Higher significance
Perfect for 4H–1D
Custom Mode
Full control over every parameter.
🎯 How Traders Use This
Identify major reversal zones
Find liquidity pockets before they form
Improve breakout accuracy
Locate fair-value areas for entries
Combine HTF structure with LTF setups
Simplify noise-heavy charts
Whether you’re looking for scalping precision or long-term structure, the indicator adapts instantly.
⚠️ Disclaimer
This script is intended for market analysis and educational purposes only.
It does not constitute financial advice.
Always backtest and verify settings before trading live markets.
🅐🅛🅟 – Author
Created with care, precision, and countless hours of testing by alpprofitmax.
Licensed under the Mozilla Public License 2.0.
ATR Based TMA Bands [NeuraAlgo]ATR-Based TMA Bands
ATR-Based TMA Bands is a volatility-adaptive channel system built around a smoothed Triangular Moving Average (TMA).
It identifies trend direction, momentum shifts, and reversal opportunities using a combination of TMA structure and ATR-driven channel expansion.
Perfect for traders who want a clean, intelligent, and adaptive market framework.
Made by NeuraAlgo.
🔷 How It Works
1. 🔹 TMA Midline (Core Trend)
The indicator builds a smooth and stable midline using:
📐 Triangular Moving Average
🔄 Additional EMA smoothing
This creates a low-noise trend curve that reacts cleanly to real momentum changes.
2. 📈 Volatility-Adjusted Bands
The channels are built from:
📊 Standard Deviation × Expansion Multiplier
📏 Three ATR-based outer layers
These bands:
Expand in high volatility
Contract in stable markets
Reveal pullbacks, breakout zones, and exhaustion points
3. 🔁 Trend Tilt Algorithm
Slope is measured using an ATR-normalized tilt formula:
atrBase = ta.atr(smoothLen)
tilt = (midline - midline ) / (0.1 * atrBase)
This classifies the trend into:
Bullish
Bearish
Neutral
The bar colors and midline adjust automatically to match market direction.
4. 🔄 Reversal Detection (Turn Signals)
The indicator flags directional flips:
Turn Up → bearish → bullish shift
Turn Down → bullish → bearish shift
These are early reversal alerts ideal for swing traders.
5. 🎯 Flip Buy / Flip Sell Signals
Deep volatility extensions create high-probability re-entry zones:
Flip Buy → price rebounds from oversold ATR zone
Flip Sell → price rejects from overbought ATR zone
Great for:
Mean-reversion entries
Trend re-tests
Pullback trades
Exhaustion signals
📌 How to Use This Indicator
✔ Trend Trading
Follow trend using tilt-colored candles
Use midline as dynamic trend filter
Use channels for breakout/pullback entries
✔ Reversal Trading
Watch for Turn Up / Turn Down labels
Flip signals show where the market is over-stretched
✔ Risk Management
ATR channels automatically adjust to volatility
Helps with smarter SL/TP placement
⭐ Best For
Trend traders
Swing traders
Reversal hunters
Volatility lovers
Anyone wanting a smart, clean technical framework
💡 Core Features
TMA-smoothed trend detection
Multi-layer ATR expansion channels
Intelligent trend tilt algorithm
Turn Up / Turn Down reversal markers
Flip Buy / Flip Sell exhaustion signals
Adaptive bar coloring
Clean and professional visual design
Hybrid Flow Master📊 Hybrid Flow Master - Professional Trading Indicator
Overview
Hybrid Flow Master is an advanced all-in-one trading indicator that combines Smart Money Concepts, institutional order flow analysis, and multi-timeframe confluence scoring to identify high-probability trade setups. Designed for both scalpers and swing traders across all markets (Forex, Crypto, Stocks, Indices).
🎯 Key Features
1. Intelligent Confluence System (0-100% Scoring) Proprietary scoring algorithm that weighs multiple factors Only signals when minimum confidence threshold is met
Real-time probability calculations for each setup Signal quality grading: A+, A, B, C ratings
2. Smart Money Concepts (SMC)
Automatic Order Block detection (bullish/bearish) Fair Value Gap (FVG) identification
Market structure analysis (Higher Highs, Lower Lows) Swing high/low tracking with visual markers
3. Multi-Timeframe Analysis
Higher timeframe trend filter for confluence Customizable HTF periods (1H, 4H, Daily, etc.)
Prevents counter-trend trades Aligns entries with major trends
4. Volume Flow Analysis
Volume spike detection with customizable thresholds Volume delta calculations (buying vs selling pressure) Institutional footprint identification Background highlighting for high-volume bars
5. Advanced Risk Management
ATR-based stop loss calculation Automatic take profit levels Customizable risk/reward ratios (1:1, 1:2, 1:3+) Visual SL/TP lines on chart Position sizing guidance
6. Professional Dashboard
Real-time HUD displaying:
Market bias (Bullish/Bearish/Neutral)
Higher timeframe trend status
Current confluence percentage
Volume status (Normal/High)
RSI reading with color coding
ATR volatility measure
Signal quality grade
7. Smart Alert System
Bullish confluence signals
Bearish confluence signals
Volume spike notifications
Customizable alert messages
Works with mobile app notifications
📈 What Makes It Unique?
✅ No Repainting - All signals are confirmed and final
✅ Probability-Based - Shows confidence level, not just binary signals
✅ Multi-Factor Confluence - Combines structure, volume, momentum, and HTF analysis
✅ Clean Interface - Toggle individual components on/off
✅ Works on All Timeframes - From 1-minute scalping to daily swing trading
✅ Universal Markets - Forex, Crypto, Stocks, Indices, Commodities
🎨 Customization Options
Adjustable swing detection length
Volume threshold settings
Minimum confluence score filter
Custom color schemes
Dashboard position (4 corners)
Show/hide individual components
Risk/reward ratio adjustment
ATR multiplier for stops
📊 Best Used For:
✔️ Scalping (1m - 15m charts)
✔️ Day Trading (15m - 1H charts)
✔️ Swing Trading (4H - Daily charts)
✔️ Trend Following
✔️ Reversal Trading
✔️ Breakout Trading
💡 How to Use:
Add indicator to chart - Works immediately with default settings Set your timeframe - Choose your trading style Wait for signals - Green BUY or Red SELL labels with confidence %
Check confluence score - Higher % = better quality setup Review dashboard - Confirm market bias and HTF trend Manage risk - Use provided SL/TP levels or adjust to your preference
Set alerts - Get notified of high-probability setups
⚙️ Recommended Settings:
For Scalping (1m-5m):
Swing Length: 5-7
Min Confluence: 70%
HTF: 15m or 1H
For Day Trading (15m-1H):
Swing Length: 10-15
Min Confluence: 60%
HTF: 4H or Daily
For Swing Trading (4H-Daily):
Swing Length: 15-20
Min Confluence: 50-60%
HTF: Weekly
📚 Indicator Components:
✦ Market Structure Detection
✦ Order Block Identification
✦ Fair Value Gaps (FVG)
✦ Volume Analysis
✦ RSI (14)
✦ MACD (12, 26, 9)
✦ ATR (14)
✦ Multi-Timeframe Trend
✦ Confluence Scoring Algorithm
🚀 Performance Notes:
Optimized for speed and efficiency Minimal CPU usage Clean chart presentation
Limited drawing objects (no chart clutter) Works on all TradingView plans
⚠️ Important Notes:
This indicator is a tool to assist trading decisions, not financial advice Always use proper risk management (1-2% per trade recommended) Backtest on your preferred market and timeframe
Combine with your own analysis and strategy Past performance does not guarantee future results
🔔 Alert Setup:
Right-click indicator name → "Add Alert" → Choose:
"Bullish Confluence Signal" for buy setups
"Bearish Confluence Signal" for sell setups
"Volume Spike Alert" for unusual activity
💬 Support:
For questions, suggestions, or custom modifications, feel free to message me directly through TradingView.
Filter Trend1. Indicator Name
Premium EMA Ribbon Filter (Pro Version)
(Advanced Trend & Momentum Filtering System Based on EMA Ribbons)
2. One-Line Introduction
A professional trend-analysis indicator that blends an advanced noise-filtering algorithm with an EMA ribbon system to extract only the pure bullish/bearish trend while smoothing out market noise.
3. Overall Description (7+ lines)
The Premium EMA Ribbon Filter is more than just a set of EMAs.
It analyzes the structure of a fast, medium, and slow EMA ribbon—along with the spacing and alignment between them—to determine whether the market is in a bullish trend, bearish trend, or a neutral/noise-heavy zone.
The core of this indicator is its noise-reduction algorithm and trend-strength calculation system.
Instead of relying on simple EMA cross signals, it evaluates how consistently the ribbon maintains bullish/bearish alignment over a specified period and highlights only strong trends with color coding, while weak or noisy areas are displayed in gray.
This helps traders avoid confusing or false signals and clearly focus only on the “meaningful zones.”
A Triple-Smoothing System is applied to create smoother, more refined ribbon movements, forming a stable “premium trend curve” that is less affected by short-term volatility.
As a result, this indicator works effectively for scalping, swing trading, and long-term trend following—staying true to the principle of removing noise and highlighting only the core market flow.
4. Short Advantages (6 items)
① Complete Noise Filtering
Using EMA ribbon comparison + tolerance logic, false reversals are largely eliminated, leaving only stable trend phases.
② Highly Readable Color System
Bullish trends are mint, bearish trends are red, and neutral/noise zones are gray—instantly visualizing market conditions.
③ Trend Strength Visualization
Not only trend direction but also trend strength is displayed via dynamic color transparency.
④ Smooth, Premium-Style Ribbon Design
Triple-smoothing creates a refined, luxury-level smoothness in movement.
⑤ Works Across All Timeframes
From 1-minute scalping to daily/weekly macro trend analysis.
⑥ Excellent Real-Trading Compatibility
Works extremely well when combined with ATR, SuperTrend, and volume-based indicators.
Indicator Manual (Required Section)
📌 Understanding the Core Concept
The indicator uses three EMAs (e.g., 20/50/100) arranged as a ribbon to analyze the structural alignment of the trend.
When the EMAs are cleanly aligned Top → Middle → Bottom, the market is in a bullish trend.
When aligned Bottom → Middle → Top, the market is in a bearish trend.
The indicator further evaluates the ribbon spread (gap) and the consistency of alignment to compute trend strength.
Noisy market conditions are shaded gray to clearly indicate “uncertain/indecisive” zones.
⚙️ Settings Description
Option Description
Fast EMA Most sensitive EMA; detects early trend signals
Mid EMA Stabilizes the primary trend direction
Slow EMA Defines the broader, long-term trend flow
Trend Lookback The period used to analyze trend strength
Noise Tolerance (%) Higher values = stronger noise removal
Smoothing Steps Controls how smooth the ribbon becomes
📈 Example Recognition
A bullish continuation/entry scenario forms when:
EMAs align in the order Fast → Mid → Slow (top side)
Ribbon color shifts into mint (strong bullish trend)
The ribbon begins to expand while price stays above the ribbon
📉 Example Recognition
A bearish continuation/entry occurs when:
EMAs align Fast → Mid → Slow (bottom side)
Ribbon color remains red
After contracting, the ribbon expands again during renewed downside strength
🧪 Recommended Usage
Combine with volume-based indicators (OBV, Volume Profile) → enhanced strong-trend detection
Use with SuperTrend or ATR Stop → clearer stop-loss placement
Combine with RSI/Stoch → avoid counter-trend entries in overheated conditions
Higher leverage traders should use higher tolerance settings
🔒 Cautions
EMA ribbons are trend-following tools; signals may weaken in ranging/sideways markets.
Never rely solely on this indicator—always confirm with volume, price patterns, or structure.
Very low Lookback values may cause excessive re-entry signals.
In high-volatility environments, ribbon spacing can contract/expand rapidly—use with caution.
Filter Wave1. Indicator Name
Filter Wave
2. One-line Introduction
A visually enhanced trend strength indicator that uses linear regression scoring to render smoothed, color-shifting waves synced to price action.
3. General Overview
Filter Wave+ is a trend analysis tool designed to provide an intuitive and visually dynamic representation of market momentum.
It uses a pairwise comparison algorithm on linear regression values over a lookback period to determine whether price action is consistently moving upward or downward.
The result is a trend score, which is normalized and translated into a color-coded wave that floats above or below the current price. The wave's opacity increases with trend strength, giving a visual cue for confidence in the trend.
The wave itself is not a raw line—it goes through a three-stage smoothing process, producing a natural, flowing curve that is aesthetically aligned with price movement.
This makes it ideal for traders who need a quick visual context before acting on signals from other tools.
While Filter Wave+ does not generate buy/sell signals directly, its secure and efficient design allows it to serve as a high-confidence trend filter in any trading system.
4. Key Advantages
🌊 Smooth, Dynamic Wave Output
3-stage smoothed curves give clean, flowing visual feedback on market conditions.
🎨 Trend Strength Visualized by Color Intensity
Stronger trends appear with more solid coloring, while weak/neutral trends fade visually.
🔍 Quantitative Trend Detection
Linear regression ordering delivers precise, math-based trend scoring for confidence assessment.
📊 Price-Synced Floating Wave
Wave is dynamically positioned based on ATR and price to align naturally with market structure.
🧩 Compatible with Any Strategy
No conflicting signals—Filter Wave+ serves as a directional overlay that enhances clarity.
🔒 Secure Core Logic
Core algorithm is lightweight and secure, with minimal code exposure and strong encapsulation.
📘 Indicator User Guide
📌 Basic Concept
Filter Wave+ calculates trend direction and intensity using linear regression alignment over time.
The resulting wave is rendered as a smoothed curve, colored based on trend direction (green for up, red for down, gray for neutral), and adjusted in transparency to reflect trend strength.
This allows for fast trend interpretation without overwhelming the chart with signals.
⚙️ Settings Explained
Lookback Period: Number of bars used for pairwise regression comparisons (higher = smoother detection)
Range Tolerance (%): Threshold to qualify as an up/down trend (lower = more sensitive)
Regression Source: The price input used in regression calculation (default: close)
Linear Regression Length: The period used for the core regression line
Bull/Bear Color: Customize the color for bullish and bearish waves
📈 Timing Example
Wave color changes to green and becomes more visible (less transparent)
Wave floats above price and aligns with an uptrend
Use as trend confirmation when other signals are present
📉 Timing Example
Wave shifts to red and darkens, floating below the price
Regression direction down; price continues beneath the wave
Acts as bearish confirmation for short trades or risk-off positioning
🧪 Recommended Use Cases
Use as a trend confidence overlay on your existing strategies
Especially useful in swing trading for detecting and confirming dominant market direction
Combine with RSI, MACD, or price action for high-accuracy setups
🔒 Precautions
This is not a signal generator—intended as a trend filter or directional guide
May respond slightly slower in volatile reversals; pair with responsive indicators
Wave position is influenced by ATR and price but does not represent exact entry/exit levels
Parameter optimization is recommended based on asset class and timeframe
Filter Bar1. Indicator Name
Filter Bar
2. One-line Introduction
A trend-aware bar coloring system that visualizes market direction and strength through adaptive transparency based on regression scoring.
3. General Overview
Filter Bar+ is a minimalist but powerful trend visualization tool that colors chart bars according to market direction and momentum strength.
It analyzes the linear regression trend alignment over a specified lookback period and uses a pairwise comparison algorithm to determine whether the market is in a bullish, bearish, or neutral state.
The result is a "trend score" that gets normalized to reflect trend intensity (0~1).
Bar colors are then dynamically updated using the specified bullish or bearish base colors, where higher intensity results in more opaque (darker) bars, and weaker trends lead to lighter, faded tones.
If no strong trend is detected, bars are shown in gray, signaling indecision or neutrality.
The strength of this indicator lies in its simplicity—it doesn’t draw lines, waves, or shapes, but overlays insight directly onto the chart through smart color cues.
It’s particularly effective as a background filter for price action traders, scalpers, and anyone who prefers clean charts but still wants embedded directional context.
4. Key Advantages
🎨 Adaptive Bar Coloring
Bar color opacity increases with trend strength, offering instant visual confirmation without clutter.
📊 Quantified Trend Direction
Uses a regression-based scoring system to reliably detect uptrends, downtrends, or sideways markets.
⚖️ Customizable Sensitivity
Parameters like lookback period and tolerance percentage give users full control over signal responsiveness.
🧼 Clean Chart Presentation
No lines, shapes, or overlays—just color-coded bars that blend into your existing chart setup.
🚀 Lightweight & Fast
Minimal computational load ensures it works smoothly even on lower-end devices or multiple chart setups.
🔒 Secure Internal Logic
Algorithm is neatly encapsulated and optimized, with no critical logic exposed.
📘 Indicator User Guide
📌 Basic Concept
Filter Bar+ evaluates trend direction and strength using a pairwise comparison of linear regression values.
The result determines whether the market is bullish, bearish, or neutral, and adjusts bar colors accordingly.
It visually amplifies the current market state without drawing any indicators on the chart.
⚙️ Settings Explained
Lookback Period: Number of bars used to compare regression values
Range Tolerance (%): Minimum score required to label a trend as bullish or bearish
Regression Source: Data input used for regression (default: close)
Linear Regression Length: Period for generating the base regression line
Bull/Bear Base Colors: Choose colors to represent bullish or bearish bars
📈 Buy Timing Example
Bars are green (or user-set bullish color) and becoming more vivid
Indicates a strengthening bullish trend; helpful when used alongside breakout confirmation or support zones
📉 Sell Timing Example
Bars turn red (or your custom bearish color) with increasing opacity
Signals growing bearish pressure; acts as confirmation during short setups or breakdowns
🧪 Recommended Use Cases
Combine with volume, RSI, or price action setups for direction filtering
Ideal for clean chart strategies where visual simplicity is preferred
Use as a confirmation layer to reduce noise in sideways markets
🔒 Precautions
This is a visual filter, not a signal generator—use alongside other strategies for entries/exits
In choppy markets, bars may flicker between colors—adjust sensitivity as needed
Works best when you already have a directional thesis and want to validate it visually
Always test settings for your asset/timeframe before applying in live trades
Static K-means Clustering | InvestorUnknownStatic K-Means Clustering is a machine-learning-driven market regime classifier designed for traders who want a data-driven structure instead of subjective indicators or manually drawn zones.
This script performs offline (static) K-means training on your chosen historical window. Using four engineered features:
RSI (Momentum)
CCI (Price deviation / Mean reversion)
CMF (Money flow / Strength)
MACD Histogram (Trend acceleration)
It groups past market conditions into K distinct clusters (regimes). After training, every new bar is assigned to the nearest cluster via Euclidean distance in 4-dimensional standardized feature space.
This allows you to create models like:
Regime-based long/short filters
Volatility phase detectors
Trend vs. chop separation
Mean-reversion vs. breakout classification
Volume-enhanced money-flow regime shifts
Full machine-learning trading systems based solely on regimes
Note:
This script is not a universal ML strategy out of the box.
The user must engineer the feature set to match their trading style and target market.
K-means is a tool, not a ready made system, this script provides the framework.
Core Idea
K-means clustering takes raw, unlabeled market observations and attempts to discover structure by grouping similar bars together.
// STEP 1 — DATA POINTS ON A COORDINATE PLANE
// We start with raw, unlabeled data scattered in 2D space (x/y).
// At this point, nothing is grouped—these are just observations.
// K-means will try to discover structure by grouping nearby points.
//
// y ↑
// |
// 12 | •
// | •
// 10 | •
// | •
// 8 | • •
// |
// 6 | •
// |
// 4 | •
// |
// 2 |______________________________________________→ x
// 2 4 6 8 10 12 14
//
//
//
// STEP 2 — RANDOMLY PLACE INITIAL CENTROIDS
// The algorithm begins by placing K centroids at random positions.
// These centroids act as the temporary “representatives” of clusters.
// Their starting positions heavily influence the first assignment step.
//
// y ↑
// |
// 12 | •
// | •
// 10 | • C2 ×
// | •
// 8 | • •
// |
// 6 | C1 × •
// |
// 4 | •
// |
// 2 |______________________________________________→ x
// 2 4 6 8 10 12 14
//
//
//
// STEP 3 — ASSIGN POINTS TO NEAREST CENTROID
// Each point is compared to all centroids.
// Using simple Euclidean distance, each point joins the cluster
// of the centroid it is closest to.
// This creates a temporary grouping of the data.
//
// (Coloring concept shown using labels)
//
// - Points closer to C1 → Cluster 1
// - Points closer to C2 → Cluster 2
//
// y ↑
// |
// 12 | 2
// | 1
// 10 | 1 C2 ×
// | 2
// 8 | 1 2
// |
// 6 | C1 × 2
// |
// 4 | 1
// |
// 2 |______________________________________________→ x
// 2 4 6 8 10 12 14
//
// (1 = assigned to Cluster 1, 2 = assigned to Cluster 2)
// At this stage, clusters are formed purely by distance.
Your chosen historical window becomes the static training dataset , and after fitting, the centroids never change again.
This makes the model:
Predictable
Repeatable
Consistent across backtests
Fast for live use (no recalculation of centroids every bar)
Static Training Window
You select a period with:
Training Start
Training End
Only bars inside this range are used to fit the K-means model. This window defines:
the market regime examples
the statistical distributions (means/std) for each feature
how the centroids will be positioned post-trainin
Bars before training = fully transparent
Training bars = gray
Post-training bars = full colored regimes
Feature Engineering (4D Input Vector)
Every bar during training becomes a 4-dimensional point:
This combination balances: momentum, volatility, mean-reversion, trend acceleration giving the algorithm a richer "market fingerprint" per bar.
Standardization
To prevent any feature from dominating due to scale differences (e.g., CMF near zero vs CCI ±200), all features are standardized:
standardize(value, mean, std) =>
(value - mean) / std
Centroid Initialization
Centroids start at diverse coordinates using various curves:
linear
sinusoidal
sign-preserving quadratic
tanh compression
init_centroids() =>
// Spread centroids across using different shapes per feature
for c = 0 to k_clusters - 1
frac = k_clusters == 1 ? 0.0 : c / (k_clusters - 1.0) // 0 → 1
v = frac * 2 - 1 // -1 → +1
array.set(cent_rsi, c, v) // linear
array.set(cent_cci, c, math.sin(v)) // sinusoidal
array.set(cent_cmf, c, v * v * (v < 0 ? -1 : 1)) // quadratic sign-preserving
array.set(cent_mac, c, tanh(v)) // compressed
This makes initial cluster spread “random” even though true randomness is hardly achieved in pinescript.
K-Means Iterative Refinement
The algorithm repeats these steps:
(A) Assignment Step, Each bar is assigned to the nearest centroid via Euclidean distance in 4D:
distance = sqrt(dx² + dy² + dz² + dw²)
(B) Update Step, Centroids update to the mean of points assigned to them. This repeats iterations times (configurable).
LIVE REGIME CLASSIFICATION
After training, each new bar is:
Standardized using the training mean/std
Compared to all centroids
Assigned to the nearest cluster
Bar color updates based on cluster
No re-training occurs. This ensures:
No lookahead bias
Clean historical testing
Stable regimes over time
CLUSTER BEHAVIOR & TRADING LOGIC
Clusters (0, 1, 2, 3…) hold no inherent meaning. The user defines what each cluster does.
Example of custom actions:
Cluster 0 → Cash
Cluster 1 → Long
Cluster 2 → Short
Cluster 3+ → Cash (noise regime)
This flexibility means:
One trader might have cluster 0 as consolidation.
Another might repurpose it as a breakout-loading zone.
A third might ignore 3 clusters entirely.
Example on ETHUSD
Important Note:
Any change of parameters or chart timeframe or ticker can cause the “order” of clusters to change
The script does NOT assume any cluster equals any actionable bias, user decides.
PERFORMANCE METRICS & ROC TABLE
The indicator computes average 1-bar ROC for each cluster in:
Training set
Test (live) set
This helps measure:
Cluster profitability consistency
Regime forward predictability
Whether a regime is noise, trend, or reversion-biased
EQUITY SIMULATION & FEES
Designed for close-to-close realistic backtesting.
Position = cluster of previous bar
Fees applied only on regime switches. Meaning:
Staying long → no fee
Switching long→short → fee applied
Switching any→cash → fee applied
Fee input is percentage, but script already converts internally.
Disclaimers
⚠️ This indicator uses machine-learning but does not predict the future. It classifies similarity to past regimes, nothing more.
⚠️ Backtest results are not indicative of future performance.
⚠️ Clusters have no inherent “bullish” or “bearish” meaning. You must interpret them based on your testing and your own feature engineering.
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.
RastaRasta — Educational Strategy (Pine v5)
Momentum · Smoothing · Trend Study
Overview
The Rasta Strategy is a visual and educational framework designed to help traders study momentum transitions using the interaction between a fast-reacting EMA line and a slower smoothed reference line.
It is not a signal generator or profit system; it’s a learning tool for understanding how smoothing, crossovers, and filters interact under different market conditions.
The script displays:
A primary EMA line (the fast reactive wave).
A Smoothed line (using your chosen smoothing method).
Optional fog zones between them for quick visual context.
Optional DNA rungs connecting both lines to illustrate volatility compression and expansion.
Optional EMA 8 / EMA 21 trend filter to observe higher-time-frame alignment.
Core Idea
The Rasta model focuses on wave interaction. When the fast EMA crosses above the smoothed line, it reflects a shift in short-term momentum relative to background trend pressure. Cross-unders suggest weakening or reversal.
Rather than treating this as a trading “signal,” use it to observe structure, study trend alignment, and test how smoothing type affects reaction speed.
Smoothing Types Explained
The script lets you experiment with multiple smoothing techniques:
Type Description Use Case
SMA (Simple Moving Average) Arithmetic mean of the last n values. Smooth and steady, but slower. Trend-following studies; filters noise on higher time frames.
EMA (Exponential Moving Average) Weights recent data more. Responds faster to new price action. Momentum or reactive strategies; quick shifts and reversals.
RMA (Relative Moving Average) Used internally by RSI; smooths exponentially but slower than EMA. Momentum confirmation; balanced response.
WMA (Weighted Moving Average) Linear weights emphasizing the most recent data strongly. Intraday scalping; crisp but potentially noisy.
None Disables smoothing; uses the EMA line alone. Raw comparison baseline.
Each smoothing method changes how early or late the strategy reacts:
Faster smoothing (EMA/WMA) = more responsive, good for scalping.
Slower smoothing (SMA/RMA) = more stable, good for trend following.
Modes of Study
🔹 Scalper Mode
Use short EMA lengths (e.g., 3–5) and fast smoothing (EMA or WMA).
Focus on 1 min – 15 min charts.
Watch how quick crossovers appear near local tops/bottoms.
Fog and rung compression reveal volatility contraction before bursts.
Goal: study short-term rhythm and liquidity pulses.
🔹 Momentum Mode
Use moderate EMA (5–9) and RMA smoothing.
Ideal for 1 H–4 H charts.
Observe how the fog color aligns with trend shifts.
EMA 8 / 21 filter can act as macro bias; “Enter” labels will appear only in its direction when enabled.
Goal: study sustained motion between pullbacks and acceleration waves.
🔹 Trend-Follower Mode
Use longer EMA (13–21) with SMA smoothing.
Great for daily/weekly charts.
Focus on periods where fog stays unbroken for long stretches — these illustrate clear trend dominance.
Watch rung spacing: tight clusters often precede consolidations; wide rungs signal expanding volatility.
Goal: visualize slow-motion trend transitions and filter whipsaw conditions.
Components
EMA Line (Red): Fast-reacting short-term direction.
Smoothed Line (Yellow): Reference trend baseline.
Fog Zone: Green when EMA > Smoothed (up-momentum), red when below.
DNA Rungs: Thin connectors showing volatility structure.
EMA 8 / 21 Filter (optional):
When enabled, the strategy will only allow Enter events if EMA 8 > EMA 21.
Use this to study higher-trend gating effects.
Educational Applications
Momentum Visualization: Observe how the fast EMA “breathes” around the smoothed baseline.
Trend Transitions: Compare different smoothing types to see how early or late reversals are detected.
Noise Filtering: Experiment with fog opacity and smoothing lengths to understand trade-off between responsiveness and stability.
Risk Concept Simulation: Includes a simple fixed stop-loss parameter (default 13%) for educational demonstrations of position management in the Strategy Tester.
How to Use
Add to Chart → “Strategy.”
Works on any timeframe and instrument.
Adjust Parameters:
Length: base EMA speed.
Smoothing Type: choose SMA, EMA, RMA, or WMA.
Smoothing Length: controls delay and smoothness.
EMA 8 / 21 Filter: toggles trend gating.
Fog & Rungs: visual study options only.
Study Behavior:
Use Strategy Tester → List of Trades for entry/exit context.
Observe how different smoothing types affect early vs. late “Enter” points.
Compare trend periods vs. ranging periods to evaluate efficiency.
Combine with External Tools:
Overlay RSI, MACD, or Volume for deeper correlation analysis.
Use replay mode to visualize crossovers in live sequence.
Interpreting the Labels
Enter: Marks where fast EMA crosses above the smoothed line (or when filter flips positive).
Exit: Marks where fast EMA crosses back below.
These are purely analytical markers — they do not represent trade advice.
Educational Value
The Rasta framework helps learners explore:
Reaction time differences between moving-average algorithms.
Impact of smoothing on signal clarity.
Interaction of local and global trends.
Visualization of volatility contraction (tight DNA rungs) and expansion (wide fog zones).
It’s a sandbox for studying price structure, not a promise of profit.
Disclaimer
This script is provided for educational and research purposes only.
It does not constitute financial advice, trading signals, or performance guarantees. Past market behavior does not predict future outcomes.
Users are encouraged to experiment responsibly, record observations, and develop their own understanding of price behavior.
Author: Michael Culpepper (mikeyc747)
License: Educational / Open for study and modification with credit.
Philosophy:
“Learning the rhythm of the market is more valuable than chasing its profits.” — Rasta
[FS] Pivot Measurements# Pivot Measurements
An advanced TradingView indicator that combines LuxAlgo's pivot point detection algorithm with automatic measurement calculations between consecutive pivots.
## Features
### Pivot Detection
- **Regular Pivots**: Detects standard pivot highs and lows using configurable pivot length
- **Missed Pivots**: Identifies missed reversal levels that occurred between regular pivots
- **Visual Indicators**:
- Regular pivot highs: Red downward triangle (▼)
- Regular pivot lows: Teal upward triangle (▲)
- Missed pivots: Ghost emoji (👻)
- **Zigzag Lines**: Connects pivots with colored lines (solid for regular, dashed for missed)
- **Ghost Levels**: Horizontal lines indicating missed pivot levels
### Measurement System
- **Automatic Measurements**: Calculates price movements between consecutive pivots
- **Visual Display**:
- Transparent colored boxes (blue for upward, red for downward movements)
- Measurement labels showing:
- Price change (absolute and percentage)
- Duration (bars, days, hours, minutes)
- Volume approximation
- **Smart Positioning**: Labels positioned outside boxes (above for upward, below for downward)
- **Color Coding**: Blue for positive movements, red for negative movements
## Parameters
### Pivot Detection
- **Pivot Length** (default: 50): Number of bars on each side to identify a pivot point
- **Regular Pivots**: Toggle and colors for regular pivot highs and lows
- **Missed Pivots**: Toggle and colors for missed pivot detection
### Measurements
- **Number of Measurements** (1-10, default: 10): Maximum number of measurements to display
- **Show Measurement Boxes**: Toggle to show/hide measurement boxes and labels
- **Box Transparency** (0-100, default: 90): Transparency level for measurement boxes
- **Border Transparency** (0-100, default: 50): Transparency level for box borders
- **Label Background Transparency** (0-100, default: 30): Transparency level for label backgrounds
- **Label Size**: Size of measurement labels (tiny, small, normal, large)
## Usage
1. Add the indicator to your chart
2. Configure the **Pivot Length** based on your timeframe:
- Lower values for shorter timeframes (e.g., 10-20 for 1-5 min)
- Higher values for longer timeframes (e.g., 50-100 for daily)
3. Adjust pivot colors and visibility as needed
4. Customize measurement display settings:
- Set the number of measurements to display
- Adjust transparency levels for boxes, borders, and labels
- Choose label size
## Technical Details
- **Pine Script Version**: v6
- **Pivot Detection**: Based on () algorithm for detecting regular and missed pivots
- **Measurement Calculation**:
- Measures between consecutive pivots (from most recent to older)
- Calculates price change, percentage change, duration, and approximate volume
- Automatically sorts pivots chronologically
- **Performance**: Optimized with helper functions to reduce code duplication
## Notes
- The indicator automatically limits the number of stored pivots to optimize performance
- Measurements are only created when there are at least 2 pivots detected
- All measurements are recalculated on each bar update
- The indicator uses `max_bars_back=5000` to ensure sufficient historical data
## License
This indicator uses LuxAlgo's pivot detection algorithm from (). Please refer to the original LuxAlgo license for pivot detection components.






















