OBV & AD Oscillators with Dual Smoothing OptionsOn Balance Volume and Accumulation/Distribution
Overlaid into 1 and then some,
Now it is an oscillator!
3 customizable moving average types
- Ehlers Deviation Scaled Moving Average
- Volatility Dynamic Moving Average
- Simple Moving Average
Each with customizable periods
And with the ability to overlay a second set too
Default Settings have a longer period MA of 377 using Ehlers DSMA to better capture the standard view of OBV and A/D.
An extra overlay of a shorter period using a Volatility DMA uses Average True Range with its own custom settings, seeks to act more as an RSI
Indicadores de Banda
Mongoose Yield Spread Dashboard v5 – Labeled, Alerted, ReadableCurveGuard: Mongoose Edition
Track the macro tide before it turns.
This tool visualizes the three most-watched U.S. Treasury yield curve spreads:
2s10s (10Y - 2Y)
5s30s (30Y - 5Y)
3M10Y (10Y - 3M)
Each spread is plotted with dynamic color logic, inversion alerts, and floating labels. Background shading highlights historical inversion zones to help spot macro regime shifts in real time.
✅ Alert-ready
✅ Dark mode optimized
✅ Floating labels
✅ Clean layout for fast macro insight
📌 For educational and informational purposes only.
This script does not provide financial advice or trade recommendations.
Red/Green Candle at Day High/Low (Exact Match)Red/Green Candle at Day High/Low (Exact Match) is a custom TradingView indicator that highlights specific candlestick patterns in relation to the daily high and low price levels.
IFG MASTER SIGNALSignal for people to test various trend pattern analysis techniques and research. This is for research purposes only. Not financial advice.
M2 Global Liquidity AdjustedM2 Global Adjusted by @ivanpratx is a custom indicator designed to track aggregated global liquidity using M2 money supply data from the world's major economies. It visualizes both the current state of global liquidity and a forward-shifted version (3 months ahead) to help anticipate market movements.
This tool is particularly valuable for analyzing Bitcoin due to its strong correlation with global liquidity trends in recent years. By observing the forward-shifted M2 line, traders and analysts can identify potential macro-driven inflection points before they occur in price action, offering a leading perspective on market cycles.
The indicator combines M2 data from the US, China, Eurozone, Japan, and the UK—converted to a common base—to create a unified global liquidity view. It serves as a practical, high-level signal for assessing risk appetite, market expansion or contraction phases, and major turning points in crypto and broader asset classes.
BTC Trading RobotOverview
This Pine Script strategy is designed for trading Bitcoin (BTC) by placing pending orders (BuyStop and SellStop) based on local price extremes. The script also implements a trailing stop mechanism to protect profits once a position becomes sufficiently profitable.
________________________________________
Inputs and Parameter Setup
1. Trading Profile:
o The strategy is set up specifically for BTC trading.
o The systemType input is set to 1, which means the strategy will calculate trade parameters using the BTC-specific inputs.
2. Common Trading Inputs:
o Risk Parameters: Although RiskPercent is defined, its actual use (e.g., for position sizing) isn’t implemented in this version.
o Trading Hours Filter:
SHInput and EHInput let you restrict trading to a specific hour range. If these are set (non-zero), orders will only be placed during the allowed hours.
3. BTC-Specific Inputs:
o Take Profit (TP) and Stop Loss (SL) Percentages:
TPasPctBTC and SLasPctBTC are used to determine the TP and SL levels as a percentage of the current price.
o Trailing Stop Parameters:
TSLasPctofTPBTC and TSLTgrasPctofTPBTC determine when and by how much a trailing stop is applied, again as percentages of the TP.
4. Other Parameters:
o BarsN is used to define the window (number of bars) over which the local high and low are calculated.
o OrderDistPoints acts as a buffer to prevent the entry orders from being triggered too early.
________________________________________
Trade Parameter Calculation
• Price Reference:
o The strategy uses the current closing price as the reference for calculations.
• Calculation of TP and SL Levels:
o If the systemType is set to BTC (value 1), then:
Take Profit Points (Tppoints) are calculated by multiplying the current price by TPasPctBTC.
Stop Loss Points (Slpoints) are calculated similarly using SLasPctBTC.
A buffer (OrderDistPoints) is set to half of the take profit points.
Trailing Stop Levels:
TslPoints is calculated as a fraction of the TP (using TSLTgrasPctofTPBTC).
TslTriggerPoints is similarly determined, which sets the profit level at which the trailing stop will start to activate.
________________________________________
Time Filtering
• Session Control:
o The current hour is compared against SHInput (start hour) and EHInput (end hour).
o If the current time falls outside the allowed window, the script will not place any new orders.
________________________________________
Entry Orders
• Local Price Extremes:
o The strategy calculates a local high and local low using a window of BarsN * 2 + 1 bars.
• Placing Stop Orders:
o BuyStop Order:
A long entry is triggered if the current price is less than the local high minus the order distance buffer.
The BuyStop order is set to trigger at the level of the local high.
o SellStop Order:
A short entry is triggered if the current price is greater than the local low plus the order distance buffer.
The SellStop order is set to trigger at the level of the local low.
Note: Orders are only placed if there is no current open position and if the session conditions are met.
________________________________________
Trailing Stop Logic
Once a position is open, the strategy monitors profit levels to protect gains:
• For Long Positions:
o The script calculates the profit as the difference between the current price and the average entry price.
o If this profit exceeds the TslTriggerPoints threshold, a trailing stop is applied by placing an exit order.
o The stop price is set at a distance below the current price, while a limit (profit target) is also defined.
• For Short Positions:
o The profit is calculated as the difference between the average entry price and the current price.
o A similar trailing stop exit is applied if the profit exceeds the trigger threshold.
________________________________________
Summary
In essence, this strategy works by:
• Defining entry levels based on recent local highs and lows.
• Placing pending stop orders to enter the market when those levels are breached.
• Filtering orders by time, ensuring trades are only taken during specified hours.
• Implementing a trailing stop mechanism to secure profits once the trade moves favorably.
This approach is designed to automate BTC trading based on price action and dynamic risk management, although further enhancements (like dynamic position sizing based on RiskPercent) could be added for a more complete risk management system.
Estrategia Scalping Oro (XAU/USD) 5M (Compra y Venta)Gold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minute
DI+/- Cross Strategy with ATR SL and 2% TPDI+/- Cross Strategy with ATR Stop Loss and 2% Take Profit
📝 Script Description for Publishing:
This strategy is based on the directional movement of the market using the Average Directional Index (ADX) components — DI+ and DI- — to generate entry signals, with clearly defined risk and reward targets using ATR-based Stop Loss and Fixed Percentage Take Profit.
🔍 How it works:
Buy Signal: When DI+ crosses above 40, signaling strong bullish momentum.
Sell Signal: When DI- crosses above 40, indicating strong bearish momentum.
Stop Loss: Dynamically calculated using ATR × 1.5, to account for market volatility.
Take Profit: Fixed at 2% above/below the entry price, for consistent reward targeting.
🧠 Why it’s useful:
Combines momentum breakout logic with volatility-based risk management.
Works well on trending assets, especially when combined with higher timeframe filters.
Clean BUY and SELL visual labels make it easy to interpret and backtest.
✅ Tips for Use:
Use on assets with clear trends (e.g., major forex pairs, trending stocks, crypto).
Best on 30m – 4H timeframes, but can be customized.
Consider combining with other filters (e.g., EMA trend direction or Bollinger Bands) for even better accuracy.
Bull/Bear Trap Detector via CVDThis script automatically detects "bull traps" and "bear traps" on a chart by analyzing the divergence of the CVD (cumulative volume delta) between the spot and perpetual markets. More specifically:
Data Collection:
The script retrieves prices and volumes (as well as open interest for some) from various exchanges (e.g., Binance, Bybit, Coinbase) for both the spot and perp markets. It then calculates the CVD over a defined period and determines the divergence between the two.
Filters and Conditions:
It combines several optional filters such as the RSI (to signal overbought or oversold conditions), a volume filter, a candlestick pattern (reversal) filter, and an open interest filter.
A bull trap is detected when the price exceeds a recent high, the CVD divergence is negative (below a threshold), and—if applicable—the other filters (RSI, volume, pattern, OI) are met.
A bear trap is defined in a similar manner (price below a recent low and positive CVD divergence).
Confirmation and Scoring:
Traps are confirmed if the previous candle confirms the breakout (for example, if the price closes lower for a bull trap). A confidence score is calculated by aggregating multiple signals (conditions on price, divergence, RSI, volume, etc.) and is displayed as stars on a floating label.
Display and Alerts:
The script draws a legend table that explains the icons and colors used (colored bars for confirmed or unconfirmed traps, lines indicating CVD divergences, etc.). Specific candles are highlighted to emphasize the confirmed traps, and alerts are generated when a confirmed trap is detected.
In summary, this script is used to identify and signal potentially deceptive reversal conditions in the market by combining volume analysis (via the CVD) with other technical indicators, helping traders spot risky trading signals.
Long Short Momentum with Signals
Long and Short momentum
WHEN SHORT MOMENTUM CHANGES 2.0 POINTS and long term changes 5 points on day basis write A for Bullish and B for Bearish on Main Price chart
WHEN SHORT MOMENTUM CHANGES .30 per hour POINTS and long term changes 1 points on 1 hour basis. Put a green dot for Bull and red for bear in short term and for long termRespectively on price chart
PMO + Daily SMA(55)PMO + Daily SMA(55)
This script plots the Price Momentum Oscillator (PMO) using the classic DecisionPoint methodology, along with its signal line and the 55-period Simple Moving Average (SMA) of the daily PMO.
PMO is a smoothed momentum indicator that measures the rate of change and helps identify trend direction and strength. The signal line is an EMA of the PMO, commonly used for crossover signals.
The 55-period SMA of the daily PMO is added as a longer-term trend filter. It remains based on daily data, even when applied to intraday charts, making it useful for aligning lower timeframe trades with higher timeframe momentum.
Ideal for swing and position traders looking to combine short-term momentum with broader trend context.
CustomIndex🛠️ How to Use
Open any chart on TradingView.
Add this indicator from your script library.
Click the ⚙️ settings icon to:
Choose up to 7 custom symbols
Assign a weight to each stock (weights should ideally total 1.00)
Enable Normalization to base the index at 100 for easier comparison
Optional:
Enable EMA 10
Enable EMA 20
📦 Example Setup
Step 1: Choose Your Stocks
Replace the default tickers with those from your target sector.
Step 2: Set Your Weights
Choose one of the following methods:
Market Cap Weighting
Calculate each stock's market capitalization as a percentage of the total.
Example: If stock A = 10,000 and total market cap = 50,000 → weight = 0.2
Liquidity Weighting
Use the average traded value (price × volume over a fixed period) and normalize so weights sum to 1.
Equal Weighting
Assign the same value to each stock (e.g., for 7 stocks: 1 ÷ 7 ≈ 0.1428)
⚠️ Notes & Disclaimer
This index is custom-built. Sector relevance depends on your symbol selection.
Always verify the appropriateness of your inputs.
For consistent results, ensure total weights sum to 1.00.
EMA+EMA+ (Golden & Death Cross Visualizer)
Enhance your chart with intelligent EMA cross detection. This script highlights 50/200 EMA Golden and Death Crosses, with optional filters using RSI and MACD for stronger signal confluence. Smart labels include RSI/MACD values for extra context, and background zones help visualize the significance of each cross. Customize duration, visibility, and filter sensitivity to suit your strategy.
Nifty Advance/Decline Ratio - First 20 StocksNifty 20 Advance/Decline Ratio Indicator
This Pine Script tracks the Advance/Decline Ratio of the top 20 Nifty stocks (by weightage as of March 31, 2025). It helps gauge the market's strength by comparing the number of advancing vs. declining stocks among major Nifty heavyweights. The script calculates and plots the ratio, with a reference line at 1 (neutral point). This indicator resets daily and provides insights into overall market trends based on the performance of the top Nifty stocks.
Key Features:
Tracks advance/decline movements of top 20 Nifty stocks.
Plots the Advance/Decline Ratio on the chart.
Resets daily for fresh analysis.
ALSHIHRI2025this is buy and sell signal depends on MACD and OBV and SMA, don't use it if you are not expert on technical analysis
SmartTrend Indicator @tradingbauhausOverview
"SmartTrend Indicator @tradingbauhaus" is a technical indicator designed to identify buy and sell signals in trending markets, filtering out ranging conditions through a trend strength analysis. It combines multiple technical analysis tools, including moving averages, RSI, and candlestick patterns, to generate precise entry and exit signals, along with take-profit markers. Additionally, it features a visual trend cloud and a metrics table to provide a comprehensive market analysis.
Purpose and Differentiation
This indicator is tailored for traders looking to trade in markets with clear trends, avoiding false signals during ranging conditions. Unlike traditional indicators that rely solely on moving average crossovers or RSI levels, "SmartTrend Indicator @tradingbauhaus" uses a trend strength filter based on RSI to ensure signals are only generated in markets with sufficient momentum. It also includes confirmation levels (2, 3, 4) to indicate signal strength and primary/secondary take-profit markers for more effective risk management.
How It Works: Detailed Explanation
1. Trend Calculation
-Utilizes two Simple Moving Averages (SMAs): a short SMA (default: 9 periods) and a long SMA (default: 21 periods).
-An uptrend is identified when the short SMA is above the long SMA (trend_up = ma_short > ma_long).
-A downtrend is identified when the short SMA is below the long SMA (trend_down = ma_short < ma_long).
-A trend cloud is plotted between the two SMAs, colored green for uptrends and red for downtrends, providing a clear visual representation of market direction.
2. Trend Strength
-Trend strength is calculated using the Relative Strength Index (RSI) with an adjustable period (default: 14).
-RSI is normalized between -1 and 1: trend_strength = (rsi - 50) / 50.
-Signals are only generated if the trend strength exceeds a user-defined threshold (trend_strength_threshold, default: 0.5), filtering out ranging markets and reducing false signals.
3. Signal Logic
-Buy Signal: Generated when the price crosses above the short SMA (ta.crossover(close, ma_short)), the trend is bullish, RSI is not overbought (rsi < rsi_overbought), and the trend strength is sufficient (strong_trend).
-Sell Signal: Generated when the price crosses below the short SMA (ta.crossunder(close, ma_short)), the trend is bearish, RSI is not oversold (rsi > rsi_oversold), and the trend strength is sufficient.
-Signals are represented by triangles: green below bars for buys and red above bars for sells.
4. Confirmation Levels
-Each signal is assigned a confirmation level (2, 3, or 4) based on RSI levels:
Level 2: Base signal (minimum conditions met).
Level 3: More favorable RSI (below 40 for buys, above 60 for sells).
Level 4: Extreme RSI (below 30 for buys, above 70 for sells).
These levels are displayed as numbers near the signals to indicate their strength.
5. Take-Profit Markers
-Primary (Blue): Generated when the price crosses the long SMA in the opposite direction of the trend (ta.crossunder(close, ma_long) for buys, ta.crossover(close, ma_long) for sells), indicating a potential trend reversal.
-Secondary (Orange): Generated when RSI reaches overbought/oversold levels (ta.crossunder(rsi, rsi_overbought) for buys, ta.crossover(rsi, rsi_oversold) for sells), suggesting a potential correction.
These markers are represented by blue or orange "X" symbols on the chart.
6. Metrics Table
A table in the top-right corner displays key metrics:
Trend Strength: Percentage based on normalized RSI.
Volatility: High or Low, based on the 14-period Average True Range (ATR).
Squeeze: Yes or No, based on the 20-period standard deviation of prices.
Volume Sentiment: Bullish or Bearish, comparing current volume to a 20-period SMA of volume.
Settings
Short MA Length: Default 9. Adjusts the sensitivity of the short SMA.
Long MA Length: Default 21. Adjusts the long SMA for the trend cloud.
RSI Length: Default 14. Sets the period for RSI to measure trend strength.
RSI Overbought/Oversold: Default 70 and 30, respectively. Adjusts levels for signals and secondary markers.
Trend Strength Threshold: Default 0.5. Defines the minimum trend strength for signal generation.
Usage Guidelines
Markets and Timeframes:
Suitable for stocks, forex, cryptocurrencies, and futures.
Recommended for 5-minute to 1-hour timeframes for day trading, and 4-hour to daily for swing trading.
Entry Strategy:
Use buy signals (green triangle) and sell signals (red triangle) as entry points.
Pay attention to the confirmation level (2, 3, 4) to gauge signal strength.
Exit Strategy:
Use primary take-profit markers (blue) for exits based on potential trend changes.
Use secondary markers (orange) for partial exits or corrections.
Additional Analysis:
Check the metrics table for trend strength, volatility, and volume sentiment before trading.
Combine with other indicators (e.g., support/resistance levels) for additional confirmation.
Disclaimer
Disclaimer: This indicator is for informational and educational purposes only and is not financial advice. Trading carries a high risk of loss, and past price movements do not guarantee future results. Always do your own research and consider consulting a financial advisor before making trading decisions. The creator of this indicator is not responsible for any financial losses you may experience while using it.
Stochastic Order Flow Momentum [ScorsoneEnterprises]This indicator implements a stochastic model of order flow using the Ornstein-Uhlenbeck (OU) process, combined with a Kalman filter to smooth momentum signals. It is designed to capture the dynamic momentum of volume delta, representing the net buying or selling pressure per bar, and highlight potential shifts in market direction. The volume delta data is sourced from TradingView’s built-in functionality:
www.tradingview.com
For a deeper dive into stochastic processes like the Ornstein-Uhlenbeck model in financial contexts, see these research articles: arxiv.org and arxiv.org
The SOFM tool aims to reveal the momentum and acceleration of order flow, modeled as a mean-reverting stochastic process. In markets, order flow often oscillates around a baseline, with bursts of buying or selling pressure that eventually fade—similar to how physical systems return to equilibrium. The OU process captures this behavior, while the Kalman filter refines the signal by filtering noise. Parameters theta (mean reversion rate), mu (mean level), and sigma (volatility) are estimated by minimizing a squared-error objective function using gradient descent, ensuring adaptability to real-time market conditions.
How It Works
The script combines a stochastic model with signal processing. Here’s a breakdown of the key components, including the OU equation and supporting functions.
// Ornstein-Uhlenbeck model for volume delta
ou_model(params, v_t, lkb) =>
theta = clamp(array.get(params, 0), 0.01, 1.0)
mu = clamp(array.get(params, 1), -100.0, 100.0)
sigma = clamp(array.get(params, 2), 0.01, 100.0)
error = 0.0
v_pred = array.new(lkb, 0.0)
array.set(v_pred, 0, array.get(v_t, 0))
for i = 1 to lkb - 1
v_prev = array.get(v_pred, i - 1)
v_curr = array.get(v_t, i)
// Discretized OU: v_t = v_{t-1} + theta * (mu - v_{t-1}) + sigma * noise
v_next = v_prev + theta * (mu - v_prev)
array.set(v_pred, i, v_next)
v_curr_clean = na(v_curr) ? 0 : v_curr
v_pred_clean = na(v_next) ? 0 : v_next
error := error + math.pow(v_curr_clean - v_pred_clean, 2)
error
The ou_model function implements a discretized Ornstein-Uhlenbeck process:
v_t = v_{t-1} + theta (mu - v_{t-1})
The model predicts volume delta (v_t) based on its previous value, adjusted by the mean-reverting term theta (mu - v_{t-1}), with sigma representing the volatility of random shocks (approximated in the Kalman filter).
Parameters Explained
The parameters theta, mu, and sigma represent distinct aspects of order flow dynamics:
Theta:
Definition: The mean reversion rate, controlling how quickly volume delta returns to its mean (mu). Constrained between 0.01 and 1.0 (e.g., clamp(array.get(params, 0), 0.01, 1.0)).
Interpretation: A higher theta indicates faster reversion (short-lived momentum), while a lower theta suggests persistent trends. Initial value is 0.1 in init_params.
In the Code: In ou_model, theta scales the pull toward \mu, influencing the predicted v_t.
Mu:
Definition: The long-term mean of volume delta, representing the equilibrium level of net buying/selling pressure. Constrained between -100.0 and 100.0 (e.g., clamp(array.get(params, 1), -100.0, 100.0)).
Interpretation: A positive mu suggests a bullish bias, while a negative mu indicates bearish pressure. Initial value is 0.0 in init_params.
In the Code: In ou_model, mu is the target level that v_t reverts to over time.
Sigma:
Definition: The volatility of volume delta, capturing the magnitude of random fluctuations. Constrained between 0.01 and 100.0 (e.g., clamp(array.get(params, 2), 0.01, 100.0)).
Interpretation: A higher sigma reflects choppier, noisier order flow, while a lower sigma indicates smoother behavior. Initial value is 0.1 in init_params.
In the Code: In the Kalman filter, sigma contributes to the error term, adjusting the smoothing process.
Summary:
theta: Speed of mean reversion (how fast momentum fades).
mu: Baseline order flow level (bullish or bearish bias).
sigma: Noise level (variability in order flow).
Other Parts of the Script
Clamp
A utility function to constrain parameters, preventing extreme values that could destabilize the model.
ObjectiveFunc
Defines the objective function (sum of squared errors) to minimize during parameter optimization. It compares the OU model’s predicted volume delta to observed data, returning a float to be minimized.
How It Works: Calls ou_model to generate predictions, computes the squared error for each timestep, and sums it. Used in optimization to assess parameter fit.
FiniteDifferenceGradient
Calculates the gradient of the objective function using finite differences. Think of it as finding the "slope" of the error surface for each parameter. It nudges each parameter (theta, mu, sigma) by a small amount (epsilon) and measures the change in error, returning an array of gradients.
Minimize
Performs gradient descent to optimize parameters. It iteratively adjusts theta, mu, and sigma by stepping down the "hill" of the error surface, using the gradients from FiniteDifferenceGradient. Stops when the gradient norm falls below a tolerance (0.001) or after 20 iterations.
Kalman Filter
Smooths the OU-modeled volume delta to extract momentum. It uses the optimized theta, mu, and sigma to predict the next state, then corrects it with observed data via the Kalman gain. The result is a cleaner momentum signal.
Applied
After initializing parameters (theta = 0.1, mu = 0.0, sigma = 0.1), the script optimizes them using volume delta data over the lookback period. The optimized parameters feed into the Kalman filter, producing a smoothed momentum array. The average momentum and its rate of change (acceleration) are calculated, though only momentum is plotted by default.
A rising momentum suggests increasing buying or selling pressure, while a flattening or reversing momentum indicates fading activity. Acceleration (not plotted here) could highlight rapid shifts.
Tool Examples
The SOFM indicator provides a dynamic view of order flow momentum, useful for spotting directional shifts or consolidation.
Low Time Frame Example: On a 5-minute chart of SEED_ALEXDRAYM_SHORTINTEREST2:NQ , a rising momentum above zero with a lookback of 5 might signal building buying pressure, while a drop below zero suggests selling dominance. Crossings of the zero line can mark transitions, though the focus is on trend strength rather than frequent crossovers.
High Time Frame Example: On a daily chart of NYSE:VST , a sustained positive momentum could confirm a bullish trend, while a sharp decline might warn of exhaustion. The mean-reverting nature of the OU process helps filter out noise on longer scales. It doesn’t make the most sense to use this on a high timeframe with what our data is.
Choppy Markets: When momentum oscillates near zero, it signals indecision or low conviction, helping traders avoid whipsaws. Larger deviations from zero suggest stronger directional moves to act on, this is on $STT.
Inputs
Lookback: Users can set the lookback period (default 5) to adjust the sensitivity of the OU model and Kalman filter. Shorter lookbacks react faster but may be noisier; longer lookbacks smooth more but lag slightly.
The user can also specify the timeframe they want the volume delta from. There is a default way to lower and expand the time frame based on the one we are looking at, but users have the flexibility.
No indicator is 100% accurate, and SOFM is no exception. It’s an estimation tool, blending stochastic modeling with signal processing to provide a leading view of order flow momentum. Use it alongside price action, support/resistance, and your own discretion for best results. I encourage comments and constructive criticism.
Trend Confirmation StrategyComprehensive Trend Confirmation System
Indicator Features (Professional Description):
Comprehensive Trend Confirmation System is a versatile indicator meticulously designed to identify and confirm trend-based trading opportunities with exceptional efficiency. By seamlessly integrating analysis from a suite of leading technical tools, it aims to provide superior accuracy and reliability for informed trading decisions.
Key Features:
Intelligent Trend Identification: A robust trend analysis system that considers:
Adjustable Moving Averages: Utilizes three customizable moving average periods (fast, medium, slow) with user-selectable lengths and types (SMA, EMA, WMA, VWMA) to accurately determine the prevailing trend across different timeframes.
In-depth Price Action Analysis: Examines the formation of Higher Highs/Higher Lows (uptrend) and Lower Highs/Lower Lows (downtrend) to validate price direction.
Average Directional Index (ADX) with Adjustable Threshold: Measures the strength of a trend and employs the comparison between +DI and -DI to pinpoint the dominant momentum, featuring a customizable threshold to filter out weak signals.
Multi-Factor Signal Confirmation System: Enhances the reliability of trading signals through verification from four distinct confirmation tools:
Volume Analysis with Average Reference: Assesses whether trading volume supports price movements by comparing it to historical averages.
Relative Strength Index (RSI) with Reference Levels: Measures price momentum and identifies overbought/oversold conditions to confirm trend strength.
Moving Average Convergence Divergence (MACD) Divergence and Crossovers: Detects shifts in momentum and potential trend changes through the relationship between the MACD line and the Signal line.
Stochastic Oscillator with Reference Levels: Measures the current price's position relative to its historical range to evaluate overbought/oversold conditions and potential reversal opportunities.
Intelligent Signal Generation Logic:
Buy Signal: Triggered when a strong uptrend is identified (meeting defined criteria) and confirmed by at least three out of the four confirmation tools.
Sell Signal: Triggered when a strong downtrend is identified (meeting defined criteria) and confirmed by at least three out of the four confirmation tools.
User-Friendly Visualizations:
Moving Averages (MA): Displays three MA lines on the chart with user-configurable colors (default: fast-blue, medium-orange, slow-red) for easy visual trend analysis.
Clear Buy and Sell Signal Symbols: Presents distinct green upward-pointing triangles for buy signals and red downward-pointing triangles for sell signals at the corresponding candlestick.
Dynamic Candlestick Color Coding: Candlesticks are dynamically colored green upon a buy signal and red upon a sell signal for quick identification of trading opportunities.
Highly Customizable Parameters: Users have extensive control over the indicator's parameters, including:
Lengths and types of Moving Averages.
Length and Threshold of the ADX.
Length of the RSI.
Parameters for the MACD (Fast Length, Slow Length, Signal Length).
Parameters for the Stochastic Oscillator (%K Length, %D Length, Smoothing).
Ideal For:
Traders seeking a robust tool to accurately identify and confirm market trends.
Individuals aiming to reduce false signals and enhance the precision of their trading decisions.
Traders employing trend-following strategies in markets with clear directional movement.
Important Note:
While Comprehensive Trend Confirmation System is engineered to improve trading accuracy, no indicator can guarantee 100% profitable trades. Users are advised to utilize this indicator in conjunction with relevant fundamental analysis and sound risk management practices for optimal trading outcomes.
Order Flow Hawkes Process [ScorsoneEnterprises]This indicator is an implementation of the Hawkes Process. This tool is designed to show the excitability of the different sides of volume, it is an estimation of bid and ask size per bar. The code for the volume delta is from www.tradingview.com
Here’s a link to a more sophisticated research article about Hawkes Process than this post arxiv.org
This tool is designed to show how excitable the different sides are. Excitability refers to how likely that side is to get more activity. Alan Hawkes made Hawkes Process for seismology. A big earthquake happens, lots of little ones follow until it returns to normal. Same for financial markets, big orders come in, causing a lot of little orders to come. Alpha, Beta, and Lambda parameters are estimated by minimizing a negative log likelihood function.
How it works
There are a few components to this script, so we’ll go into the equation and then the other functions used in this script.
hawkes_process(params, events, lkb) =>
alpha = clamp(array.get(params, 0), 0.01, 1.0)
beta = clamp(array.get(params, 1), 0.1, 10.0)
lambda_0 = clamp(array.get(params, 2), 0.01, 0.3)
intensity = array.new_float(lkb, 0.0)
events_array = array.new_float(lkb, 0.0)
for i = 0 to lkb - 1
array.set(events_array, i, array.get(events, i))
for i = 0 to lkb - 1
sum_decay = 0.0
current_event = array.get(events_array, i)
for j = 0 to i - 1
time_diff = i - j
past_event = array.get(events_array, j)
decay = math.exp(-beta * time_diff)
past_event_val = na(past_event) ? 0 : past_event
sum_decay := sum_decay + (past_event_val * decay)
array.set(intensity, i, lambda_0 + alpha * sum_decay)
intensity
The parameters alpha, beta, and lambda all represent a different real thing.
Alpha (α):
Definition: Alpha represents the excitation factor or the magnitude of the influence that past events have on the future intensity of the process. In simpler terms, it measures how much each event "excites" or triggers additional events. It is constrained between 0.01 and 1.0 (e.g., clamp(array.get(params, 0), 0.01, 1.0)). A higher alpha means past events have a stronger influence on increasing the intensity (likelihood) of future events. Initial value is set to 0.1 in init_params. In the hawkes_process function, alpha scales the contribution of past events to the current intensity via the term alpha * sum_decay.
Beta (β):
Definition: Beta controls the rate of exponential decay of the influence of past events over time. It determines how quickly the effect of a past event fades away. It is constrained between 0.1 and 10.0 (e.g., clamp(array.get(params, 1), 0.1, 10.0)). A higher beta means the influence of past events decays faster, while a lower beta means the influence lingers longer. Initial value is set to 0.1 in init_params. In the hawkes_process function, beta appears in the decay term math.exp(-beta * time_diff), which reduces the impact of past events as the time difference (time_diff) increases.
Lambda_0 (λ₀):
Definition: Lambda_0 is the baseline intensity of the process, representing the rate at which events occur in the absence of any excitation from past events. It’s the "background" rate of the process. It is constrained between 0.01 and 0.3 .A higher lambda_0 means a higher natural frequency of events, even without the influence of past events. Initial value is set to 0.1 in init_params. In the hawkes_process function, lambda_0 sets the minimum intensity level, to which the excitation term (alpha * sum_decay) is added: lambda_0 + alpha * sum_decay
Alpha (α): Strength of event excitation (how much past events boost future events).
Beta (β): Rate of decay of past event influence (how fast the effect fades).
Lambda_0 (λ₀): Baseline event rate (background intensity without excitation).
Other parts of the script.
Clamp
The clamping function is a simple way to make sure parameters don’t grow or shrink too much.
ObjectiveFunction
This function defines the objective function (negative log-likelihood) to minimize during parameter optimization.It returns a float representing the negative log-likelihood (to be minimized).
How It Works:
Calls hawkes_process to compute the intensity array based on current parameters.Iterates over the lookback period:lambda_t: Intensity at time i.event: Event magnitude at time i.Handles na values by replacing them with 0.Computes log-likelihood: event_clean * math.log(math.max(lambda_t_clean, 0.001)) - lambda_t_clean.Ensures lambda_t_clean is at least 0.001 to avoid log(0).Accumulates into log_likelihood.Returns -log_likelihood (negative because the goal is to minimize, not maximize).
It is used in the optimization process to evaluate how well the parameters fit the observed event data.
Finite Difference Gradient:
This function calculates the gradient of the objective function we spoke about. The gradient is like a directional derivative. Which is like the direction of the rate of change. Which is like the direction of the slope of a hill, we can go up or down a hill. It nudges around the parameter, and calculates the derivative of the parameter. The array of these nudged around parameters is what is returned after they are optimized.
Minimize:
This is the function that actually has the loop and calls the Finite Difference Gradient each time. Here is where the minimizing happens, how we go down the hill. If we are below a tolerance, we are at the bottom of the hill.
Applied
After an initial guess the parameters are optimized with a mix of bid and ask levels to prevent some over-fitting for each side while keeping some efficiency. We initialize two different arrays to store the bid and ask sizes. After we optimize the parameters we clamp them for the calculations. We then get the array of intensities from the Hawkes Process of bid and ask and plot them both. When the bids are greater than the ask it represents a bullish scenario where there are likely to be more buy than sell orders, pushing up price.
Tool examples:
The idea is that when the bid side is more excitable it is more likely to see a bullish reaction, when the ask is we see a bearish reaction.
We see that there are a lot of crossovers, and I picked two specific spots. The idea of this isn’t to spot crossovers but avoid chop. The values are either close together or far apart. When they are far, it is a classification for us to look for our own opportunities in, when they are close, it signals the market can’t pick a direction just yet.
The value works just as well on a higher timeframe as on a lower one. Hawkes Process is an estimate, so there is a leading value aspect of it.
The value works on equities as well, here is NASDAQ:TSLA on a lower time frame with a lookback of 5.
Inputs
Users can enter the lookback value and timeframe.
No tool is perfect, the Hawkes Process value is also not perfect and should not be followed blindly. It is good to use any tool along with discretion and price action.
Multi Oscillator OB/OS Signals v3 - Scope TestIndicator Description: Multi Oscillator OB/OS Signals
Purpose:
The "Multi Oscillator OB/OS Signals" indicator is a TradingView tool designed to help traders identify potential market extremes and momentum shifts by monitoring four popular oscillators simultaneously: RSI, Stochastic RSI, CCI, and MACD. Instead of displaying these oscillators in separate panes, this indicator plots distinct visual symbols directly onto the main price chart whenever specific predefined conditions (typically related to overbought/oversold levels or line crossovers) are met for each oscillator. This provides a consolidated view of potential signals from these different technical tools.
How It Works:
The indicator calculates the values for each of the four oscillators based on user-defined settings (like length periods and price sources) and then checks for specific signal conditions on every bar:
Relative Strength Index (RSI):
It monitors the standard RSI value.
When the RSI crosses above the user-defined Overbought (OB) level (e.g., 70), it plots an "Overbought" symbol (like a downward triangle) above that price bar.
When the RSI crosses below the user-defined Oversold (OS) level (e.g., 30), it plots an "Oversold" symbol (like an upward triangle) below that price bar.
Stochastic RSI:
This works similarly to RSI but is based on the Stochastic calculation applied to the RSI value itself (specifically, the %K line of the Stoch RSI).
When the Stoch RSI's %K line crosses above its Overbought level (e.g., 80), it plots its designated OB symbol (like a downward arrow) above the bar.
When the %K line crosses below its Oversold level (e.g., 20), it plots its OS symbol (like an upward arrow) below the bar.
Commodity Channel Index (CCI):
It tracks the CCI value.
When the CCI crosses above its Overbought level (e.g., +100), it plots its OB symbol (like a square) above the bar.
When the CCI crosses below its Oversold level (e.g., -100), it plots its OS symbol (like a square) below the bar.
Moving Average Convergence Divergence (MACD):
Unlike the others, MACD signals here are not based on fixed OB/OS levels.
It identifies when the main MACD line crosses above its Signal line. This is considered a bullish crossover and is indicated by a specific symbol (like an upward label) plotted below the price bar.
It also identifies when the MACD line crosses below its Signal line. This is a bearish crossover, indicated by a different symbol (like a downward label) plotted above the price bar.
Visualization:
All these signals appear as small, distinct shapes directly on the price chart at the bar where the condition occurred. The shapes, their colors, and their position (above or below the bar) are predefined for each signal type to allow for quick visual identification. Note: In the current version of the underlying code, the size of these shapes is fixed (e.g., tiny) and not user-adjustable via the settings.
Configuration:
Users can access the indicator's settings to customize:
The calculation parameters (Length periods, smoothing, price source) for each individual oscillator (RSI, Stoch RSI, CCI, MACD).
The specific Overbought and Oversold threshold levels for RSI, Stoch RSI, and CCI.
The colors associated with each type of signal (OB, OS, Bullish Cross, Bearish Cross).
(Limitation Note: While settings exist to toggle the visibility of signals for each oscillator individually, due to a technical workaround in the current code, these toggles may not actively prevent the shapes from plotting if the underlying condition is met.)
Alerts:
The indicator itself does not automatically generate pop-up alerts. However, it creates the necessary "Alert Conditions" within TradingView's alert system. This means users can manually set up alerts for any of the specific signals generated by the indicator (e.g., "RSI Overbought Enter," "MACD Bullish Crossover"). When creating an alert, the user selects this indicator, chooses the desired condition from the list provided by the script, and configures the alert actions.
Intended Use:
This indicator aims to provide traders with convenient visual cues for potential over-extension in price (via OB/OS signals) or shifts in momentum (via MACD crossovers) based on multiple standard oscillators. These signals are often used as potential indicators for:
Identifying areas where a trend might be exhausted and prone to a pullback or reversal.
Confirming signals generated by other analysis methods or trading strategies.
Noting shifts in short-term momentum.
Disclaimer: As with any technical indicator, the signals generated should not be taken as direct buy or sell recommendations. They are best used in conjunction with other forms of analysis (price action, trend analysis, volume, fundamental analysis, etc.) and within the framework of a well-defined trading plan that includes risk management. Market conditions can change, and indicator signals can sometimes be false or misleading.
RSI + SMA Strategy (Second Touch Confirmation + Volume Filter)RSI + SMA Strategy (Second Touch Confirmation + Volume Filter)
👉 Optimized for the 3-minute timeframe
This indicator combines the power of the RSI (Relative Strength Index) and its SMA (Simple Moving Average) to generate highly reliable BUY and SELL signals. The strategy is designed to confirm signals only on the second consecutive touch of the overbought (70) and oversold (30) thresholds, reducing false signals caused by sudden market movements. Additionally, it includes a dynamic volume filter, ensuring that signals are generated only during periods of high liquidity.
Key Features
Second Touch RSI:
BUY and SELL signals are generated only after the RSI reaches the overbought/oversold threshold for the second consecutive time, improving accuracy.
Volume Filter:
Signals are confirmed only if the current volume exceeds the 20-period moving average multiplied by a configurable value (volume_multiplier), filtering out low-liquidity moments.
Optimized for Short Timeframes:
Perfect for the 3-minute timeframe, ideal for scalping and intraday trading strategies.
Customizable Parameters:
Adjustable settings for RSI, SMA, overbought/oversold thresholds, and volume filter, making it adaptable to various markets and conditions.
How to Use It
BUY Signal: When RSI touches the oversold threshold (30) for the second consecutive time and crosses above its SMA, with volume higher than average.
SELL Signal: When RSI touches the overbought threshold (70) for the second consecutive time and crosses below its SMA, with volume higher than average.
Upcoming Developments
📢 We will soon release our private strategy!
This strategy will be based on advanced logic and optimized to achieve even more consistent results in volatile markets like cryptocurrencies. Stay tuned for more details!
Disclaimer
This indicator is designed to support decision-making in trading. We recommend testing it on a demo account before using it in live trading. Remember that trading involves risks and does not guarantee profits.
Transient Impact Model [ScorsoneEnterprises]This indicator is an implementation of the Transient Impact Model. This tool is designed to show the strength the current trades have on where price goes before they decay.
Here are links to more sophisticated research articles about Transient Impact Models than this post arxiv.org and arxiv.org
The way this tool is supposed to work in a simple way, is when impact is high price is sensitive to past volume, past trades being placed. When impact is low, it moves in a way that is more independent from past volume. In a more sophisticated system, perhaps transient impact should be calculated for each trade that is placed, not just the total volume of a past bar. I didn't do it to ensure parameters exist and aren’t na, as well as to have more iterations for optimization. Note that the value will change as volume does, as soon as a new candle occurs with no volume, the values could be dramatically different.
How it works
There are a few components to this script, so we’ll go into the equation and then the other functions used in this script.
// Transient Impact Model
transient_impact(params, price_change, lkb) =>
alpha = array.get(params, 0)
beta = array.get(params, 1)
lambda_ = array.get(params, 2)
instantaneous = alpha * volume
transient = 0.0
for t = 1 to lkb - 1
if na(volume )
break
transient := transient + beta * volume * math.exp(-lambda_ * t)
predicted_change = instantaneous + transient
math.pow(price_change - predicted_change, 2)
The parameters alpha, beta, and lambda all represent a different real thing.
Alpha (α):
Represents the instantaneous impact coefficient. It quantifies the immediate effect of the current volume on the price change. In the equation, instantaneous = alpha * volume , alpha scales the current bar's volume (volume ) to determine how much of the price change is due to immediate market impact. A larger alpha suggests that current volume has a stronger instantaneous influence on price.
Beta (β):
Represents the transient impact coefficient.It measures the lingering effect of past volumes on the current price change. In the loop calculating transient, beta * volume * math.exp(-lambda_ * t) shows that beta scales the volume from previous bars (volume ), contributing to a decaying effect over time. A higher beta indicates a stronger influence from past volumes, though this effect diminishes with time due to the exponential decay factor.
Lambda (λ):
Represents the decay rate of the transient impact.It controls how quickly the influence of past volumes fades over time in the transient component. In the term math.exp(-lambda_ * t), lambda determines the rate of exponential decay, where t is the time lag (in bars). A larger lambda means the impact of past volumes decays faster, while a smaller lambda implies a longer-lasting effect.
So in full.
The instantaneous term, alpha * volume , captures the immediate price impact from the current volume.
The transient term, sum of beta * volume * math.exp(-lambda_ * t) over the lookback period, models the cumulative, decaying effect of past volumes.
The total predicted_change combines these two components and is compared to the actual price change to compute an error term, math.pow(price_change - predicted_change, 2), which the script minimizes to optimize alpha, beta, and lambda.
Other parts of the script.
Objective function:
This is a wrapper function with a function to minimize so we get the best alpha, beta, and lambda values. In this case it is the Transient Impact Function, not something like a log-likelihood function, helps with efficiency for a high iteration count.
Finite Difference Gradient:
This function calculates the gradient of the objective function we spoke about. The gradient is like a directional derivative. Which is like the direction of the rate of change. Which is like the direction of the slope of a hill, we can go up or down a hill. It nudges around the parameter, and calculates the derivative of the parameter. The array of these nudged around parameters is what is returned after they are optimized.
Minimize:
This is the function that actually has the loop and calls the Finite Difference Gradient each time. Here is where the minimizing happens, how we go down the hill. If we are below a tolerance, we are at the bottom of the hill.
Applied
After an initial guess, we optimize the parameters and get the transient impact value. This number is huge, so we apply a log to it to make it more readable. From here we need some way to tell if the value is low or high. We shouldn’t use standard deviation because returns are not normally distributed, an IQR is similar and better for non normal data. We store past transient impact values in an array, so that way we can see the 25th and 90th percentiles of the data as a rolling value. If the current transient impact is above the 90th percentile, it is notably high. If below the 25th percentile, notably low. All of these values are plotted so we can use it as a tool.
Tool examples:
The idea around it is that when impact is low, there is room for big money to get size quickly and move prices around.
Here we see the price reacting in the IQR Bands. We see multiple examples where the value above the 90th percentile, the red line, corresponds to continuations in the trend, and below the 25th percentile, the purple line, corresponds to reversals. There is no guarantee these tools will be perfect, that is outlined in these situations, however there is clearly a correlation in this tool and trend.
This tool works on any timeframe, daily as we saw before, or lower like a two minute. The bands don’t represent a direction, like bullish or bearish, we need to determine that by interpreting price action. We see at open and at close there are the highest values for the transient impact. This is to be expected as these are the times with the highest volume of the trading day.
This works on futures as well as equities with the same context. Volume can be attributed to volatility as well. In volatile situations, more volatility comes in, and we can perceive it through the transient impact value.
Inputs
Users can enter the lookback value.
No tool is perfect, the transient impact value is also not perfect and should not be followed blindly. It is good to use any tool along with discretion and price action.
ICT & SMC Multi-Timeframe by [KhedrFX]Transform your trading experience with the ICT & SMC Multi-Timeframe by indicator. This innovative tool is designed for traders who want to harness the power of multi-timeframe analysis, enabling them to make informed trading decisions based on key market insights. By integrating concepts from the Inner Circle Trader (ICT) and Smart Money Concepts (SMC), this indicator provides a comprehensive view of market dynamics, helping you identify potential trading opportunities with precision.
Key Features
- Multi-Timeframe Analysis: Effortlessly switch between various timeframes (5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, daily, and weekly) to capture the full spectrum of market movements.
- High and Low Levels: Automatically calculates and displays the highest and lowest price levels over the last 20 bars, highlighting critical support and resistance zones.
- Market Structure Visualization: Identifies the last swing high and swing low, allowing you to recognize current market trends and potential reversal points.
- Order Block Detection: Detects significant order blocks, pinpointing areas of strong buying or selling pressure that can indicate potential market reversals.
- Custom Alerts: Set alerts for when the price crosses above or below identified order block levels, enabling you to act swiftly on trading opportunities.
How to Use the Indicator
1. Add the Indicator to Your Chart
- Open TradingView.
- Click on the "Indicators" button at the top of the screen.
- Search for "ICT & SMC Multi-Timeframe by " in the search bar.
- Click on the indicator to add it to your chart.
2. Select Your Timeframe
- Use the dropdown menu to choose your preferred timeframe (5, 15, 30, 60, 240, D, W) for analysis.
3. Interpret the Signals
- High Level (Green Line): Represents the highest price level over the last 20 bars, acting as a potential resistance level.
- Low Level (Red Line): Represents the lowest price level over the last 20 bars, acting as a potential support level.
- Last Swing High (Blue Cross): Indicates the most recent significant high, useful for identifying potential reversal points.
- Last Swing Low (Orange Cross): Indicates the most recent significant low, providing insight into market structure.
- Order Block High (Purple Line): Marks the upper boundary of a detected order block, suggesting potential selling pressure.
- Order Block Low (Yellow Line): Marks the lower boundary of a detected order block, indicating potential buying pressure.
4. Set Alerts
- Utilize the alert conditions to receive notifications when the price crosses above or below the order block levels, allowing you to stay informed about potential trading opportunities.
5. Implement Risk Management
- Always use proper risk management techniques. Consider setting stop-loss orders based on the identified swing highs and lows or the order block levels to protect your capital.
Conclusion
The ICT & SMC Multi-Timeframe by indicator is an essential tool for traders looking to enhance their market analysis and decision-making process. By leveraging multi-timeframe insights, market structure visualization, and order block detection, you can navigate the complexities of the market with confidence. Start using this powerful indicator today and take your trading to the next level.
⚠️ Trade Responsibly
This tool helps you analyze the market, but it’s not a guarantee of profits. Always do your own research, manage risk, and trade with caution.
Sahid Strategy v2This script identifies potential buy/sell signals using:
Pivot Points - Detects swing highs/lows (price reversals)
Confirmation Filters - Reduces false signals using:
RSI (momentum)
Moving Average (trend direction)
Optional MACD (trend confirmation)
Key Features
Signal Type Trigger Conditions
BUY - Price makes a swing low (pivot)
Copy
- RSI ≤ 30 (oversold)
- Price above trend MA
- MACD bullish (optional) |
| SELL | - Price makes a swing high (pivot)
- RSI ≥ 70 (overbought)
- Price below trend MA
- MACD bearish (optional) |
Visual Signals
Green "BUY" labels below price bars
Red "SELL" labels above price bars
Purple trend line (20-period EMA/SMA)
Orange/blue circles showing raw pivot points
Optional Tools
Debug Table (top-right): Shows real-time:
RSI value
Price vs MA position
MACD status
Alerts - Triggers audible/visual notifications
Customization
Adjust in settings:
Pivot sensitivity (left/right bars)
RSI levels (30/70 by default)
MA type/length (20-period EMA/SMA)
Toggle MACD filter on/off
Best For: Swing trading in trending markets (1H-4H timeframes). Signals appear faster than classic pivot strategies but still require confirmation from other analysis tools.