Emac ML Adaptive CrossoverThe HDAlgos EMAC ML Adaptive Crossover is an adaptive trend reading and crossover system that uses a lightweight machine learning style scoring engine to detect regime shifts in the market. It blends multiple normalised technical features and automatically adjusts EMA lengths based on the detected market regime.
How it works
Feature Engine
The script computes several normalised indicators including RSI, ATR percentage, and Rate of Change. Each feature is converted into a z score so that the values behave consistently across different markets and timeframes. These feature values are then averaged to form a composite regime score.
Regime Detection
The composite score is compared to a dynamic upper and lower threshold. If the score rises above the upper boundary the regime becomes bullish. If the score falls below the lower boundary it becomes bearish. If it stays between the two boundaries the market is classified as neutral.
Adaptive EMAs
The fast and slow EMA lengths are automatically adjusted depending on the detected regime.
• In bullish regimes the fast and slow EMAs shorten.
• In bearish regimes they lengthen.
• In neutral regimes they revert to their base lengths.
This creates an EMA crossover system that responds to market volatility and directional strength rather than using fixed lookback values.
Crossovers
When the adaptive fast EMA crosses above the adaptive slow EMA, a bullish signal appears. When it crosses below, a bearish signal appears.
Visual Aids
• The fast EMA changes color to reflect the current regime.
• Candles can be optionally painted in regime colors.
• A label on the last bar shows the detected regime, score, and active EMA lengths.
• A compact table can be shown in the corner summarizing regime state and metrics.
Alerts
Alerts trigger when the regime changes, when a bullish adaptive crossover occurs, and when a bearish adaptive crossover occurs.
What it is designed for
This indicator is built for traders who want a crossover system that adapts to real market conditions instead of reacting to fixed length EMAs. It provides:
Smoother identification of trend phases
Dynamic sensitivity during strong conditions
Dampened reactions during noise and low conviction periods
Clear and simple signals that remain easy to interpret
Wskaźniki i strategie
ICT SMT A+ LONG & SELL ChecklistTrade Checklist. Once all items checked color changes from yellow to green.
Boring MACD Trading Strategy - Dedicated to 'The Secret Mindset'This indicator displays the MACD status across three selectable timeframes, regardless of the chart timeframe you are currently viewing.
For each timeframe, it shows whether the MACD line is above or below the zero line, indicating bullish or bearish momentum.
It also shows whether the MACD line is above or below the signal line, revealing the current trend condition as bullish, bearish, or neutral.
Boring MACD Trading Strategy - Dedicated to 'The Secret Mindset'This indicator displays the MACD status across three selectable timeframes, regardless of the chart timeframe you are currently viewing.
For each timeframe, it shows whether the MACD line is above or below the zero line, indicating bullish or bearish momentum.
It also shows whether the MACD line is above or below the signal line, revealing the current trend condition as bullish, bearish, or neutral.
YCGH ATH DrawdownHow the Indicator Measures Drawdown from ATH
The indicator continuously tracks and calculates the percentage decline from the all-time high (ATH) using a systematic approach.
ATH Tracking Mechanism
Dynamic ATH Calculation: The script maintains a persistent variable that stores the highest price ever reached. On each bar, it compares the current high with the stored ATH using ath := math.max(ath, high), updating the ATH whenever a new peak is reached.
Periodic Volume Time Velocity ProfileThis is the Periodic Volume Time Velocity Profile (PVTVP). It is an advanced professional profiling tool that goes beyond standard volume analysis by introducing Time and Velocity (Flow Rate) as profile dimensions.
By analyzing high-resolution intra-bar data, it builds
precise profiles for any custom period (Session, Day, Week, etc.),
helping you understand not just *where* the market traded,
but *how* it traded there.
## The 3 Dimensions of the Market
Unlike standard tools that only show Volume, PVTVP allows you
to switch between three critical metrics:
1. **VOLUME Profile (The "Where"):**
* Shows standard acceptance. High volume nodes (HVN)
are magnets for price.
2. **TIME Profile (The "How Long"):**
* Similar to TPO, it measures how long price spent at each
level.
* **High Time:** True acceptance and fair value.
* **Low Time:** Rejection or rapid movement.
3. **VELOCITY Profile (The "How Fast"):**
* Measures the **speed of trading** (Contracts per Second).
This reveals the hidden intent of market participants.
* **High Velocity (Fast Flow):** Aggression. Initiative
buyers/sellers are hitting market orders rapidly. Often
seen at breakouts or in liquidity vacuums.
* **Low Velocity (Slow Flow):** Absorption. Massive passive
limit orders are slowing price down despite high volume.
Often seen at major reversals ("hitting a brick wall").
## Key Features
1. **Statistical Volume Profile Engine:** For each bar in the selected
period, the indicator builds a complete volume profile on a lower
'Intra-Bar Timeframe'. Instead of simple tick counting, it uses
**statistical models ('PDF' allocation)** to distribute volume
across price levels and **advanced classifiers ('Dynamic' split)**
to determine the buy/sell pressure within that profile.
2. **Flexible Profile Display:** The **finalized profile** (plotted at
the end of each period) can be visualized in three distinct
ways: 'Up/Down' (buy vs. sell), 'Total' (combined volume),
and 'Delta' (net difference).
3. **Developing Key Levels:** The indicator also plots the developing
Point of Control (POC), Value Area (VA), VWAP, and Standard
Deviation bands in real-time as the period unfolds, providing
live insights into the emerging market structure.
4. **Dynamic Row Sizing:** Includes an option ('Rows per Percent')
to automatically adjust the number of profile rows (buckets)
based on the profile's price range, maintaining a consistent
visual density.
5. **Integrated Alerts:** Includes 12 alerts that trigger when the
main price crosses over or under the key developing levels:
POC, VWAP, Value Area High/Low, and the +/- Standard
Deviation bands.
**Caution: Real-Time Data Behavior (Intra-Bar Repainting)**
This indicator uses high-resolution intra-bar data. As a result, the
values on the **current, unclosed bar** (the real-time bar) will
update dynamically as new intra-bar data arrives. This behavior is
normal and necessary for this type of analysis. Signals should only
be considered final **after the main chart bar has closed.**
---
**DISCLAIMER**
1. **For Informational/Educational Use Only:** This indicator is
provided for informational and educational purposes only. It does
not constitute financial, investment, or trading advice, nor is
it a recommendation to buy or sell any asset.
2. **Use at Your Own Risk:** All trading decisions you make based on
the information or signals generated by this indicator are made
solely at your own risk.
3. **No Guarantee of Performance:** Past performance is not an
indicator of future results. The author makes no guarantee
regarding the accuracy of the signals or future profitability.
4. **No Liability:** The author shall not be held liable for any
financial losses or damages incurred directly or indirectly from
the use of this indicator.
5. **Signals Are Not Recommendations:** The alerts and visual signals
(e.g., crossovers) generated by this tool are not direct
recommendations to buy or sell. They are technical observations
for your own analysis and consideration.
BTCUSD / (inverted)DXY RatioShows relation between INVERTED DXY and BITCOIN ( blue line ) . With EMA-smoothing ( red line ).
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.
BTC 1H Momentum + Near-Setup Alerts bigbeeukthis alert, sets up on 1h chart of BTC only. it alerts you to price action and when its close to a setup. it will then trigger again once the setup is ready
Projected 15min RVOLProjects RVOL every 15 minutes no matter what the timeframe you are using in the chart
Binary Ratio Table (30 tokens) - against 3 Benchmark TokensDescription:
This indicator compares the relative strength of 30 selected cryptocurrencies against three major benchmark assets — BTC, ETH, and SOL — using a ratio-based RSI system.
For each token, the script:
Calculates the ratio of the token’s price to each major (BTC, ETH, SOL).
Computes RSI(60) of the ratio, then compares its EMA(10) vs. Median(30).
Assigns a score of 1 (green) if EMA > Median (bullish) or 0 (red) if not (bearish).
Results are displayed in two color-coded tables showing all 30 tokens and their relative strength signals vs. BTC, ETH, and SOL.
A full JSON payload of all scores is also generated for webhook alerts or external automation.
Use Case:
Quickly assess which altcoins are outperforming or underperforming major crypto benchmarks. Ideal for relative strength rotation, momentum analysis, or automated portfolio filters.
Ratio Logic is adjustable in Pincescript
Relative Strength HSIWe add the relative strength indicator. We try to maximize the alpha,
when there is price divergence, we should notice.
Gold-Silver Ratio (GSR) ComparatorUpdated to present silver as % of gold price. Otherwise identical function as previous version.
ATR (No Gap) - Advanced Volatility IndicatorA customizable Average True Range indicator that eliminates gap distortion between trading sessions, providing cleaner volatility measurements for intraday and swing traders.
Key Features:
Gap Filtering: Optional toggle to ignore overnight/weekend gaps that distort volatility readings
EMA Smoothing: Defaults to EMA for more responsive volatility tracking (also supports RMA and SMA)
Half ATR Display: Shows 50% ATR value for quick stop-loss and take-profit calculations
Clean Value Table: Real-time values displayed on chart with configurable decimal precision
Flexible Settings: Customize length, smoothing method, and display options
Ideal for:
Setting dynamic stop losses and take profits
Position sizing based on current volatility
Comparing gap vs. no-gap volatility measurements
Trading instruments with large overnight gaps (indices, forex, crypto)
Use this indicator to get a more accurate picture of intraday volatility without the noise from session gaps!
Live Higher TF Volume Ratio DashboardComparative intraday volume dashboard for 15 mins volume in any intraday timeframe
TrendDetectorLibLibrary "TrendDetector_Lib"
method formatTF(timeframe)
Namespace types: series string, simple string, input string, const string
Parameters:
timeframe (string) : (string) The timeframe to convert (e.g., "15", "60", "240").
Returns: (string) The formatted timeframe (e.g., "15M", "1H", "4H").
f_ma(type, src, len)
Computes a Moving Average value based on type and length.
Parameters:
type (simple string) : (string) One of: "SMA", "EMA", "RMA", "WMA", "VWMA".
src (float) : (series float) Source series for MA (e.g., close).
len (simple int) : (simple int) Length of the MA.
Returns: (float) The computed MA series.
render(tbl, trendDetectorSwitch, frameColor, frameWidth, borderColor, borderWidth, textColor, ma1ShowTrendData, ma1Timeframe, ma1Value, ma2ShowTrendData, ma2Timeframe, ma2Value, ma3ShowTrendData, ma3Timeframe, ma3Value)
Fills the provided table with Trend Detector contents.
@desc This renderer does NOT plot and does NOT create tables; call from indicator after your table exists.
Parameters:
tbl (table) : (table) Existing table to render into.
trendDetectorSwitch (bool) : (bool) Master toggle to draw the table content.
frameColor (color) : (color) Table frame color.
frameWidth (int) : (int) Table frame width (0–5).
borderColor (color) : (color) Table border color.
borderWidth (int) : (int) Table border width (0–5).
textColor (color) : (color) Table text color.
ma1ShowTrendData (bool) : (bool) Show MA #1 in table.
ma1Timeframe (simple string) : (string) MA #1 timeframe.
ma1Value (float)
ma2ShowTrendData (bool) : (bool) Show MA #2 in table.
ma2Timeframe (simple string) : (string) MA #2 timeframe.
ma2Value (float)
ma3ShowTrendData (bool) : (bool) Show MA #3 in table.
ma3Timeframe (simple string) : (string) MA #3 timeframe.
ma3Value (float)
MACD Advanced [CongTrader]Title:
MACD Advanced – Enhanced Trend & Momentum Analysis
Short Description (Displayed on Chart)
MACD Advanced [CongTrader is an enhanced version of the traditional MACD, combining gradient histogram, multi-layer EMA, and smart markers to identify trend and momentum more accurately. Supports bullish/bearish crossover alerts in line with trend, helping traders seize opportunities quickly.
Detailed Description (SEO-friendly, professional)
MACD Advanced is designed for traders who want to:
Track market momentum through slope and gradient of the MACD.
Identify short-term and long-term trends using EMA 50 & EMA 200.
Receive visual trading signals with bullish/bearish markers directly on the chart.
Set intelligent alerts when MACD aligns with the trend, ensuring no opportunities are missed.
Key Features:
MACD Slope: measures the rate of MACD change to identify strong or weak momentum.
Gradient Histogram: colors change according to momentum → easy to see increasing/decreasing strength.
Multi-layer EMA: EMA 50 (short-term trend) & EMA 200 (long-term trend) → reduces noise.
Smart Markers: up/down triangles display crossover points + color indicates momentum.
Built-in Alerts: triggers when bullish/bearish signals confirm trend alignment.
How to Use
Setup:
Paste the code into Pine Editor → click “Add to Chart”.
Adjust input parameters:
Fast EMA / Slow EMA / Signal Line Length → MACD sensitivity.
Short-term EMA / Long-term EMA → trend confirmation.
Toggle EMA Trend Filter, histogram, and markers as needed.
Reading Signals:
Bullish Signal: MACD line crosses above signal line + positive slope + price above EMAs → consider buying.
Bearish Signal: MACD line crosses below signal line + negative slope + price below EMAs → consider selling.
Dark green histogram → strong upward momentum; dark red → strong downward momentum.
Markers on chart indicate crossovers → combine with EMA trend for confirmation.
Advanced Tips:
Use multiple timeframes to confirm trends.
EMA filters help reduce false signals in sideways markets.
Disclaimer
⚠️ Disclaimer:
This indicator is for educational and technical analysis purposes only. It **does not constitute financial advice** and does not guarantee profit.
Any trading decisions made based on this indicator are the sole responsibility of the user. Always apply proper risk management.
Acknowledgment
Thank you for using MACD Advanced [CongTrader! Wishing you safe and successful trading. Feedback and improvement suggestions are welcome on TradingView
MACD, MACD Advanced, MACD Histogram, MACD Trend, EMA Filter, Momentum, Technical Analysis, Trading, CT Style, Alerts
RonaldoCalculates ATR (Average True Range): Measures market volatility over a customizable period (default: 10). A higher ATR means more volatility. Calculates the Supertrend: Combines ATR with a multiplier (default: 3)
Premarket High/Low (4:00–9:30 AM)This indicator allows me to visualize the full range in which the price moved during the pre-market session, providing a bearish confirmation when the low is broken and a bullish confirmation when the high is breached.
Williams Percent Range + MAA modernized take on the classic Williams %R oscillator — enhanced with a configurable moving average (SMA, EMA, RMA, WMA, HMA, or KAMA) for trend confirmation. Overbought and oversold zones are fully adjustable, and background highlights appear when momentum shifts: green for bullish crosses in oversold areas, red for bearish crosses in overbought zones.
cd_sfp_CxGeneral:
This indicator is designed to assist users who trade the Swing Failure Pattern ( SFP ).
In technical literature (various definitions exist), an SFP is a situation where the price violates a previous swing level but fails to close beyond that level.
• (Liquidity Sweep)
• (Buyer or seller dominance)
• (Stop hunt)
• (Turtle Soup)
The general strategy is built upon seeking trade opportunities after an SFP is formed and conviction is established that the market direction has changed.
Components used to gather confirmation:
• Determining Bias: Periodic SAR
• Obtaining Breakout/Reversal Confirmation: Change in State Delivery (CISD)
• Defining the Buyer/Seller Block (Supply/Demand Zones): Mitg Blocks (Mitigation Blocks), FVG (Fair Value Gaps), and Standard Deviation Projection
• Key Levels: Previous HTF (Higher Time Frame) levels
• Setting Targets: Standard Deviation Projection
• Trade Management: Anchored VWAP and opposing blocks
• Time-Based Context: Session Killzone times
• Notifications: An alarm/alert system will be utilized to stay informed.
________________________________________
Details:
Swing and Swing Failure Pattern:
Swing Sweep Types (Liquidity Sweep):
1. Single
2. Consecutive (The liquidity of the entity that swept the liquidity is being swept)
Bias Determination
We need to filter out the numerous SFPs that occur across all time frames. Our first strong filter will be the Bias. We will only look for trades aligned with our bias.
We will use Periodic SAR (Stop and Reverse) to determine the bias. We compare the price with the SAR value from a Higher Time Frame than the one we are trading on.
• Price > SAR => Bullish Bias
• Price < SAR => Bearish Bias
Depending on the pair, H1 SAR may be chosen for scalp trades, and Daily/Weekly SAR for intraday and swing trades.
Key Levels
Strategies looking for trades after a liquidity grab generally state that the sweep / stop hunt movement should occur at a significant price level.
The most fundamental Key Level levels are (User can customize):
• Previous Week High & Low
• Previous Day High & Low
• Previous H4 High & Low
• Previous H1 High & Low
• Asia Killzone High & Low
• London Killzone High & Low
• New York Killzone High & Low
• Monday Range High & Low values
We will prefer SFP formations that occur when these levels are swept. When Key Levels are violated, an information label appears on the screen.
Blocks / Zones
To strengthen our hand, we will use three types of blocks/zones, either with Key Levels or separately. When an SFP structure is formed in these areas (along with bias and breakout confirmation), our expectation is for the price to continue in our desired direction. These regions are:
1. Mitigation Blocks (Mtg)
o (Details can be found in the cd_VWAP_mtg_Cx indicator)
o In short: A second candle, following a bullish candle, crosses its high but fails to close above it. We call this a sweep / SFP. When the price, which was expected to go to the low, instead makes a new high/close, an Mtg block is formed. (Buyers are dominant)
2. FVGs (Fair Value Gaps)
o We use classic FVG structures.
3. Standard Deviation Projection Boxes
o When we get an SFP structure + breakout confirmation (CISD), we use the Standard Deviation Projection to determine our profit-taking and take-profit levels.
o Based on the idea that the price often respects the range between -2 and -2.5 of the projection values, we box this range and use it as our area of interest. (Our expectation is for the price to reverse after reaching this target).
o Let's mark it on the chart.
Confirmation
To summarize what has been explained so far: we look for the price to form an SFP structure in levels/zones we deem important, aligned with our bias, and for the breakout to be confirmed with a CISD.
No single component is strong on its own, but the success rate increases when they occur together.
We observe the following as additional confirmation along with the CISD: a new Mtg block forming in the direction of the breakout, high-volume movement (with FVG and a large body), and respect for VWAPs, the resistance/support line, and the defense block.
Additional Confirmations with Breakouts:
• Defence block, new mtg and VWAP
• Resistance / Support Line:
Indicator Signals
The indicator marks all formed sweeps, selected key levels, blocks, the projection, and CISD confirmations on the screen. The candle where the CISD confirmation occurs is indicated by an arrow.
• Arrows with double short lines signify a CISD that follows an SFP occurring at a Key Level.
• All other CISD candle indications are shown with single-line arrows.
Trade Management
When selecting profit targets in trades (preferably), the projection, opposing blocks, and structures that have formed are taken into account. Do not neglect to look at the structures that have formed against you when entering a trade.
Menu Settings:
• For Mtg blocks, the trading timeframe or a higher timeframe can be selected.
• FVGs formed in the current timeframe are displayed when the price creates an SFP (in "Fvg" option).
• Deviation boxes are displayed when the price creates an SFP (in box).
• The SAR HTF setting (H1) for scalp trades may vary depending on the pair. Users trying trades on higher timeframes should increase the HTF setting.
o Example: If you are looking for a trade with an SFP structure on H1, the SAR HTF setting should be H4 or higher.
• VWAP lines are refreshed starting from the candle that executed the sweep when the price forms an SFP. The only setting to adjust is the source selection setting (hlc3 is selected).
• Time frames and Killzone / Special Zone settings for Key Levels can be changed/should be checked.
Alarms / Alerts:
The conditions that will trigger an alert can be selected from the menu.
• To receive an alert aligned with the bias, the "Alignment with bias" checkbox must be selected.
• The alert should be set on the timeframe where you plan to enter the trade.
• The display options do not affect the alarm conditions. (Example: FVGs are monitored even when the menu selection is "off").
• If the necessary conditions are met, the alarm is triggered on the new candle that opens after the CISD confirmation.
• The alarm will not be triggered more than once at the same Key Level.
The user can preferably select alerts:
• Bias-aligned or Bias-independent
• Sweep (without waiting for CISD)
• Sweep + CISD (without looking for other conditions)
• Sweep + Key Level + CISD (the swept level is a Key Level)
• Sweep + Mtg / Fvg / Dev. + CISD (SFP formed in any of the blocks)
• Sweep + Mtg + CISD (SFP formed in the Mtg block)
• Sweep + Fvg + CISD (SFP formed inside the FVG)
• Sweep + Deviation Box + CISD (SFP formed inside the Dev. Box)
• Sweep + Key Level + Mtg / Fvg / Dev. + CISD (SFP formed simultaneously at a Key Level and any of the blocks)
Trade Example:
• Conditions: Bias-aligned + Sweep + Mtg/Fvg/Dev (at least one) + CISD
• Extra Confirmations: Respect for the Defense Block + Respect for VWAP
• Target (TP): Projection between -2 and -2.5
I welcome your thoughts and suggestions regarding my indicator, which I believe will be successful in the long run by adhering to uncompromising risk management and a strict trading plan.
Happy Trading!
Time Based LiquidityTime Based Liquidity + Key Opens. Plots the High and Low of Monthly - Weekly - Daily - Asia - London. Key Opens - Monthly Open - Weekly Open - Midnight Open - Cycle Open - 9:30 Open.
JonnyFutures ScalpomaticThis indicator combines Fair Value Gap (FVG) detection with Exponential Moving Average (EMA) signals to help identify potential trade entry points based on market inefficiencies and trend direction.
⚙️ Main Components
1. EMAs
Two EMAs are calculated:
EMA 20 (short-term trend)
EMA 50 (medium-term trend)
ema20 = ta.ema(close, len20)
ema50 = ta.ema(close, len50)
These are plotted on the chart:
Orange line = EMA 20
Purple line = EMA 50
2. Fair Value Gaps (FVGs)
The script looks for gaps in price structure (imbalances):
Bullish FVG → when the high from two bars ago is less than the current bar’s low
→ Indicates a potential bullish inefficiency.
Bearish FVG → when the low from two bars ago is greater than the current bar’s high
→ Indicates a potential bearish inefficiency.
bullishFVG = high < low
bearishFVG = low > high
When found, the background color changes:
Light Green for bullish FVGs
Light Red for bearish FVGs
bgcolor(bullishFVG ? color.new(color.green,90) : na)
bgcolor(bearishFVG ? color.new(color.red,90) : na)
3. EMA Crossover Signals
The script plots visual buy/sell markers when the closing price crosses above or below each EMA:
For EMA 20:
✅ Long signal (triangle up, lime): close crosses above EMA 20
❌ Short signal (triangle down, red): close crosses below EMA 20
For EMA 50:
✅ Long signal (triangle up, aqua): close crosses above EMA 50
❌ Short signal (triangle down, maroon): close crosses below EMA 50
These signals help identify potential trend-following entries or exits.
📈 How to Use It
Trend Confirmation:
Watch the EMAs — if EMA20 > EMA50, the trend is generally bullish; if EMA20 < EMA50, it’s bearish.
FVG Zones:
When a bullish or bearish FVG appears, it highlights potential retracement zones where price may rebalance before continuing the trend.
Entry Timing:
Combine FVGs with EMA cross signals for confluence:
Long bias → bullish FVG + price crossing above EMA 20 or 50.
Short bias → bearish FVG + price crossing below EMA 20 or 50.
🎯 Summary
This indicator:
Detects Fair Value Gaps and shades them visually.
Plots EMA 20 and EMA 50 to define short- and mid-term trends.
Marks entry/exit signals when price crosses these EMAs.
Is designed for trend-following trades with FVG confirmation






















