Indicators and strategies
HaP RSIComprehensive Guide to HaP RSI Indicator
Introduction
The HaP RSI indicator is a custom technical analysis tool designed to replicate the logic and structure of the HaP MACD indicator but applied to the Relative Strength Index (RSI). This indicator combines traditional RSI concepts with advanced smoothing techniques, dynamic signal generation, and visual cues to help traders identify potential entry and exit points, trend strength, and momentum shifts.
This document provides an exhaustive explanation of the indicator's logic, its components, and practical strategies for trading with it.
Logic and Structure of HaP RSI
The HaP RSI indicator is built on the foundation of the RSI oscillator, which measures the speed and change of price movements to identify overbought and oversold conditions. The indicator enhances RSI by incorporating the following elements:
RSI Calculation: Uses a customizable length (default 10) and allows selection of smoothing type (EMA or SMA) for flexibility.
Signal Line: A moving average of the RSI (default length 9) that acts as a reference for crossovers and trend confirmation.
DEMA Logic: Double Exponential Moving Average applied to RSI and its signal line to generate dynamic dot signals for entries and exits.
Visual Elements: Midline at 50, Overbought/Oversold levels at 70 and 30, color-coded dots (Blue, Green, Orange, Red) for intuitive interpretation.
Conditions and Signal Generation
The indicator uses a sophisticated set of conditions to determine market states and generate actionable signals:
Buy Condition: Triggered when the DEMA of RSI is above the DEMA of its signal line AND the DEMA signal line is rising. This indicates strengthening bullish momentum.
First Signal Dot: Appears as a Blue dot when the buy condition becomes true for the first time after being false. This marks the start of a potential bullish phase.
Ongoing Signal Dot: Appears as Green if RSI is rising or Orange if RSI is falling while the buy condition remains true. This provides real-time feedback on momentum strength.
Exit Dot: Appears as Red when the buy condition turns false after being true, signaling a potential end to the bullish phase.
Crossovers: RSI crossing above its signal line (bullish) or below (bearish) are calculated but hidden by default, offering additional confirmation if enabled.
Trading Strategies Using HaP RSI
The HaP RSI indicator can be used in multiple ways to enhance trading decisions. Below are detailed strategies and best practices:
1. Entry Strategies
Enter long positions when a Blue dot appears, confirming the start of bullish momentum. Ideally, combine this with RSI above the midline (50) and price action breaking resistance.
Add to positions or scale in when Green dots appear, indicating continued bullish strength.
2. Exit Strategies
Exit or tighten stops when a Red dot appears, signaling weakening momentum.
Consider partial exits on Orange dots if momentum slows but the trend remains intact.
3. Trend Confirmation
Use the midline (50) as a regime filter: RSI above 50 generally favors long trades, while below 50 favors shorts.
Overbought/Oversold levels (70/30) can help identify exhaustion points for reversals or caution zones.
4. Risk Management
Always combine HaP RSI signals with stop-loss placement based on recent swing lows/highs.
Avoid chasing signals in low-volatility environments; confirm with volume or higher timeframe trend.
Advanced Usage and Best Practices
Combine HaP RSI with other indicators like moving averages or price action patterns for confluence.
Use alerts for Blue and Red dots to automate monitoring and reduce missed opportunities.
Backtest the indicator on multiple timeframes (H1 recommended) to optimize settings for your trading style.
Summary
HaP RSI is a powerful tool that blends RSI's simplicity with advanced signal logic, making it suitable for trend-following, momentum trading, and swing strategies. Its visual clarity and dynamic alerts allow traders to act decisively while managing risk effectively.
SMT divergencesSMT divergences, virtually shows where Divergences in a pair are, choose your pairs and add to chart, only shows divergence when the laggard pair is sweeping downward and the leading pair doesn't sweep.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
For Source the Cutie
SMI + Trend Whale Tracker//@version=6
// Fixed Line 1: Explicitly naming the title and shorttitle
indicator(title="SMI + Trend Whale Tracker", shorttitle="SMI_Whale", overlay=true)
// --- Inputs ---
lenK = input.int(10, "%K Length", group="SMI Settings")
lenD = input.int(3, "%D Length", group="SMI Settings")
lenEMA = input.int(3, "EMA Length", group="SMI Settings")
volMult = input.float(3.0, "Whale Volume Multiplier (x Avg)", group="Whale Settings")
trendLen = input.int(200, "Global Trend SMA Length", group="Trend Settings")
// --- Calculations: SMI ---
emaEma(src, len) => ta.ema(ta.ema(src, len), len)
hi = ta.highest(lenK), lo = ta.lowest(lenK)
relRange = close - (hi + lo) / 2
smi = (hi - lo) != 0 ? 200 * (emaEma(relRange, lenD) / emaEma(hi - lo, lenD)) : 0
// --- Calculations: Global Trend ---
sma200 = ta.sma(close, trendLen)
isBullishTrend = close > sma200
plot(sma200, "200 SMA", color=color.new(color.blue, 50), linewidth=2)
// --- Calculations: Whale Tracker with Filter ---
avgVol = ta.sma(volume, 20)
isWhaleVol = volume > (avgVol * volMult)
// Filter: Whale must buy while price is above the 200 SMA
isWhaleBuy = isWhaleVol and close > open and isBullishTrend
isWhaleSell = isWhaleVol and close < open
// --- Visuals ---
plotshape(isWhaleBuy, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Whale Buy")
plotshape(isWhaleSell, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Whale Sell")
// --- Dashboard ---
var table dash = table.new(position.top_right, 2, 3, bgcolor=color.new(color.black, 0), border_width=1)
if barstate.islast
smiColor = smi > 40 ? color.green : (smi < -40 ? color.red : color.gray)
trendColor = isBullishTrend ? color.green : color.red
table.cell(dash, 0, 0, text="SMI", text_color=color.white)
table.cell(dash, 1, 0, text=str.tostring(smi, "#.#"), bgcolor=smiColor, text_color=color.white)
table.cell(dash, 0, 1, text="Trend", text_color=color.white)
table.cell(dash, 1, 1, text=isBullishTrend ? "BULLISH" : "BEARISH", bgcolor=trendColor, text_color=color.white)
table.cell(dash, 0, 2, text="Whale", text_color=color.white)
table.cell(dash, 1, 2, text=isWhaleVol ? "ACTIVE" : "None", bgcolor=isWhaleVol ? color.purple : color.gray, text_color=color.white)
// --- Alerts ---
if isWhaleBuy
alert("Whale Buy + Trend Aligned: " + syminfo.ticker, alert.freq_once_per_bar_close)
TradeCraftly - Previous OHLC Levels📌 TradeCraftly – Previous OHLC Levels
TradeCraftly OHLC plots the most important higher-timeframe price levels directly on your chart, helping you identify key support, resistance, and reference zones with clarity.
🔹 What this indicator shows
Previous Day OHLC (High, Low, Open, Close)
Previous Week OHLC
Previous Month OHLC
Today’s Open (no historical clutter)
All levels are drawn as clean horizontal rays and extend only into the current session, keeping the chart focused and readable.
🔹 Key Features
Individual enable / disable controls for Day, Week, and Month levels
No historical clutter – only the most relevant levels are shown
Labels aligned to today’s first candle for quick level identification
Custom line width, color, and style (solid / dashed / dotted)
Works seamlessly on all intraday and higher timeframes
🔹 Why use Previous OHLC levels?
Previous period OHLC levels are widely used by:
Intraday traders
Swing traders
Index & futures traders
They often act as:
Strong support & resistance
Liquidity zones
Breakout / rejection levels
🔹 Best Use Cases
Market open bias using Today’s Open
Intraday trades around PDH / PDL
Weekly range reactions near PWH / PWL
Higher-timeframe context using Monthly levels
⚠️ Disclaimer
This indicator is for educational purposes only and does not provide trading signals or financial advice. Always manage risk and confirm with your own analysis.
Fair Value Gaps w Signals fair value gaps for resistance and support. It is important to understand ranges with this. An open bearish fair value gaps can indicate a bearish range. A bullish fair value gaps in premium can indicate retracement into the bearish range. A fair value gaps on a high time frame in discount of the range can be a indicator to go long. one can play the fair value gaps in discount or a range back into it for longs. negation of the fair value gaps candle bearish or bullish is stop loss. One would want to see a small time frame turn around story within the fair value gaps you are trading. FVG are support and resistance until the market is balanced. A bearish fair value gaps untouched can indicate the end of a range. The candle before the 1st bullsih fair value gaps could be the beginning of the range. all time frames
Vertical line at 6PMVertical line deliniated every 6pm for the asian session trading and backtesting.
RSI Trendline Breakout BB Exit -by RiazMalikUse this strategy based on RSI and bolinger bands
When RSI trend line breaks take position when RSI touches bolinger bands exit
Volume-Weighted Price Z-Score [QuantAlgo]🟢 Overview
The Volume-Weighted Price Z-Score indicator quantifies price deviations from volume-weighted equilibrium using statistical standardization. It combines volume-weighted moving average analysis with logarithmic deviation measurement and volatility normalization to identify when prices have moved to statistically extreme levels relative to their volume-weighted baseline, helping traders and investors spot potential mean reversion opportunities across multiple timeframes and asset classes.
🟢 How It Works
The indicator's core methodology lies in its volume-weighted statistical approach, where price displacement is measured through normalized deviations from volume-weighted price levels:
volumeWeightedAverage = ta.vwma(priceSource, lookbackPeriod)
logDeviation = math.log(priceSource / volumeWeightedAverage)
volatilityMeasure = ta.stdev(logDeviation, lookbackPeriod)
The script uses logarithmic transformation to capture proportional price changes rather than absolute differences, ensuring equal treatment of percentage moves regardless of price level:
rawZScore = logDeviation / volatilityMeasure
zScore = ta.ema(rawZScore, smoothingPeriod)
First, it establishes the volume-weighted baseline which gives greater weight to price levels where significant trading occurred, creating a more representative equilibrium point than simple moving averages.
Then, the logarithmic deviation measurement converts the price-to-average ratio into a normalized scale:
logDeviation = math.log(priceSource / volumeWeightedAverage)
Next, statistical normalization is achieved by dividing the deviation by its own historical volatility, creating a standardized z-score that measures how many standard deviations the current price sits from the volume-weighted mean.
Finally, EMA smoothing filters noise while preserving the signal's responsiveness to genuine market extremes:
rawZScore = logDeviation / volatilityMeasure
zScore = ta.ema(rawZScore, smoothingPeriod)
This creates a volume-anchored statistical oscillator that combines price-volume relationship analysis with volatility-adjusted normalization, providing traders with probabilistic insights into market extremes and mean reversion potential based on standard deviation thresholds.
🟢 Signal Interpretation
▶ Positive Values (Above Zero): Price trading above volume-weighted average indicating potential overvaluation relative to volume-weighted equilibrium = Caution on longs, potential mean reversion downward = Short/sell opportunities
▶ Negative Values (Below Zero): Price trading below volume-weighted average indicating potential undervaluation relative to volume-weighted equilibrium = Caution on shorts, potential mean reversion upward = Long/buy opportunities
▶ Zero Line Crosses: Mean reversion transitions where price crosses back through volume-weighted equilibrium, indicating shift from overvalued to undervalued (or vice versa) territory
▶ Extreme Positive Zone (Above +2.5σ default): Statistically rare overvaluation representing 98.8%+ confidence level deviation, indicating extremely stretched bullish conditions with high mean reversion probability = Strong correction warning/short signal
▶ Extreme Negative Zone (Below -2.5σ default): Statistically rare undervaluation representing 98.8%+ confidence level deviation, indicating extremely stretched bearish conditions with high mean reversion probability = Strong buying opportunity signal
▶ ±1σ Reference Levels: Moderate deviation zones (±1 standard deviation) marking common price fluctuation boundaries where approximately 68% of price action occurs under normal distribution
▶ ±2σ Reference Levels: Significant deviation zones (±2 standard deviations) marking unusual price extremes where approximately 95% of price action should be contained under normal conditions
🟢 Features
▶ Preconfigured Presets: Three optimized parameter sets accommodate different analytical approaches, instruments and timeframes. "Default" provides balanced statistical measurement suitable for swing trading and daily/4-hour analysis, offering deviation detection with moderate responsiveness to price dislocations. "Fast Response" delivers heightened sensitivity optimized for intraday trading and scalping on 15-minute to 1-hour charts, using shorter statistical windows and minimal smoothing to capture rapid mean reversion opportunities as they develop. "Smooth Trend" offers conservative extreme identification ideal for position trading on daily to weekly charts, employing extended statistical periods and heavy noise filtering to isolate only the most significant market extremes.
▶ Built-in Alerts: Seven alert conditions enable comprehensive automated monitoring of statistical extremes and mean reversion events. Extreme Overbought triggers when z-score crosses above the extreme threshold (default +2.5σ) signaling rare overvaluation, Extreme Oversold activates when z-score crosses below the negative extreme threshold (default -2.5σ) signaling rare undervaluation. Exit Extreme Overbought and Exit Extreme Oversold alert when prices begin reverting from these statistical extremes back toward the mean. Bullish Mean Reversion notifies when z-score crosses above zero indicating shift to overvalued territory, while Bearish Mean Reversion triggers on crosses below zero indicating shift to undervalued territory. Any Extreme Level provides a combined alert for any extreme threshold breach regardless of direction. These notifications allow you to capitalize on statistically significant price dislocations without continuous chart monitoring.
▶ Color Customization: Six visual themes (Classic, Aqua, Cosmic, Ember, Neon, plus Custom) accommodate different chart backgrounds and visual preferences, ensuring optimal contrast for identifying positive versus negative deviations across trading environments. The adjustable fill transparency control (0-100%) allows fine-tuning of the gradient area prominence between the z-score line and zero baseline, with higher opacity values creating subtle background context while lower values produce bold deviation emphasis. Optional bar coloring extends the z-score gradient directly to the indicator pane bars, providing immediate visual reinforcement of current deviation magnitude and direction without requiring reference to the plotted line itself.
*Note: This indicator requires volume data to function correctly, as it calculates deviations from a volume-weighted price average. Tickers with no volume data or extremely limited volume will not produce meaningful results, i.e., the indicator may display flat lines, erratic values, or fail to calculate properly. Using this indicator on assets without volume data (certain forex pairs, synthetic indices, or instruments with unreported/unavailable volume) will produce unreliable or no results at all. Additionally, ensure your chart has sufficient historical data to cover the selected lookback period, e.g., using a 100-bar lookback on a chart with only 50 bars of history will yield incomplete or inaccurate calculations. Always verify your chosen ticker has consistent, accurate volume information and adequate price history before applying this indicator.
Spot Futures Divergence & Auction ContextSpot–Futures Divergence & Auction Context
Spot–Futures Divergence & Auction Context is a contextual market analysis indicator designed to help traders understand where the market is positioned and when structural divergence is meaningful.
This tool compares spot and futures price structure using confirmed swing pivots and overlays that information with VWAP location, auction regime, and higher-timeframe (HTF) trend context.
⚠️ This indicator is NOT a buy/sell signal generator.
It is intended for discretionary decision support and market context only.
🔍 What This Indicator Shows
1️⃣ Spot–Futures Structural Divergence
Identifies divergence between spot and futures swing structure
Highlights where derivatives are leading or lagging cash markets
Uses confirmed pivots only (non-repainting)
2️⃣ Divergence Quality (DIV-A / DIV-B)
DIV-A: Divergence aligned with HTF trend
DIV-B: Divergence against or without HTF alignment
Helps distinguish high-quality context from early warnings
3️⃣ VWAP Context & Deviation Bands
Session VWAP plotted on futures
Optional VWAP deviation bands (±1σ / ±2σ / ±3σ) for auction stretch context
Bands are visual only, not signals
4️⃣ Auction Regime Detection
Classifies market as BALANCED or IMBALANCED
Helps avoid divergence during strong trend / directional auctions
5️⃣ Options Bias Panel (Context Only)
Provides a high-level directional or volatility bias, such as:
CALL BIAS
PUT BIAS
SELL PREMIUM
WAIT
This bias is informational, not an instruction to trade.
⚙️ Key Settings Explained
Futures / Execution Symbol
Select the futures or derivative symbol you are trading (e.g., NIFTY1!, BANKNIFTY1!, ES1!, BTCUSDT.P).
Spot / Cash Reference Symbol
Select the corresponding spot or cash index used for structural comparison.
Divergence Display Mode
Show All → Displays all divergences
Hide in Imbalanced → Suppresses divergences during strong directional auctions
DIV-A only in Imbalanced → Shows only HTF-aligned divergences on trend days
This is a discipline and visibility control, not a signal filter.
VWAP Deviation Bands
Optional visual bands to assess how far price is trading from fair value.
Best used for context, not entries.
🧭 How to Use (1-Page User Guide)
Recommended Workflow
Start with auction regime
Balanced → mean-reversion context
Imbalanced → trend / momentum context
Observe VWAP location
Near VWAP → fair value
Extended → stretched auction
Note Spot–Futures divergence
DIV-A → higher contextual importance
DIV-B → early warning or risk signal
Use Options Bias panel
As a guideline, not a trigger
Especially useful for options and volatility strategies
🚫 When to Ignore Divergence
Strong imbalanced trend with steep VWAP slope
News-driven or event-driven sessions
Very early session before structure forms
⚠️ Important Disclaimers
This indicator does not generate buy/sell signals.
No profitability or performance claims are made.
Past behavior does not guarantee future results.
Trading futures, options, and leveraged products involves significant risk.
Use this tool for analysis and education only.
📊 Best Use Cases
Index futures & options
Spot vs derivative structure analysis
Intraday auction and VWAP-based context
Risk awareness and trade selection support
Infinity Signal Momentum ConsensusMulti-Timeframe Momentum Fusion & Projection
Infinity Signal — Momentum Consensus is a multi-timeframe momentum oscillator designed to identify early turning points, directional bias, and momentum structure by blending momentum data across multiple timeframes into a single, unified signal.
Instead of relying on a traditional single-timeframe Stochastic RSI, this indicator creates a consensus momentum curve that reflects how short-, medium-, and long-term momentum align in real time.
The result is a smoother, more stable oscillator that often turns before price and before standard momentum indicators react.
This approach reduces noise while preserving the geometric structure required for forward projection and swing analysis.
🔍 How It Works
The indicator computes Stochastic RSI momentum across multiple timeframes (1H, 4H, 1D, 1W, 1M), normalizes those values, and combines them into a single composite curve.
Each timeframe contributes differently:
Higher timeframes shape overall curvature and bias
Mid timeframes influence impulse strength
Lower timeframes refine timing
When averaged together, these form a momentum consensus that highlights genuine shifts in market behavior.
The indicator also includes:
A forward momentum projection based on prior curvature
A multi-timeframe alignment table with weighted bias and grading
Visual context for overbought, oversold, and transitional states
🧭 How to Use
1️⃣ Identify Directional Bias
Use the Composite Momentum Curve to determine the dominant market bias.
Rising curve → bullish momentum pressure
Falling curve → bearish momentum pressure
Flattening or compressing curve → consolidation or transition
Because the curve blends multiple timeframes, its direction is often more reliable than single-TF oscillators.
2️⃣ Watch for Early Turning Points
Key signals occur when the composite curve bends, flattens, or crosses.
Momentum turns frequently appear before price reversals
Signals near overbought or oversold zones carry greater significance
The smoother curve helps reduce whipsaw
These inflection points are particularly useful for swing and position traders.
3️⃣ Use the Multi-Timeframe Table for Confirmation
The table summarizes momentum alignment across all tracked timeframes.
Bull / Bear / Mixed shows agreement or divergence
Weighted scores reveal which timeframes dominate
Signal grades (A+ → F) reflect alignment quality
The strongest setups occur when table bias and momentum direction agree.
4️⃣ Interpret Projections as Context
Projected momentum paths visualize how momentum may evolve based on prior structure.
Use projections as guidance, not guarantees
Look for symmetry, slope changes, and recurring curvature
Combine projections with structure or support/resistance
Projections are most effective in stable momentum regimes.
5️⃣ Combine with Price Action & Risk Management
Infinity Signal — Momentum Consensus is designed as a decision-support tool.
Confirm signals with market structure and price behavior
Use clear invalidation levels and risk controls
Reduce exposure during mixed or low-alignment conditions
No indicator replaces proper risk management.
🎯 Ideal Use Cases
Swing trading & position trading
Momentum-based trend analysis
Early reversal and pivot detection
Multi-timeframe confirmation
⚠️ Disclaimer
This indicator is for educational and analytical purposes only and does not constitute financial advice. Always manage risk appropriately.
AT trading systemIn the AT trading system, AT LONG means closing a long position and AT short means closing a long position and shorting.
CTA Trend Model (TA and Quant)Simple CTA Long-Term model using a mix of Quant and old school Technical Indicators.
Use on Daily or Weekly Charts for trending macro futures/spot markets
VWAP Institutional Trading Engine INDICATORVWAP Institutional Trading Engine
Adaptive Market Regime & Trading Model Indicator
🔍 Overview
The VWAP Institutional Trading Engine is an advanced, rule-based market analysis indicator designed to replicate institutional decision-making logic using VWAP, volatility, and session-based market behavior.
This indicator does not predict price.
Instead, it answers a more important question:
“What type of trading is appropriate right now – if any?”
The engine continuously evaluates:
Market regime (trend, range, dead market)
Volatility conditions
VWAP acceptance and deviation
Trading session (Asia / London / New York)
Based on this, it dynamically activates one of three trading models:
TREND
MEAN REVERSION
OFF (no trading)
This makes it ideal for:
Discretionary traders
Systematic traders
Risk-focused trading
Educational / portfolio-style trading approaches
🧠 Core Philosophy
Professional trading is not about finding more signals.
It is about knowing when not to trade.
This indicator is built around three institutional principles:
VWAP defines fair value
Volatility defines opportunity or danger
Different sessions require different behavior
⚙️ Indicator Components
1️⃣ VWAP & Statistical Deviation Bands
VWAP represents institutional fair price
±1σ bands indicate acceptance zones
±2σ bands represent statistical extremes
Used for:
Mean reversion zones
Trend acceptance confirmation
Go Score calculation
2️⃣ Volatility Engine
Volatility is measured using ATR relative to price
Compared against its own moving average
Classifications:
Low volatility → dead / untradable market
Normal volatility → structured behavior
High volatility → trend or liquidation events
3️⃣ Market Regime Detection
The engine classifies each moment into one regime:
Regime Meaning
TREND Price accepts above or below VWAP with volatility
RANGE Price rotates near VWAP
DEAD Low volatility, no opportunity
MIXED Unclear structure
4️⃣ Active Trading Model (Most Important)
Displayed in the dashboard as Model:
Model Interpretation
TREND Trade with momentum and continuation
MEAN_REVERT Trade extremes back to VWAP
OFF Do not trade
The Model tells you HOW you are allowed to trade right now.
5️⃣ Session Awareness (UTC)
The indicator adapts behavior based on session logic:
Session Preferred Behavior
Asia Mean Reversion
London Trend
New York Selective / adaptive
Trades are only allowed when model + session are aligned.
6️⃣ Go Score – Trade Quality Filter
Each potential setup receives a Go Score (0–100), based on:
Distance from VWAP
Market regime quality
Volatility penalties
Go Score Interpretation
≥ 80 High-quality (A+)
65–79 Acceptable
< 65 No trade
7️⃣ Risk Guidance (Informational)
The indicator outputs a Risk % suggestion, based on:
Go Score
Simulated drawdown logic
⚠️ This is guidance only, not position sizing.
📈 Visual Signals
The indicator plots contextual signals, not blind entries:
Mean Reversion Signals
▲ Long below −2σ
▼ Short above +2σ
Trend Signals
↑ Long after acceptance above +1σ
↓ Short after acceptance below −1σ
Signals appear only when trading is allowed by:
Model
Session
Go Score
🧩 Dashboard Explanation
The top-right dashboard displays real-time engine state:
Field Description
Session Current UTC session
Regime Detected market condition
Go Score Trade quality score
Risk % Suggested relative risk
Drawdown % Virtual defensive metric
Model Active trading model
If Model = OFF → do nothing.
🧭 Practical Trading Manual (Step-by-Step)
Step 1 – Check the Model
TREND → look for continuation
MEAN_REVERT → look for extremes
OFF → do not trade
Step 2 – Confirm Session Alignment
Asia + Mean Reversion ✔
London + Trend ✔
Misalignment = caution
Step 3 – Check Go Score
Below 65 → skip
65+ → proceed
Step 4 – Use Chart Structure
VWAP = anchor
σ bands = context
Signal = permission, not obligation
Step 5 – Manage Risk Manually
Use your own SL/TP rules
Follow the Risk % as guidance, not law
❌ What This Indicator Is NOT
Not a signal spam tool
Not a prediction system
Not a “holy grail”
It is a decision framework.
✅ Best Use Cases
Futures
Indices
Forex
Crypto
Intraday & swing trading
Recommended timeframes:
5m – 1H (intraday)
4H (contextual swing)
🏁 Final Notes
This indicator is intentionally transparent and rule-based.
It is designed to help traders:
Think in regimes
Trade with structure
Avoid overtrading
Protect capital
If you trade with the Model, not against it,
you will already be ahead of most market participants.
Candle Statistics | by beidou_123Script Description
Candle Statistics is a quantitative market analysis indicator that provides a structured statistical overview of recent price behavior using candlestick classification.
The script analyzes historical candles over four user-defined lookback periods and classifies each candle into one of three categories:
Bullish candles (close > open)
Bearish candles (close < open)
Doji candles , defined as candles whose real body is less than or equal to 10% of the total candle range
Key Features
Fully customizable lookback periods
Users can define four independent candle windows (e.g., 15, 60, 240, 480 bars).
Standardized Doji definition
A Doji is identified when the candle body is small relative to total price range, ensuring consistency across instruments and timeframes.
Directional dominance calculation
For each lookback period, the script computes the Bullish Percentage, defined as:
Bullish % = Bullish Candles ÷ (Bullish + Bearish Candles)
Doji candles are intentionally excluded from this calculation to avoid diluting directional bias.
Visual dominance highlighting
If Bullish % > 50%, the value is displayed using a user-defined bullish dominance color
If Bullish % ≤ 50%, the value is displayed using a user-defined bearish dominance color
On-chart statistics table
All results are presented in a compact, non-intrusive table displayed directly on the main chart.
Table position is fully configurable.
Intended Use
This indicator is designed for:
Market structure analysis
Trend bias evaluation
Volatility and indecision studies
Systematic filtering in discretionary or rule-based trading systems
It is not a signal generator, but a statistical context tool that helps traders assess whether recent price action is dominated by bullish pressure, bearish pressure, or indecision.
Disclaimer
This indicator is provided for educational and analytical purposes only and does not constitute financial or investment advice.
libSchedulerTLDR: This is a lightweight, easy-to-use way to throttle sections of Pinescript v6 scripts, the same as you'd use barstate.isconfirmed or barstate.islast. You can use this for enormous efficiency gains, provided you design your script to handle updates on differing intervals rather than computing everything on each cycle. Usage is easy:
```
import showmethegrail/libScheduler/1 as libScheduler
i_tf_fetch = input.enum(libScheduler.Timeframes.C, "Fetch Interval",
tooltip="Do things just once every interval, default=once per chart timeframe.")
var scheduler = libScheduler.Scheduler.new().init()
if scheduler.every(i_tf_fetch)
// Do stuff
```
That's it. If you need to know more, the code is well-commented.
Combine this with sensible caching, and you can right-size the compute-heavy sections of your script, for better stability and managed use of Pinescript compute quotas. You'll need to know the proper use of var and varip to make the most of this, but I found this effectively replaced a lot of boilerplate in throttling my own scripts.
Sound software engineering, made Pinescript-level easy. That's all.
DeeptestDeeptest: Quantitative Backtesting Library for Pine Script
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ OVERVIEW
Deeptest is a Pine Script library that provides quantitative analysis tools for strategy backtesting. It calculates over 100 statistical metrics including risk-adjusted return ratios (Sharpe, Sortino, Calmar), drawdown analysis, Value at Risk (VaR), Conditional VaR, and performs Monte Carlo simulation and Walk-Forward Analysis.
█ WHY THIS LIBRARY MATTERS
Pine Script is a simple yet effective coding language for algorithmic and quantitative trading. Its accessibility enables traders to quickly prototype and test ideas directly within TradingView. However, the built-in strategy tester provides only basic metrics (net profit, win rate, drawdown), which is often insufficient for serious strategy evaluation.
Due to this limitation, many traders migrate to alternative backtesting platforms that offer comprehensive analytics. These platforms require other language programming knowledge, environment setup, and significant time investment—often just to test a simple trading idea.
Deeptest bridges this gap by bringing institutional-level quantitative analytics directly to Pine Script. Traders can now perform sophisticated analysis without leaving TradingView or learning complex external platforms. All calculations are derived from strategy.closedtrades.* , ensuring compatibility with any existing Pine Script strategy.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ ORIGINALITY AND USEFULNESS
This library is original work that adds value to the TradingView community in the following ways:
1. Comprehensive Metric Suite: Implements 112+ statistical calculations in a single library, including advanced metrics not available in TradingView's built-in tester (p-value, Z-score, Skewness, Kurtosis, Risk of Ruin).
2. Monte Carlo Simulation: Implements trade-sequence randomization to stress-test strategy robustness by simulating 1000+ alternative equity curves.
3. Walk-Forward Analysis: Divides historical data into rolling in-sample and out-of-sample windows to detect overfitting by comparing training vs. testing performance.
4. Rolling Window Statistics: Calculates time-varying Sharpe, Sortino, and Expectancy to analyze metric consistency throughout the backtest period.
5. Interactive Table Display: Renders professional-grade tables with color-coded thresholds, tooltips explaining each metric, and period analysis cards for drawdowns/trades.
6. Benchmark Comparison: Automatically fetches S&P 500 data to calculate Alpha, Beta, and R-squared, enabling objective assessment of strategy skill vs. passive investing.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ KEY FEATURES
Performance Metrics
Net Profit, CAGR, Monthly Return, Expectancy
Profit Factor, Payoff Ratio, Sample Size
Compounding Effect Analysis
Risk Metrics
Sharpe Ratio, Sortino Ratio, Calmar Ratio (MAR)
Martin Ratio, Ulcer Index
Max Drawdown, Average Drawdown, Drawdown Duration
Risk of Ruin, R-squared (equity curve linearity)
Statistical Distribution
Value at Risk (VaR 95%), Conditional VaR
Skewness (return asymmetry)
Kurtosis (tail fatness)
Z-Score, p-value (statistical significance testing)
Trade Analysis
Win Rate, Breakeven Rate, Loss Rate
Average Trade Duration, Time in Market
Consecutive Win/Loss Streaks with Expected values
Top/Worst Trades with R-multiple tracking
Advanced Analytics
Monte Carlo Simulation (1000+ iterations)
Walk-Forward Analysis (rolling windows)
Rolling Statistics (time-varying metrics)
Out-of-Sample Testing
Benchmark Comparison
Alpha (excess return vs. benchmark)
Beta (systematic risk correlation)
Buy & Hold comparison
R-squared vs. benchmark
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ QUICK START
Basic Usage
//@version=6
strategy("My Strategy", overlay=true)
// Import the library
import Fractalyst/Deeptest/1 as *
// Your strategy logic
fastMA = ta.sma(close, 10)
slowMA = ta.sma(close, 30)
if ta.crossover(fastMA, slowMA)
strategy.entry("Long", strategy.long)
if ta.crossunder(fastMA, slowMA)
strategy.close("Long")
// Run the analysis
DT.runDeeptest()
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ METRIC EXPLANATIONS
The Deeptest table displays 23 metrics across the main row, with 23 additional metrics in the complementary row. Each metric includes detailed tooltips accessible by hovering over the value.
Main Row — Performance Metrics (Columns 0-6)
Net Profit — (Final Equity - Initial Capital) / Initial Capital × 100
— >20%: Excellent, >0%: Profitable, <0%: Loss
— Total return percentage over entire backtest period
Payoff Ratio — Average Win / Average Loss
— >1.5: Excellent, >1.0: Good, <1.0: Losses exceed wins
— Average winning trade size relative to average losing trade. Breakeven win rate = 100% / (1 + Payoff)
Sample Size — Count of closed trades
— >=30: Statistically valid, <30: Insufficient data
— Number of completed trades. Includes 95% confidence interval for win rate in tooltip
Profit Factor — Gross Profit / Gross Loss
— >=1.5: Excellent, >1.0: Profitable, <1.0: Losing
— Ratio of total winnings to total losses. Uses absolute values unlike payoff ratio
CAGR — (Final / Initial)^(365.25 / Days) - 1
— >=10%: Excellent, >0%: Positive growth
— Compound Annual Growth Rate - annualized return accounting for compounding
Expectancy — Sum of all returns / Trade count
— >0.20%: Excellent, >0%: Positive edge
— Average return per trade as percentage. Positive expectancy indicates profitable edge
Monthly Return — Net Profit / (Months in test)
— >0%: Profitable month average
— Average monthly return. Geometric monthly also shown in tooltip
Main Row — Trade Statistics (Columns 7-14)
Avg Duration — Average time in position per trade
— Mean holding period from entry to exit. Influenced by timeframe and trading style
Max CW — Longest consecutive winning streak
— Maximum consecutive wins. Expected value = ln(trades) / ln(1/winRate)
Max CL — Longest consecutive losing streak
— Maximum consecutive losses. Important for psychological risk tolerance
Win Rate — Wins / Total Trades
— Higher is better
— Percentage of profitable trades. Breakeven win rate shown in tooltip
BE Rate — Breakeven Trades / Total Trades
— Lower is better
— Percentage of trades that broke even (neither profit nor loss)
Loss Rate — Losses / Total Trades
— Lower is better
— Percentage of unprofitable trades. Together with win rate and BE rate, sums to 100%
Frequency — Trades per month
— Trading activity level. Displays intelligently (e.g., "12/mo", "1.5/wk", "3/day")
Exposure — Time in market / Total time × 100
— Lower = less risk
— Percentage of time the strategy had open positions
Main Row — Risk Metrics (Columns 15-22)
Sharpe Ratio — (Return - Rf) / StdDev × sqrt(Periods)
— >=3: Excellent, >=2: Good, >=1: Fair, <1: Poor
— Measures risk-adjusted return using total volatility. Annualized using sqrt(252) for daily
Sortino Ratio — (Return - Rf) / DownsideDev × sqrt(Periods)
— >=2: Excellent, >=1: Good, <1: Needs improvement
— Similar to Sharpe but only penalizes downside volatility. Can be higher than Sharpe
Max DD — (Peak - Trough) / Peak × 100
— <5%: Excellent, 5-15%: Moderate, 15-30%: High, >30%: Severe
— Largest peak-to-trough decline in equity. Critical for risk tolerance and position sizing
RoR — Risk of Ruin probability
— <1%: Excellent, 1-5%: Acceptable, 5-10%: Elevated, >10%: Dangerous
— Probability of losing entire trading account based on win rate and payoff ratio
R² — R-squared of equity curve vs. time
— >=0.95: Excellent, 0.90-0.95: Good, 0.80-0.90: Moderate, <0.80: Erratic
— Coefficient of determination measuring linearity of equity growth
MAR — CAGR / |Max Drawdown|
— Higher is better, negative = bad
— Calmar Ratio. Reward relative to worst-case loss. Negative if max DD exceeds CAGR
CVaR — Average of returns below VaR threshold
— Lower absolute is better
— Conditional Value at Risk (Expected Shortfall). Average loss in worst 5% of outcomes
p-value — Binomial test probability
— <0.05: Significant, 0.05-0.10: Marginal, >0.10: Likely random
— Probability that observed results are due to chance. Low p-value means statistically significant edge
Complementary Row — Extended Metrics
Compounding — (Compounded Return / Total Return) × 100
— Percentage of total profit attributable to compounding (position sizing)
Avg Win — Sum of wins / Win count
— Average profitable trade return in percentage
Avg Trade — Sum of all returns / Total trades
— Same as Expectancy (Column 5). Displayed here for convenience
Avg Loss — Sum of losses / Loss count
— Average unprofitable trade return in percentage (negative value)
Martin Ratio — CAGR / Ulcer Index
— Similar to Calmar but uses Ulcer Index instead of Max DD
Rolling Expectancy — Mean of rolling window expectancies
— Average expectancy calculated across rolling windows. Shows consistency of edge
Avg W Dur — Avg duration of winning trades
— Average time from entry to exit for winning trades only
Max Eq — Highest equity value reached
— Peak equity achieved during backtest
Min Eq — Lowest equity value reached
— Trough equity point. Important for understanding worst-case absolute loss
Buy & Hold — (Close_last / Close_first - 1) × 100
— >0%: Passive profit
— Return of simply buying and holding the asset from backtest start to end
Alpha — Strategy CAGR - Benchmark CAGR
— >0: Has skill (beats benchmark)
— Excess return above passive benchmark. Positive alpha indicates genuine value-added skill
Beta — Covariance(Strategy, Benchmark) / Variance(Benchmark)
— <1: Less volatile than market, >1: More volatile
— Systematic risk correlation with benchmark
Avg L Dur — Avg duration of losing trades
— Average time from entry to exit for losing trades only
Rolling Sharpe/Sortino — Dynamic based on win rate
— >2: Good consistency
— Rolling metric across sliding windows. Shows Sharpe if win rate >50%, Sortino if <=50%
Curr DD — Current drawdown from peak
— Lower is better
— Present drawdown percentage. Zero means at new equity high
DAR — CAGR adjusted for target DD
— Higher is better
— Drawdown-Adjusted Return. DAR^5 = CAGR if max DD = 5%
Kurtosis — Fourth moment / StdDev^4 - 3
— ~0: Normal, >0: Fat tails, <0: Thin tails
— Measures "tailedness" of return distribution (excess kurtosis)
Skewness — Third moment / StdDev^3
— >0: Positive skew (big wins), <0: Negative skew (big losses)
— Return distribution asymmetry
VaR — 5th percentile of returns
— Lower absolute is better
— Value at Risk at 95% confidence. Maximum expected loss in worst 5% of outcomes
Ulcer — sqrt(mean(drawdown^2))
— Lower is better
— Ulcer Index - root mean square of drawdowns. Penalizes both depth AND duration
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ MONTE CARLO SIMULATION
Purpose
Monte Carlo simulation tests strategy robustness by randomizing the order of trades while keeping trade returns unchanged. This simulates alternative equity curves to assess outcome variability.
Method
Extract all historical trade returns
Randomly shuffle the sequence (1000+ iterations)
Calculate cumulative equity for each shuffle
Build distribution of final outcomes
Output
The stress test table shows:
Median Outcome: 50th percentile result
5th Percentile: Worst 5% of outcomes
95th Percentile: Best 95% of outcomes
Success Rate: Percentage of simulations that were profitable
Interpretation
If 95% of simulations are profitable: Strategy is robust
If median is far from actual result: High variance/unreliability
If 5th percentile shows large loss: High tail risk
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ WALK-FORWARD ANALYSIS
Purpose
Walk-Forward Analysis (WFA) is the gold standard for detecting strategy overfitting. It simulates real-world trading by dividing historical data into rolling "training" (in-sample) and "validation" (out-of-sample) periods. A strategy that performs well on unseen data is more likely to succeed in live trading.
Method
The implementation uses a non-overlapping window approach following AmiBroker's gold standard methodology:
Segment Calculation: Total trades divided into N windows (default: 12), IS = ~75%, OOS = ~25%, Step = OOS length
Window Structure: Each window has IS (training) followed by OOS (validation). Each OOS becomes the next window's IS (rolling forward)
Metrics Calculated: CAGR, Sharpe, Sortino, MaxDD, Win Rate, Expectancy, Profit Factor, Payoff
Aggregation: IS metrics averaged across all IS periods, OOS metrics averaged across all OOS periods
Output
IS CAGR: In-sample annualized return
OOS CAGR: Out-of-sample annualized return ( THE key metric )
IS/OOS Sharpe: In/out-of-sample risk-adjusted return
Success Rate: % of OOS windows that were profitable
Interpretation
Robust: IS/OOS CAGR gap <20%, OOS Success Rate >80%
Some Overfitting: CAGR gap 20-50%, Success Rate 50-80%
Severe Overfitting: CAGR gap >50%, Success Rate <50%
Key Principles:
OOS is what matters — Only OOS predicts live performance
Consistency > Magnitude — 10% IS / 9% OOS beats 30% IS / 5% OOS
Window count — More windows = more reliable validation
Non-overlapping OOS — Prevents data leakage
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ TABLE DISPLAY
Main Table — Organized into three sections:
Performance Metrics (Cols 0-6): Net Profit, Payoff, Sample Size, Profit Factor, CAGR, Expectancy, Monthly
Trade Statistics (Cols 7-14): Avg Duration, Max CW, Max CL, Win, BE, Loss, Frequency, Exposure
Risk Metrics (Cols 15-22): Sharpe, Sortino, Max DD, RoR, R², MAR, CVaR, p-value
Color Coding
🟢 Green: Excellent performance
🟠 Orange: Acceptable performance
⚪ Gray: Neutral / Fair
🔴 Red: Poor performance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ IMPLEMENTATION NOTES
Data Source: All metrics calculated from strategy.closedtrades , ensuring compatibility with any Pine Script strategy
Calculation Timing: All calculations occur on barstate.islastconfirmedhistory to optimize performance
Limitations: Requires at least 1 closed trade for basic metrics, 30+ trades for reliable statistical analysis
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ QUICK NOTES
➙ This library has been developed and refined over two years of real-world strategy testing. Every calculation has been validated against industry-standard quantitative finance references.
➙ The entire codebase is thoroughly documented inline. If you are curious about how a metric is calculated or want to understand the implementation details, dive into the source code -- it is written to be read and learned from.
➙ This description focuses on usage and concepts rather than exhaustively listing every exported type and function. The library source code is thoroughly documented inline -- explore it to understand implementation details and internal logic.
➙ All calculations execute on barstate.islastconfirmedhistory to minimize runtime overhead. The library is designed for efficiency without sacrificing accuracy.
➙ Beyond analysis, this library serves as a learning resource. Study the source code to understand quantitative finance concepts, Pine Script advanced techniques, and proper statistical methodology.
➙ Metrics are their own not binary good/bad indicators. A high Sharpe ratio with low sample size is misleading. A deep drawdown during a market crash may be acceptable. Study each function and metric individually -- evaluate your strategy contextually, not by threshold alone.
➙ All strategies face alpha decay over time. Instead of over-optimizing a single strategy on one timeframe and market, build a diversified portfolio across multiple markets and timeframes. Deeptest helps you validate each component so you can combine robust strategies into a trading portfolio.
➙ Screenshots shown in the documentation are solely for visual representation to demonstrate how the tables and metrics will be displayed. Please do not compare your strategy's performance with the metrics shown in these screenshots -- they are illustrative examples only, not performance targets or benchmarks.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ HOW-TO
Using Deeptest is intentionally straightforward. Just import the library and call DT.runDeeptest() at the end of your strategy code in main scope. .
//@version=6
strategy("My Strategy", overlay=true)
// Import the library
import Fractalyst/Deeptest/1 as DT
// Your strategy logic
fastMA = ta.sma(close, 10)
slowMA = ta.sma(close, 30)
if ta.crossover(fastMA, slowMA)
strategy.entry("Long", strategy.long)
if ta.crossunder(fastMA, slowMA)
strategy.close("Long")
// Run the analysis
DT.runDeeptest()
And yes... it's compatible with any TradingView Strategy! 🪄
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ CREDITS
Author: @Fractalyst
Font Library: by @fikira - @kaigouthro - @Duyck
Community: Inspired by the @PineCoders community initiative, encouraging developers to contribute open-source libraries and continuously enhance the Pine Script ecosystem for all traders.
if you find Deeptest valuable in your trading journey, feel free to use it in your strategies and give a shoutout to @Fractalyst -- Your recognition directly supports ongoing development and open-source contributions to Pine Script.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ DISCLAIMER
This library is provided for educational and research purposes. Past performance does not guarantee future results. Always test thoroughly and use proper risk management. The author is not responsible for any trading losses incurred through the use of this code.
CVD Flow Labels for Sessions Ranges [AMT Edition]CVD Flow Labels for Session Ranges
Description:
This script provides a session-aware Cumulative Volume Delta (CVD) analysis designed to enhance the “Session Ranges ” framework by combining price extremes with detailed volume flow dynamics. Unlike generic trend or scalping indicators, this tool focuses on identifying aggressive buying and selling pressure, distinguishing between absorption (failed auctions where aggressive flows are rejected) and acceptance (confirmed continuation of flows).
How it works:
CVD Calculation: The script calculates delta for each bar using a choice of Total, Periodic, or EMA-based cumulative methods. Delta represents the net difference between estimated buying and selling volume per bar.
Normalization: By normalizing delta relative to recent volatility, it highlights extreme flows that are statistically significant, making large shifts in market sentiment easier to spot.
Session-Specific Analysis: The indicator separates Asia, London, and New York sessions to allow context-sensitive interpretation of price and volume interactions. Each session’s extremes are monitored, and flow labels are plotted relative to these extremes.
Flow Labels: Bullish and bearish absorption (“ABS”) and acceptance (“ACC WEAK/STRONG”) labels provide immediate visual cues about whether aggressive flows are being absorbed or accepted at key price levels.
Alerts: Configurable alerts trigger when absorption or acceptance occurs, supporting active trading or strategy automation.
Originality & Usefulness:
This script is original because it integrates volume-based auction theory with session-specific market structure, rather than simply showing trend or scalping signals. By combining CVD dynamics with session extreme levels from the “Session Ranges ” script, traders can:
Identify where price is likely to be accepted or rejected.
Confirm aggressive buying or selling flows before entering trades.
Time entries near session extremes with higher probability setups.
How to use:
Apply the “Session Ranges ” to see session highs, lows, and interaction lines.
Use this CVD Flow Labels script to visualize absorption and acceptance at these session levels.
Enter trades based on alignment of session extremes and flow signals:
Absorption at a session extreme may indicate a potential reversal.
Acceptance suggests continuation in the direction of the flow.
Alerts can help manage trades without constant screen monitoring.
This tool is designed to give traders a structured, session-based view of market auctions, providing actionable insights that go beyond typical trend-following or scalping methods. It emphasizes flow analysis and statistical extremes, enabling traders to make more informed decisions grounded in market microstructure.
Cosmic Volume Analyzer [JOAT]
Cosmic Volume Analyzer - Astrophysics Edition
Overview
Cosmic Volume Analyzer is an open-source oscillator indicator that applies astrophysics-inspired concepts to volume analysis. It classifies volume into buy/sell categories, calculates volume flow, detects accumulation/distribution phases, identifies climax volume events, and uses gravitational and stellar mass analogies to visualize volume dynamics.
What This Indicator Does
The indicator calculates and displays:
Volume Classification - Categorizes each bar as CLIMAX_BUY, CLIMAX_SELL, HIGH_BUY, HIGH_SELL, NORMAL_BUY, or NORMAL_SELL
Volume Flow - Percentage showing buy vs sell pressure over a lookback period
Buy/Sell Volume - Separated volume based on candle direction
Accumulation/Distribution - Phase detection using Money Flow Multiplier
Volume Oscillator - Fast vs slow volume EMA comparison
Gravitational Pull - Volume-weighted price attraction metric
Stellar Mass Index - Volume ratio combined with price momentum
Black Hole Detection - Identifies extremely low volume periods (liquidity voids)
Supernova Events - Detects extreme volume with extreme price movement
Orbital Cycles - Sine-wave based cyclical visualization
How It Works
Volume classification uses volume ratio and candle direction:
classifyVolume(series float vol, series float close, series float open) =>
float avgVol = ta.sma(vol, 20)
float volRatio = avgVol > 0 ? vol / avgVol : 1.0
if volRatio > 1.5
if close > open
classification := "CLIMAX_BUY"
else
classification := "CLIMAX_SELL"
else if volRatio > 1.2
// HIGH_BUY or HIGH_SELL
else
// NORMAL_BUY or NORMAL_SELL
Volume flow separates buy and sell volume over a period:
calculateVolumeFlow(series float vol, series float close, simple int period) =>
float currentBuyVol = close > open ? vol : 0.0
float currentSellVol = close < open ? vol : 0.0
// Accumulate in buffers
float flow = (buyVolume - sellVolume) / totalVol * 100
Accumulation/Distribution uses the Money Flow Multiplier:
float mfm = ((close - low) - (high - close)) / (high - low)
float mfv = mfm * vol
float adLine = ta.cum(mfv)
if adLine > adEMA and ta.rising(adLine, 3)
phase := "ACCUMULATION"
else if adLine < adEMA and ta.falling(adLine, 3)
phase := "DISTRIBUTION"
Gravitational pull uses volume-weighted price distance:
gravitationalPull(series float vol, series float price, simple int period) =>
float massCenter = ta.vwma(price, period)
float distance = math.abs(price - massCenter)
float mass = vol / ta.sma(vol, period)
float gravity = distance > 0 ? mass / (distance * distance) : 0.0
Signal Generation
Signals are generated based on volume conditions:
Buy Climax: Volume exceeds 2 standard deviations above average on bullish candle
Sell Climax: Volume exceeds 2 standard deviations above average on bearish candle
Strong Buy Flow: Volume flow exceeds positive threshold (default 45%)
Strong Sell Flow: Volume flow exceeds negative threshold (default -45%)
Supernova: Volume 3x average AND price change 3x average
Black Hole: Volume 2 standard deviations below average
Dashboard Panel (Top-Right)
Volume Class - Current volume classification
Volume Flow - Buy/sell flow percentage
Buy Volume - Accumulated buy volume
Sell Volume - Accumulated sell volume
A/D Phase - ACCUMULATION/DISTRIBUTION/NEUTRAL
Volume Strength - Normalized volume strength
Gravity Pull - Current gravitational metric
Stellar Mass - Current stellar mass index
Cosmic Field - Combined cosmic field strength
Black Hole - Detection status and void strength
Signal - Current actionable status
Visual Elements
Volume Ratio Columns - Colored bars showing normalized volume
Volume Flow Line - Main oscillator showing flow direction
Flow EMA - Smoothed flow for trend reference
Volume Oscillator - Area plot showing fast/slow comparison
Gravity Field - Area plot showing gravitational pull
Orbital Cycle - Circle plots showing cyclical pattern
Stellar Mass Line - Line showing mass index
Climax Markers - Fire emoji for buy climax, snowflake for sell climax
Supernova Markers - Diamond shapes for extreme events
Black Hole Markers - X-cross for liquidity voids
A/D Phase Background - Subtle background color based on phase
Input Parameters
Volume Period (default: 20) - Period for volume calculations
Distribution Levels (default: 5) - Granularity of distribution analysis
Flow Threshold (default: 1.5) - Multiplier for flow significance
Accumulation Period (default: 14) - Period for A/D calculation
Gravitational Analysis (default: true) - Enable gravity metrics
Black Hole Detection (default: true) - Enable void detection
Stellar Mass Calculation (default: true) - Enable mass index
Orbital Cycles (default: true) - Enable cyclical visualization
Supernova Detection (default: true) - Enable extreme event detection
Suggested Use Cases
Identify accumulation phases for potential long entries
Watch for distribution phases as potential exit signals
Use climax volume as potential exhaustion indicators
Monitor volume flow for directional bias
Avoid trading during black hole (low liquidity) periods
Watch for supernova events as potential trend acceleration
Timeframe Recommendations
Best on 15m to Daily charts. Volume analysis requires sufficient trading activity for meaningful readings.
Limitations
Volume data quality varies by exchange and instrument
Buy/sell separation is based on candle direction, not actual order flow
Astrophysics concepts are analogies, not literal physics
A/D phase detection may lag during rapid transitions
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Session Anchored OIWAP [Arjo]The Session Anchored OIWAP (Open Interest Weighted Average Price) indicator shows you a weighted average price that uses Open Interest (OI) changes during different trading sessions . It divides the day into four clear sessions: Opening Hour , Morning Session , Mid-Day Session , and Closing Session .
For each session , it calculates a weighted average price using both market price and open interest data from futures . This line updates as the session progresses and resets when a new session starts .
You can also see optional deviation bands that you visually compare to how far the market price is moving away from the session’s weighted average. This indicator also helps you watch how Open Interest changes connect with price movements during specific market hours.
Concepts
This tool works on a few simple ideas:
Session anchoring
Each session starts fresh. The indicator resets and begins a new calculation when a new time block begins. This allows users to visually study each session independently.
Open-interest weighting
Instead of treating all price moves equally, price changes linked to higher open-interest activity have more influence on the OIWAP. This gives a weighted reflection of where the market has been trading during the session.
Averaging and smoothing
The OIWAP line blends many price data points into one smooth curve, making it easier to follow than raw price movement.
Volatility display with bands
The upper and lower bands are placed at ±0.5 standard deviation from the OIWAP line. These bands simply help you see when price stretches further away than usual from the session average.
Features
Four Independent Session Calculations: Shows separate OIWAP lines for Opening Hour (default: 09:15-10:15), Morning (10:15-11:30), Mid-Day (11:30-14:00), and Closing (14:00-15:30) sessions
Open Interest Weighting: Uses absolute OI change as the weight instead of traditional volume
Customizable Session Times: You can change the time ranges for each session to match your market or what you need
Optional Deviation Bands: You can turn ±0.5 standard deviation bands on or off around each OIWAP line
Color-Coded Sessions: Each session has its own color so you can tell them apart easily
Selective Display: You can turn individual sessions and bands on or off
Data Availability Check: Shows you a notification when Open Interest data isn't available for your symbol
Adjustable Position Timeframe: You can calculate OI changes on different timeframes (Chart, Daily, 15min, 30min, 60min, 120min)
How to use
Add this indicator to a chart of any symbol that has Open Interest data ( from futures or derivatives contracts). Once you add it, you'll see colored lines showing the OIWAP for each session you enable, along with optional deviation bands.
Adjusting Settings:
Turn individual sessions on or off using the checkboxes in the " Sessions " section
Change session colors to match your chart or what looks good to you
Turn deviation bands on or off using the " Show Bands " option in the Display settings
Change session time ranges in the " Session Times " section to match your market hours or what you want to analyze
Change the Position Timeframe if you want to see OI changes calculated on a different time period
Visual Interpretation:
Each OIWAP line shows you the OI-weighted average price for that session
The deviation bands show you how much prices spread out, weighted by OI changes
You can watch how price interacts with these levels to see where significant OI activity happened
Different sessions may show different OIWAP levels, showing you how the OI-price relationship changes throughout the trading day
Note:
This indicator needs Open Interest data to work. If OI data isn't available for your symbol, you'll see a message in the center of your chart. This indicator works only with derivatives markets like futures and options in the Indian Market where OI data is publicly available.
Conclusion
The Session Anchored OIWAP indicator is designed to support structured market observation by combining price, open interest, and session anchoring into a clear visual format. It helps users study market behavior during different parts of the day without generating trading instructions or outcomes.
Disclaimer
This indicator is for educational and visual-analysis purposes only. It does not provide trading signals , financial advice, or guaranteed outcomes . You should perform your own research and consult a licensed financial professional when needed. All trading decisions are solely the responsibility of the user.
Happy Trading
Zero Lag Moving Average Convergence Divergence (ZLMACD) [EVAI]Zero Lag Moving Average Convergence Divergence (ZLMACD)
ZLMACD is a MACD-style momentum oscillator that keeps the standard MACD structure while adding a practical “zero-lag” option through ZLEMA. It is intended for traders who like the familiar MACD workflow but want an oscillator that can respond earlier during transitions without turning into an overly noisy trigger.
The indicator plots the MACD line, the signal line, and the histogram around a zero baseline. If you already understand MACD, you already understand how to read this. The difference is that you can choose whether the oscillator and signal are driven by EMA, SMA, or ZLEMA, which changes the responsiveness and smoothness of the indicator.
Default behavior
This script defaults to the preset mode “ZLEMA osc + EMA signal.” In this configuration, the fast and slow oscillator averages are computed using ZLEMA, while the signal line remains an EMA of the MACD line. The reason for this mix is simple: ZLEMA tends to reduce lag in the oscillator, while EMA on the signal line helps keep crossovers readable and avoids excessive micro-signals.
In practice, this default preset often behaves like a “faster MACD” that still feels like MACD. It can highlight momentum turns earlier than a traditional EMA MACD while keeping the signal line stable enough to use for timing and confirmation.
Custom mode and MA selection
If you switch Mode to “Custom,” the indicator will use your selected moving average types for both the oscillator and the signal line. In Custom mode, the oscillator type applies to both fast and slow averages, and the signal type applies to the smoothing of the MACD line.
If you are in the default preset mode, the custom MA dropdowns will not change the calculations. This is intentional: the preset locks the MA types so the default behavior remains consistent and reproducible across charts and users.
Reading the indicator
The histogram reflects the distance between the MACD line and the signal line. When the histogram is above zero, the MACD line is above the signal line and momentum is biased upward; when it is below zero, the MACD line is below the signal line and momentum is biased downward. Changes in histogram height help visualize strengthening versus weakening momentum, while the zero baseline provides regime context by indicating whether the fast average is above or below the slow average.
Crossovers between MACD and signal behave exactly as they do in standard MACD, but the timing and “feel” will vary depending on the MA choices. ZLEMA on the oscillator typically makes turns appear earlier; SMA typically smooths more but can be slower; EMA tends to be the balanced baseline.
Alerts
Two alert conditions are included to detect histogram polarity shifts. One triggers when the histogram switches from non-negative to negative, and the other triggers when it switches from non-positive to positive. These are useful if you want simple notifications for momentum regime flips without staring at the chart continuously.
Notes
This indicator is provided for informational and educational purposes only and is not financial advice. Always test settings per instrument and timeframe and use risk management.
Power Hour Trendlines [LuxAlgo]The Power Hour Trendlines indicator is based on Power Hours detection, and includes up to three displayed trendlines derived from the closing prices of all the bars within the last user-selected Power Hours.
Users can edit the time of Power Hours, choose how many sessions to take into account, enable or disable any trendlines, and change their colors.
🔶 USAGE
The Power Hour is defined as the last hour of the trading session and is set by default from 3:00 p.m. to 4:00 p.m. New York time. During this period, volume and volatility enter the market. Traders using higher timeframes may use this period to enter or exit positions by placing MOC (Market on Close) orders.
This tool works under the hypothesis that prices made during power hours (periods with high trading activity) are more relevant when used for the construction of trendlines.
An initial trendline is fit using linear regression; prices from power hours located above this initial fit are used for the upper trendline, while the ones below the fit are used for the lower one.
As with any trendline, traders can analyze the slope to determine the market's direction:
Positive slope: The market is trending up.
Negative slope: The market is trending down.
No slope: The market is trending sideways.
As we can see in the image, Nasdaq and Bitcoin are clearly in downtrends, gold is clearly in an uptrend, and the euro/U.S. dollar is in a sideways market over the last visible sessions.
As you can see, the trend lines may or may not be parallel to each other. The wider the area, the more volatile the data. The narrower the area, the less volatile the data. Let's look at an example.
In the image, the Dow30 and the euro/U.S. dollar have opposite behaviors. The volatility above the middle trendline is growing in the first case but shrinking in the second. In both cases, the volatility in the bottom area seems steady, so there are no big surprises there.
Traders can adjust the number of sessions for calculations, making the tool ideal for analyzing price behavior over different time frames.
As the image shows, we can clearly see how the market behaves over different time periods. XLY has been moving down over the last 10, 20, and 40 sessions, with a steeper decline over shorter periods. However, it has been moving sideways over the last 70 sessions.
One of the main uses of trendlines is to provide key support and resistance. In the image, SPY is shown with trendlines over the last 20 sessions. These lines provide excellent reference points for trading and observing price behavior in those areas, such as whether prices are accepted or rejected, which may trigger a response from other traders.
🔹 Not Allowed Timeframes
For obvious reasons, timeframes larger than 1H are not allowed. The Power Hour is defined as the last hour of the trading session. The tool will display a warning message if the timeframe is longer than 60 minutes.
🔶 SETTINGS
Power Hour (NY Time): Choose a custom Power Hour in New York time
Sessions Memory: Select how many Power Hours to take into account for calculations.
🔹 Style
Top: Enable or disable the top line and choose the line and background colors.
Middle: Enable or disable the middle line and choose the line color.
Bottom: Enable or disable the bottom line and choose the line and background colors.
Background: Enable or disable the background color for top and bottom lines.






















