Mebane Faber GTAA 5In 2007, Mebane Faber published research that challenged the conventional wisdom of buy-and-hold investing. His paper, titled "A Quantitative Approach to Tactical Asset Allocation" and published in the Journal of Wealth Management, demonstrated that a simple timing mechanism could reduce portfolio volatility and drawdowns while maintaining competitive returns (Faber, 2007). This indicator implements his Global Tactical Asset Allocation strategy, known as GTAA5, following the original methodology.
The core insight of Faber's research stems from a century of market data. By analyzing asset class performance from 1901 onwards, Faber found that a ten-month simple moving average served as an effective trend filter across major asset classes. When an asset trades above its ten-month moving average, it tends to continue its upward trajectory; when it falls below, significant drawdowns often follow (Faber, 2007, pp. 12-16). This observation aligns with momentum research by Jegadeesh and Titman (1993), who documented that intermediate-term momentum persists across equity markets.
The GTAA5 strategy allocates capital equally across five diversified asset classes: domestic equities (SPY), international developed markets (EFA), aggregate bonds (AGG), commodities (DBC), and real estate investment trusts (VNQ). Each asset receives a twenty percent allocation when trading above its ten-month moving average. When an asset falls below this threshold, its allocation moves to short-term treasury bills (SHY), creating a dynamic cash position that scales with market risk (Cambria Investment Management, 2013).
The strategy's historical performance during market crises illustrates its function. During the 2008 financial crisis, traditional sixty-forty portfolios experienced drawdowns exceeding forty percent. The GTAA5 strategy limited losses to approximately twelve percent by reducing equity exposure as prices declined below their moving averages (Faber, 2013). This asymmetric return profile represents the strategy's primary characteristic.
This implementation uses monthly closing prices retrieved via request.security() to calculate the ten-month simple moving average. This distinction matters, as approximations using daily data (such as a 200-day moving average) can generate different signals during volatile periods. Monthly data ensures the indicator produces signals consistent with published academic research.
The indicator provides position monitoring, automatic rebalancing detection on either the first or last trading day of each month, and share calculations based on user-defined capital. A dashboard displays current trend status for each asset class, target versus actual weightings, and trade instructions for rebalancing. Performance metrics including annualized volatility and Sharpe ratio provide ongoing risk assessment.
Several limitations warrant acknowledgment. First, the strategy rebalances monthly, meaning it cannot respond to intra-month market crashes. Second, transaction costs and taxes from monthly rebalancing may reduce net returns for taxable accounts. Third, the ten-month lookback period, while historically robust, offers no guarantee of future effectiveness. As Ilmanen (2011) notes in "Expected Returns", all timing strategies face the risk of regime change, where historical relationships break down.
This indicator serves educational purposes and portfolio monitoring. It does not constitute financial advice.
References:
Cambria Investment Management (2013). Global Tactical Asset Allocation: An Introduction to the Approach. Research Report, Los Angeles.
Faber, M.T. (2007). A Quantitative Approach to Tactical Asset Allocation. Journal of Wealth Management, Spring 2007, pp. 9-79.
Faber, M.T. (2013). Global Asset Allocation: A Survey of the World's Top Asset Allocation Strategies. Cambria Investment Management, Los Angeles.
Ilmanen, A. (2011). Expected Returns: An Investor's Guide to Harvesting Market Rewards. John Wiley and Sons, Chichester.
Jegadeesh, N. and Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. Journal of Finance, 48(1), pp. 65-91.
Educational
Kvng solzfx Gold StrategyThis indicator helps to find gold setups using kvng solz fx buy only strategy on gold
Local Watchlist Gauge v6The Local Watchlist Gauge displays a compact monitoring table for a user-defined list of symbols, showing their current trend status and performance relative to their 52-week high.
The indicator presents a table that simultaneously tracks multiple symbols and displays:
• Trend direction for each symbol, determined by whether the closing price is above or below a user-defined moving average
• Percentage distance from the 52-week high, providing a clear measure of recent performance relative to the yearly peak
Each symbol is displayed with:
Trend indicator showing whether the symbol is in an uptrend (above moving average) or downtrend (below moving average)
Distance from 52-week high expressed as a percentage, with color coding to indicate proximity to recent highs
Green indicates symbols trading within 5% of their 52-week high, orange indicates symbols between 5% and 20% below their 52-week high, and red indicates symbols trading more than 20% below their 52-week high.
The table provides an at-a-glance summary of the trend status and relative performance of all symbols in the specified watchlist, allowing users to quickly identify which instruments are maintaining trend strength near their recent highs and which have experienced significant pullbacks from their yearly peaks.
Bassi's Pattern Breakout IndicatorBASSI'S PATTERN BREAKOUT INDICATOR
Author: Bassi | Published 2025
One of the cleanest and most accurate classic pattern detectors on TradingView – proudly coded and shared by Bassi.
Detects & confirms breakouts from:
• Double Top / Double Bottom
• Triple Top / Triple Bottom
• Head & Shoulders
• Inverse Head & Shoulders
Key Features:
• 100% non-repainting – signals only appear after candle close
• Smart breakout confirmation using the correct neckline level
• Visual pattern drawing (tops/bottoms + necklines)
• Clear breakout labels with vertical confirmation lines
• Real-time TradingView alerts (one alert per bar close)
• All alerts include "Bassi" prefix so you know it's the original
• Dynamic coloring for Double Bottom (red in lower areas, green in higher areas)
• No messy BUY/SELL labels – clean professional look (as requested by the community)
Why traders love it:
- Extremely reliable on all timeframes (1m to monthly)
- Works perfectly on Forex, Stocks, Crypto, Indices
- No false signals during consolidation
- Perfect for swing trading, scalping and position trading
Settings:
• Pivot Left/Right Bars – adjust sensitivity
• Price Tolerance % – how flat the tops/bottoms must be
• Max Pivot Storage – memory management
• Enable/disable alerts and visual markers
How to use:
1. Add to chart
2. Create alert → select "Bassi's Pattern Breakout Indicator"
3. Choose "Once per bar close"
4. Get notified instantly on every confirmed breakout!
This is the original and only authorized version by Bassi.
If you enjoy this indicator, please leave a like and follow for future updates!
© Bassi 2025 – All rights reserved
#pattern #breakout #doubletop #doublebottom #headandshoulders #tradingview #bassi
SPY → ES 11 Levels with Labels📌 Description for SPY → ES 11-Level Converter (with Labels)
This script converts important SPY options-based levels into their equivalent ES futures prices and plots them directly on the ES chart.
Because SPY trades at a different price scale than ES, each SPY level is multiplied by a customizable ES/SPY ratio to project accurate ES levels.
It is designed for traders who use SpotGamma, GEXBot, MenthorQ, Vol-trigger levels, or their own gamma/oi/volume models.
🔍 Features
✅ Converts SPY → ES using custom or automatic ratio
Option to manually enter a ratio (recommended for accuracy)
Or automatically compute ES/SPY from live prices
✅ Plots 11 major levels on the ES chart
Each level can be individually turned ON/OFF:
Call Wall
Put Wall
Volume Trigger
Spot Price
+Gamma Level
–Gamma Level
Zero Gamma
Positive OI
Negative OI
Positive Volume
Negative Volume
All levels are drawn as clean horizontal lines using the converted ES value.
rahulp33It is a 15-min high-low for the day; this will help the fellow chartist understand a trend emerging for the day. This indicator, along with others, gives a general sense of the daily trend, but it's not the sole factor to consider.
rahulpatkiIt is a 15-min high-low for the day; this will help the fellow chartist understand a trend emerging for the day. This indicator, along with others, provides a general idea of the daily trend, but it is not the only one to consider.
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
Unusual Volume//@version=5
indicator("Unusual Volume", overlay=false)
// --- Inputs ---
len = input.int(20, "Average Volume Length", minval=1)
mult = input.float(2.0, "Unusual Volume Multiplier", step=0.1)
// --- Calculations ---
avgVol = ta.sma(volume, len)
ratio = volume / avgVol
isBigVol = ratio > mult
// --- Plots ---
plot(volume, "Volume", style=plot.style_columns,
color = isBigVol ? color.new(color.green, 0) : color.new(color.gray, 60))
plot(avgVol, "Average Volume", color=color.orange)
// Mark unusual volume bars
plotshape(isBigVol, title="Unusual Volume Marker",
location=location.bottom, style=shape.triangleup,
color=color.green, size=size.tiny, text="UV")
// Optional: show ratio in Data Window
var label ratioLabel = na
Unusual Volume//@version=5
indicator("Unusual Volume", overlay=false)
// --- Inputs ---
len = input.int(20, "Average Volume Length", minval=1)
mult = input.float(2.0, "Unusual Volume Multiplier", step=0.1)
// --- Calculations ---
avgVol = ta.sma(volume, len)
ratio = volume / avgVol
isBigVol = ratio > mult
// --- Plots ---
plot(volume, "Volume", style=plot.style_columns,
color = isBigVol ? color.new(color.green, 0) : color.new(color.gray, 60))
plot(avgVol, "Average Volume", color=color.orange)
// Mark unusual volume bars
plotshape(isBigVol, title="Unusual Volume Marker",
location=location.bottom, style=shape.triangleup,
color=color.green, size=size.tiny, text="UV")
// Optional: show ratio in Data Window
var label ratioLabel = na
Buy vs Sell Volume//@version=5
indicator("Buy vs Sell Volume", overlay=false)
buyVol = close > open ? volume : 0
sellVol = close < open ? volume : 0
plot(buyVol, "Buy Volume", color=color.green)
plot(sellVol, "Sell Volume", color=color.red)
Minervini VCP Pattern -Indian ContextThis script implements Mark Minervini's Trend Template and VCP (Volatility Contraction Pattern) pattern, specifically adapted for Indian stock markets (NSE). It helps identify stocks that are in strong uptrends and ready to break out.
Core Concepts Explained
1. What is the Minervini Trend Template?
Mark Minervini's method identifies stocks in Stage 2 uptrends - the sweet spot where institutional money is accumulating and stocks show the strongest momentum. Think of it as finding stocks that are "leaders" rather than "laggards."
2. What is VCP (Volatility Contraction Pattern)?
A VCP occurs when:
Stock price consolidates (moves sideways) after an uptrend
Price swings get tighter and tighter (like a coiled spring)
Volume dries up (fewer people trading)
Then it breaks out with force.
You can customize the strategy settings without editing code.
Key Settings:
Minimum Price (₹50): Filters out penny stocks that are too volatile
Min Distance from 52W Low (30%): Stock should be at least 30% above its yearly low
Max Distance from 52W High (25%): Stock should be within 25% of its yearly high (showing strength)
Moving Average Periods: 10, 50, 150, 200 days (industry standard)
Minimum Volume (100,000 shares): Ensures the stock is liquid enough to trade
Indian Market Adaptation: The default values (₹50 minimum, volume thresholds) are adjusted for NSE stocks, which behave differently than US markets.
The script pulls weekly chart data even when you're viewing daily charts.
Why it matters: Weekly trends are more reliable than daily noise. Professional traders use weekly charts to confirm the bigger picture.
What are Moving Averages (MAs)?
Simple averages of closing prices over X days
They smooth out price action to show trends
Think of them as the "average cost" of buyers over different time periods
The 4 Key MAs:
10 MA (Fast): Very short-term trend
50 MA: Short to medium-term trend
150 MA: Medium to long-term trend
200 MA: Long-term trend (the "grandfather" of all MAs)
Why Weekly MAs?
The script also calculates 10 and 50 MAs on weekly data for additional confirmation of the bigger trend.
The script Finds the highest and lowest prices over the past 52 weeks (1 year).
Why it matters:
Stocks near 52-week highs are showing strength (institutions buying)
Stocks far from 52-week lows have "room to run" upward
This is a psychological level that influences trader behaviour.
What is Volume here ?
The number of shares traded each day
High volume = many traders interested (conviction)
Low volume = lack of interest (weakness or consolidation)
Volume in VCP:
During consolidation (sideways movement), volume should dry up - this shows sellers are exhausted and buyers are holding. When volume spikes on a breakout, it confirms the move.
NSE Context: Indian stocks often have different volume patterns than US stocks, so the 50-day average is used as a baseline.
Relative Strength vs Nifty:
Example:
If your stock is up 20% and Nifty is up 10%, your stock has strong RS
If your stock is up 5% and Nifty is up 15%, your stock has weak RS (avoid it!)
Why it matters: The best performing stocks almost always have strong relative strength before major moves.
The 13 Minervini Conditions:-
Condition 1: Price > 50/150/200 MA
Meaning: Current price must be above ALL three major moving averages.
Why: This confirms the stock is in a clear uptrend. If price is below these MAs, the stock is weak or in a downtrend.
Condition 2: MA 50 > 150 > 200
Meaning: The moving averages themselves must be in proper order.
Analogy: Think of this like layers in a cake - short-term on top, long-term at bottom. If they're tangled, the trend is unclear.
Condition 3: 200 MA Rising (1 Month)
Meaning: The 200 MA today must be higher than it was 20 days ago.
Why: This confirms the long-term trend is UP, not flat or down. The means "20 bars ago."
Condition 4: 50 MA Rising
Meaning: The 50 MA today must be higher than 5 days ago.
Why: Confirms short-term momentum is accelerating upward.
Condition 5: Within 25% of 52-Week High
Meaning: Current price should be within 25% of its 1-year high.
Example:
52-week high = ₹1000
Current price must be above ₹750 (within 25%)
Why: Strong stocks stay near their highs. Weak stocks fall far from highs.
Condition 6: 30%+ Above 52-Week Low (OPTIONAL)
Meaning: Stock should be at least 30% above its yearly low.
Note: The script marks this as "SECONDARY - Optional" because the other conditions are more important. However, it's still a good confirmation.
Condition 7: Price > 10 MA
Meaning: Very short-term strength - price above the 10-day moving average.
Why: Ensures the stock hasn't just rolled over in the immediate term.
Condition 8: Price >= ₹50
Meaning: Filters out stocks below ₹50.
Why: In Indian markets, stocks below ₹50 tend to be penny stocks with poor liquidity and higher manipulation risk.
Condition 9: Weekly Uptrend
Meaning: On the weekly chart, price must be above both weekly MAs, and they must be properly aligned.
Why: Confirms the bigger picture trend, not just daily fluctuations.
Condition 10: 150 MA Rising
Meaning: The 150 MA is trending upward over the past 10 days.
Why: Another confirmation of medium-term trend health.
Condition 11: Sufficient Volume
Meaning: Average volume must exceed 100,000 shares (or your custom setting).
Why: Ensures you can actually buy/sell the stock without moving the price too much (liquidity).
Condition 12: RS vs Nifty Strong
Meaning: The stock's relative strength vs Nifty must be improving.
Why: You want stocks that are outperforming the market, not underperforming.
Condition 13: Nifty in Uptrend
Meaning: The Nifty 50 index itself must be above its 50 MA.
Why: "A rising tide lifts all boats." It's easier to make money in individual stocks when the overall market is bullish.
VCP Requirements:
Volatility Contracting: Price swings getting tighter (coiling spring)
Volume Drying Up: Fewer shares trading + trending lower
The Setup: When volatility contracts and volume dries up WHILE all 13 trend conditions are met, you have a VCP setup ready to explode.
What You See on Chart:
Colored Lines: 10 MA (green), 50 MA (blue), 150 MA (orange), 200 MA (red)
Blue Background: Trend template conditions met (watch zone)
Green Background: Full VCP setup detected (buy zone)
↟ Symbol Below Price: New VCP buy signal just triggered
Information Table:
What it does: Creates a checklist table on your chart showing the status of all conditions.
Table Structure:
Column 1: Condition name
Column 2: Status (✓ green = met, ✗ red = not met)
Final Row: Shows "BUY" (green) or "WAIT" (red) based on full VCP setup status.
Dos:
Example:
Account size: ₹5,00,000
Risk per trade: 1% = ₹5,000
Entry: ₹1000
Stop loss: ₹920 (8% below)
Distance to stop: ₹80
Shares to buy: ₹5,000 / ₹80 = 62 shares
Exit Strategy:
Sell 1/3 at +20% profit
Sell another 1/3 at +40% profit
Let the final 1/3 run with a trailing stop
Always exit if price closes below 10 MA on heavy volume
What This Script Does NOT Do:
Guarantee profits - No strategy works 100% of the time
Account for news events - Earnings, regulatory changes, etc.
Consider fundamentals - Company financials, debt, management quality
Adapt to market crashes - Works best in bull markets
Best Market Conditions:
✅ Nifty in uptrend (above 50 MA)
✅ Market breadth positive (more stocks advancing)
✅ Sector rotation happening
❌ Avoid in bear markets or high volatility periods
References:
Trade Like a Stock Market Wizard by Mark Minervini
Think & Trade Like a Champion by Mark Minervini
Chart attached: AU Small Finance Bank as on EoD dated 28/11/25
This script is a powerful tool for educational purpose only, remember: It's a tool, not a crystal ball. Use it to find high-probability setups, then apply proper risk management and patience. Good luck!
Prev/Current Day Open & Close (RamtinFX)Draws three transparent vertical lines marking the previous day’s close, the current day’s open, and the current day’s close.
Average Volume LabelAverage Volume Label Indicator
This TradingView Pine Script creates a customizable label that displays the average trading volume over a specified period directly on your price chart.
Core Functionality:
Calculates the simple moving average (SMA) of volume over a user-defined number of days (default: 20 days)
Displays this average in a positioned label at the top of the chart
The label shows text like "20-Day Avg Volume: 1.2M" with automatic volume formatting
Key Customization Options:
Volume Calculation:
Adjustable lookback period (1-200 days) for the volume average
Label Appearance:
Text color, background color, and transparency controls
Five size options (Tiny to Huge)
Configurable horizontal position (how many bars back from the current bar to place the label)
Technical Implementation:
Updates only on the most recent bar to optimize performance
Positions the label at the highest price point within the visible range for consistent top-of-chart placement
Includes safety checks to prevent runtime errors with lookback periods
Also plots the average volume data (visible in the data window for reference)
This indicator is useful for traders who want to quickly assess whether current volume is above or below the recent average without cluttering their chart with additional panes.
MYPYBiTE.com – Cloud + VWAPFor Bitcoin we found that the 3 day chart consistently indicates a pattern that anyone can back test and determine the trend confirmation is broken. Of course we won't tell you here what it is because you have to do the work or be familiar with the communities I participate in.
We decided to make this available because we realized many folks do not incorporate cloud charting. This is to help noobies and we hope to incorporate other factors in time.
RSI Regimes + Cardwell Sweet SpotsRSI based upon Cardwell principles, with a strength evaluation based upon the ADX, VWAP, velocity of both, and Cardwell RSI principles of a sweet spot of a RSI.
Candle Identification + Cardwell Strength (w/ Slope Velocity)Identifies candle patterns pin bar, inside bar, outside bar, and shaved bars. The script also indicates the strength of the candle formation based upon Cardwell RSI principles, ADX, and price in relation to the VWAP.
The settings are available to the user to adjust for there specific style of trading.
RSI adaptive zones [AdaptiveRSI]This script introduces a unified mathematical framework that auto-scales oversold/overbought and support/resistance zones for any period length. It also adds true RSI candles for spotting intrabar signals.
Built on the Logit RSI foundation, this indicator converts RSI into a statistically normalized space, allowing all RSI lengths to share the same mathematical footing.
What was once based on experience and observation is now grounded in math.
✦ ✦ ✦ ✦ ✦
💡 Example Use Cases
RSI(14): Classic overbought/oversold signals + divergence
Support in an uptrend using RSI(14)
Range breakouts using RSI(21)
Short-term pullbacks using RSI(5)
✦ ✦ ✦ ✦ ✦
THE PAST: RSI Interpretation Required Multiple Rulebooks
Over decades, RSI practitioners discovered that RSI behaves differently depending on trend and lookback length:
• In uptrends, RSI tends to hold higher support zones (40–50)
• In downtrends, RSI tends to resist below 50–60
• Short RSIs (e.g., RSI(2)) require far more extreme threshold values
• Longer RSIs cluster near the center and rarely reach 70/30
These observations were correct — but lacked a unifying mathematical explanation.
✦ ✦ ✦ ✦ ✦
THE PRESENT: One Framework Handles RSI(2) to RSI(200)
Instead of using fixed thresholds (70/30, 90/10, etc.), this indicator maps RSI into a normalized statistical space using:
• The Logit transformation to remove 0–100 scale distortion
• A universal scaling based on 2/√(n−1) scaling factor to equalize distribution shapes
As a result, RSI values become directly comparable across all lookback periods.
✦ ✦ ✦ ✦ ✦
💡 How the Adaptive Zones Are Calculated
The adaptive framework defines RSI zones as statistical regimes derived from the Logit-transformed RSI .
Each boundary corresponds to a standard deviation (σ) threshold, scaled by 2/√(n−1), making RSI distributions comparable across periods.
This structure was inspired by Nassim Nicholas Taleb’s body–shoulders–tails regime model:
Body (±0.66σ) — consolidation / equilibrium
Shoulders (±1σ to ±2.14σ) — trending region
Tails (outside of ±2.14σ) — rare, high-volatility behavior
Transitions between these regimes are defined by the derivatives of the position (CDF) function :
• ±1σ → shift from consolidation to trend
• ±√3σ → shift from trend to exhaustion
Adaptive Zone Summary
Consolidation: −0.66σ to +0.66σ
Support/Resistance: ±0.66σ to ±1σ
Uptrend/Downtrend: ±1σ to ±√3σ
Overbought/Oversold: ±√3σ to ±2.14σ
Tails: outside of ±2.14σ
✦ ✦ ✦ ✦ ✦
📌 Inverse Transformation: From σ-Space Back to RSI
A final step is required to return these statistically normalized boundaries back into the familiar 0–100 RSI scale. Because the Logit transform maps RSI into an unbounded real-number domain, the inverse operation uses the hyperbolic tangent function to compress σ-space back into the bounded RSI range.
RSI(n) = 50 + 50 · tanh(z / √(n − 1))
The result is a smooth, mathematically consistent conversion where the same statistical thresholds maintain identical meaning across all RSI lengths, while still expressing themselves as intuitive RSI values traders already understand.
✦ ✦ ✦ ✦ ✦
Key Features
Mathematically derived adaptive zones for any RSI period
Support/resistance zone identification for trend-aligned reversals
Optional OHLC RSI bars/candles for intrabar zone interactions
Fully customizable zone visibility and colors
Statistically consistent interpretation across all markets and timeframes
Inputs
RSI Length — core parameter controlling zone scaling
RSI Display : Line / Bar / Candle visualization modes
✦ ✦ ✦ ✦ ✦
💡 How to Use
This indicator is a framework , not a binary signal generator.
Start by defining the question you want answered, e.g.:
• Where is the breakout?
• Is price overextended or still trending?
• Is the correction ending, or is trend reversing?
Then:
Choose the RSI length that matches your timeframe
Observe which adaptive zone price is interacting with
Interpret market behavior accordingly
Example: Long-Term Trend Assesment using RSI(200)
A trader may ask: "Is this a long term top?"
Unlikely, because RSI(200) holds above Resistance zone , therefore the trend remains strong.
✦ ✦ ✦ ✦ ✦
👉 Practical tip:
If you used to overlay weekly RSI(14) on a daily chart (getting a line that waits 5 sessions to recalculate), you can now read the same long-horizon state continuously : set RSI(70) on the daily chart (~14 weeks × 5 days/week = 70 days) and let the adaptive zones update every bar .
Note: It won’t be numerically identical to the weekly RSI due to lookback period used, but it tracks the same regime on a standardized scale with bar-by-bar updates.
✦ ✦ ✦ ✦ ✦
Note: This framework describes statistical structure, not prediction. Use as part of a complete trading approach. Past behavior does not guarantee future outcomes.
framework ≠ guaranteed signal
---
Attribution & License
This indicator incorporates:
• Logit transformation of RSI
• Variance scaling using 2/√(n−1)
• Zone placement derived from Taleb’s body–shoulders–tails regime model and CDF derivatives
• Inverse TANH(z) transform for mapping z-scores back into bounded RSI space
Released under CC BY-NC-SA 4.0 — free for non-commercial use with credit.
© AdaptiveRSI
StockInfo: Sector/Industry /MarketCapThis indicator is designed to give traders a quick, accurate, and clean snapshot of the business fundamentals behind any Indian stock — directly on the chart. With a focus on the needs of retail investors, swing traders, and position traders, this tool displays the most important classification details used in market analysis:
✔ Sector
✔ Industry
✔ Market-Cap Category (Large / Mid / Small Cap – SEBI aligned)
✔ Stock Symbol (Exchange:Ticker)
All information is shown in a compact, customizable table, positioned neatly on the chart without disturbing your technical analysis.
Why this indicator is useful
1️⃣ Know what you are trading — instantly
Many traders unknowingly enter trades without checking whether a stock is:
part of the right sector cycle
in a strong or weak industry
a large, mid, or small cap
This tool puts that information right in front of you, saving time and preventing mistakes.
2️⃣ Helps identify sector rotation & industry strength
Sector and industry trends often drive strong multi-week moves.
This indicator allows you to:
Quickly compare a stock’s sector with others
Spot sector rotation early
Filter stocks based on industry strength
Perfect for momentum, trend, and positional traders.
3️⃣ Automatic Market-Cap Classification (SEBI-aligned)
The script automatically categorizes stocks into:
LARGE CAP (safe, stable, institutional favourites)
MID CAP (growth stage, volatile but rewarding)
SMALL CAP (high-risk, high-reward)
Great for risk profiling and deciding correct position size and portfolio allocation.
4️⃣ Fully Customisable User Interface
You can change:
Table position (all four corners)
Font size (Tiny → Huge)
Header & value colors
Background colors
Border color & width
Which rows to display
This keeps the indicator clean and flexible for every type of chart layout.
5️⃣ Perfect for Traders Who Combine Fundamentals + Technicals
This is not a heavy fundamental tool.
Instead, it gives you exactly the core business details you need while performing technical analysis.
Useful for:
Swing traders
Position traders
Portfolio allocation
Index-relative comparison
Sector/industry-based screening
How traders typically use this indicator
Identify the sector leader in a breakout
Avoid weak or declining industries
Confirm if a stock fits your risk profile
Quickly check classification during live market
Build thematic watchlists (Auto, IT, Pharma, PSU, Defense, etc.)
Avoid mixing small-caps into large-cap strategies
Compare sector rotation with Nifty, Bank Nifty & broader indices
Conclusion
This indicator enhances any chart by adding high-level business intelligence directly on screen.
It improves decision-making, reduces time spent switching between windows, and keeps your analysis complete — all in one place.
If you trade Indian equities, this is one of the simplest yet most powerful fundamental overlays you can add to your workflow.
stock-vs-industry using NQUSB benchmark idexesOriginal idea from Stock versus Industry by Tr33man .
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ PRIMARY IMPROVEMENT: NQUSB Hierarchical Index Benchmarks ═══
The KEY improvement: Multi-Level Industry Granularity with Drill-Down/Drill-Up Navigation
From: Simple ETF Comparison (1 Level) Stock → Industry ETF (e.g., "SOXX" for all semiconductors)
To: NQUSB Hierarchical Comparison (4 Levels)
Level 4 (Primary): NQUSB10102010 → Semiconductors (most specific)
Level 3 (Secondary): NQUSB101020 → Technology Hardware and Equipment
Level 2 (Tertiary): NQUSB101010 → Software and Computer Services
Level 1 (Quaternary): NQUSB10 → Technology (broadest sector)
Users can now drill up and down the industry hierarchy to see how their stock performs against different levels of industry classification!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ WHY THIS MATTERS ═══
Original Limitations:
Single comparison level - ETF only
No drill-down capability - Can't zoom in to more specific industries
No drill-up capability - Can't zoom out to broader sectors
ETF limitations - Not all industries have dedicated ETFs
Arbitrary mappings - Manual ETF selection may not represent true industry
Improved Capabilities:
4-level hierarchical navigation - Drill-down and drill-up through industry classifications
361 NQUSB official indices - NASDAQ US Benchmark Index structure
Official NASDAQ classification - Industry-standard taxonomy
Large Mid Cap (LM) option - Focus on larger companies when needed
Enhanced UI - Clear level indicators and full index descriptions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ EXAMPLE: ANALYZING NVDA (Semiconductors) ═══
Level 4 - Primary (Most Specific):
NQUSB10102010 - Semiconductors
→ NVDA vs. AMD, AVGO, QCOM, TXN, etc. (direct competitors)
Level 3 - Secondary (Broader):
NQUSB101020 - Tech Hardware & Equipment
→ NVDA vs. AAPL, CSCO + semiconductors
Level 2 - Tertiary (Even Broader):
NQUSB101010 - Software and Computer Services
→ NVDA vs. all tech hardware
Level 1 - Quaternary (Broadest):
NQUSB10 - Technology Sector
→ NVDA vs. entire technology sector
You can now zoom in to see direct competitors or zoom out to understand macro sector trends - all in one indicator!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ COMPARISON SUMMARY ═══
Original Version:
Comparison System: Industry ETFs
Industry Levels: 1 (flat ETF mapping)
Total Classifications: ~140 industries
Hierarchy Navigation: ❌ No
Data Source: Manual ETF curation
Improved Version:
Comparison System: NQUSB Official Indices
Industry Levels: 4 (hierarchical drill-down/up)
Total Classifications: 361 NQUSB indices
Hierarchy Navigation: ✅ 4-level drill navigation
Data Source: NASDAQ official taxonomy
Large/Mid Cap Option: ✅ LM variant toggle
Level Indicator: ✅ to labels
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
═══ ADDITIONAL FEATURES ═══
Dual Comparison System - Toggle between ETF mode (original) and Index Benchmark mode (NQUSB hierarchy)
Better Fallback Logic - Manual Override > NQUSB Index > ETF > SPY default
Enhanced Display - 4-row information table with full NQUSB index description
Backward Compatible - All original ETF mappings still work, existing charts won't break
Large Mid Cap Toggle - Optional "LM" suffix for focusing on larger companies only
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
For complete documentation, data files, technical details, and the full NQUSB hierarchy structure, visit the GitHub repository.
The result: More accurate, more flexible, and more comprehensive industry strength analysis - enabling traders to understand exactly where their stock's performance comes from by drilling through multiple levels of industry classification.






















