Simplified Percentile ClusteringSimplified Percentile Clustering (SPC) is a clustering system for trend regime analysis.
Instead of relying on heavy iterative algorithms such as k-means, SPC takes a deterministic approach: it uses percentiles and running averages to form cluster centers directly from the data, producing smooth, interpretable market state segmentation that updates live with every bar.
Most clustering algorithms are designed for offline datasets, they require recomputation, multiple iterations, and fixed sample sizes.
SPC borrows from both statistical normalization and distance-based clustering theory , but simplifies them. Percentiles ensure that cluster centers are resistant to outliers , while the running mean provides a stable mid-point reference.
Unlike iterative methods, SPC’s centers evolve smoothly with time, ideal for charts that must update in real time without sudden reclassification noise.
SPC provides a simple yet powerful clustering heuristic that:
Runs continuously in a charting environment,
Remains interpretable and reproducible,
And allows traders to see how close the current market state is to transitioning between regimes.
Clustering by Percentiles
Traditional clustering methods find centers through iteration. SPC defines them deterministically using three simple statistics within a moving window:
Lower percentile (p_low) → captures the lower basin of feature values.
Upper percentile (p_high) → captures the upper basin.
Mean (mid) → represents the central tendency.
From these, SPC computes stable “centers”:
// K = 2 → two regimes (e.g., bullish / bearish)
=
// K = 3 → adds a neutral zone
=
These centers move gradually with the market, forming live regime boundaries without ever needing convergence steps.
Two clusters capture directional bias; three clusters add a neutral ‘range’ state.
Multi-Feature Fusion
While SPC can cluster a single feature such as RSI, CCI, Fisher Transform, DMI, Z-Score, or the price-to-MA ratio (MAR), its real strength lies in feature fusion. Each feature adds a unique lens to the clustering system. By toggling features on or off, traders can test how each dimension contributes to the regime structure.
In “Clusters” mode, SPC measures how far the current bar is from each cluster center across all enabled features, averages these distances, and assigns the bar to the nearest combined center. This effectively creates a multi-dimensional regime map , where each feature contributes equally to defining the overall market state.
The fusion distance is computed as:
dist := (rsi_d * on_off(use_rsi) + cci_d * on_off(use_cci) + fis_d * on_off(use_fis) + dmi_d * on_off(use_dmi) + zsc_d * on_off(use_zsc) + mar_d * on_off(use_mar)) / (on_off(use_rsi) + on_off(use_cci) + on_off(use_fis) + on_off(use_dmi) + on_off(use_zsc) + on_off(use_mar))
Because each feature can be standardized (Z-Score), the distances remain comparable across different scales.
Fusion mode combines multiple standardized features into a single smooth regime signal.
Visualizing Proximity - The Transition Gradient
Most indicators show binary or discrete conditions (e.g., bullish/bearish). SPC goes further, it quantifies how close the current value is to flipping into the next cluster.
It measures the distances to the two nearest cluster centers and interpolates between them:
rel_pos = min_dist / (min_dist + second_min_dist)
real_clust = cluster_val + (second_val - cluster_val) * rel_pos
This real_clust output forms a continuous line that moves smoothly between clusters:
Near 0.0 → firmly within the current regime
Around 0.5 → balanced between clusters (transition zone)
Near 1.0 → about to flip into the next regime
Smooth interpolation reveals when the market is close to a regime change.
How to Tune the Parameters
SPC includes intuitive parameters to adapt sensitivity and stability:
K Clusters (2–3): Defines the number of regimes. K = 2 for trend/range distinction, K = 3 for trend/neutral transitions.
Lookback: Determines the number of past bars used for percentile and mean calculations. Higher = smoother, more stable clusters. Lower = faster reaction to new trends.
Lower / Upper Percentiles: Define what counts as “low” and “high” states. Adjust to widen or tighten cluster ranges.
Shorter lookbacks react quickly to shifts; longer lookbacks smooth the clusters.
Visual Interpretation
In “Clusters” mode, SPC plots:
A colored histogram for each cluster (red, orange, green depending on K)
Horizontal guide lines separating cluster levels
Smooth proximity transitions between states
Each bar’s color also changes based on its assigned cluster, allowing quick recognition of when the market transitions between regimes.
Cluster bands visualize regime structure and transitions at a glance.
Practical Applications
Identify market regimes (bullish, neutral, bearish) in real time
Detect early transition phases before a trend flip occurs
Fuse multiple indicators into a single consistent signal
Engineer interpretable features for machine-learning research
Build adaptive filters or hybrid signals based on cluster proximity
Final Notes
Simplified Percentile Clustering (SPC) provides a balance between mathematical rigor and visual intuition. It replaces complex iterative algorithms with a clear, deterministic logic that any trader can understand, and yet retains the multidimensional insight of a fusion-based clustering system.
Use SPC to study how different indicators align, how regimes evolve, and how transitions emerge in real time. It’s not about predicting; it’s about seeing the structure of the market unfold.
Disclaimer
This indicator is intended for educational and analytical use.
It does not generate buy or sell signals.
Historical regime transitions are not indicative of future performance.
Always validate insights with independent analysis before making trading decisions.
Statistics
Aggregated Open Interest Multi-Exchange (USD)This indicator aggregates Open Interest (OI) data from multiple major cryptocurrency exchanges into a single unified view in USD, using data available on TradingView. It automatically adapts to the asset you're viewing on the chart.
Features:
Aggregates OI from 7 major exchanges: Binance, Bybit, OKX, Bitget, Deribit, HTX, and Coinbase
All values converted to USD - unlike native OI which shows contracts/coins
Uses only data available on TradingView platform
Automatically detects the asset from your chart (BTC, ETH, SOL, etc.)
True apples-to-apples comparison across exchanges
Displays as candlesticks showing OI open, high, low, and close
Toggle exchanges on/off individually
Handles different contract types per exchange automatically
Why USD conversion matters:
Traditional OI indicators show values in contracts or crypto units, making it difficult to compare across exchanges. This indicator converts everything to USD, giving you the real dollar value of open positions across all exchanges.
How it works:
Simply add the indicator to any crypto perpetual futures chart. It will automatically fetch and aggregate OI data from all supported exchanges for that asset using TradingView's built-in data feeds, converting everything to USD.
Supported Exchanges:
Binance, Bybit, Bitget, HTX: USDT perpetuals
Deribit: BTC/ETH use USD contracts, others use USDC
OKX: Contract-based (automatically converted)
Coinbase: USDC perpetuals
Perfect for traders who want a comprehensive view of total market Open Interest in USD across exchanges using reliable TradingView data.
Z-Score Momentum | MisinkoMasterThe Z-Score Momentum is a new trend analysis indicator designed to catch reversals, and shifts in trends by comparing the "positive" and "negative" momentum by using the Z-Score.
This approach helps traders and investors get unique insight into the market of not just Crypto, but any market.
A deeper dive into the indicator
First, I want to cover the "Why?", as I believe it will ease of the part of the calculation to make it easier to understand, as by then you will understand how it fits the puzzle.
I had an attempt to create a momentum oscillator that would catch reversals and provide high tier accuracy while maintaining the main part => the speed.
I thought back to many concepts, divergences between averages?
- Did not work
Maybe a MACD rework?
- Did not work with what I tried :(
So I thought about statistics, Standard Deviation, Z-Score, Sharpe/Sortino/Omega ratio...
Wait, was that the Z-Score? I only tried the For Loop version of it :O
So on my way back from school I formulated a concept (originaly not like this but to that later) that would attempt to use the Z-Score as an accurate momentum oscillator.
Many ideas were falling out of the blue, but not many worked.
After almost giving up on this, and going to go back to developing my strategies, I tried one last thing:
What if we use divergences in the average, formulated like a Z-score?
Surprise-surprise, it worked!
Now to explain what I have been so passionately yapping about, and to connect the pieces of the puzzle once and for all:
The indicator compares the "strength" of the bullish/bearish factors (could be said differently, but this is my "speach bubble", and I think this describes it the best)
What could we use for the "bullish/bearish" factors?
How about high & low?
I mean, these are by definitions the highest and lowest points in price, which I decided to interpret as: The highest the bull & bear "factors" achieved that bar.
The problem here is comparison, I mean high will ALWAYS > low, unless the asset decided to unplug itself and stop moving, but otherwise that would be unfair.
Now if I use my Z-score, it will get higher while low is going up, which is the opposite of what I want, the bearish "factor" is weaker while we go up!
So I sat on my ret*rded a*s for 25 minutes, completly ignoring the fact the number "-1" exists.
Surprise surprise, multiplying the Z-Score of the low by -1 did what I wanted!
Now it reversed itself (magically). Now while the low keeps going down, the bear factor increases, and while it goes up the bear factor lowers.
This was btw still too noisy, so instead of the classic formula:
a = current value
b = average value
c = standard deviation of a
Z = (a-b)/c
I used:
a = average value over n/2 period
b = average value over n period
c = standard deviation of a
Z = (a-b)/c
And then compared the Z-Score of High to the Z-Score of Low by basic subtraction, which gives us final result and shows us the strength of trend, the direction of the trend, and possibly more, which I may have not found.
As always, this script is open source, so make sure to play around with it, you may uncover the treasure that I did not :)
Enjoy Gs!
Yuki Leverage RR Calculator**YUKI LEVERAGE RR CALCULATOR**
A professional-grade risk/reward calculator for leveraged crypto or forex trades.
Instantly visualizes entry, stop loss, targets, leverage, and risk-to-reward ratios — helping you plan precise positions with confidence.
──────────────────────────────
**WHAT IT DOES**
Calculates position value, quantity, stop-loss price, liquidation estimate, and per-target profit.
Displays everything in an on-chart table with optional price tags and alerts.
──────────────────────────────
**KEY FEATURES**
• Long / Short toggle (only one active at a time)
• Leverage-aware position sizing based on Position Cost ($) and Leverage
• Dynamic Stop Loss: input % → auto price + $ risk
• Up to 3 Take-Profit Targets with scaling logic
• Instant R:R ratios per target
• Liquidation estimate (approximation only)
• ENTRY / SL / T1 / T2 / T3 / LIQ visual tags
• Dark/Light mode, adjustable table and tag size
• Built-in alerts for Targets and Stop Loss
──────────────────────────────
**INPUTS**
• Long or Short selection
• Entry Price, Stop Loss %
• Target 1 / Target 2 / Target 3 + Take Profit %
• Position Cost ($), Leverage
• Visual preferences: show/hide table, table corner, font size, tag offset, text size
──────────────────────────────
**TABLE OUTPUTS**
Position Info: Type, Entry, Position Cost, Leverage, Value
Risk Section: Stop Loss %, Stop Loss Price, Total Risk ($), Liquidation % & Price
Targets 1–3: Profit ($), R:R, Take Profit ($), Runner % or PnL
──────────────────────────────
**ALERTS**
• Target 1 Hit – when price crosses T1
• Target 2 Hit – when price crosses T2
• Target 3 Hit – when price crosses T3
• Stop Loss Hit – triggers based on direction
(Use TradingView Alerts → Condition → Indicator → select desired alert)
──────────────────────────────
**HOW TO USE**
1. Choose Long or Short
2. Enter Entry Price, Stop Loss %, Position Cost, and Leverage
3. Add Targets 1–3 with optional Take Profit %
4. Adjust visuals as desired
5. Monitor table + alerts for live trade planning
──────────────────────────────
**NOTES**
• Liquidation values are estimates only
• Fees, slippage, and funding not included
• Designed for educational and planning purposes
──────────────────────────────
⚠️ **DISCLAIMER**
For educational use only — not financial advice.
Trading leveraged products involves high risk of loss.
Always confirm calculations with your exchange and trade responsibly.
RPT Position Sizer🎯 Purpose
This indicator is a position sizing and stop-loss calculator designed to help traders instantly determine:
How many shares/contracts to buy,
How much risk (₹) they are taking per trade,
How much capital will be deployed, and
The precise stop-loss price level based on user-defined parameters.
It displays all key values in a compact on-chart table (bottom-left corner) for quick trade planning.
💡 Use Case
Perfect for discretionary swing traders, systematic position traders, and risk managers who want instant visual feedback of trade sizing metrics directly on the chart — eliminating manual calculations and improving discipline.
⚙️ Key Features
Dynamic Inputs
Trading Capital (₹) — total available capital for trading.
RPT % — risk-per-trade as a percentage of total capital.
SL % — stop-loss distance in percent below CMP (Current Market Price).
CMP Source — can be linked to close, hl2, etc.
Rounding Style — round position size to Nearest, Floor, or Ceil.
Decimals Show — control number formatting precision in the table.
Core Calculations
SL Points: CMP × SL%
SL Price: CMP − SL Points
Risk Amount (₹): Capital × RPT%
Position Size: Risk ÷ SL Points
Capital Used: Position Size × CMP
Clean On-Chart Table Display
Displays:
Trading Capital
RPT %
Risk Amount (₹)
Position Size (shares/contracts)
Capital Required (₹)
Stop-Loss % & SL Price
The table uses a minimalistic white-on-black design with clear labeling and rupee formatting for quick reference.
Data Window Integration
Plots hidden values (Position Size, Risk Amount, SL Points, Capital Used) for use in TradingView’s Data Window—ideal for strategy testing and exporting values.
CMF, RSI, CCI, MACD, OBV, Fisher, Stoch RSI, ADX (+DI/-DI)Eight normalized indicators are used in conjunction with the CMF, CCI, MACD, and Stoch RSI indicators. You can track buy and sell decisions by tracking swings. The zero line is for reversal tracking at -20, +20, +50, and +80. You can use any of the nine indicators individually or in combination.
IB range + Breakout fibsThe IB High / Low + Auto-Fib indicator automatically plots the Initial Balance range and a Fibonacci projection for each trading day.
Define your IB start and end times (e.g., 09:30–10:30).
The indicator marks the IB High and IB Low from that session and extends them to the session close.
It keeps the last N days visible for context.
When price breaks outside the IB range, it automatically plots a Fibonacci retracement/extension from the opposite IB side to the breakout, using levels 0, 0.236, 0.382, 0.5, 0.618, 0.88, 1.
The Fib updates dynamically as the breakout extends, and labels are neatly aligned on the right side of the chart for clarity.
Ideal for traders who monitor Initial Balance breaks, range expansions, and Fibonacci reaction levels throughout the trading session.
RTACoreLibrary "RTACore"
Advanced multi-timeframe technical analysis framework for Pine Script
@author WavesUnchained
@build 2025-10-14 22:41:47
newFloatResult(value, context)
Create a successful Result with float value
Parameters:
value (float)
context (string)
newStringResult(value, context)
Create a successful Result with string value
Parameters:
value (string)
context (string)
newBoolResult(value, context)
Create a successful Result with boolean value
Parameters:
value (bool)
context (string)
newErrorResult(errorCode, errorMessage, floatFallback, stringFallback, boolFallback, context)
Create an error Result with fallback values
Parameters:
errorCode (string)
errorMessage (string)
floatFallback (float)
stringFallback (string)
boolFallback (bool)
context (string)
addResultTag(result, tag)
Add a tag to Result
Parameters:
result (Result)
tag (string)
newSignalResult(signalStrength, signalType)
Create a signal Result with trading-specific tags
Parameters:
signalStrength (float)
signalType (string)
newIndicatorResult(value, indicatorName)
Create an indicator calculation Result with indicator tag
Parameters:
value (float)
indicatorName (string)
newTimeframeResult(value, timeframe, context)
Create a timeframe-specific Result
Parameters:
value (float)
timeframe (string)
context (string)
newConfluenceResult(confluenceScore, confidenceLevel)
Create a confluence Result with confidence level
Parameters:
confluenceScore (float)
confidenceLevel (string)
newValidationResult(context)
Create a new validation result (starts as valid)
Parameters:
context (string)
newValidationSuccess(context)
Create a successful validation result
Parameters:
context (string)
newValidationFailure(errors, context)
Create a failed validation result with errors
Parameters:
errors (array)
context (string)
addValidationError(result, field, error)
Add an error to validation result
Parameters:
result (ValidationResult)
field (string)
error (string)
addValidationWarning(result, field, warning)
Add a warning to validation result
Parameters:
result (ValidationResult)
field (string)
warning (string)
addValidationCorrection(result, correction)
Add a correction to validation result
Parameters:
result (ValidationResult)
correction (string)
setValidationMode(result, mode)
Set validation mode
Parameters:
result (ValidationResult)
mode (string)
getValidationMode(result)
Get validation mode
Parameters:
result (ValidationResult)
incrementValidatedFields(result)
Increment validated fields counter
Parameters:
result (ValidationResult)
setValidationTotalFields(result, total)
Set total fields for validation
Parameters:
result (ValidationResult)
total (int)
calculateValidationScore(result)
Calculate and update validation score based on errors/warnings
Parameters:
result (ValidationResult)
newPerformanceProfile(functionName)
Create a new performance profile
Parameters:
functionName (string)
startTiming(profile)
Start timing a performance profile (simple)
Parameters:
profile (PerformanceProfile)
endTiming(profile, hadError)
End timing and update performance profile
Parameters:
profile (PerformanceProfile)
hadError (bool)
updateMemoryEstimate(profile, arrayElements)
Set estimated memory usage (array elements)
Parameters:
profile (PerformanceProfile)
arrayElements (int)
newHealthyStatus()
Create a new healthy status
setComponentHealth(status, component, isOK, message)
Set component health status
Parameters:
status (HealthStatus)
component (string)
isOK (bool)
message (string)
isHealthyOverall(status)
Quick health check - are all components OK?
Parameters:
status (HealthStatus)
getHealthSummary(status)
Get simple health summary
Parameters:
status (HealthStatus)
hasValidFloat(result)
Check if Result contains a valid float value
Parameters:
result (Result)
hasValidString(result)
Check if Result contains a valid string value
Parameters:
result (Result)
getFloat(result, fallback)
Get float value from Result with fallback
Parameters:
result (Result)
fallback (float)
getString(result, fallback)
Get string value from Result with fallback
Parameters:
result (Result)
fallback (string)
getBool(result, fallback)
Get boolean value from Result with fallback
Parameters:
result (Result)
fallback (bool)
hasResultTag(result, tag)
Check if Result has specific tag
Parameters:
result (Result)
tag (string)
getResultTags(result)
Get all tags from Result
Parameters:
result (Result)
setResultContext(result, context)
Set operation context for Result
Parameters:
result (Result)
context (string)
filterResultsByTag(results, tag)
Filter Results by tag (utility for arrays of Results)
Parameters:
results (array)
tag (string)
getAllResultTags(results)
Get all unique tags from array of Results
Parameters:
results (array)
newDefaultAnalysisConfig()
Create default analysis configuration
newAggressiveAnalysisConfig()
Create aggressive trading configuration
newConservativeAnalysisConfig()
Create conservative trading configuration
newDefaultTimeframeConfig()
Create default timeframe configuration
newIntradayTimeframeConfig()
Create intraday timeframe configuration
newSwingTimeframeConfig()
Create swing trading timeframe configuration
getConfigSummary(config)
Get configuration summary string
Parameters:
config (AnalysisConfig)
cloneAnalysisConfig(source)
Clone analysis configuration
Parameters:
source (AnalysisConfig)
newGenericAnalysis(analysisType, timeframe)
Create a new generic analysis result
Parameters:
analysisType (string)
timeframe (string)
newConsensusData()
Create empty consensus data
newNeutralSignal(reason)
Create a neutral signal result
Parameters:
reason (string)
newBuySignal(score, confidence, reason)
Create a buy signal result
Parameters:
score (float)
confidence (float)
reason (string)
newSellSignal(score, confidence, reason)
Create a sell signal result
Parameters:
score (float)
confidence (float)
reason (string)
newMultiTimeframeResult(config, tfConfig)
Create new multi-timeframe result
Parameters:
config (AnalysisConfig)
tfConfig (TimeframeConfig)
getAnalysisAction(analysis)
Get analysis action string
Parameters:
analysis (GenericAnalysis)
isBullish(analysis)
Check if analysis is bullish
Parameters:
analysis (GenericAnalysis)
isBearish(analysis)
Check if analysis is bearish
Parameters:
analysis (GenericAnalysis)
getSignalSummary(signal)
Get signal summary string
Parameters:
signal (SignalResult)
hasStrongConsensus(consensus)
Check if consensus is strong
Parameters:
consensus (ConsensusData)
getConsensusSummary(consensus)
Get consensus summary
Parameters:
consensus (ConsensusData)
isActionableSignal(signal)
Check if signal is actionable
Parameters:
signal (SignalResult)
getSignalColor(signal)
Get signal color for UI display
Parameters:
signal (SignalResult)
validateAnalysisConfig(config)
Validate analysis configuration
Parameters:
config (AnalysisConfig)
validateTimeframeConfig(config)
Validate timeframe configuration
Parameters:
config (TimeframeConfig)
validatePriceData(prices)
Validate price data array
Parameters:
prices (array)
sanitizeFloat(value, minVal, maxVal, defaultVal)
Sanitize numeric input
Parameters:
value (float)
minVal (float)
maxVal (float)
defaultVal (float)
sanitizeInt(value, minVal, maxVal, defaultVal)
Sanitize integer input
Parameters:
value (int)
minVal (int)
maxVal (int)
defaultVal (int)
sanitizeFloatArray(arr)
Sanitize array by removing invalid values
Parameters:
arr (array)
logError(message)
Log error message
Parameters:
message (string)
logWarning(message)
Log warning message
Parameters:
message (string)
safeExecute(operationName, condition)
Safe execute wrapper
Parameters:
operationName (string)
condition (bool)
shouldAllowOperation(errorCount, maxErrors)
Circuit breaker pattern
Parameters:
errorCount (int)
maxErrors (int)
retryOperation(maxRetries)
Retry mechanism
Parameters:
maxRetries (int)
atrDistance(value1, value2, atr)
Calculate ATR-normalized distance between two values
Parameters:
value1 (float)
value2 (float)
atr (float)
atrDistance(value, reference, atrLength)
Calculate ATR-normalized distance between values
Parameters:
value (float)
reference (float)
atrLength (simple int)
percentDistance(value1, value2)
Calculate percentage-based distance between two values
Parameters:
value1 (float)
value2 (float)
withinATRTolerance(value, reference, atr, multiplier)
Check if value is within ATR-based tolerance of reference
Parameters:
value (float)
reference (float)
atr (float)
multiplier (float)
withinATRTolerance(value, reference, multiplier)
Check if value is within ATR-based tolerance of reference
Parameters:
value (float)
reference (float)
multiplier (float)
withinPercentTolerance(value, reference, percentTolerance)
Check if value is within percentage tolerance of reference
Parameters:
value (float)
reference (float)
percentTolerance (float)
proximityScore(value, reference, maxDistance)
Get proximity score (0-1, where 1 = very close)
Parameters:
value (float)
reference (float)
maxDistance (float)
sortArrayByValue(values, sortOrder)
Efficient array sorting using Pine Script native sort
Note: Replaces inefficient bubble sort implementations found in modules
Parameters:
values (array)
sortOrder (string)
safeArrayAverage(values)
Safe array average with null handling
Parameters:
values (array)
formatTableHeader(title, width)
Create formatted header for display tables
Parameters:
title (string)
width (int)
formatTableRow(key, value, width)
Format table row with key-value pair
Parameters:
key (string)
value (string)
width (int)
formatTableFooter(width)
Close table formatting
Parameters:
width (int)
truncateText(txt, maxLength, suffix)
Truncate text to specified length
Parameters:
txt (string)
maxLength (int)
suffix (string)
padText(txt, width, padChar, align)
Pad text to specified width
Parameters:
txt (string)
width (int)
padChar (string)
align (string)
titleCase(txt)
Convert text to title case
Parameters:
txt (string)
joinStrings(strings, separator)
Join array of strings with separator
Parameters:
strings (array)
separator (string)
formatTimestamp(timestamp, format)
Format timestamp to readable date/time
Parameters:
timestamp (int)
format (string)
evictLRU(cache)
Evict least recently used entry
Parameters:
cache (CacheManager)
newRiskAssessment()
Create a default risk assessment
calculateRiskAssessment(signal, volatility, volumeLevel)
Calculate comprehensive risk assessment
Parameters:
signal (SignalResult)
volatility (float)
volumeLevel (float)
newPositionData()
Create new empty position data
getConservativeStrategy()
Create conservative strategy template
getAggressiveStrategy()
Create aggressive strategy template
newDefaultStrategy()
Create default balanced strategy template
getStandardATR()
Get standard ATR(14) - cached per bar
getATR(length)
Get custom ATR with specified length
Parameters:
length (simple int)
getATRTolerance(multiplier)
Get ATR-based tolerance for distance calculations
Parameters:
multiplier (float)
getStandardVolumeAverage()
Get standard volume average SMA(20) - cached per bar
getVolumeAverage(length)
Get custom volume average
Parameters:
length (int)
getVolumeRatio()
Get volume ratio (current vs average)
getVolumeConfirmation(threshold)
Get volume confirmation (above threshold)
Parameters:
threshold (float)
getStandardEMAs()
Get standard EMAs (21, 50, 200) - cached per bar
getEMA21()
Get individual standard EMAs
getEMA50()
getEMA200()
getEMATrendAlignment()
Get EMA trend alignment score
getStandardRSI()
Get standard RSI(14) - cached per bar
getRSILevels(overbought, oversold)
Get RSI with overbought/oversold levels
Parameters:
overbought (float)
oversold (float)
getStandardMACD()
Get standard MACD (12, 26, 9) - cached per bar
getMACDSignal()
Get MACD trend signal
getMomentumScore()
Get comprehensive momentum score
getTrendStrength()
Get trend strength (0-100)
getIndicatorSummary()
Get indicator calculation summary (for debugging)
newZoneDetectionConfig()
Create default zone configuration
newZoneDetection(upperBoundary, lowerBoundary, creationBar, zoneType)
Create new zone
Parameters:
upperBoundary (float)
lowerBoundary (float)
creationBar (int)
zoneType (string)
calculateZoneOverlap(zone1Upper, zone1Lower, zone2Upper, zone2Lower)
Calculate zone overlap ratio
Parameters:
zone1Upper (float)
zone1Lower (float)
zone2Upper (float)
zone2Lower (float)
isPriceTouchingZone(zone, currentPrice, touchTolerance)
Check if price is touching zone
Parameters:
zone (ZoneDetection)
currentPrice (float)
touchTolerance (float)
getZonesInRange(zones, minPrice, maxPrice)
Get zones within price range
Parameters:
zones (array)
minPrice (float)
maxPrice (float)
getNearestZones(zones, currentPrice)
Get nearest support and resistance zones
Parameters:
zones (array)
currentPrice (float)
processZoneDetection(zones, config)
Complete zone detection and management system
Parameters:
zones (array)
config (ZoneDetectionConfig)
processZoneDetectionEngine(zones, config)
Parameters:
zones (array)
config (ZoneDetectionConfig)
newChannelConfig()
calcKeltnerChannel(config)
Parameters:
config (ChannelConfig)
checkKeltnerTouch(upper, lower)
Parameters:
upper (float)
lower (float)
getKeltnerDepth(basis, upper, lower)
Parameters:
basis (float)
upper (float)
lower (float)
checkKeltnerBreakout(upper, lower)
Parameters:
upper (float)
lower (float)
calcDonchianChannel(config)
Parameters:
config (ChannelConfig)
checkDonchianTouch(upper, lower)
Parameters:
upper (float)
lower (float)
checkDonchianReentry(upper, lower)
Parameters:
upper (float)
lower (float)
getDonchianWidth(upper, lower)
Parameters:
upper (float)
lower (float)
calcBollingerBands(config)
Parameters:
config (ChannelConfig)
calcSqueezeRatio(bbStdev, kcMultiplier, kcAtr)
Parameters:
bbStdev (float)
kcMultiplier (float)
kcAtr (float)
detectSqueezeState(squeezeRatio)
Parameters:
squeezeRatio (float)
detectSqueezeBreak(squeezeRatio, kcUpper, kcLower)
Parameters:
squeezeRatio (float)
kcUpper (float)
kcLower (float)
getSqueezeIntensity(squeezeRatio)
Parameters:
squeezeRatio (float)
processChannelDetection(config)
Parameters:
config (ChannelConfig)
detectChannelSignals(state)
Parameters:
state (ChannelState)
detectQualityZones(state)
Parameters:
state (ChannelState)
getChannelSignalText(state)
Parameters:
state (ChannelState)
analyzeChannelTrend(state)
Parameters:
state (ChannelState)
getChannelConfluence(state)
Parameters:
state (ChannelState)
newVwapConfig()
newVwapAnchors()
calcSessionVwap()
getPreviousSessionVwap(sessionVwap)
Parameters:
sessionVwap (float)
updateVwapAnchors(anchors, config)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
calcAnchoredVwap(anchors, isHigh)
Parameters:
anchors (VwapAnchors)
isHigh (bool)
detectPriceCrosses(sessionVwap)
Parameters:
sessionVwap (float)
detectStructureCrosses(sessionVwap, anchoredHigh, anchoredLow)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
detectVwapCluster(sessionVwap, anchoredHigh, anchoredLow, config)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
config (VwapConfig)
canShowSignal(anchors, config, signalType)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
signalType (string)
updateSignalThrottle(anchors, signalType)
Parameters:
anchors (VwapAnchors)
signalType (string)
calcCrossStrength(sessionVwap, isPriceCross)
Parameters:
sessionVwap (float)
isPriceCross (bool)
calcClusterStrength(vwapsInCluster, priceInCluster, tolerance)
Parameters:
vwapsInCluster (bool)
priceInCluster (bool)
tolerance (float)
calcStructureStrength(sessionVwap, anchoredHigh, anchoredLow)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
analyzeVwapTrend(sessionVwap)
Parameters:
sessionVwap (float)
processVwapDetection(anchors, config)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
generateVwapSignals(state)
Parameters:
state (VwapState)
getVwapBias(state)
Parameters:
state (VwapState)
getVwapConfluence(state)
Parameters:
state (VwapState)
newZoneConfig()
newZoneState()
stringToFloats(s)
Parameters:
s (string)
calculateBias(config)
Parameters:
config (ZoneConfig)
createZone(top, bottom, isBull, isHTF)
Parameters:
top (float)
bottom (float)
isBull (bool)
isHTF (bool)
updateZoneStatus(zone)
Parameters:
zone (Zone)
detectFVGOverlap(zone)
Parameters:
zone (Zone)
scoreZone(zone, config)
Parameters:
zone (Zone)
config (ZoneConfig)
sortAndTrimZones(zones, config)
Parameters:
zones (array)
config (ZoneConfig)
adjustZoneVisibility(zones, config)
Parameters:
zones (array)
config (ZoneConfig)
calculateTargetsATR(base, stepsString, atrLength)
Parameters:
base (float)
stepsString (string)
atrLength (simple int)
calculateTargetsSigma(base, stepsString, sigmaLength)
Parameters:
base (float)
stepsString (string)
sigmaLength (int)
calculateTargetsLiquidity(isLong, config)
Parameters:
isLong (bool)
config (ZoneConfig)
detectZoneSignals(zones, bias, config)
Parameters:
zones (array)
bias (int)
config (ZoneConfig)
processZoneManagement(state, config)
Parameters:
state (ZoneState)
config (ZoneConfig)
findNearestZones(state)
Parameters:
state (ZoneState)
newVolumeConfig()
newVolumeState()
getPriceSource(config)
Parameters:
config (VolumeConfig)
isInSession(config)
Parameters:
config (VolumeConfig)
isNewSession(config)
Parameters:
config (VolumeConfig)
calculateWindow(config)
Parameters:
config (VolumeConfig)
calculateProfile(config, windowStart, windowLength)
Parameters:
config (VolumeConfig)
windowStart (int)
windowLength (int)
detectVolumeNodes(binVolumes, binPrices, totalVolume)
Parameters:
binVolumes (array)
binPrices (array)
totalVolume (float)
calculateVolumeChoppiness(config)
Calculate choppiness index for volume profile
Parameters:
config (VolumeConfig)
detectMarketRegime(state, config)
Detect market regime based on multiple factors
Parameters:
state (VolumeState)
config (VolumeConfig)
calculateAdaptiveParameters(state, config)
Calculate adaptive volume profile parameters
Parameters:
state (VolumeState)
config (VolumeConfig)
updateMarketConditions(state, config)
Update volume state with market conditions
Parameters:
state (VolumeState)
config (VolumeConfig)
applyAdaptiveConfig(config, state)
Apply adaptive parameters to profile calculation
Parameters:
config (VolumeConfig)
state (VolumeState)
getHTFPivots(config)
Parameters:
config (VolumeConfig)
checkPivotConfluence(price, config, pivotHigh1, pivotLow1, pivotHigh2, pivotLow2)
Parameters:
price (float)
config (VolumeConfig)
pivotHigh1 (float)
pivotLow1 (float)
pivotHigh2 (float)
pivotLow2 (float)
calculateMOST()
Calculate MOST (Moving Stop) indicator
calculateTrendFilters(config)
Parameters:
config (VolumeConfig)
findNearestNodes(hvnNodes, lvnNodes)
Parameters:
hvnNodes (array)
lvnNodes (array)
detectVolumeSignals(config, profile, trendBullish, htfConfluence)
Parameters:
config (VolumeConfig)
profile (VolumeProfile)
trendBullish (bool)
htfConfluence (bool)
calculateVolumeScore(profile, trendBullish)
Parameters:
profile (VolumeProfile)
trendBullish (bool)
processVolumeProfile(state, config)
Parameters:
state (VolumeState)
config (VolumeConfig)
newHTFConfig()
newHTFStackState()
getOptimalTimeframes(chartTF)
Parameters:
chartTF (string)
calculateChoppiness(length)
Parameters:
length (int)
detectTrendEMA(length, threshold)
Parameters:
length (simple int)
threshold (float)
detectTrendSupertrend(atrLength, multiplier)
Parameters:
atrLength (simple int)
multiplier (float)
detectTrendMOST(length, multiplier)
Parameters:
length (simple int)
multiplier (float)
analyzeTrendForTF(tf, config)
Parameters:
tf (string)
config (HTFConfig)
calculateStackConfluence(tfData, config)
Parameters:
tfData (array)
config (HTFConfig)
calculateAutoTuningParams(choppiness, stackStrength, config)
Parameters:
choppiness (float)
stackStrength (float)
config (HTFConfig)
detectStackSignals(state, prevState, config)
Parameters:
state (HTFStackState)
prevState (HTFStackState)
config (HTFConfig)
createStackPanel(state, config)
Parameters:
state (HTFStackState)
config (HTFConfig)
processHTFStack(state, config)
Parameters:
state (HTFStackState)
config (HTFConfig)
processHTFStackSignals(state, prevState, config)
Parameters:
state (HTFStackState)
prevState (HTFStackState)
config (HTFConfig)
newRedefiningTechnicalAnalysisCore(analysisConfig, timeframeConfig, strategy)
Initialize RedefiningTechnicalAnalysis Core Library
Note: This function requires valid config objects to be passed in
The configuration module must be used directly to create default configs
Parameters:
analysisConfig (AnalysisConfig)
timeframeConfig (TimeframeConfig)
strategy (StrategyTemplate)
performAnalysis(core, prices, volumes, timestamps)
Perform complete multi-timeframe analysis
Parameters:
core (RedefiningTechnicalAnalysisCore)
prices (array)
volumes (array)
timestamps (array)
generateSignal(core, analysisResult)
Generate trading signal from analysis results
Parameters:
core (RedefiningTechnicalAnalysisCore)
analysisResult (MultiTimeframeResult)
assessRisk(core, signal)
Assess risk for trading decision
Parameters:
core (RedefiningTechnicalAnalysisCore)
signal (SignalResult)
executeFullWorkflow(core)
Execute complete analysis workflow
Parameters:
core (RedefiningTechnicalAnalysisCore)
updateAnalysisConfig(core, newConfig)
Update analysis configuration
Parameters:
core (RedefiningTechnicalAnalysisCore)
newConfig (AnalysisConfig)
updateStrategy(core, newStrategy)
Update strategy template
Parameters:
core (RedefiningTechnicalAnalysisCore)
newStrategy (StrategyTemplate)
checkSystemHealth(core)
Perform system health check
Parameters:
core (RedefiningTechnicalAnalysisCore)
generateStatusReport(core)
Generate comprehensive status report
Parameters:
core (RedefiningTechnicalAnalysisCore)
enableDebugMode(core, enabled)
Enable debug mode
Parameters:
core (RedefiningTechnicalAnalysisCore)
enabled (bool)
setFeatureFlag(core, flag, enabled)
Set feature flag
Parameters:
core (RedefiningTechnicalAnalysisCore)
flag (string)
enabled (bool)
getFeatureFlag(core, flag, defaultValue)
Get feature flag
Parameters:
core (RedefiningTechnicalAnalysisCore)
flag (string)
defaultValue (bool)
resetLibraryState(core)
Reset library state
Parameters:
core (RedefiningTechnicalAnalysisCore)
getLibraryInfo()
Get library version information
quickAnalysis(config, tfConfig, strategy)
Quick analysis - simplified entry point
Parameters:
config (AnalysisConfig)
tfConfig (TimeframeConfig)
strategy (StrategyTemplate)
getQuickStatus(core)
Get quick status string
Parameters:
core (RedefiningTechnicalAnalysisCore)
Result
Generic Result type for safe operations with error handling and fallbacks
Fields:
floatValue (series float)
stringValue (series string)
boolValue (series bool)
intValue (series int)
isSuccess (series bool)
errorCode (series string)
errorMessage (series string)
floatFallback (series float)
stringFallback (series string)
boolFallback (series bool)
intFallback (series int)
operationContext (series string)
timestamp (series int)
tags (array)
ValidationResult
Comprehensive validation result with errors, warnings, and corrections
Fields:
isValid (series bool)
errors (array)
warnings (array)
corrections (array)
suggestions (array)
validationScore (series float)
validationMode (series string)
validatedFields (series int)
totalFields (series int)
validationContext (series string)
validationTime (series int)
PerformanceProfile
Simplified performance profiling for Pine Script limitations
Fields:
executionTimeMs (series float)
averageExecutionMs (series float)
executionCount (series int)
errorCount (series int)
cacheHits (series int)
cacheMisses (series int)
cacheHitRatio (series float)
estimatedArrayElements (series int)
hasHeavyCalculation (series bool)
lastOptimizationHint (series string)
performanceGrade (series string)
performanceScore (series float)
functionName (series string)
profileStartTime (series int)
HealthStatus
Simplified health status for Pine Script limitations
Fields:
isHealthy (series bool)
healthScore (series float)
healthGrade (series string)
issues (array)
warnings (array)
recommendations (array)
dataValidationOK (series bool)
calculationsOK (series bool)
memoryUsageOK (series bool)
errorCountSession (series int)
warningCountSession (series int)
lastHealthCheck (series int)
healthCheckVersion (series string)
AnalysisConfig
Comprehensive analysis configuration with factor weights, thresholds, and extensible options
Fields:
activeFactors (array)
factorWeights (map)
thresholds (map)
features (map)
tradingMode (series string)
consensusMode (series string)
riskProfile (series string)
minConfidence (series float)
signalStrength (series float)
requireConsensus (series bool)
minConsensusCount (series int)
parameters (map)
options (map)
flags (map)
configName (series string)
version (series string)
description (series string)
createdTime (series int)
lastModified (series int)
validation (ValidationResult)
TimeframeConfig
Multi-timeframe configuration with weights and adjustments
Fields:
timeframes (array)
weights (array)
autoDetectChartTF (series bool)
includeHigherTFs (series bool)
tfAdjustments (map)
tfSensitivity (map)
tfFeatures (map)
minTimeframes (series int)
consensusThreshold (series float)
consensusMethod (series string)
normalizeWeights (series bool)
adaptiveBias (series bool)
higherTFBias (series float)
tfConfigName (series string)
configTimestamp (series int)
validation (ValidationResult)
GenericAnalysis
Generic analysis result that all specific analysis types extend
Fields:
totalScore (series float)
confidence (series float)
action (series string)
strength (series string)
riskLevel (series string)
factorScores (map)
factorWeights (map)
factorSignals (map)
factorReasons (map)
analysisType (series string)
timeframeAnalyzed (series string)
analysisTimestamp (series int)
marketCondition (series string)
dataQuality (series float)
performance (PerformanceProfile)
validation (ValidationResult)
numericData (map)
textData (map)
flags (map)
ConsensusData
Multi-timeframe consensus analysis data
Fields:
agreementCount (series int)
totalTimeframes (series int)
agreementPercentage (series float)
hasStrongConsensus (series bool)
hasMajorityConsensus (series bool)
agreeingTimeframes (array)
disagreeingTimeframes (array)
tfScores (map)
tfActions (map)
consensusMode (series string)
consensusScore (series float)
consensusAction (series string)
consensusStrength (series string)
tfWeights (map)
weightedConsensus (series bool)
weightedScore (series float)
consensusQuality (series float)
consensusReliability (series string)
consensusWarnings (array)
SignalResult
Comprehensive trading signal result
Fields:
strongBuy (series bool)
buy (series bool)
neutral (series bool)
sell (series bool)
strongSell (series bool)
overallScore (series float)
confidence (series float)
primaryAction (series string)
signalStrength (series string)
signalReason (series string)
contributingFactors (array)
factorContributions (map)
triggerCondition (series string)
consensus (ConsensusData)
consensusLevel (series string)
hasConsensus (series bool)
riskLevel (series string)
riskRewardRatio (series float)
successProbability (series float)
signalTimestamp (series int)
urgency (series string)
validityPeriod (series int)
marketPhase (series string)
warningFlags (array)
metadata (map)
MultiTimeframeResult
Multi-timeframe analysis result container
Fields:
primaryAnalysis (GenericAnalysis)
tfResults (map)
consensus (ConsensusData)
aggregatedScore (series float)
confidenceScore (series float)
dominantAction (series string)
consensusStrength (series string)
analyzedTimeframes (array)
failedTimeframes (array)
failureReasons (map)
performance (PerformanceProfile)
validation (ValidationResult)
dataQualityScore (series float)
config (AnalysisConfig)
tfConfig (TimeframeConfig)
analysisTimestamp (series int)
DebugLogEntry
Debug log entry
Fields:
timestamp (series int)
level (series string)
module (series string)
function (series string)
message (series string)
context (series string)
data (map)
barIndex (series int)
timeframe (series string)
DebugLogger
Debug logger with configurable levels
Fields:
entries (array)
maxEntries (series int)
currentLevel (series string)
enabled (series bool)
enabledModules (array)
showTimestamp (series bool)
showBarIndex (series bool)
outputFormat (series string)
PerformanceMeasurement
Performance measurement
Fields:
name (series string)
startTime (series int)
endTime (series int)
duration (series float)
iterations (series int)
avgDuration (series float)
status (series string)
context (series string)
TraceEntry
Execution trace entry
Fields:
function (series string)
module (series string)
entryTime (series int)
exitTime (series int)
isEntry (series bool)
parameters (series string)
returnValue (series string)
depth (series int)
ExecutionTracer
Execution tracer
Fields:
traces (array)
currentDepth (series int)
maxDepth (series int)
enabled (series bool)
maxTraces (series int)
CacheEntry
Cache entry
Fields:
key (series string)
data (series string)
timestamp (series int)
ttl (series int)
accessCount (series int)
lastAccess (series int)
CacheManager
Cache manager
Fields:
name (series string)
entries (map)
maxEntries (series int)
defaultTTL (series int)
enabled (series bool)
hits (series int)
misses (series int)
evictions (series int)
RiskAssessment
Core risk assessment result
Fields:
riskLevel (series string)
riskScore (series float)
riskRewardRatio (series float)
successProbability (series float)
maxDrawdownExpected (series float)
positionRisk (series float)
portfolioExposure (series float)
correlationRisk (series float)
concentrationRisk (series float)
volatilityRisk (series float)
liquidityRisk (series float)
timeframeRisk (series float)
newsEventRisk (series float)
supportResistanceRisk (series float)
trendRisk (series float)
momentumRisk (series float)
volumeRisk (series float)
hasHighRisk (series bool)
hasExtremeRisk (series bool)
riskWarnings (array)
riskFactors (array)
recommendedPositionSize (series float)
stopLossDistance (series float)
takeProfitDistance (series float)
shouldAvoidTrade (series bool)
riskMitigationStrategy (series string)
assessmentTimestamp (series int)
assessmentMethod (series string)
performance (PerformanceProfile)
PositionData
Comprehensive position data
Fields:
hasPosition (series bool)
positionSide (series string)
positionSize (series float)
entryPrice (series float)
entryTimestamp (series int)
entryReason (series string)
unrealizedPnL (series float)
realizedPnL (series float)
maxUnrealizedGain (series float)
maxUnrealizedLoss (series float)
totalReturn (series float)
stopLossPrice (series float)
takeProfitPrice (series float)
riskAmount (series float)
riskRewardRatio (series float)
currentRisk (RiskAssessment)
barsInPosition (series int)
maxBarsAllowed (series int)
isTimedOut (series bool)
timeframe (series string)
hasExitSignal (series bool)
exitReason (series string)
exitScore (series float)
shouldExit (series bool)
exitUrgency (series string)
actionHistory (array)
timestampHistory (array)
reasonHistory (array)
sharpeRatio (series float)
maxDrawdown (series float)
winRate (series float)
avgHoldTime (series float)
StrategyTemplate
Base strategy template
Fields:
name (series string)
description (series string)
category (series string)
timeframes (array)
entryThreshold (series float)
entryConfidenceMin (series float)
requiredSignals (array)
excludeConditions (array)
exitThreshold (series float)
stopLossPercent (series float)
takeProfitPercent (series float)
maxBarsInTrade (series int)
maxPositionSize (series float)
basePositionSize (series float)
useVolatilityAdjustment (series bool)
useConfidenceAdjustment (series bool)
maxRiskPerTrade (series float)
maxDailyRisk (series float)
maxDrawdownLimit (series float)
useAdaptiveRisk (series bool)
requireConsensus (series bool)
minConsensusPercent (series float)
avoidNewsEvents (series bool)
requireVolume (series bool)
targetSharpeRatio (series float)
targetWinRate (series float)
targetRiskReward (series float)
parameters (map)
flags (map)
settings (map)
MetricDataPoint
Performance metric data point
Fields:
timestamp (series int)
value (series float)
name (series string)
unit (series string)
labels (map)
source (series string)
MetricStats
Metric statistics
Fields:
min (series float)
max (series float)
avg (series float)
sum (series float)
count (series int)
p50 (series float)
p95 (series float)
p99 (series float)
stdDev (series float)
firstTimestamp (series int)
lastTimestamp (series int)
MetricDataPointArray
Wrapper for array of metric data points (to avoid nested collections)
Fields:
dataPoints (array)
MetricsCollector
Metrics collector
Fields:
metrics (map)
stats (map)
maxDataPoints (series int)
retentionPeriod (series int)
autoCleanup (series bool)
enabled (series bool)
enabledMetrics (array)
lastCleanupTime (series int)
ComponentHealth
Component health status
Fields:
name (series string)
status (series string)
healthScore (series float)
lastCheckTime (series int)
warnings (array)
errors (array)
metrics (map)
lastError (series string)
errorCount (series int)
warningCount (series int)
isOperational (series bool)
SystemHealth
System health overview
Fields:
overallStatus (series string)
overallScore (series float)
healthyComponents (series int)
degradedComponents (series int)
unhealthyComponents (series int)
components (array)
systemWarnings (array)
systemErrors (array)
lastFullCheckTime (series int)
autoHealing (series bool)
healingAttempts (series int)
HealthAlert
Health alert
Fields:
level (series string)
component (series string)
message (series string)
timestamp (series int)
acknowledged (series bool)
category (series string)
ZoneDetection
Advanced zone data structure
Fields:
upper (series float)
lower (series float)
mid (series float)
height (series float)
score (series float)
quality (series string)
touchCount (series int)
lastTouchBar (series int)
creationBar (series int)
role (series int)
zoneType (series string)
isActive (series bool)
isBroken (series bool)
flipBar (series int)
flipRetestCount (series int)
flipBestQuality (series float)
flipScore (series float)
hasFlipped (series bool)
htfOverlap (series bool)
htfTimeframe (series string)
htfConfidence (series float)
retestQuality (series float)
volumeProfile (series float)
volatilityProfile (series float)
freshnessScore (series float)
successfulBounces (series int)
failedBreakouts (series int)
successRate (series float)
avgHoldTime (series float)
zoneBox (series box)
midLine (series line)
zoneLabel (series label)
flipLabel (series label)
ZoneDetectionConfig
Zone analysis configuration
Fields:
pivotPeriod (series int)
atrMultiplier (series float)
atrLength (series int)
maxZones (series int)
mergeThreshold (series float)
minTouchesForSignificance (series int)
weightTouches (series float)
weightFreshness (series float)
weightVolume (series float)
weightHTF (series float)
minWickPercent (series float)
maxBodyPercent (series float)
freshnessHalfLife (series int)
useHTFProjection (series bool)
htfTimeframe (series string)
htfPivotCount (series int)
htfProjectionMultiplier (series float)
ChannelConfig
Fields:
kcEmaLength (series int)
kcAtrLength (series int)
kcMultiplier (series float)
dcLength (series int)
bbLength (series int)
bbMultiplier (series float)
pivotLength (series int)
atrThreshold (series float)
minBarsPerLeg (series int)
minTouchCount (series int)
mergeThreshold (series float)
ChannelState
Fields:
kcUpper (series float)
kcLower (series float)
kcBasis (series float)
kcAtr (series float)
dcUpper (series float)
dcLower (series float)
dcMid (series float)
bbUpper (series float)
bbLower (series float)
bbBasis (series float)
bbStdev (series float)
squeezeRatio (series float)
isSqueezeActive (series bool)
isExpanding (series bool)
touchKcUpper (series bool)
touchKcLower (series bool)
touchDcUpper (series bool)
touchDcLower (series bool)
kcBreakoutUp (series bool)
kcBreakoutDown (series bool)
dcReentryUp (series bool)
dcReentryDown (series bool)
squeezeBreakUp (series bool)
squeezeBreakDown (series bool)
kcDepth (series float)
dcWidth (series float)
squeezeIntensity (series float)
ChannelSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
isQualitySignal (series bool)
VwapConfig
Fields:
pivotLeftBars (series int)
pivotRightBars (series int)
clusterTolerancePercent (series float)
minBarsBetweenSignals (series int)
crossThreshold (series float)
enableThrottling (series bool)
detectClusters (series bool)
VwapState
Fields:
sessionVwap (series float)
sessionVwapPrev (series float)
anchoredVwapHigh (series float)
anchoredVwapLow (series float)
hasAnchoredHigh (series bool)
hasAnchoredLow (series bool)
priceCrossUp (series bool)
priceCrossDown (series bool)
canShowPriceCross (series bool)
structureCrossUp (series bool)
structureCrossDown (series bool)
canShowStructureCross (series bool)
isClusterActive (series bool)
canShowCluster (series bool)
clusterTolerance (series float)
vwapsInCluster (series bool)
priceInCluster (series bool)
priceVwapPosition (series int)
priceVwapDistance (series float)
priceVwapDistancePercent (series float)
crossStrength (series float)
clusterStrength (series float)
structureStrength (series float)
VwapSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
isHighConfidence (series bool)
barIndex (series int)
VwapAnchors
Fields:
cumulativePV (series float)
cumulativeV (series float)
anchorPV_High (series float)
anchorV_High (series float)
hasHighAnchor (series bool)
anchorPV_Low (series float)
anchorV_Low (series float)
hasLowAnchor (series bool)
lastPriceCrossBar (series int)
lastStructureCrossBar (series int)
lastClusterBar (series int)
ZoneConfig
Fields:
htfTimeframe (series string)
useHTF (series bool)
maxZonesPerSide (series int)
rankFavorHTF (series bool)
rankFavorFVG (series bool)
rankFavorFresh (series bool)
showOnlyTopRank (series bool)
alphaTop (series int)
alphaRest (series int)
biasLength (series int)
biasBandMultiplier (series float)
targetMode (series string)
atrLength (series int)
atrSteps (series string)
sigmaLength (series int)
sigmaSteps (series string)
useSSL (series bool)
useFVGFills (series bool)
confirmMidline (series bool)
confirmBreak (series bool)
requireBias (series bool)
lazyTargets (series bool)
nearPercent (series float)
Zone
Fields:
top (series float)
bottom (series float)
mid (series float)
bornTime (series int)
isBull (series bool)
isHTF (series bool)
touched (series bool)
violated (series bool)
hasFVG (series bool)
score (series float)
rank (series int)
zoneBox (series box)
midLine (series line)
isActive (series bool)
ZoneState
Fields:
zonesTF (array)
zonesHTF (array)
bias (series int)
biasScore (series float)
biasRegime (series string)
vwapLevel (series float)
bandUpper (series float)
bandLower (series float)
targetLevels (array)
targetLines (array)
activeBullZones (series int)
activeBearZones (series int)
totalZones (series int)
avgZoneScore (series float)
longSignal (series bool)
shortSignal (series bool)
nearestBullZone (Zone)
nearestBearZone (Zone)
ZoneSignal
Fields:
signalType (series string)
sourceZone (Zone)
strength (series float)
description (series string)
confirmed (series bool)
barIndex (series int)
VolumeConfig
Fields:
profileMode (series string)
fixedLength (series int)
rollingLength (series int)
sessionString (series string)
binCount (series int)
valueAreaPercent (series float)
useHLC3 (series bool)
useHTF1 (series bool)
htfTimeframe1 (series string)
useHTF2 (series bool)
htfTimeframe2 (series string)
pivotLookback (series int)
pivotToleranceATR (series float)
enableAutoTuning (series bool)
vaPct_eff (series float)
epsATR_eff (series float)
adaptiveAlpha (series float)
choppinessLength (series int)
choppyThreshold (series float)
trendingThreshold (series float)
useMarketRegime (series bool)
enableLVNSignals (series bool)
enableVASignals (series bool)
maxRetestDistanceATR (series float)
useEMAFilter (series bool)
useSupertrendFilter (series bool)
useMOSTFilter (series bool)
showPOC (series bool)
showValueArea (series bool)
showNodes (series bool)
showSilhouette (series bool)
silhouetteOffset (series int)
silhouetteWidth (series int)
zoneOpacity (series int)
enableSessionSplits (series bool)
maxSessionCount (series int)
VolumeNode
Fields:
price (series float)
volume (series float)
nodeType (series string)
prominence (series float)
isSignificant (series bool)
VolumeProfile
Fields:
pocPrice (series float)
pocVolume (series float)
valueAreaHigh (series float)
valueAreaLow (series float)
totalVolume (series float)
windowStart (series int)
windowLength (series int)
windowHigh (series float)
windowLow (series float)
binVolumes (array)
binPrices (array)
hvnNodes (array)
lvnNodes (array)
nearestLVN (series float)
nearestHVN (series float)
htfConfluence (series bool)
pocLine (series line)
valueAreaBox (series box)
nodeBoxes (array)
silhouette (series polyline)
VolumeState
Fields:
currentProfile (VolumeProfile)
sessionProfiles (array)
trendBullish (series bool)
emaConfluence (series float)
supertrendBull (series bool)
mostBull (series bool)
choppiness (series float)
isChoppy (series bool)
isTrending (series bool)
marketRegime (series string)
vaPct_current (series float)
epsATR_current (series float)
smoothingFactor (series float)
longLVNSignal (series bool)
shortLVNSignal (series bool)
longVASignal (series bool)
shortVASignal (series bool)
volumeScore (series float)
passFilter (series bool)
inValueArea (series bool)
abovePOC (series bool)
pocRising (series bool)
nearLVN (series bool)
VolumeSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
triggerPrice (series float)
hasConfluence (series bool)
barIndex (series int)
HTFConfig
Fields:
timeframes (array)
tfWeights (array)
autoSelectTFs (series bool)
maxTimeframes (series int)
trendLength (series int)
trendThreshold (series float)
trendMethod (series string)
stackThreshold (series float)
requireAllTFs (series bool)
confluenceBonus (series float)
enableAutoTuning (series bool)
choppinessLength (series int)
choppyThreshold (series float)
trendingThreshold (series float)
showStackPanel (series bool)
panelPosition (series string)
panelRows (series int)
panelCols (series int)
showTooltips (series bool)
HTFTrendData
Fields:
timeframe (series string)
trendStrength (series float)
trendDirection (series string)
confidence (series float)
isValid (series bool)
weight (series float)
trendColor (series color)
HTFStackState
Fields:
tfData (array)
bullConfluence (series float)
bearConfluence (series float)
stackStrength (series float)
stackBias (series string)
choppiness (series float)
isChoppy (series bool)
isTrending (series bool)
marketRegime (series string)
vaPct_eff (series float)
epsATR_eff (series float)
adaptiveAlpha (series float)
bullStackSignal (series bool)
bearStackSignal (series bool)
stackBreakSignal (series bool)
stackTable (series table)
tfLabels (array)
strengthBars (array)
RedefiningTechnicalAnalysisCore
Main library state container
Fields:
analysisConfig (AnalysisConfig)
timeframeConfig (TimeframeConfig)
activeStrategy (StrategyTemplate)
lastAnalysis (MultiTimeframeResult)
lastSignal (SignalResult)
lastRisk (RiskAssessment)
currentPosition (PositionData)
isInitialized (series bool)
lastUpdateTime (series int)
currentTimeframe (series string)
globalPerformance (PerformanceProfile)
systemHealth (SystemHealth)
metricsCollector (MetricsCollector)
analysisCache (CacheManager)
calculationCache (CacheManager)
recentErrors (array)
recentWarnings (array)
errorCount (series int)
warningCount (series int)
debugLogger (DebugLogger)
debugMode (series bool)
extensionData (map)
featureFlags (map)
Risk sizing toolHelps you manage risk per trade accurately.
Automatically adjusts position size if the stop-loss or account constraints are exceeded.
Gives a clear visual summary directly on your stock chart.
Prevents taking trades that are too large relative to your account.
Volume v4 (Dollar Value) by Koenigsegg📊 Volume v3 (Dollar Value) by Koenigsegg
🎯 Purpose:
Volume v3 (Dollar Value) by Koenigsegg transforms traditional raw-unit volume into dollar-denominated volume, revealing how much money actually flows through each candle.
Instead of measuring how many coins or contracts were traded, this version calculates the total traded value = volume × average price (hlc3), allowing traders to visually assess capital intensity and market participation within each move.
⚙️ Core Features
- Converts raw volume into USD-based traded value for each candle.
- Color-coded bars show bullish (green/teal) vs. bearish (red) activity.
- Built-in SMA and SMMA overlays highlight sustained shifts in value flow.
- Designed for visual clarity to support momentum, exhaustion, and divergence studies.
📖 How to Read It
Rising Dollar Volume — indicates growing market participation and strong capital flow, often aligning with impulsive waves in trend direction.
Falling Dollar Volume — signals waning interest or reduced participation, potentially hinting at correction or exhaustion phases.
Comparing Legs — when price makes new highs/lows but dollar volume weakens, it can reveal divergences between price movement and actual capital commitment.
SMA / SMMA Lines — use them to identify longer-term accumulation or depletion of market activity, separating short bursts from sustained inflows or outflows.
The goal is to visualize the strength of market moves in terms of capital energy, not just tick activity. This distinction helps traders interpret whether a trend is being driven by genuine money flow or low-liquidity drift.
⚠️ Disclaimer
This script is provided for research and educational purposes only.
It does not constitute financial advice, investment recommendations, or trading signals.
Always conduct your own analysis and manage your own risk when trading live markets.
The author accepts no liability for financial losses incurred from use of this tool.
🧠 Credits
Developed and published by Koenigsegg.
Written in Pine Script® v6, fully compliant with TradingView’s House Rules for Pine Scripts.
Licensed under the Mozilla Public License 2.0.
Regular Trading Hours Opening Range Gap (RTH ORG)### Regular Trading Hours (RTH) Gap Indicator with Quartile Levels
**Overview**
Discover overnight gaps in index futures like ES, YM, and NQ, or stocks like SPY, with this enhanced Pine Script v6 indicator. It visualizes the critical gap between the previous RTH close (4:15 PM ET for futures, 4:00 PM for SPY) and the next RTH open (9:30 AM ET), helping traders spot potential price sensitivity formed during after-hours trading.
**Key Features**
- **Standard Gap Boxes**: Semi-transparent boxes highlight the gap range, with optional text labels showing day-of-week and "RTH" identifier.
- **Midpoint Line**: A customizable dashed line at the 50% level, with price labels for quick reference.
- **New: Quartile Lines (25% & 75%)**: Dotted lines (default width 1) mark the quarter and three-quarter points within the gap, ideal for finer intraday analysis. Toggle on/off, adjust style/color/width, and add labels.
- **High-Low Gap Variant**: Optional boxes and midlines for gaps between the prior close's high/low and the open's high/low—perfect for wick-based overlaps on lower timeframes (5-min or below recommended).
- **RTH Close Lines**: Extend previous close levels with dotted lines and price tags.
- **Customization Galore**: Extend elements right, limit historical displays (default: 3 gaps), no-plot sessions (e.g., avoid weekends), and time offsets for non-US indices.
**How to Use**
Apply to 15-min or lower charts for best results. Toggle "extend right" for ongoing levels. SPY auto-adjusts for its 4 PM close.
Tested on major indices—enhance your gap trading strategy today! Questions? Drop a comment.
Thanks to twingall for supplying the original code.
Thanks to The Inner Circle Trader (ICT) for the logical and systematic application.
6 minutes ago
Release Notes
### Regular Trading Hours (RTH) Gap Indicator with Quartile Levels
**Overview**
Discover overnight gaps in index futures like ES, YM, and NQ, or stocks like SPY, with this enhanced Pine Script v6 indicator. It visualizes the critical gap between the previous RTH close (4:15 PM ET for futures, 4:00 PM for SPY) and the next RTH open (9:30 AM ET), helping traders spot potential price sensitivity formed during after-hours trading.
**Key Features**
- **Standard Gap Boxes**: Semi-transparent boxes highlight the gap range, with optional text labels showing day-of-week and "RTH" identifier.
- **Midpoint Line**: A customizable dashed line at the 50% level, with price labels for quick reference.
- **New: Quartile Lines (25% & 75%)**: Dotted lines (default width 1) mark the quarter and three-quarter points within the gap, ideal for finer intraday analysis. Toggle on/off, adjust style/color/width, and add labels.
- **High-Low Gap Variant**: Optional boxes and midlines for gaps between the prior close's high/low and the open's high/low—perfect for wick-based overlaps on lower timeframes (5-min or below recommended).
- **RTH Close Lines**: Extend previous close levels with dotted lines and price tags.
- **Customization Galore**: Extend elements right, limit historical displays (default: 3 gaps), no-plot sessions (e.g., avoid weekends), and time offsets for non-US indices.
**How to Use**
Apply to 15-min or lower charts for best results. Toggle "extend right" for ongoing levels. SPY auto-adjusts for its 4 PM close.
Tested on major indices—enhance your gap trading strategy today! Questions? Drop a comment.
Thanks to twingall for supplying the original code.
Thanks to The Inner Circle Trader (ICT) for the logical and systematic application.
+++ 2025.10.13 added new labels / fixed bugs
Cumulative Volume Delta Z Score [BackQuant]Cumulative Volume Delta Z Score
The Cumulative Volume Delta Z Score indicator is a sophisticated tool that combines the cumulative volume delta (CVD) with Z-Score normalization to provide traders with a clearer view of market dynamics. By analyzing volume imbalances and standardizing them through a Z-Score, this tool helps identify significant price movements and market trends while filtering out noise.
Core Concept of Cumulative Volume Delta (CVD)
Cumulative Volume Delta (CVD) is a popular indicator that tracks the net difference between buying and selling volume over time. CVD helps traders understand whether buying or selling pressure is dominating the market. Positive CVD signals buying pressure, while negative CVD indicates selling pressure.
The addition of Z-Score normalization to CVD makes it easier to evaluate whether current volume imbalances are unusual compared to past behavior. Z-Score helps in detecting extreme conditions by showing how far the current CVD is from its historical mean in terms of standard deviations.
Key Features
Cumulative Volume Delta (CVD): Tracks the net buying vs. selling volume, allowing traders to gauge the overall market sentiment.
Z-Score Normalization: Converts CVD into a standardized value to highlight extreme movements in volume that are statistically significant.
Divergence Detection: The indicator can spot bullish and bearish divergences between price and CVD, which can signal potential trend reversals.
Pivot-Based Divergence: Identifies price and CVD pivots, highlighting divergence patterns that are crucial for predicting price changes.
Trend Analysis: Colors bars according to trend direction, providing a visual indication of bullish or bearish conditions based on Z-Score.
How It Works
Cumulative Volume Delta (CVD): The CVD is calculated by summing the difference between buying and selling volume for each bar. It represents the net buying or selling pressure, giving insights into market sentiment.
Z-Score Normalization: The Z-Score is applied to the CVD to normalize its values, making it easier to compare current conditions with historical averages. A Z-Score greater than 0 indicates a bullish market, while a Z-Score less than 0 signals a bearish market.
Divergence Detection: The indicator detects regular and hidden bullish and bearish divergences between price and CVD. These divergences often precede trend reversals, offering traders a potential entry point.
Pivot-Based Analysis: The indicator uses pivot highs and lows in both price and CVD to identify divergence patterns. A bullish divergence occurs when price makes a lower low, but CVD fails to follow, suggesting weakening selling pressure. Conversely, a bearish divergence happens when price makes a higher high, but CVD doesn't confirm the move, indicating potential selling pressure.
Trend Coloring: The bars are colored based on the trend direction. Green bars indicate an uptrend (CVD is positive), and red bars indicate a downtrend (CVD is negative). This provides an easy-to-read visualization of market conditions.
Standard Deviation Levels: The indicator plots ±1σ, ±2σ, and ±3σ levels to indicate the degree of deviation from the average CVD. These levels act as thresholds for identifying extreme buying or selling pressure.
Customization Options
Anchor Timeframe: The user can define an anchor timeframe to aggregate the CVD, which can be customized based on the trader’s needs (e.g., daily, weekly, custom lower timeframes).
Z-Score Period: The period for calculating the Z-Score can be adjusted, allowing traders to fine-tune the indicator's sensitivity.
Divergence Detection: The tool offers controls to enable or disable divergence detection, with the ability to adjust the lookback periods for pivot detection.
Trend Coloring and Visuals: Traders can choose whether to color bars based on trend direction, display standard deviation levels, or visualize the data as a histogram or line plot.
Display Options: The indicator also allows for various display options, including showing the Z-Score values and divergence signals, with customizable colors and line widths.
Alerts and Signals
The Cumulative Volume Delta Z Score comes with pre-configured alert conditions for:
Z-Score Crossovers: Alerts are triggered when the Z-Score crosses the 0 line, indicating a potential trend reversal.
Shifting Trend: Alerts for when the Z-Score shifts direction, signaling a change in market sentiment.
Divergence Detection: Alerts for both regular and hidden bullish and bearish divergences, offering potential reversal signals.
Extreme Imbalances: Alerts when the Z-Score reaches extreme positive or negative levels, indicating overbought or oversold market conditions.
Applications in Trading
Trend Identification: Use the Z-Score to confirm bullish or bearish trends based on cumulative volume data, filtering out noise and false signals.
Reversal Signals: Divergences between price and CVD can help identify potential trend reversals, making it a powerful tool for swing traders.
Volume-Based Confirmation: The Z-Score allows traders to confirm price movements with volume data, providing more reliable signals compared to price action alone.
Divergence Strategy: Use the divergence signals to identify potential points of entry, particularly when regular or hidden divergences appear.
Volatility and Market Sentiment: The Z-Score provides insights into market volatility by measuring the deviation of CVD from its historical mean, helping to predict price movement strength.
The Cumulative Volume Delta Z Score is a powerful tool that combines volume analysis with statistical normalization. By focusing on volume imbalances and applying Z-Score normalization, this indicator provides clear, reliable signals for trend identification and potential reversals. It is especially useful for filtering out market noise and ensuring that trades are based on significant price movements driven by substantial volume changes.
This indicator is perfect for traders looking to add volume-based analysis to their strategy, offering a more robust and accurate way to gauge market sentiment and trend strength.
Triple SuperTrend + RSI + Fib BBTriple SuperTrend + RSI + Fibonacci Bollinger Bands Strategy
📊 Overview
This advanced trading strategy combines the power of three SuperTrend indicators with RSI confirmation and Fibonacci Bollinger Bands to generate high-probability trade signals. The strategy is designed to capture strong trending moves while filtering out false signals through multi-indicator confluence.
🔧 Core Components
Three SuperTrend Indicators
The strategy uses three SuperTrend indicators with progressively longer periods and multipliers:
SuperTrend 1: 10-period ATR, 1.0 multiplier (fastest, most sensitive)
SuperTrend 2: 11-period ATR, 2.0 multiplier (medium sensitivity)
SuperTrend 3: 12-period ATR, 3.0 multiplier (slowest, most stable)
This layered approach ensures that all three timeframe perspectives align before generating a signal, significantly reducing false entries.
RSI Confirmation (7-period)
The Relative Strength Index acts as a momentum filter:
Long signals require RSI > 50 (bullish momentum)
Short signals require RSI < 50 (bearish momentum)
This prevents entries during weak or divergent price action.
Fibonacci Bollinger Bands (200, 2.618)
Uses a 200-period Simple Moving Average with 2.618 standard deviation bands (Fibonacci ratio). These bands serve dual purposes:
Visual representation of price extremes
Automatic exit trigger when price reaches overextended levels
📈 Entry Logic
LONG Entry (BUY Signal)
A LONG position is opened when ALL of the following conditions are met simultaneously:
All three SuperTrend indicators turn green (bullish)
RSI(7) is above 50
This is the first bar where all conditions align (no repainting)
SHORT Entry (SELL Signal)
A SHORT position is opened when ALL of the following conditions are met simultaneously:
All three SuperTrend indicators turn red (bearish)
RSI(7) is below 50
This is the first bar where all conditions align (no repainting)
🚪 Exit Logic
Positions are automatically closed when ANY of these conditions occur:
SuperTrend Color Change: Any one of the three SuperTrend indicators changes direction
Fibonacci BB Touch: Price reaches or exceeds the upper or lower Fibonacci Bollinger Band (2.618 standard deviations)
This dual-exit approach protects profits by:
Exiting quickly when trend momentum shifts (SuperTrend change)
Taking profits at statistical price extremes (Fib BB touch)
🎨 Visual Features
Signal Arrows
Green Up Arrow (BUY): Appears below the bar when long entry conditions are met
Red Down Arrow (SELL): Appears above the bar when short entry conditions are met
Yellow Down Arrow (EXIT): Appears above the bar when exit conditions are met
Background Coloring
Light Green Tint: All three SuperTrends are bullish (uptrend environment)
Light Red Tint: All three SuperTrends are bearish (downtrend environment)
SuperTrend Lines
Three colored lines plotted with varying opacity:
Solid line (ST1): Most responsive to price changes
Semi-transparent (ST2): Medium-term trend
Most transparent (ST3): Long-term trend structure
Dashboard
Real-time information panel showing:
Individual SuperTrend status (UP/DOWN)
Current RSI value and color-coded status
Current position (LONG/SHORT/FLAT)
Net Profit/Loss
⚙️ Customizable Parameters
SuperTrend Settings
ATR periods for each SuperTrend (default: 10, 11, 12)
Multipliers for each SuperTrend (default: 1.0, 2.0, 3.0)
RSI Settings
RSI length (default: 7)
RSI source (default: close)
Fibonacci Bollinger Bands
BB length (default: 200)
BB multiplier (default: 2.618)
Strategy Options
Enable/disable long trades
Enable/disable short trades
Initial capital
Position sizing
Commission settings
💡 Strategy Philosophy
This strategy is built on the principle of confluence trading - waiting for multiple independent indicators to align before taking a position. By requiring three SuperTrend indicators AND RSI confirmation, the strategy filters out the majority of low-probability setups.
The multi-timeframe SuperTrend approach ensures that short-term, medium-term, and longer-term trends are all in agreement, which typically occurs during strong, sustainable price moves.
The exit strategy is equally important, using both trend-following logic (SuperTrend changes) and mean-reversion logic (Fibonacci BB touches) to adapt to different market conditions.
📊 Best Use Cases
Trending Markets: Works best in markets with clear directional bias
Higher Timeframes: Designed for 15-minute to daily charts
Volatile Assets: SuperTrend indicators excel in assets with clear trends
Swing Trading: Hold times typically range from hours to days
⚠️ Important Notes
No Repainting: All signals are confirmed and will not change on historical bars
One Signal Per Setup: The strategy prevents duplicate signals on consecutive bars
Exit Protection: Always exits before potentially taking an opposite position
Visual Clarity: All three SuperTrend lines are visible simultaneously for transparency
🎯 Recommended Settings
While default parameters are optimized for general use, consider:
Crypto/Volatile Markets: May benefit from slightly higher multipliers
Forex: Default settings work well for major pairs
Stocks: Consider longer BB periods (250-300) for daily charts
Lower Timeframes: Reduce all periods proportionally for scalping
📝 Alerts
Built-in alert conditions for:
BUY signal triggered
SELL signal triggered
EXIT signal triggered
Set up notifications to never miss a trade opportunity!
Disclaimer: This strategy is for educational and informational purposes only. Past performance does not guarantee future results. Always backtest thoroughly and practice proper risk management before live trading.
Background Trend Follower by exp3rtsThe Background Trend Follower indicator visually highlights the market’s daily directional bias using subtle background colors. It calculates the price change from the daily open and shades the chart background according to the current intraday momentum.
🟢 Green background → Price is significantly above the daily open (strong bullish trend)
🔴 Red background → Price is significantly below the daily open (strong bearish trend)
🟡 Yellow background → Price is trading near the daily open (neutral or consolidating phase)
The script automatically detects each new trading day.
It records the opening price at the start of the day.
As the session progresses, it continuously measures how far the current price has moved from that open.
When the move exceeds ±50 points (custom threshold), the background color adapts to reflect the trend strength.
Perfect for traders who want a quick visual sense of intraday bias — bullish, bearish, or neutral — without cluttering the chart with extra indicators.
HTF Live View - GSK-VIZAG-AP-INDIA📘 HTF Live View — GSK-VIZAG-AP-INDIA
🧩 Overview
The HTF Live View indicator provides a real-time visual representation of higher-timeframe (HTF) candle structures — such as 15min, 30min, 1H, 4H, and Daily — all derived directly from live 1-minute data.
This allows traders to see how higher timeframe candles are forming within the current session — without switching chart timeframes.
⚙️ Core Features
📊 Live Multi-Timeframe OHLC Tracking
Continuously calculates and displays Open, High, Low, and Close values for each key timeframe (15m, 30m, 1H, 4H, and Daily) based on the ongoing session.
⏱ Session-Aware Calculation
Automatically syncs with market hours defined by user-selected start and end times. Works across multiple timezones for global compatibility.
🕹 Visual Candle Representation
Draws mini-candles on the chart for each higher timeframe to represent their current body and wick — updated live.
Green body → bullish development
Red body → bearish development
📅 Informative Table Panel
Displays a summary table showing:
Timeframe label
Period (start–end time)
Live OHLC values
Color-coded close values
🌍 Timezone Support
Fully compatible with common regions such as Asia/Kolkata, New York, London, Tokyo, and Sydney.
🔧 User Inputs
Parameter Description
Market Start Hour/Minute Define session start time (default: 09:15)
Session End Hour/Minute Define market close (default: 15:30)
Timezone Select your preferred timezone for session alignment
💡 How It Works
The indicator uses a rolling OHLC calculation function that dynamically computes candle values based on elapsed session time.
Each timeframe (15m, 30m, 1H, 4H, and Daily) is built from 1-minute data to maintain precision even during intraday updates.
Both a visual representation (candles and wicks) and a data table (numeric summary) are displayed for clarity.
🧠 Use Cases
Monitor how HTF candles are forming live without switching chart intervals.
Understand intraday structure shifts (e.g., when 1H turns from red to green).
Confirm trend alignment across multiple timeframes visually.
Combine with your volume, delta, or liquidity tools for deeper confluence.
🪶 Signature
Developed by GSK-VIZAG-AP-INDIA
© prowelltraders — Educational and analytical use only.
⚠️ Disclaimer
This indicator is for educational and informational purposes only.
It does not provide financial advice or guaranteed trading results.
Always perform your own analysis before making investment decisions.
Volume Sampled Supertrend [BackQuant]Volume Sampled Supertrend
A Supertrend that runs on a volume sampled price series instead of fixed time. New synthetic bars are only created after sufficient traded activity, which filters out low participation noise and makes the trend much easier to read and model.
Original Script Link
This indicator is built on top of my volume sampling engine. See the base implementation here:
Why Volume Sampling
Traditional charts print a bar every N minutes regardless of how active the tape is. During quiet periods you accumulate many small, low information bars that add noise and whipsaws to downstream signals.
Volume sampling replaces the clock with participation. A new synthetic bar is created only when a pre-set amount of volume accumulates (or, in Dollar Bars mode, when pricevolume reaches a dollar threshold). The result is a non-uniform time series that stretches in busy regimes and compresses in quiet regimes. This naturally:
filters dead time by skipping low volume chop;
standardizes the information content per bar, improving comparability across regimes;
stabilizes volatility estimates used inside banded indicators;
gives trend and breakout logic cleaner state transitions with fewer micro flips.
What this tool does
It builds a synthetic OHLCV stream from volume based buckets and then applies a Supertrend to that synthetic price. You are effectively running Supertrend on a participation clock rather than a wall clock.
Core Features
Sampling Engine - Choose Volume buckets or Dollar Bars . Thresholds can be dynamic from a rolling mean or median, or fixed by the user.
Synthetic Candles - Plots the volume sampled OHLC candles so you can visually compare against regular time candles.
Supertrend on Synthetic Price - ATR bands and direction are computed on the sampled series, not on time bars.
Adaptive Coloring - Candle colors can reflect side, intensity by volume, or a neutral scheme.
Research Panels - Table shows total samples, current bucket fill, threshold, bars-per-sample, and synthetic return stats.
Alerts - Long and Short triggers on Supertrend direction flips for the synthetic series.
How it works
Sampling
Pick Sampling Method = Volume or Dollar Bars.
Set the dynamic threshold via Rolling Lookback and Filter (Mean or Median), or enable Use Fixed and type a constant.
The script accumulates volume (or pricevolume) each time bar. When the bucket reaches the threshold, it finalizes one or more synthetic candles and resets accumulation.
Each synthetic candle stores its own OHLCV and is appended to the synthetic series used for all downstream logic.
Supertrend on the sampled stream
Choose Supertrend Source (Open, High, Low, Close, HLC3, HL2, OHLC4, HLCC4) derived from the synthetic candle.
Compute ATR over the synthetic series with ATR Period , then form upperBand = src + factorATR and lowerBand = src - factorATR .
Apply classic trailing band and direction rules to produce Supertrend and trend state.
Because bars only come when there is sufficient participation, band touches and flips tend to align with meaningful pushes, not idle prints.
Reading the display
Synthetic Volume Bars - The non-uniform candles that represent equal information buckets. Expect more candles during active sessions and fewer during lulls.
Volume Sampled Supertrend - The main line. Green when Trend is 1, red when Trend is -1.
Markers - Small dots appear when a new synthetic sample is created, useful for aligning activity cycles.
Time Bars Overlay (optional) - Plot regular time candles to compare how the synthetic stream compresses quiet chop.
Settings you will use most
Data Settings
Sampling Method - Volume or Dollar Bars.
Rolling Lookback and Filter - Controls the dynamic threshold. Median is robust to outliers, Mean is smoother.
Use Fixed and Fixed Threshold - Force a constant bucket size for consistent sampling across regimes.
Max Stored Samples - Ring buffer limit for performance.
Indicator Settings
SMA over last N samples - A moving average computed on the synthetic close series. Can be hidden for a cleaner layout.
Supertrend Source - Price field from the synthetic candle.
ATR Period and Factor - Standard Supertrend controls applied on the synthetic series.
Visuals and UI
Show Synthetic Bars - Turn synthetic candles on or off.
Candle Color Mode - Green/Red, Volume Intensity, Neutral, or Adaptive.
Mark new samples - Puts a dot when a bucket closes.
Show Time Bars - Overlay regular candles for comparison.
Paint candles according to Trend - Colors chart candles using current synthetic Supertrend direction.
Line Width , Colors , and Stats Table toggles.
Some workflow notes:
Trend Following
Set Sampling Method = Volume, Filter = Median, and a reasonable Rolling Lookback so busy regimes produce more samples.
Trade in the direction of the Volume Sampled Supertrend. Because flips require real participation, you tend to avoid micro whipsaws seen on time bars.
Use the synthetic SMA as a bias rail and trailing reference for partials or re-entries.
Breakout and Continuation
Watch for rapid clustering of new sample markers and a clean flip of the synthetic Supertrend.
The compression of quiet time and expansion in busy bursts often makes breakouts more legible than on uniform time charts.
Mean Reversion
In instruments that oscillate, faded moves against the synthetic Supertrend are easier to time when the bucket cadence slows and Supertrend flattens.
Combine with the synthetic SMA and return statistics in the table for sizing and expectation setting.
Stats table (top right)
Method and Total Samples - Sampling regime and current synthetic history length.
Current Vol or Dollar and Threshold - Live bucket fill versus the trigger.
Bars in Bucket and Avg Bars per Sample - How much time data each synthetic bar tends to compress.
Avg Return and Return StdDev - Simple research metrics over synthetic close-to-close changes.
Why this reduces noise
Time based bars treat a 5 minute print with 1 percent of average participation the same as one with 300 percent. Volume sampling equalizes bar information content. By advancing the bar only when sufficient activity occurs, you skip low quality intervals that add variance but little signal. For banded systems like Supertrend, this often means fewer false flips and cleaner runs.
Notes and tips
Use Dollar Bars on assets where nominal price varies widely over time or across symbols.
Median filter can resist single burst outliers when setting dynamic thresholds.
If you need a stable research baseline, set Use Fixed and keep the threshold constant across tests.
Enable Show Time Bars occasionally to sanity check what the synthetic stream is compressing or stretching.
Link again for reference
Original Volume Based Sampling engine:
Bottom line
When you let participation set the clock, your Supertrend reacts to meaningful flow instead of idle prints. The result is a cleaner state machine, fewer micro whipsaws, and a trend read that respects when the market is actually trading.
Extreme Candle Pattern Visualizer🟠 OVERVIEW
This indicator compares the current candle's percentage change against historical data, then highlights past candles with equal or bigger magnitude of movement. Also, for all the highlighted past candles, it tracks how far price extends before recovering to its starting point. It also provides statistical context through percentile rankings.
IN SHORT: Quickly spot similar price movements in the past and understand how unusual the current candle is using percentile rankings.
🟠 CORE CONCEPT
The indicator operates on two fundamental principles:
1. Statistical Rarity Detection
The script calculates the percentage change (open to close) of every candle within a user-defined lookback period and determines where the current candle ranks in this distribution. A candle closing at -9% might fall in the bottom 5th percentile, indicating it's more extreme than 95% of recent candles. This percentile ranking helps traders identify statistically unusual moves that often precede reversals or extended trends.
2. Recovery Path Mapping
Once extreme candles are identified (those matching or exceeding the current candle's magnitude), the indicator tracks their subsequent price action. For bearish candles, it measures how far price dropped before recovering back to the candle's opening price. For bullish candles, it tracks how high price climbed before returning to the open. This reveals whether extreme moves typically extend further or reverse quickly.
🟠 PRACTICAL APPLICATIONS
Mean Reversion Trading:
Candles in extreme percentiles (below 10% or above 90%) often signal oversold/overbought conditions. The recovery lines show typical extension distances, helping traders set profit targets for counter-trend entries.
Momentum Continuation:
When extreme candles show small recovery percentages before price reverses back, it suggests strong directional momentum that may continue.
Stop Loss Placement:
Historical recovery data reveals typical extension ranges after extreme moves, informing more precise stop loss positioning beyond noise but before major reversals.
Pattern Recognition:
By visualizing how similar historical extremes resolved, traders gain context for current price action rather than trading in isolation.
🟠 VISUAL ELEMENTS
Orange Circles: Mark historical candles with similar or greater magnitude to current candle
Red Lines: Track downward extensions after bearish extreme candles
Green Lines: Track upward extensions after bullish extreme candles
Percentage Labels: Show exact extension distance from candle close to extreme point
Percentile Label: Color-coded box displaying current candle's statistical ranking
Hollow Candles: Background rendering for clean chart presentation
🟠 ORIGINALITY
This indicator uniquely combines statistical percentile analysis with forward-looking recovery tracking. While many indicators identify extreme moves, few show what happened next across multiple historical instances simultaneously. The dual approach provides both the "how rare is this?" question (percentile) and "what typically happens after?" answer (recovery paths) in a single visual framework.
Michal D. Lagless Moving Average | MisinkoMasterThe 𝕸𝖎𝖈𝖍𝖆𝖑 𝕯. 𝕷𝖆𝖌𝖑𝖊𝖘𝖘 𝕸𝖔𝖛𝖎𝖓𝖌 𝕬𝖛𝖊𝖗𝖆𝖌𝖊 is my latest creation of a trend following tool, which is a bit different from the rest. By trying to de-lag the classical moving average, it gives you fast signals on changes in trend as fast as possible, keeping traders & investors always in check for potential risks they might want to avoid.
How does it work?
First we need to calculate lengths. The lengths are calcuted using a user defined input called the "Length Multiplier" and we of course need as well the length input too.
The indicator uses 10 lengths, 5 for an average price, 5 for median price.
The length for the average is the following:
length_2_avg = length_1_avg * length_multiplier
length_3_avg = length_2_avg * length_multiplier
...
and for the median lengths:
length_1_median = length_2_avg
length_2_median = length_3_avg
Here applies this rule
length_x_median < length_x_avg
This is intentional, and it is because the average is a little more reactive, while the median is a bit slower. To make up for the "slowness" of the median, we simple reduce the length of it a bit more than the average.
Now that we have our length we are ready to calculate averages and medians over their respective period. This is the a normal average from elementary school, nothing too fancy.
Now that we have all of them we match the pairs using another user defined input called "Median Weight" like so:
(Average_x * (2-median_weight) + Median_x * median_weight)/2
This gives more weight to the average (also due to the max value limit set to avoid breaking the fundational logic behind it).
After doing it to all the pairs we now average those pairs using another input called "Exponential Weight Multiplier".
The Exponential Weight Multiplier is used for weights which I will cover soon:
weight1 = weight
weight2 = weight * weight
weight3 = weight * weight * weight....
This is done until we have all the weights calculated
This gives exponentially more weight to the less lagging indicators, which is how we delag the indicator.
Then we sum all the pairs like so:
sum = pair1 * weight1 + pair2 * weight2 + pair3 * weight3 + pair4 * weight4 + pair5 * weight5
Then the sum is divided by the sum of weights, this results in us getting the final value.
Methodology & What is the actual point & how was it made?
I want to cover this one a bit deeper:
The methodology behind this was creating an indicator that would not be lagging, and would be able to avoid lag while not producing signals too often.
In many attempts in the first part, I tried using EMA, RMA, DEMA, TEMA, HMA, SMA and so on, but they were too noisy (except for SMA & RMA, but those had their flaws), so I tried the classical average taught in elementary school. This one worked better, but the noise was too high still after all this time. This made me include the median, which helped the noise, but made it far too lagging.
Here came the idea of making the median length lower and adding weights to counter the lag of the median, but it was still too lagging. This made me make the weights for lengths more exponential, while previously they were calculated using a little bit amplified sums that were alright, but nowhere near my desired result.
Using the new weights I got further, and after a bit of testing I was sattisfied with the results.
The logic for the trend was a big part in my development part, there were many I could think of, but not enough time to try them, so I stuck to the usual one, and I leave it up to YOU to beat my trend logic and get even better results.
Use Cases:
- Price/MA Crossovers
Simple, effective, useful
- Source for other indicators
This I tried myself, and it worked in a cool way, making the signals of for example RSI much smoother, so definitely try it out if you know how to code, or just simply put it in the source of the RSI.
- ROC
This trend logic stuck with me, I think you could find a way to make it good, but mainly for the people that can code in pine, trying out to combine the trend logic with ROC could work very well, do not sleep on it!
- Education
This concept is not really that complex, so for people looking for new ideas, inspiration, or just watching how trend following tools behave in general this is something that could benefit anyone, as the concept can be applied to ANYTHING, even the classical RSI, MACD, you could try even the Parabolic SAR, maybe STC or VZO, there is no limit to imagination.
- Strategy creation
Filtering this indicator with "and" conditions, or maybe even "or" or anything really could be very useful in a strategy that desires fast signals.
- Price Distance from bands
I noticed this while looking at past performance:
The stronger the trend the higher the distance from the Moving Average.
Final Notes
Watch out for mean reverting markets, as this is trend following you could get easily screwed in them.
Play around with this if it fits your desired outcome, you might find something I did not.
Hope you find it useful,
See you next time!
Stochastic %K Colored by VolumeDescription:
"Stochastic %K Colored by Volume is a technical indicator that combines the traditional Stochastic %K oscillator with volume-based coloring. It highlights periods of high, low, and neutral trading volume by changing the color of the %K line. Additionally, it identifies bullish and bearish divergences between price and the %K oscillator, helping traders spot potential reversals and trend changes. The indicator also includes key levels for overbought, oversold, and extreme zones to guide trading decisions."
Opening Range Fibonacci Extensions (ATR Adjusted)this script displays daily, weekly, or monthly range extensions as a function of ATR in a Fibonacci retracement