All-Time High Marker//@version=5
indicator("All-Time High Marker", overlay=true)
// 計算歷史最高價
allTimeHigh = ta.highest(high, bar_index + 1)
// 如果現價等於歷史最高,就畫個符號
isATH = close >= allTimeHigh
plotshape(isATH, title="All-Time High", style=shape.labelup,
color=color.green, text="ATH", location=location.abovebar)
Wskaźniki i strategie
EMA 4/8/15The 4/8/15 are the main Moving Averages you need. . When it is inside the 4/8, it is moving slowly. If it detaches or launches above the 8, you have an increase in volume and price
Rudra ChakraA readymade template. Helps you to identify trend, momentum at a glance.
Blue dots for +momentum and red for -momentum.
Also the background Green, orange and red indicate the shift in trend. Buy signals indicate more than avg buying in some timeframe.
Trendline Breakouts With Targets [ omerprıme ]Indicator Explanation (English)
This indicator is designed to detect trendline breakouts and provide early trading signals when the price breaks key support or resistance levels.
Trendline Detection
The indicator identifies recent swing highs and lows to construct dynamic trendlines.
These trendlines act as support in an uptrend and resistance in a downtrend.
Breakout Confirmation
When the price closes above a resistance trendline, the indicator generates a bullish breakout signal.
When the price closes below a support trendline, it generates a bearish breakout signal.
Filtering False Signals
To reduce false breakouts, additional conditions (such as candle confirmation, volume filters, or price momentum) can be applied.
Only significant and confirmed breakouts are highlighted.
Trading Logic
Buy signals are triggered when the price breaks upward through resistance with confirmation.
Sell signals are triggered when the price breaks downward through support with confirmation.
EMA 20+50 + MACD Strateji ( omerprıme)EASY BUY-SELL basitçe al -sat yapabileceğiniz macd indikatörü ve ema kullanılmış bir indikatördür unutmayın ki ne kadar basit o kadar verimli.
Moving Averages) to generate trading signals and trend confirmation.
Trend Identification with EMA
Two EMAs are used to determine the overall market trend (commonly a short-term EMA and a long-term EMA).
When the short EMA crosses above the long EMA, it indicates an uptrend.
When the short EMA crosses below the long EMA, it signals a downtrend.
Signal Confirmation with MACD
The MACD line and Signal line are analyzed to detect momentum shifts.
A bullish signal occurs when the MACD line crosses above the Signal line, especially if the EMAs confirm an uptrend.
A bearish signal occurs when the MACD line crosses below the Signal line, especially if the EMAs confirm a downtrend.
Trading Logic
Buy signals appear only when both the EMA trend is bullish and the MACD confirms momentum to the upside.
Sell signals appear only when both the EMA trend is bearish and the MACD confirms momentum to the downside.
Predictive Pivot Matrix OHLC data, integrates volume profile for POC/Value Area tracking (including virgin POC), applies rule-based "ML" scoring to evaluate pivot strength via factors like proximity, volume, touches, trend, and confluence, monitors adaptive success rates, projects 5-day future pivots using trend/volatility, detects overlapping confluence zones, and generates visuals (lines, labels, table), alerts, and buy/sell signals on key crossings.
Advantage RSI PredictorThe Relative Strength Index (RSI) is a widely used momentum oscillator that measures the speed and change of price movements, typically on a scale from 0 to 100, to identify overbought (above 70) or oversold (below 30) conditions. However, its reliance on historical data limits its ability to predict future price movements. To overcome this, an advanced indicator—termed the Advanced RSI Predictor (ARP)—can be developed to provide predictive bands for RSI levels, enhancing its forecasting potential.The ARP leverages machine learning techniques, such as Long Short-Term Memory (LSTM) networks, combined with traditional RSI calculations to forecast future RSI values and establish confidence intervals or bands. These bands represent a range within which the RSI is likely to fluctuate over a specified period, offering traders a probabilistic perspective on momentum shifts. The indicator starts with the standard RSI computation, using a 14-period lookback as a foundation, but enriches this by incorporating additional inputs like moving averages, volatility measures (e.g., Bollinger Bands width), and trading volume. These features are processed through an LSTM model trained on historical price and RSI data to predict future RSI trajectories.The output includes upper and lower predictive bands, typically set at a 95% confidence level, surrounding a central forecasted RSI line. For example, if the current RSI is 45, the ARP might project a band from 40 to 50 over the next five days, indicating potential momentum stability or a range for overbought/oversold thresholds. The bands adapt dynamically to market conditions—narrowing during stable trends and widening during volatile periods—using real-time data updates. This adaptability allows traders to anticipate breakouts or reversals before they manifest on the price chart.Validation can be strengthened through backtesting against historical data, ensuring the ARP’s bands align with significant market turns. This indicator proves especially valuable in trending markets, where traditional RSI levels (e.g., 70 or 30) may falter, offering a sophisticated tool for informed trading or investment decisions.
SuperTrended Moving Averages Strategyself use
used in 1 second timeframe
please let me publish it aaa
Estrategia MACD//@version=6
indicator("Trading Sessions", overlay = true, max_boxes_count = 500, max_lines_count = 500, max_labels_count = 500)
bool showSessionNames = input.bool(true, "Show session names")
bool showSessionOC = input.bool(true, "Draw session open and close lines")
bool showSessionTickRange = input.bool(true, "Show tick range for each session")
bool showSessionAverage = input.bool(true, "Show average price per session")
const string TZ_TOOLTIP_TEXT = "The session's time zone, specified in either GMT notation (e.g., 'GMT-5') or as an IANA time zone database name (e.g., 'America/New_York')."
+ " We recommend the latter since it includes other time-related changes, such as daylight savings."
const string FIRST_SESSION_GROUP = "First Session"
showFirst = input.bool(true, "Show session", group = FIRST_SESSION_GROUP, display = display.none)
firstSessionName = input.string("Tokyo", "Displayed name", group = FIRST_SESSION_GROUP, display = display.none)
firstSessionTime = input.session("0900-1500", "Session time", group = FIRST_SESSION_GROUP, display = display.none)
firstSessionTZ = input.string("Asia/Tokyo", "Session timezone", group = FIRST_SESSION_GROUP, display = display.none, tooltip = TZ_TOOLTIP_TEXT)
firstSessionColor = input.color(color.new(#2962FF, 85), "Session color", group = FIRST_SESSION_GROUP)
const string SECOND_SESSION_GROUP = "Second session"
showSecond = input.bool(true, "Show session", group = SECOND_SESSION_GROUP, display = display.none)
secondSessionName = input.string("London", "Displayed name", group = SECOND_SESSION_GROUP, display = display.none)
secondSessionTime = input.session("0830-1630", "Session time", group = SECOND_SESSION_GROUP, display = display.none)
secondSessionTZ = input.string("Europe/London", "Session timezone", group = SECOND_SESSION_GROUP, display = display.none, tooltip = TZ_TOOLTIP_TEXT)
secondSessionColor = input.color(color.new(#FF9800, 85), "Session color", group = SECOND_SESSION_GROUP)
const string THIRD_SESSION_GROUP = "Third session"
showThird = input.bool(true, "Show session", group = THIRD_SESSION_GROUP, display = display.none)
thirdSessionName = input.string("New York", "Displayed name", group = THIRD_SESSION_GROUP, display = display.none)
thirdSessionTime = input.session("0930-1600", "Session time", group = THIRD_SESSION_GROUP, display = display.none)
thirdSessionTZ = input.string("America/New_York", "Session timezone", group = THIRD_SESSION_GROUP, display = display.none, tooltip = TZ_TOOLTIP_TEXT)
thirdSessionColor = input.color(color.new(#089981, 85), "Session color", group = THIRD_SESSION_GROUP)
type SessionDisplay
box sessionBox
label sessionLabel
line openLine
line avgLine
line closeLine
float sumClose
int numOfBars
type SessionInfo
color color
string name
string session
string timezone
SessionDisplay active = na
method setName(SessionDisplay this, string name) =>
sessionLabel = this.sessionLabel
sessionBox = this.sessionBox
boxText = array.new()
if showSessionTickRange
boxText.push("Range: " + str.tostring((sessionBox.get_top() - sessionBox.get_bottom()) / syminfo.mintick, format.mintick))
if showSessionAverage
boxText.push("Avg: " + str.tostring(this.sumClose / this.numOfBars, format.mintick))
if showSessionNames
boxText.push(name)
sessionLabel.set_y(sessionBox.get_bottom())
sessionLabel.set_text(array.join(boxText, " "))
method createSessionDisplay(SessionInfo this) =>
boxColor = this.color
opaqueColor = color.new(boxColor, 0)
dis = SessionDisplay.new(
sessionBox = box.new(bar_index, high, bar_index, low, bgcolor = boxColor, border_color = na),
sessionLabel = label.new(bar_index, low, "", style = label.style_label_upper_left, textalign = text.align_left, textcolor = opaqueColor, color = color(na)),
openLine = showSessionOC ? line.new(bar_index, open, bar_index, open, color = opaqueColor, style = line.style_dashed, width = 1) : na,
closeLine = showSessionOC ? line.new(bar_index, close, bar_index, close, color = opaqueColor, style = line.style_dashed, width = 1) : na,
avgLine = showSessionAverage ? line.new(bar_index, close, bar_index, close, style = line.style_dotted, width = 2, color = opaqueColor) : na,
sumClose = close,
numOfBars = 1
)
linefill.new(dis.openLine, dis.closeLine, boxColor)
dis.setName(this.name)
this.active := dis
method updateSessionDisplay(SessionInfo this) =>
sessionDisp = this.active
sessionBox = sessionDisp.sessionBox
openLine = sessionDisp.openLine
closeLine = sessionDisp.closeLine
avgLine = sessionDisp.avgLine
sessionDisp.sumClose += close
sessionDisp.numOfBars += 1
sessionBox.set_top(math.max(sessionBox.get_top(), high))
sessionBox.set_bottom(math.min(sessionBox.get_bottom(), low))
sessionBox.set_right(bar_index)
sessionDisp.setName(this.name)
if showSessionOC
openLine.set_x2(bar_index)
closeLine.set_x2(bar_index)
closeLine.set_y1(close)
closeLine.set_y2(close)
if showSessionAverage
avgLine.set_x2(bar_index)
avg = sessionDisp.sumClose / sessionDisp.numOfBars
avgLine.set_y1(avg)
avgLine.set_y2(avg)
sessionDisp
method update(SessionInfo this) =>
bool isChange = timeframe.change("1D")
if (not na(time("", this.session, this.timezone))) // inSession
if na(this.active) or isChange
this.createSessionDisplay()
else
this.updateSessionDisplay()
else if not na(this.active)
this.active := na
getSessionInfos()=>
array sessionInfos = array.new()
if showFirst
sessionInfos.push(SessionInfo.new(firstSessionColor, firstSessionName, firstSessionTime, firstSessionTZ))
if showSecond
sessionInfos.push(SessionInfo.new(secondSessionColor, secondSessionName, secondSessionTime, secondSessionTZ))
if showThird
sessionInfos.push(SessionInfo.new(thirdSessionColor, thirdSessionName, thirdSessionTime, thirdSessionTZ))
sessionInfos
var array sessionInfos = getSessionInfos()
if timeframe.isdwm
runtime.error("This indicator can only be used on intraday timeframes.")
for info in sessionInfos
info.update()
Brownian Motion Probabilistic Forecasting (Time Adaptive)Probabilistic Price Forecast Indicator
Overview
The Probabilistic Price Forecast is an advanced technical analysis tool designed for the TradingView platform. Instead of predicting a single future price, this indicator uses a Monte Carlo simulation to model thousands of potential future price paths, generating a cone of possibilities and calculating the probability of specific outcomes.
This allows traders to move beyond simple price targets and ask more sophisticated questions, such as: "What is the probability that this stock will increase by 5% over the next 24 hours?"
Core Concept: Geometric Brownian Motion
The indicator's forecasting model is built on the principles of Geometric Brownian Motion (GBM) , a widely accepted mathematical model for describing the random movements of financial asset prices. The core idea is that the next price step is a function of the asset's historical trend (drift), its volatility, and a random "shock."
The formula used to project each price step in the simulation is:
next_price = current_price * exp( (μ - (σ²/2))Δt + σZ√(Δt) )
Where:
μ (mu) represents the drift , which is the average historical return.
σ (sigma) represents the volatility , measured by the standard deviation of historical returns.
Z is a random variable from a standard normal distribution, representing the random "shock" or new information affecting the price.
Δt (delta t) is the time step for each projection.
How It Works
The indicator performs a comprehensive analysis on the most recent bar of the chart:
**Historical Analysis**: It first analyzes a user-defined historical period (e.g., the last 240 hours of price data) to calculate the asset's historical drift (μ) and volatility (σ) from its logarithmic returns.
**Monte Carlo Simulation**: It then runs thousands of simulations (e.g., 2000) of future price paths over a specified forecast period (e.g., the next 24 hours). Each path is unique due to the random shock (Z) applied at every step.
**Probability Distribution**: After all simulations are complete, it collects the final price of each path and sorts them to build a probability distribution of potential outcomes.
**Visualization and Signaling**: Finally, it visualizes this distribution on the chart and generates signals based on the user's criteria.
Key Features & Configuration
The indicator is highly configurable, allowing you to tailor its analysis to your specific needs.
Time-Adaptive Periods
The lookback and forecast periods are defined in hours , not bars. The script automatically converts these hour-based inputs into the correct number of bars based on the chart's current timeframe, ensuring the analysis remains consistent across different chart resolutions.
Forecast Quartiles
You can visualize the forecast as a "cone of probability" on the chart. The indicator draws lines and a shaded area representing the price levels for different quartiles (percentiles) of the simulation results. By default, this shows the range between the 25th and 95th percentiles.
Independent Bullish and Bearish Signals
The indicator allows you to set independent criteria for bullish and bearish signals, providing greater flexibility. You can configure:
A bullish signal for an X% confidence of a Y% price increase.
A bearish signal for a W% confidence of a Z% price decrease.
For example, you can set it to alert you for a 90% chance of a 2% drop, while simultaneously looking for a 60% chance of a 10% rally.
How to Interpret the Indicator
The Forecast Cone : The blue shaded area on the chart represents the probable range of future prices. The width of the cone indicates the expected volatility; a wider cone means higher uncertainty. The price labels on the right side of the cone show the calculated percentile levels at the end of the forecast period.
Green Signal Label : A green "UP signal" label appears when the probability of the price increasing by your target percentage exceeds your defined confidence level.
Red Signal Label : A red "DOWN signal" label appears when the probability of the price decreasing by your target percentage exceeds your confidence level.
This tool provides a statistical edge for understanding future possibilities but should be used in conjunction with other analysis techniques.
PSP [ANAY]PSP and TPD with ES NQ and YM. When NQ closoes up and ES closes down that marked uot a TPD
AutoDay MA (Session-Normalized)📊 AutoDay MA (Session-Normalized Moving Average)
⚡ Daily power, intraday precision.
AutoDay MA automatically converts any N-day moving average into the exact equivalent on your current intraday timeframe.
💡 Concept inspired by Brian Shannon (Alphatrends) – mapping daily MAs onto intraday charts by normalizing session minutes.
🛠 How it works
Set Days (N) (e.g., 5, 10, 20).
Define Session Minutes per Day (⏱ 390 = US RTH, 🌍 1440 = 24h).
The indicator detects your chart’s timeframe and computes:
Length = (Days × SessionMinutes) / BarMinutes
Applies your chosen MA type (📐 SMA / EMA / RMA / WMA) with rounding (nearest, up, down).
Displays all details in a clear corner info panel.
✅ Why use it
Consistency 🔄: Same 5-day smoothing across all intraday charts.
Session-aware 🕒: Works for equities, futures, FX, crypto.
Transparency 🔍: Always shows the math & final MA length.
Alerts built-in 🔔: Cross up/down vs. price.
📈 Examples
5-Day on 1m → 1950-period MA
5-Day on 15m → 130-period MA
5-Day on 65m → 30-period MA
10-Day on 24h/15m (crypto) → 960-period MA
RUDWAN OSMAN MUHUMED redsco trader
this indicator will help you to use ema 9 and ema 20 together with one indicator.
3SMA (1H only) by tophengzkyThis script plots three Simple Moving Averages (SMA 10, 20, 50), but they are only visible when the chart timeframe is set to 1 hour (1H).
It helps traders focus on higher timeframe trend direction without cluttering charts on other timeframes.
SMA1 = 10 (white)
SMA2 = 20 (yellow)
SMA3 = 200 (red)
Works only on 1H timeframe
Useful for swing traders and intraday traders who rely on hourly trend confirmation.
why 1 hr only? the only purpose of this is just to know the bias of the market weather it will reverse or it will continue the trend. As long as the price action did not cross this 3 SMA's the trend will continue.
as a trend trader it is very useful this strategy.. make it simple!
💎DrFX Diamond Algo 💎Diamond Algo - Multi-Feature Trading System
Advanced trading system combining Supertrend signals with multiple confirmation filters, risk management tools, and a comprehensive market analysis dashboard.
═══ CORE FEATURES ═══
• Smart Buy/Sell signals using modified Supertrend algorithm
• Multi-timeframe trend analysis (M1 to D1)
• Support & Resistance zone detection
• Risk management with automatic TP/SL levels (1:1, 2:1, 3:1)
• Real-time market dashboard with key metrics
• Multiple trend cloud overlays for visual confirmation
═══ SIGNAL GENERATION ═══
BUY Signal:
• Supertrend bullish crossover
• Price above SMA filter
• Optional smart signals (EMA 200 confirmation)
SELL Signal:
• Supertrend bearish crossunder
• Price below SMA filter
• Optional smart signals (EMA 200 confirmation)
═══ DASHBOARD COMPONENTS ═══
• Multi-timeframe trend status (8 timeframes)
• Current position indicator
• Market state analysis (Trending/Ranging/No trend)
• Volatility percentage
• Institutional activity monitor
• Trading session tracker (NY/London/Tokyo/Sydney)
• Trend pressure indicator
═══ VISUAL OVERLAYS ═══
• Trend Cloud: Long-term trend visualization
• Trend Follower: Adaptive trend line
• Comulus Cloud: Dual ALMA-based trend zones
• Cirrus Cloud: Short-term trend bands
• Smart Trail: Fibonacci-based trailing stop
• Dynamic trend lines with breakout alerts
═══ RISK MANAGEMENT ═══
• Automatic Stop-Loss placement (ATR-based)
• Three Take-Profit levels with Risk:Reward ratios
• Entry price labeling
• Optional distance and decimal customization
• Visual lines connecting entry to targets
═══ INPUT PARAMETERS ═══
Sensitivity (1-20): Controls signal frequency
Smart Signals Only: Filters for high-probability setups
Bar Coloring: Trend-based or gradient coloring
Dashboard Location/Size: Customizable placement
Multiple overlay toggles for clean charts
═══ BEST PRACTICES ═══
• Lower sensitivity (1-5) for swing trading
• Higher sensitivity (10-20) for scalping
• Enable Smart Signals for conservative approach
• Use dashboard to confirm multi-timeframe alignment
• Monitor volatility % before entering trades
═══ ALERT CONDITIONS ═══
• Buy Alert: Triggered on bullish signal
• Sell Alert: Triggered on bearish signal
• Trend line breakout alerts (automated)
═══ VERSION INFO ═══
Pine Script: v5
Max Labels: 500
Repainting: Minimal (uses confirmed bars for signals)
```
RSI: chart overlay
This indicator maps RSI thresholds directly onto price. Since the EMA of price aligns with RSI’s 50-line, it draws a volatility-based band around the EMA to reveal levels such as 70 and 30.
By converting RSI values into visible price bands, the overlay lets you see exactly where price would have to move to hit traditional RSI boundaries. These bands adapt in real time to both price movement and market volatility, keeping the classic RSI logic intact while presenting it in the context of price action. This approach helps traders interpret RSI signals without leaving the main chart window.
The calculation uses the same components as the RSI: alternative derivation script: Wilder’s EMA for smoothing, a volatility-based unit for scaling, and a normalization factor. The result is a dynamic band structure on the chart, representing RSI boundary levels in actual price terms.
Key components and calculation breakdown:
Wilder’s EMA
Used as the anchor point for measuring price position.
myEMA = ta.rma(close, Length)
Volatility Unit
Derived from the EMA of absolute close-to-close price changes.
CC_vol = ta.rma(math.abs(close - close ), Length)
Normalization Factor
Scales the volatility unit to align with the RSI formula’s structure.
normalization_factor = 1 / (Length - 1)
Upper and Lower Boundaries
Defines price bands corresponding to selected RSI threshold values.
up_b = myEMA + ((upper - 50) / 50) * (CC_vol / normalization_factor)
down_b = myEMA - ((50 - lower) / 50) * (CC_vol / normalization_factor)
Inputs
RSI length
Upper boundary – RSI level above 50
Lower boundary – RSI level below 50
ON/OFF toggle for 50-point line (EMA of close prices)
ON/OFF toggle for overbought/oversold coloring (use with line chart)
Interpretation:
Each band on the chart represents a chosen RSI level.
When price touches a band, RSI is at that threshold.
The distance between moving average and bands adjusts automatically with volatility and your selected RSI length.
All calculations remain fully consistent with standard RSI values.
Feedback and code suggestions are welcome, especially regarding implementation efficiency and customization.
Jarass regression linesDouble Linear Regression Ultimate + MA Ribbon (DLRC + MA)
The DLRC + MA indicator is an advanced technical analysis tool that combines double linear regression channels with a moving average ribbon (MA Ribbon). Designed for traders who want to simultaneously track trend, volatility, and potential support/resistance levels.
Key Features:
1. Double Linear Regression Channels:
• Inner Channel – shorter period, more sensitive to recent price movements.
• Outer Channel – longer period, reflects the long-term trend.
• Both channels display upper and lower boundaries and a midline.
• Optional logarithmic scale for price adjustment.
• Real-time R² values to assess regression accuracy.
2. MA Ribbon:
• Up to 4 different moving averages simultaneously.
• Supports SMA, EMA, SMMA (RMA), WMA, VWMA.
• Each MA can be individually enabled/disabled, with customizable period, source, and color.
• Helps identify trend direction and dynamic support/resistance levels.
3. Visualization:
• Channels are filled with semi-transparent colors for clarity.
• Midline for quick trend direction assessment.
• Label displays R² values of the channels in real time.
4. Suitable For:
• Short-term and long-term traders seeking a combination of linear regression analysis and classic trend-following tools.
• Useful for identifying overbought/oversold zones and potential trend reversal points.
Summary:
DLRC + MA combines statistical precision of linear regression with intuitive trend visualization via a MA ribbon. It provides quick insight into market direction, volatility, and potential turning points, all in one chart overlay.
Aggregated Scores Oscillator [Alpha Extract]A sophisticated risk-adjusted performance measurement system that combines Omega Ratio and Sortino Ratio methodologies to create a comprehensive market assessment oscillator. Utilizing advanced statistical band calculations with expanding and rolling window analysis, this indicator delivers institutional-grade overbought/oversold detection based on risk-adjusted returns rather than traditional price movements. The system's dual-ratio aggregation approach provides superior signal accuracy by incorporating both upside potential and downside risk metrics with dynamic threshold adaptation for varying market conditions.
🔶 Advanced Statistical Framework
Implements dual statistical methodologies using expanding and rolling window calculations to create adaptive threshold bands that evolve with market conditions. The system calculates cumulative statistics alongside rolling averages to provide both historical context and current market regime sensitivity with configurable window parameters for optimal performance across timeframes.
🔶 Dual Ratio Integration System
Combines Omega Ratio analysis measuring excess returns versus deficit returns with Sortino Ratio calculations focusing on downside deviation for comprehensive risk-adjusted performance assessment. The system applies configurable smoothing to both ratios before aggregation, ensuring stable signal generation while maintaining sensitivity to regime changes.
// Omega Ratio Calculation
Excess_Return = sum((Daily_Return > Target_Return ? Daily_Return - Target_Return : 0), Period)
Deficit_Return = sum((Daily_Return < Target_Return ? Target_Return - Daily_Return : 0), Period)
Omega_Ratio = Deficit_Return ≠ 0 ? (Excess_Return / Deficit_Return) : na
// Sortino Ratio Framework
Downside_Deviation = sqrt(sum((Daily_Return < Target_Return ? (Daily_Return - Target_Return)² : 0), Period) / Period)
Sortino_Ratio = (Mean_Return / Downside_Deviation) * sqrt(Annualization_Factor)
// Aggregated Score
Aggregated_Score = SMA(Omega_Ratio, Omega_SMA) + SMA(Sortino_Ratio, Sortino_SMA)
🔶 Dynamic Band Calculation Engine
Features sophisticated threshold determination using both expanding historical statistics and rolling window analysis to create adaptive overbought/oversold levels. The system incorporates configurable multipliers and sensitivity adjustments to optimize signal timing across varying market volatility conditions with automatic band convergence logic.
🔶 Signal Generation Framework
Generates overbought conditions when aggregated score exceeds adjusted upper threshold and oversold conditions below lower threshold, with neutral zone identification for range-bound markets. The system provides clear binary signal states with background zone highlighting and dynamic oscillator coloring for intuitive market condition assessment.
🔶 Enhanced Visual Architecture
Provides modern dark theme visualization with neon color scheme, dynamic oscillator line coloring based on signal states, and gradient band fills for comprehensive market condition visualization. The system includes zero-line reference, statistical band plots, and background zone highlighting with configurable transparency levels.
snapshot
🔶 Risk-Adjusted Performance Analysis
Utilizes target return parameters for customizable risk assessment baselines, enabling traders to evaluate performance relative to specific return objectives. The system's focus on downside deviation through Sortino analysis provides superior risk-adjusted signals compared to traditional volatility-based oscillators that treat upside and downside movements equally.
🔶 Multi-Timeframe Adaptability
Features configurable calculation periods and rolling windows to optimize performance across various timeframes from intraday to long-term analysis. The system's statistical foundation ensures consistent signal quality regardless of timeframe selection while maintaining sensitivity to market regime changes through adaptive band calculations.
🔶 Performance Optimization Framework
Implements efficient statistical calculations with optimized variable management and configurable smoothing parameters to balance responsiveness with signal stability. The system includes automatic band adjustment mechanisms and rolling window management for consistent performance across extended analysis periods.
This indicator delivers sophisticated risk-adjusted market analysis by combining proven statistical ratios in a unified oscillator framework. Unlike traditional overbought/oversold indicators that rely solely on price movements, the ASO incorporates risk-adjusted performance metrics to identify genuine market extremes based on return quality rather than price volatility alone. The system's adaptive statistical bands and dual-ratio methodology provide institutional-grade signal accuracy suitable for systematic trading approaches across cryptocurrency, forex, and equity markets with comprehensive visual feedback and configurable risk parameters for optimal strategy integration.
Volume Based Sampling [BackQuant]Volume Based Sampling
What this does
This indicator converts the usual time-based stream of candles into an event-based stream of “synthetic” bars that are created only when enough trading activity has occurred . You choose the activity definition:
Volume bars : create a new synthetic bar whenever the cumulative number of shares/contracts traded reaches a threshold.
Dollar bars : create a new synthetic bar whenever the cumulative traded dollar value (price × volume) reaches a threshold.
The script then keeps an internal ledger of these synthetic opens, highs, lows, closes, and volumes, and can display them as candles, plot a moving average calculated over the synthetic closes, mark each time a new sample is formed, and optionally overlay the native time-bars for comparison.
Why event-based sampling matters
Markets do not release information on a clock: activity clusters during news, opens/closes, and liquidity shocks. Event-based bars normalize for that heteroskedastic arrival of information: during active periods you get more bars (finer resolution); during quiet periods you get fewer bars (coarser resolution). Research shows this can reduce microstructure pathologies and produce series that are closer to i.i.d. and more suitable for statistical modeling and ML. In particular:
Volume and dollar bars are a common event-time alternative to time bars in quantitative research and are discussed extensively in Advances in Financial Machine Learning (AFML). These bars aim to homogenize information flow by sampling on traded size or value rather than elapsed seconds.
The Volume Clock perspective models market activity in “volume time,” showing that many intraday phenomena (volatility, liquidity shocks) are better explained when time is measured by traded volume instead of seconds.
Related market microstructure work on flow toxicity and liquidity highlights that the risk dealers face is tied to information intensity of order flow, again arguing for activity-based clocks.
How the indicator works (plain English)
Choose your bucket type
Volume : accumulate volume until it meets a threshold.
Dollar Bars : accumulate close × volume until it meets a dollar threshold.
Pick the threshold rule
Dynamic threshold : by default, the script computes a rolling statistic (mean or median) of recent activity to set the next bucket size. This adapts bar size to changing conditions (e.g., busier sessions produce more frequent synthetic bars).
Fixed threshold : optionally override with a constant target (e.g., exactly 100,000 contracts per synthetic bar, or $5,000,000 per dollar bar).
Build the synthetic bar
While a bucket fills, the script tracks:
o_s: first price of the bucket (synthetic open)
h_s: running maximum price (synthetic high)
l_s: running minimum price (synthetic low)
c_s: last price seen (synthetic close)
v_s: cumulative native volume inside the bucket
d_samples: number of native bars consumed to complete the bucket (a proxy for “how fast” the threshold filled)
Emit a new sample
Once the bucket meets/exceeds the threshold, a new synthetic bar is finalized and stored. If overflow occurs (e.g., a single native bar pushes you past the threshold by a lot), the code will emit multiple synthetic samples to account for the extra activity.
Maintain a rolling history efficiently
A ring buffer can overwrite the oldest samples when you hit your Max Stored Samples cap, keeping memory usage stable.
Compute synthetic-space statistics
The script computes an SMA over the last N synthetic closes and basic descriptors like average bars per synthetic sample, mean and standard deviation of synthetic returns, and more. These are all in event time , not clock time.
Inputs and options you will actually use
Data Settings
Sampling Method : Volume or Dollar Bars.
Rolling Lookback : window used to estimate the dynamic threshold from recent activity.
Filter : Mean or Median for the dynamic threshold. Median is more robust to spikes.
Use Fixed? / Fixed Threshold : override dynamic sizing with a constant target.
Max Stored Samples : cap on synthetic history to keep performance snappy.
Use Ring Buffer : turn on to recycle storage when at capacity.
Indicator Settings
SMA over last N samples : moving average in synthetic space . Because its index is sample count, not minutes, it adapts naturally: more updates in busy regimes, fewer in quiet regimes.
Visuals
Show Synthetic Bars : plot the synthetic OHLC candles.
Candle Color Mode :
Green/Red: directional close vs open
Volume Intensity: opacity scales with synthetic size
Neutral: single color
Adaptive: graded by how large the bucket was relative to threshold
Mark new samples : drop a small marker whenever a new synthetic bar prints.
Comparison & Research
Show Time Bars : overlay the native time-based candles to visually compare how the two sampling schemes differ.
How to read it, step by step
Turn on “Synthetic Bars” and optionally overlay “Time Bars.” You will see that during high-activity bursts, synthetic bars print much faster than time bars.
Watch the synthetic SMA . Crosses in synthetic space can be more meaningful because each update represents a roughly comparable amount of traded information.
Use the “Avg Bars per Sample” in the info table as a regime signal. Falling average bars per sample means activity is clustering, often coincident with higher realized volatility.
Try Dollar Bars when price varies a lot but share count does not; they normalize by dollar risk taken in each sample. Volume Bars are ideal when share count is a better proxy for information flow in your instrument.
Quant finance background and citations
Event time vs. clock time : Easley, López de Prado, and O’Hara advocate measuring intraday phenomena on a volume clock to better align sampling with information arrival. This framing helps explain volatility bursts and liquidity droughts and motivates volume-based bars.
Flow toxicity and dealer risk : The same authors show how adverse selection risk changes with the intensity and informativeness of order flow, further supporting activity-based clocks for modeling and risk management.
AFML framework : In Advances in Financial Machine Learning , event-driven bars such as volume, dollar, and imbalance bars are presented as superior sampling units for many ML tasks, yielding more stationary features and fewer microstructure distortions than fixed time bars. ( Alpaca )
Practical use cases
1) Regime-aware moving averages
The synthetic SMA in event time is not fooled by quiet periods: if nothing of consequence trades, it barely updates. This can make trend filters less sensitive to calendar drift and more sensitive to true participation.
2) Breakout logic on “equal-information” samples
The script exposes simple alerts such as breakout above/below the synthetic SMA . Because each bar approximates a constant amount of activity, breakouts are conditioned on comparable informational mass, not arbitrary time buckets.
3) Volatility-adaptive backtests
If you use synthetic bars as your base data stream, most signal rules become self-paced : entry and exit opportunities accelerate in fast markets and slow down in quiet regimes, which often improves the realism of slippage and fill modeling in research pipelines (pair this indicator with strategy code downstream).
4) Regime diagnostics
Avg Bars per Sample trending down: activity is dense; expect larger realized ranges.
Return StdDev (synthetic) rising: noise or trend acceleration in event time; re-tune risk.
Interpreting the info panel
Method : your sampling choice and current threshold.
Total Samples : how many synthetic bars have been formed.
Current Vol/Dollar : how much of the next bucket is already filled.
Bars in Bucket : native bars consumed so far in the current bucket.
Avg Bars/Sample : lower means higher trading intensity.
Avg Return / Return StdDev : return stats computed over synthetic closes .
Research directions you can build from here
Imbalance and run bars
Extend beyond pure volume or dollar thresholds to imbalance bars that trigger on directional order flow imbalance (e.g., buy volume minus sell volume), as discussed in the AFML ecosystem. These often further homogenize distributional properties used in ML. alpaca.markets
Volume-time indicators
Re-compute classical indicators (RSI, MACD, Bollinger) on the synthetic stream. The premise is that signals are updated by traded information , not seconds, which may stabilize indicator behavior in heteroskedastic regimes.
Liquidity and toxicity overlays
Combine synthetic bars with proxies of flow toxicity to anticipate spread widening or volatility clustering. For instance, tag synthetic bars that surpass multiples of the threshold and test whether subsequent realized volatility is elevated.
Dollar-risk parity sampling for portfolios
Use dollar bars to align samples across assets by notional risk, enabling cleaner cross-asset features and comparability in multi-asset models (e.g., correlation studies, regime clustering). AFML discusses the benefits of event-driven sampling for cross-sectional ML feature engineering.
Microstructure feature set
Compute duration in native bars per synthetic sample , range per sample , and volume multiple of threshold as inputs to state classifiers or regime HMMs . These features are inherently activity-aware and often predictive of short-horizon volatility and trend persistence per the event-time literature. ( Alpaca )
Tips for clean usage
Start with dynamic thresholds using Median over a sensible lookback to avoid outlier distortion, then move to Fixed thresholds when you know your instrument’s typical activity scale.
Compare time bars vs synthetic bars side by side to develop intuition for how your market “breathes” in activity time.
Keep Max Stored Samples reasonable for performance; the ring buffer avoids memory creep while preserving a rolling window of research-grade data.
John Bollinger's Bollinger BandsJapanese below / 日本語説明は下記
This indicator replicates how John Bollinger, the inventor of Bollinger Bands, uses Bollinger Bands, displaying Bollinger Bands, %B and Bandwidth in one indicator with alerts and signals.
Bollinger Bands is created by John Bollinger in 1980s who is an American financial trader and analyst. He introduced %B and Bandwidth 30 years later.
🟦 What's different from other Bollinger Bands indicator?
Unlike the default Bollinger Bands or other custom Bollinger Bands indicators on TradingView, this indicator enables to display three Bollinger Bands tools into a single indicator with signals and alerts capability.
You can plot the classic Bollinger Bands together with either %B or Bandwidth or three tools altogether which requires the specific setting(see below settings).
This makes it easy to quantitatively monitor volatility changes and price position in relation to Bollinger Bands in one place.
🟦 Features:
Plots Bollinger Bands (Upper, Basis, Lower) with fill between bands.
Option to display %B or Bandwidth with Bollinger Bands.
Plots highest and lowest Bandwidth levels over a customizable lookback period.
Adds visual markers when Bandwidth reaches its highest (Bulge) or lowest (Squeeze) value.
Includes ready-to-use alert conditions for Bulge and Squeeze events.
📈Chart
Green triangles and red triangles in the bottom chart mark Bulges and Squeezes respectively.
🟦 Settings:
Length: Number of bars used for Bollinger Band middleline calculation.
Basis MA Type: Choose SMA, EMA, SMMA (RMA), WMA, or VWMA for the midline.
StdDev: Standard deviation multiplier (default = 2.0).
Option: Select "Bandwidth" or "%B" (add the indicator twice if you want to display both).
Period for Squeeze and Bulge: Lookback period for detecting the highest and lowest Bandwidth levels.(default = 125 as specified by John Bollinger )
Style Settings: Colors, line thickness, and transparency can be customized.
📈Chart
The chart below shows an example of three Bollinger Bands tools: Bollinger Band, %B and Bandwidth are in display.
To do this, you need to add this indicator TWICE where you select %B from Option in the first addition of this indicator and Bandwidth from Option in the second addition.
🟦 Usage:
🟠Monitor Volatility:
Watch Bandwidth values to spot volatility contractions (Squeeze) and expansions (Bulge) that often precede strong price moves.
John Bollinger defines Squeeze and Bulge as follows;
Squeeze:
The lowest bandwidth in the past 125 period, where trend is born.
Bulge:
The highest bandwidth in the past 125 period where trend is going to die.
According to John Bollinger, this 125 period can be used in any timeframe.
📈Chart1
Example of Squeeze
You can see uptrends start after squeeze(red triangles)
📈Chart2
Example of Bulge
You can see the trend reversal from downtrend to uptrends at the bulge(green triangles)
📈Chart3
Bulge DOES NOT NECESSARILY mean the beginning of a trend in opposite direction.
For example, you can see a bulge happening in the right side of the chart where green triangles are marked. Nevertheless, uptrend still continues after the bulge.
In this case, the bulge marks the beginning of a consolidation which lead to the continuation of the trend. It means that a phase of the trend highlighted in the light blue box came to an end.
Note: light blue box is not drawn by the indicator.
Like other technical analysis methods or tools, these setups do not guarantee birth of new trends and trend reversals. Traders should be carefully observing these setups along with other factors for making decisions.
🟠Track Price Position:
Use %B to see where price is located in relation to the Bollinger Bands.
If %B is close to 1, the price is near upper band while %B is close to 0, the price is near lower band.
🟠Set Alerts:
Receive alerts when Bandwidth hits highest and lowest values of bandwidth, helping you prepare for potential breakout, ending of trends and trend reversal opportunities.
🟠Combine with Other Tools:
This indicator would work best when combined with price action, trend analysis, or
market environmental analysis.
—————————————————————————————
このインジケーターはボリンジャーバンドの考案者であるジョン・ボリンジャー氏が提唱するボリンジャーバンドの使い方を再現するために、ボリンジャーバンド、%B、バンドウィズ(Bandwidth) の3つを1つのインジケーターで表示可能にしたものです。シグナルやアラートにも対応しています。
ボリンジャーバンドは1980年代にアメリカ人トレーダー兼アナリストのジョン・ボリンジャー氏によって開発されました。彼はその30年後に%Bとバンドウィズを導入しました。
🟦 他のボリンジャーバンドとの違い
TradingView標準のボリンジャーバンドや他のボリンジャーバンドとは異なり、このインジケーターでは3つのボリンジャーバンドツールを1つのインジケーターで表示し、シグナルやアラート機能も利用できるようになっています。
一般的に知られている通常のボリンジャーバンドに加え、%Bやバンドウィズを組み合わせて表示でき、設定次第では3つすべてを同時にモニターすることも可能です。これにより、価格とボリンジャーバンドの位置関係とボラティリティ変化をひと目で、かつ定量的に把握することができます。
🟦 機能:
ボリンジャーバンド(アッパーバンド・基準線・ロワーバンド)を描画し、バンド間を塗りつぶし表示。
オプションで%Bまたはバンドウィズを追加表示可能。
バンドウィズの最高値・最安値を、任意の期間で検出して表示。
バンドウィズが指定期間の最高値(バルジ※)または最安値(スクイーズ)に達した際にシグナルを表示。
※バルジは一般的にボリンジャーバンドで用いられるエクスパンションとほぼ同じ意味ですが、定義が異なります。(下記参照)
バルジおよびスクイーズ発生時のアラート設定が可能。
📈 チャート例
下記チャートの緑の三角と赤の三角は、それぞれバルジとスクイーズを示しています。
🟦 設定:
Length: ボリンジャーバンドの基準線計算に使う期間。
Basis MA Type: SMA, EMA, SMMA (RMA), WMA, VWMAから選択可能。
StdDev: 標準偏差の乗数(デフォルト2.0)。
Option: 「Bandwidth」または「%B」を選択(両方表示するにはこのインジケーターを2回追加)。
Period for Squeeze and Bulge: Bandwidthの最高値・最安値を検出する期間(デフォルトはジョン・ボリンジャー氏が推奨する125)。
Style Settings: 色、線の太さ、透明度などをカスタマイズ可能。
📈 チャート例
下のチャートは「ボリンジャーバンド」「%B」「バンドウィズ」の3つを同時に表示した例です。
この場合、インジケーターを2回追加し、最初に追加した方ではOptionを「%B」に、次に追加した方では「Bandwidth」を選択します。
🟦 使い方:
🟠 ボラティリティを監視する:
バンドウィズの値を見ることで、価格変動の収縮(スクイーズ)や拡大(バルジ)を確認できます。
これらはしばしば強い値動きの前兆となります。
ジョン・ボリンジャー氏はスクイーズとバルジを次のように定義しています:
スクイーズ: 過去125期間の中で最も低いバンドウィズ→ 新しいトレンドが生まれる場所。
バルジ: 過去125期間の中で最も高いバンドウィズ → トレンドが終わりを迎える場所。
この「125期間」はどのタイムフレームでも利用可能とされています。
📈 チャート1
スクイーズの例
赤い三角のスクイーズの後に上昇トレンドが始まっているのが確認できます。
📈 チャート2
バルジの例
緑の三角のバルジの箇所で下降トレンドから上昇トレンドへの反転が見られます。
📈 チャート3
バルジが必ずしも反転を意味しない例
下記のチャート右側の緑の三角で示されたバルジの後も、上昇トレンドが継続しています。
この場合、バルジは反転ではなく「トレンド一時的な調整(レンジ入り)」を示しており、結果的に上昇トレンドが継続しています。
この場合、バルジは水色のボックスで示されたトレンドのフェーズの終わりを示しています。
※水色のボックスはインジケーターが描画したものではありません。
また、他のテクニカル分析と同様に、これらのセットアップは必ず新しいトレンドの発生やトレンド転換を保証するものではありません。トレーダーは他の要素も考慮し、慎重に意思決定する必要があります。
🟠 価格とボリンジャーバンドの位置関係を確認する:
%Bを利用すれば、価格がバンドのどこに位置しているかを簡単に把握できます。
%Bが1に近ければ価格はアッパーバンド付近、0に近ければロワーバンド付近にあります。
🟠 アラートを設定する:
バンドウィズが一定期間の最高値または最安値に到達した際にアラートを設定することで、ブレイクアウトやトレンド終了、反転の可能性に備えることができます。
🟠 他のツールと組み合わせる:
このインジケーターは、プライスアクション、トレンド分析、環境認識などと組み合わせて活用すると最も効果的です。
RTH Bias by @traderprimezTired of guessing the intraday direction? The RTH Bias indicator provides a powerful, data-driven statistical edge by analyzing the behavior of price after the initial Regular Trading Hours (RTH) range is set.
It meticulously tracks historical outcomes to show you the most probable "story" for the rest of the trading day.
This tool is designed for day traders of US indices, stocks, and other assets most active during the New York session. It moves beyond simple "opening range breakout" strategies by classifying each day into one of six distinct scenarios, giving you a much deeper insight into the day's potential character.
Core Concept
The opening period of the RTH session (e.g., the first one, two, or three hours) is dominated by high volume and institutional activity. The high and low established during this time often act as a critical pivot or springboard for the remainder of the day.
This indicator captures that initial range and then analyzes thousands of historical days to answer the key question: "Once the opening range is set, what happens next?" Does price tend to break out and trend? Does it fake out in one direction and reverse? Or does it stay trapped? The dashboard provides these probabilities at a glance.
Key Features
Choose the range that best fits your trading style and the asset you're trading:
09:30 - 10:30 (Micro): The classic, volatile first hour.
09:30 - 11:30 (Major): A broader range capturing the morning momentum.
09:30 - 12:30 (Macro): The full morning session, often defining the entire day's extremes.
📊 The Statistical Dashboard
This is the heart of the indicator. It provides a complete statistical breakdown of historical price action:
Scenario: The name of the price action profile.
Distribution: A visual bar chart showing the relative frequency of each scenario.
Count: The raw number of times each scenario has occurred over the lookback period.
Contribution: The percentage probability of each scenario occurring.
🎲 The Six Scenarios Explained
The indicator classifies each day's price action into one of these profiles:
↑ High, then ↓ Low (XAMD): A classic "stop hunt high, then sell-off." Price breaks the range high first, luring in buyers, before reversing to take the range low.
↓ Low, then ↑ High (XAMD): A classic "stop hunt low, then rally." Price breaks the range low first, stopping out sellers, before reversing to take the range high.
One-Sided Breakout (AMDX): A strong trend day. Price breaks only one side of the range and continues in that direction without ever violating the other side.
Search & Destroy (S&D): A volatile, choppy day. Price takes one side, reverses to take the other, and then reverses again.
No Breakout (Inside Day): A consolidation day. Price fails to break either the high or the low of the opening range.
🟩 On-Chart Bias Box
A simple visual aid that tracks the session in real-time:
Neutral (Gray): During Session 1, as the range is forming.
Bullish (Green): The Session 1 high has been broken.
Bearish (Red): The Session 1 low has been broken.
Both (Orange): Both the high and low have been broken (XAMD or S&D profile).
🛡️ RTH Guard Logic
This is a crucial feature for accuracy. The indicator locks in the day's scenario at the RTH close (e.g., 4 PM ET). This ensures that post-market (ETH) price action does not corrupt the historical statistics, giving you clean, reliable data based purely on regular trading hours.
🔔 Custom Alerts
Enable the "First Breakout" alert to be notified the moment the opening range is breached, so you don't have to watch the chart all day.
How to Use in Your Trading
This indicator does not give buy/sell signals. It provides a statistical framework to build a high-probability trading hypothesis for the day.
Select Your Range: In the settings, choose the opening range (Micro, Major, or Macro) you want to analyze.
Wait for the Range to Form: Let the neutral box fully form on your chart.
Analyze the Dashboard: Once the range is set, look at the "Contribution" column. Identify the scenario with the highest probability.
Form a Hypothesis: Build your trade idea around the most likely scenario.
Execute and Manage: You would wait for the box to turn red (low is broken). Instead of shorting, you would look for bullish confirmation (e.g., a market structure shift on a lower timeframe) to enter a long position, with the opening range high as a logical target.
Disclaimer: This indicator is a tool for analysis and probability assessment, not a standalone trading system. It should be used in conjunction with your own strategy and risk management. Past performance is not indicative of future results.