OpeningRange (Trading_Tix)Purpose:
The indicator highlights the high, low, and middle (50%) price levels of a specified session's opening range. These levels can serve as key support and resistance zones for trading strategies. The indicator also offers options to extend these levels beyond the session into later timeframes, making it useful for tracking breakout or trend continuation setups.
Key Features:
1. Session Detection:
The indicator identifies a specific session period using the user-defined Session Time. It calculates the start time, high, and low prices during this period:
rangeTime: Defines the session time range (default: 5:00 PM to 2:59 AM).
extendTime: Defines the extended time range where lines/backgrounds can be prolonged.
2. Opening Range Calculation:
High (high_val) and Low (low_val)**:
Tracks the highest and lowest prices during the session.
Middle Line:
A midpoint is calculated by averaging high_val and low_val.
3. Visual Elements:
Horizontal Lines:
Drawn at the high, low, and middle levels.
Customizable in width and color.
Shaded Background Box:
Covers the range between high and low prices.
The box’s color and transparency can be adjusted.
Line and Box Extension:
Optionally extends these elements into the extended time range.
4. Customization:
Users have the flexibility to:
Toggle visibility of lines, middle line, and background box.
Adjust colors, line thickness, and style.
Enable or disable the extension of lines and backgrounds into the extended period.
How It Works:
Initialization:
The script initializes variables to store range data (startTime, high_val, low_val) and drawing objects (lines, boxes).
It detects whether the current bar falls within the session (inSession) or extended timeframe (inExtend).
Plotting:
During the session:
Deletes previous lines and boxes from prior sessions.
Draws new lines at the high, low, and middle levels.
Creates a background box covering the range, if enabled.
During the extended period:
Extends the session lines and box, if the user has opted for extensions.
Updates:
Continuously adjusts the high/low values and updates the lines as new price data arrives.
Use Cases:
This indicator can be valuable for traders who:
Use the opening range to identify potential breakout zones.
Trade based on price consolidation within the range.
Want a visual representation of key price levels to plan entries and exits.
Would you like help refining this script further or adjusting its settings to match your trading style?
Educational
Bitcoin as % Global M2 signalThis script provides signal system:
Buy signal: each time the YoY of the Global M2 rises more than 2.5% while the distance between the bitcoin price as a percentage of the Global M2 is below its yearly SMA.
Sell signal: the distance between the bitcoin price as a percentage of the Global M2 and its yearly SMA is > 0.7
This is a very simple system, but it seems to work pretty well to ride the bitcoin price cycle wave.
The parameters are hard coded but they can be easily changed to test different levels for both the buy and sell signals.
Global M2 YoY % Increase signalThe script produces a signal each time the global M2 increases more than 2.5%. This usually coincides with bitcoin prices pumps, except when it is late in the business cycle or the bitcoin price / halving cycle.
It leverages dylanleclair Global M2 YoY % change, with several modifications:
adding a 10 week lead at the YoY Change plot for better visibility, so that the bitcoin pump moreless coincides with the YoY change.
signal increases > 2.5 in Global M2 at the point at which they occur with a green triangle up.
CISD [TakingProphets]🧠 Indicator Purpose:
The "CISD - Change in State of Delivery" is a precision tool designed for traders utilizing ICT (Inner Circle Trader) conecpets. It detects critical shifts in delivery conditions after liquidity sweeps — helping you spot true smart money activity and optimal trade opportunities. This script is especially valuable for traders applying liquidity concepts, displacement recognition, and market structure shifts at both intraday and swing levels.
🌟 What Makes This Indicator Unique:
Unlike basic trend-following or scalping tools, CISD operates through a two-phase smart money logic:
Liquidity Sweep Detection (sweeping Buyside or Sellside Liquidity).
State of Delivery Change Identification (through bearish or bullish displacement after the sweep).
It intelligently tracks candle sequences and only signals a CISD event after true displacement — offering a much deeper context than ordinary indicators.
⚙️ How the Indicator Works:
Swing Point Detection: Identifies recent pivot highs/lows to map Buyside Liquidity (BSL) and Sellside Liquidity (SSL) zones.
Liquidity Sweeps: Watches for price breaches of these liquidity points to detect institutional stop hunts.
Sequence Recognition: Finds series of same-direction candles before sweeps to mark institutional accumulation/distribution.
Change of Delivery Confirmation: Confirms CISD only after significant displacement moves price against the initial candle sequence.
Visual Markings: Automatically plots CISD lines and optional labels, customizable in color, style, and size.
🎯 How to Use It:
Identify Liquidity Sweeps: Watch for CISD levels plotted after a liquidity sweep event.
Plan Entries: Look for retracements into CISD lines for high-probability entries.
Manage Risk: Use CISD levels to refine your stop-loss and profit-taking zones.
Best Application:
After stop hunts during Killzones (London Open, New York AM).
As part of the Flow State Model: identify higher timeframe PD Arrays ➔ wait for lower timeframe CISD confirmation.
🔎 Underlying Concepts:
Liquidity Pools: Highs and lows cluster stop orders, attracting institutional sweeps.
Displacement: Powerful price moves post-sweep confirm smart money involvement.
Market Structure: CISD frequently precedes major Change of Character (CHoCH) or Break of Structure (BOS) shifts.
🎨 Customization Options:
Adjustable line color, width, and style (solid, dashed, dotted).
Optional label display with customizable color and sizing.
Line extension settings to keep CISD zones visible for future reference.
✅ Recommended for:
Traders studying ICT Smart Money Concepts.
Intraday scalpers and higher timeframe swing traders.
Traders who want to improve entries around liquidity sweeps and institutional displacement moves.
🚀 Bonus Tip:
For maximum confluence, pair this with the HTF POI, ICT Liquidity Levels, and HTF Market Structure indicators available at TakingProphets.com! 🔥
Kalman Filtered RSI | [DeV]The Kalman Filtered RSI indicator is an advanced tool designed for traders who want precise, noise-free market insights. By enhancing the classic Relative Strength Index (RSI) with a Kalman filter, this indicator delivers a smoother, more reliable view of market momentum, helping you identify trends, reversals, and overbought/oversold conditions with greater accuracy. It’s an ideal choice for traders seeking clear signals amidst market volatility, giving you a competitive edge across any trading environment.
The RSI measures momentum by analyzing price movements over a set period, typically 14 bars. It calculates the average of price gains on up days and the average of price losses on down days, then compares these to produce a value between 0 and 100. An RSI above 70 often indicates an overbought market that may reverse downward, while below 30 suggests an oversold market that could reverse upward. RSI is great for spotting momentum shifts, potential reversals, and trend strength, but it can be noisy in choppy markets, leading to misleading signals.
That's where the Kalman filter comes in; it enhances the RSI by applying a sophisticated smoothing process that predicts the RSI’s next value based on its historical trend, then updates this prediction with the actual RSI reading. It operates in two phases: prediction and correction. In the prediction phase, it uses the previous filtered RSI and adds uncertainty from process noise (Q), which is derived from the historical variance of RSI changes, reflecting how much the RSI might unexpectedly shift. In the correction phase, it calculates a Kalman gain based on the ratio of prediction uncertainty to measurement noise (R), which is determined from the variance between raw RSI and a smoothed version, indicating the raw data’s noisiness. This gain weights how much the filter trusts the new RSI versus the prediction, blending them to produce a smoothed RSI that reduces noise while staying responsive to real trends, outperforming simpler methods like moving averages that often lag or oversmooth.
With the Kalman Filtered RSI, you get a refined view of momentum, making it easier to spot trends and reversals with clarity. This indicator’s ability to dynamically adapt to market changes delivers timely, reliable signals, making it a powerful addition to your trading strategy for any market or timeframe.
Sharpe Ratio Forced Selling StrategyThis study introduces the “Sharpe Ratio Forced Selling Strategy”, a quantitative trading model that dynamically manages positions based on the rolling Sharpe Ratio of an asset’s excess returns relative to the risk-free rate. The Sharpe Ratio, first introduced by Sharpe (1966), remains a cornerstone in risk-adjusted performance measurement, capturing the trade-off between return and volatility. In this strategy, entries are triggered when the Sharpe Ratio falls below a specified low threshold (indicating excessive pessimism), and exits occur either when the Sharpe Ratio surpasses a high threshold (indicating optimism or mean reversion) or when a maximum holding period is reached.
The underlying economic intuition stems from institutional behavior. Institutional investors, such as pension funds and mutual funds, are often subject to risk management mandates and performance benchmarking, requiring them to reduce exposure to assets that exhibit deteriorating risk-adjusted returns over rolling periods (Greenwood and Scharfstein, 2013). When risk-adjusted performance improves, institutions may rebalance or liquidate positions to meet regulatory requirements or internal mandates, a behavior that can be proxied effectively through a rising Sharpe Ratio.
By systematically monitoring the Sharpe Ratio, the strategy anticipates when “forced selling” pressure is likely to abate, allowing for opportunistic entries into assets priced below fundamental value. Exits are equally mechanized, either triggered by Sharpe Ratio improvements or by a strict time-based constraint, acknowledging that institutional rebalancing and window-dressing activities are often time-bound (Coval and Stafford, 2007).
The Sharpe Ratio is particularly suitable for this framework due to its ability to standardize excess returns per unit of risk, ensuring comparability across timeframes and asset classes (Sharpe, 1994). Furthermore, adjusting returns by a dynamically updating short-term risk-free rate (e.g., US 3-Month T-Bills from FRED) ensures that macroeconomic conditions, such as shifting interest rates, are accurately incorporated into the risk assessment.
While the Sharpe Ratio is an efficient and widely recognized measure, the strategy could be enhanced by incorporating alternative or complementary risk metrics:
• Sortino Ratio: Unlike the Sharpe Ratio, the Sortino Ratio penalizes only downside volatility (Sortino and van der Meer, 1991). This would refine entries and exits to distinguish between “good” and “bad” volatility.
• Maximum Drawdown Constraints: Integrating a moving window maximum drawdown filter could prevent entries during persistent downtrends not captured by volatility alone.
• Conditional Value at Risk (CVaR): A measure of expected shortfall beyond the Value at Risk, CVaR could further constrain entry conditions by accounting for tail risk in extreme environments (Rockafellar and Uryasev, 2000).
• Dynamic Thresholds: Instead of static Sharpe thresholds, one could implement dynamic bands based on the historical distribution of the Sharpe Ratio, adjusting for volatility clustering effects (Cont, 2001).
Each of these risk parameters could be incorporated into the current script as additional input controls, further tailoring the model to different market regimes or investor risk appetites.
References
• Cont, R. (2001) ‘Empirical properties of asset returns: stylized facts and statistical issues’, Quantitative Finance, 1(2), pp. 223-236.
• Coval, J.D. and Stafford, E. (2007) ‘Asset Fire Sales (and Purchases) in Equity Markets’, Journal of Financial Economics, 86(2), pp. 479-512.
• Greenwood, R. and Scharfstein, D. (2013) ‘The Growth of Finance’, Journal of Economic Perspectives, 27(2), pp. 3-28.
• Rockafellar, R.T. and Uryasev, S. (2000) ‘Optimization of Conditional Value-at-Risk’, Journal of Risk, 2(3), pp. 21-41.
• Sharpe, W.F. (1966) ‘Mutual Fund Performance’, Journal of Business, 39(1), pp. 119-138.
• Sharpe, W.F. (1994) ‘The Sharpe Ratio’, Journal of Portfolio Management, 21(1), pp. 49-58.
• Sortino, F.A. and van der Meer, R. (1991) ‘Downside Risk’, Journal of Portfolio Management, 17(4), pp. 27-31.
Sharpe & Sortino Ratio PROSharpe & Sortino Ratio PRO offers an advanced and more precise way to calculate and visualize the Sharpe and Sortino Ratios for financial assets on TradingView. Its main goal is to provide a scientifically accurate method for assessing the risk-adjusted performance of assets, both in the short and long term. Unlike TradingView’s built-in metrics, this script correctly handles periodic returns, uses optional logarithmic returns, properly annualizes both returns and volatility, and adjusts for the risk-free rate — all critical factors for truly meaningful Sharpe and Sortino calculations.
Users can customize the rolling analysis window (e.g., 252 periods for one year on daily data) and the long-term smoothing period (e.g., 1260 periods for five years). There’s also an option to select between linear and logarithmic returns and to manually input a risk-free rate if real-time data from FRED (the 3-Month T-Bill Rate via FRED:DGS3MO) is unavailable. Based on the chart’s timeframe (daily, weekly, or monthly), the script automatically adjusts the risk-free rate to a per-period basis.
The Sharpe Ratio is calculated by first determining the asset’s excess returns (returns after subtracting the risk-free return per period), then computing the average and standard deviation of those excess returns over the specified window, and finally annualizing these figures separately — in line with best scientific practices (Sharpe, 1994). The Sortino Ratio follows a similar approach but only considers negative returns, focusing specifically on downside risk (Sortino & Van der Meer, 1991).
To enhance readability, the script visualizes the ratios using a color gradient: strong negative values are shown in red, neutral values in yellow, and strong positive values in green. Additionally, the long-term averages for both Sharpe and Sortino are plotted with steady colors (teal and orange, respectively), making it easier to spot enduring performance trends.
Why calculating Sharpe and Sortino Ratios manually on TradingView is necessary?
While TradingView provides basic Sharpe and Sortino Ratios, they come with significant methodological flaws that can lead to misleading conclusions about an asset’s true risk-adjusted performance.
First, TradingView often computes volatility based on the standard deviation of price levels rather than returns (TradingView, 2023). This method is problematic because it causes the volatility measure to be directly dependent on the asset’s absolute price. For instance, a stock priced at $1,000 will naturally show larger absolute daily price moves than a $10 stock, even if their percentage changes are similar. This artificially inflates the measured standard deviation and, as a result, depresses the calculated Sharpe Ratio.
Second, TradingView frequently neglects to adjust for the risk-free rate. By treating all returns as risky returns, the computed Sharpe Ratio may significantly underestimate risk-adjusted performance, especially when interest rates are high (Sharpe, 1994).
Third, and perhaps most critically, TradingView doesn’t properly annualize the mean excess return and the standard deviation separately. In correct financial math, the mean excess return should be multiplied by the number of periods per year, while the standard deviation should be multiplied by the square root of the number of periods per year (Cont, 2001; Fabozzi et al., 2007). Incorrect annualization skews the Sharpe and Sortino Ratios and can lead to under- or overestimating investment risk.
These flaws lead to three major issues:
• Overstated volatility for high-priced assets.
• Incorrect scaling between returns and risk.
• Sharpe Ratios that are systematically biased downward, especially in high-price or high-interest environments.
How to properly calculate Sharpe and Sortino Ratios in Pine Script?
To get accurate results, the Sharpe and Sortino Ratios must be calculated using the correct methodology:
1. Use returns, not price levels, to calculate volatility. Ideally, use logarithmic returns for better mathematical properties like time additivity (Cont, 2001).
2. Adjust returns by subtracting the risk-free rate on a per-period basis to obtain true excess returns.
3. Annualize separately:
• Multiply the mean excess return by the number of periods per year (e.g., 252 for daily data).
• Multiply the standard deviation by the square root of the number of periods per year.
4. Finally, divide the annualized mean excess return by the annualized standard deviation to calculate the Sharpe Ratio.
The Sortino Ratio follows the same structure but uses downside deviations instead of standard deviations.
By following this scientifically sound method, you ensure that your Sharpe and Sortino Ratios truly reflect the asset’s real-world risk and return characteristics.
References
• Cont, R. (2001). Empirical properties of asset returns: stylized facts and statistical issues. Quantitative Finance, 1(2), pp. 223–236.
• Fabozzi, F.J., Gupta, F. and Markowitz, H.M. (2007). The Legacy of Modern Portfolio Theory. Journal of Investing, 16(3), pp. 7–22.
• Sharpe, W.F. (1994). The Sharpe Ratio. Journal of Portfolio Management, 21(1), pp. 49–58.
• Sortino, F.A. and Van der Meer, R. (1991). Downside Risk: Capturing What’s at Stake in Investment Situations. Journal of Portfolio Management, 17(4), pp. 27–31.
• TradingView (2023). Help Center - Understanding Sharpe and Sortino Ratios. Available at: www.tradingview.com (Accessed: 25 April 2025).
Relative Volume CandlesVisualizes candlesticks with transparency based on volume relative to a moving average. Higher-than-average volume makes candles more opaque, while lower volume increases transparency—helping you spot significant price movements at a glance!
Features:
Customizable up/down candle colors (default: green/red)
Adjustable lookback period for volume averaging (default: 21)
Fine-tune transparency with base transparency (default: 80) and scale (default: 2.0)
Overlay directly on your chart for seamless analysis
Triple Confirmation Buy/Sell Engine VWAP + MACD + RSIDescription:
This custom-built indicator generates high-confidence Buy/Sell signals using a powerful combination of MACD momentum, RSI strength, and VWAP trend confirmation — designed for cleaner entries and fewer false signals.
Unlike traditional scripts that rely on only one indicator (and produce noisy or early signals), this system requires triple confirmation, greatly increasing signal quality and reducing false trades.
✅ Buy Signal Conditions:
MACD histogram turns green (momentum shift positive)
RSI crosses above 50 (bullish strength confirmation)
Price closes above VWAP (trend confirmation)
🔻 Sell Signal Conditions:
MACD histogram turns red (momentum shift negative)
RSI crosses below 50 (weakening trend)
Price closes below VWAP (bearish confirmation)
🛠 Best For:
Trend traders seeking higher probability entries
Swing traders who want to catch bigger moves
Crypto, stocks, forex traders looking for simple, effective signals
Godfather of Support & Resistance Godfather of Support & Resistance
Overview
The Godfather of Support & Resistance script is a powerful tool designed to help traders identify critical support and resistance levels on their charts. These price levels are vital for understanding market behavior, as they often act as turning points where prices reverse, consolidate, or break through. By automating the detection of these levels, this script simplifies your trading decisions and enhances your technical analysis.
How It Works
Pivot Points for Level Detection:
The script uses pivot points to identify potential support (lows) and resistance (highs) levels:
A pivot high is a local peak (a high surrounded by lower highs).
A pivot low is a local trough (a low surrounded by higher lows).
You can adjust the Pivot Length (pivotLen) input to control the sensitivity of detection. Smaller values detect more levels, while larger values focus on major levels.
Dynamic Grouping with Tolerance:
The script dynamically groups nearby price levels using a tolerance percentage. This tolerance is based on the level's price, making it adaptive to all types of assets (low- and high-priced).
For example, if the tolerance is set to 1% and a level is at $100, levels within $1 are grouped together.
Touch Count for Significance:
The script tracks how many times the price interacts with each level (touch count). Only levels that meet or exceed the Minimum Touches (minTouches) input are displayed on the chart. This ensures only meaningful levels are highlighted.
Clear Visual Representation:
Resistance Levels (Red Lines): Represent areas where the price tends to reverse downward.
Support Levels (Green Lines): Represent areas where the price tends to reverse upward.
Labels are added to each level (optional) to display the price and the number of touches for better decision-making.
Inputs You Can Customize
Minimum Touches to Show Level:
Set the minimum number of price interactions required for a level to be displayed.
Maximum Lines to Keep:
Limit the number of support and resistance lines displayed to keep your chart clean and focused.
Pivot Length:
Customize the sensitivity of pivot point detection. Smaller values detect more levels, while larger values focus on key levels.
Tolerance for Touch Detection (%):
Adjust the grouping tolerance as a percentage of the price. For example, 1% groups levels that are within 1% of each other.
How to Use
Apply the Script:
Add the script to your TradingView chart, and it will automatically detect and plot support and resistance levels.
Analyze the Levels:
Use Resistance Levels (red lines) as potential sell zones or areas to place stop-loss orders above.
Use Support Levels (green lines) as potential buy zones or areas to place stop-loss orders below.
Customize for Your Trading Style:
Adjust the inputs to match your preferred strategy and the timeframe or asset you're analyzing.
Example Use Case
Imagine you're analyzing a stock:
Resistance Level: The script identifies resistance at $150 with 3 touches. This might be a potential sell zone if the price struggles to break through.
Support Level: The script identifies support at $130 with 4 touches. This might be a potential buy zone if the price shows signs of bouncing upward.
Key Features
Automatically detects and plots support and resistance levels.
Tracks the number of price touches to filter out weak levels.
Adapts dynamically to price ranges using a percentage-based tolerance.
Fully customizable to suit different trading styles and assets.
Clean and professional chart display with a limit on the number of lines.
Notes
This script is for educational purposes only and should not be considered financial advice.
Always perform your own analysis and manage risk before making trading decisions.
Why Use This Script?
The Godfather of Support & Resistance script simplifies your trading decisions by automating the detection of critical price levels. Whether you're a beginner or an experienced trader, this script is designed to save you time and help you focus on making informed trades.
Start using it today to master the art of support and resistance trading!
Let me know if you need further refinements for this description!
Micro Gaps DetectorSimple Micro Gap Indicator: A Technical Analysis Tool
The Simple Micro Gap Indicator is a specialized momentum indicator designed to identify and analyze micro gaps between consecutive candlesticks in financial charts. Unlike traditional gap analysis that focuses on larger price gaps, this indicator specifically targets smaller, less noticeable spaces between candles.
Key Features:
Detects minimal price disparities between consecutive candlesticks
Helps identify potential short-term momentum shifts
Useful for high-frequency trading and scalping strategies
Functions as a momentum indicator for short-term price movements
Wyckoff Accumulation Distribution Wyckoff Accumulation & Distribution Indicator (RSI-Based)
This Pine Script is a technical analysis indicator built around the Wyckoff Method, designed to detect accumulation and distribution phases using RSI (Relative Strength Index) and pivot points. It automatically marks key structural turning points on the chart and highlights relevant zones with colored boxes.
What Does It Do?
Draws accumulation and distribution boxes based on RSI behavior.
Automatically detects Wyckoff structural signals:
SC (Selling Climax)
AR (Automatic Rally)
ST (Secondary Test)
BC (Buying Climax)
DAR (Automatic Reaction)
DST (Secondary Test - Distribution)
Identifies trend transitions by detecting sideways RSI movement.
Attempts to detect spring and UTAD-like deviations based on RSI reversals.
Uses RSI extremes in conjunction with pivot points to generate Wyckoff signals.
How Does It Work?
RSI Zone: It identifies sideways markets when RSI stays within ±20 of the 50 level (this range is configurable).
Pivot Points: It detects pivot highs/lows that sync with RSI values (pivotLen is adjustable).
Trend Box Drawing:
When RSI exits the sideways zone, the script draws a gray box between the highest high and lowest low within that range.
If RSI breaks upward, the box becomes green (Accumulation); if downward, it becomes red (Distribution).
Wyckoff Structural Points:
SC/BC: Detected when a pivot occurs with RSI below/above a threshold.
AR/DAR: The next opposite pivot after SC or BC.
ST/DST: The next same-direction pivot after AR or DAR.
How to Use It
Works best on 4H or daily charts for more reliable signals. Shorter timeframes may generate noise.
Primarily used for interpreting RSI structures through the lens of Wyckoff methodology.
Box colors help quickly identify market phase:
Green box: Likely Accumulation
Red box: Likely Distribution
Triangular markers show key signals:
SC, AR, ST: Accumulation points
BC, DAR, DST: Distribution points
Use these signals alongside price action to manually interpret Wyckoff phases.
image.binance.vision
image.binance.vision
What Is the Wyckoff Method?
The Wyckoff Method, developed in the 1930s by Richard Wyckoff, is a market analysis approach that focuses on supply and demand dynamics behind price movements.
Wyckoff’s 5 Phases:
Accumulation: Smart money gradually buying at low prices.
Markup: Price begins trending upwards.
Distribution: Smart money selling to retail traders.
Markdown: Downtrend begins as supply outweighs demand.
Re-accumulation / Re-distribution: Trend-continuation phases with consolidations.
This indicator is specifically designed to detect phase 1 (Accumulation) and phase 3 (Distribution).
Extra Notes
Repainting is minimal, as pivots are confirmed using historical candles.
Labels use plotshape for a clean, minimalist visual style.
Other Wyckoff events (like SOS, LPS, UT, UTAD) could be added in future updates.
This script does not generate buy/sell signals; it is meant for structural interpretation.
Gold ORB Strategy (15-min Range, 5-min Entry)The Gold ORB (Opening Range Breakout) Strategy is designed for day traders looking to capitalize on the price action in the early part of the trading day, specifically using a 15-minute range for identifying the opening range and a 5-minute timeframe for breakout entries. The strategy trades the Gold market (XAU/USD) during the New York session.
Opening Range: The strategy defines the Opening Range (ORB) between 9:30 AM EST and 9:45 AM EST using the highest and lowest points during this 15-minute window.
Breakout Entries: The strategy enters trades when the price breaks above the ORB high for a long position or below the ORB low for a short position. It waits for a 5-minute candle close outside the range before entering a trade.
Stop Loss and Take Profit: The stop loss is placed at 50% of the ORB range, and the take profit is set at twice the ORB range (1:2 risk-reward ratio).
Time Window: The strategy only executes trades before 12:00 PM EST, avoiding late-day market fluctuations and consolidations.
Market Open & Pre-Open Linesversion 1.0 2025-04-23
Stated vertical line for market open and pre-market open. Market option include US, EU, UK, JP and AU. This line do auto-defined during daylight saving time. This help for those trade during market open and benefit for those doing backtest on it.
Zen MIG Reversal V1**Zen MIG Reversal V1**
Zen MIG Reversal is a pattern-based indicator that highlights rare reversal setups.
It’s designed to support traders in visually identifying potential turning points, especially following strong momentum or gap-style moves.
**How it works:**
- **Bullish Reversal:**
Detects 3 consecutive bullish candles. The third bar must have a low above the high of the first bar and below the 20 EMA. When this occurs, a light blue box is drawn across the 3-bar range, from high to the current bar’s low. A blue arrow appears below the prior bar.
- **Bearish Reversal:**
Detects 3 consecutive bearish candles. The third bar must have a high below the low of the first bar and above the 20 EMA. A light red box is drawn from low to the current bar’s high. A red arrow appears above the prior bar.
- Optional settings allow you to:
- Show or hide the EMA line
- Toggle the arrows
- Adjust smoothing settings for context
**Purpose:**
It’s best used for discretionary analysis, journaling, or studying price behavior in momentum-driven environments.
**Disclaimer:**
This script is for educational and informational purposes only. It does not provide financial advice or trade recommendations. Always backtest and use proper risk management before applying any indicator to live trading.
Horizontal Price TableOverview:
This script displays a dynamic price table on your chart, showing real-time prices and daily percentage changes for up to 7 user-defined tickers. You can customize both which tickers are shown and how many are visible, all through the settings panel.
How it works (Step-by-Step):
User-Defined Tickers:
The script provides input fields for up to 7 tickers using input.symbol(). You can track stocks, indexes, ETFs, crypto, or futures — anything supported by TradingView.
Choose How Many to Display:
An additional dropdown lets you choose how many of the 7 tickers to actually display (between 1 and 7). This gives you control over screen space and focus.
Market Data Fetching:
For each displayed ticker, the script fetches:
The current day’s closing price (close)
The previous day’s closing price (close )
This data is pulled using request.security() on the daily timeframe (1D).
% Change Calculation:
The script calculates the daily percentage change using:
(Current Price−Previous Close)/Previous Close×100(Current Price−Previous Close)/Previous Close×100
Cleaned Ticker Names:
Ticker symbols often include an exchange prefix like NASDAQ:AAPL. The script automatically removes anything before the colon (:), so only the clean symbol (e.g., AAPL) is shown in the table.
Table Display:
A visual table appears at the top-center of your chart, showing:
Row 1: Ticker symbol (cleaned)
Row 2: Current price (rounded to 2 decimals)
Row 3: Daily % change (green for gains, red for losses)
Customization:
You can choose the background color of the table.
Ticker names appear in white text with a gray background.
% change is color-coded: green for positive, red for negative.
Why Use This Script?
Track multiple tickers at once without leaving your chart.
Clean, customizable layout.
Useful for monitoring watchlists, portfolios, or related markets.
Tips:
Combine this with your favorite indicators for a personalized dashboard.
Works great on any chart or timeframe.
Ensure the tickers entered are valid on TradingView (e.g., SPY, BTCUSD, NQ1!, etc.).
Nasan Market Phase ClassifierThe Nasan Market Phase Classifier indicator designed to classify market phases using volume, volatility (or momentum), and statistical analysis. Here's a summary of how it works and what it does:
🔍 Core Concept
This indicator classifies the market into four phases based on volume and ATR (or optionally momentum):
High Volume / High ATR or Momentum (HV/HATR): Strong Trend
Low Volume / High ATR or Momentum (LV/HATR): False Breakout / Exhaustion
High Volume / Low ATR or Momentum (HV/LATR): Consolidation
Low Volume / Low ATR or Momentum (LV/LATR): Stagnation
⚙️ Key Settings
Short-Term Length: Used for the active market phase.
Long-Term Length: Used as the expected/benchmark distribution.
Use Momentum: Replaces volatility (ATR) with momentum (custom ROC-based formula).
Use Fixed Alpha: Toggles adaptive vs. fixed weighting in scoring (this is based on variation of the volatility - standard deviation of true range).
📊 How It Works
Volatility or Momentum Scoring:
Uses ATR-based or Momentum-based score depending on the setting.
Applies weighing (alpha) which is based on variability of the volatility itself.
Market Phase Count:
Measures how often each of the 4 volume/volatility combinations occur in:
Short-term window (observed phase)
Long-term window (expected distribution)
Category Proportions:
Calculates percentage share of each category (e.g., % time in HV/HATR).
Plots these on chart to visually see market phase dominance (can be used for screening of pine screener).
Statistical Testing:
IQV (Index of Qualitative Variation): Measures phase diversity (0 = focused, 1 = mixed).
Chi-Squared Test: Compares current vs. historical phase distribution.
Z-Test: Tests if current phase dominance is statistically significant.
📋 Outputs
On-Chart Plots and Tabels:
Strong Trend, False Breakout/Exhaustion, Consolidation, Stagnation
Strength Quality Plot: Trend strength normalized by IQV.
Dynamic Table (Top Right):
Shows each phase’s proportion (the current phase cell is highlighted in yellow), IQV, Chi² value, and current dominant phase. The current candle classification (text) is in purple.
Highlights the dominant phase classification and color-codes significance (the cell highlighted in green highly confident about the classification, orange intermediate confidence and red low confidence). This color coding is not just based on statistical significance it is based on IQV which takes into account how spread the proportions are.
🧠 Interpretation
A dominant HV/HATR phase with low IQV and high Z-Score indicates a strong and statistically significant trend.
High IQV suggests uncertainty or mixed market behavior.
Chi² spike indicates a shift from historical behavior can be used to see is the market behavior changing by changing the long term length say to 252 and short term length to 21 this will tell if the short term behavior is different from the past 252 day behavior.
Open - CSC Bars - 33 CSC Bars – Early Session Price Action Filter
This script detects when the first three bars of the RTH (Regular Trading Hours) session all move in the same direction — either all bullish or all bearish.
It’s a tool for price action traders who want to develop structured opening strategies by observing clean directional agreement at the session start. The indicator highlights the third bar when the sequence confirms directional bias.
🔍 How It Works:
Monitors the first three bars after the RTH session begins.
If all three bars are bullish, it highlights the third bar (same for bearish sequences).
No projections, signals, or entries—purely a visual tool to observe and study opening behavior.
🎯 Use Case:
This script is designed to help traders build and test opening-based frameworks by identifying potential trend bias early in the day.
Note: This is an open-source utility script with a simple function. It does not generate signals or predictions and is intended to assist with observation and discretionary strategy building.
Prop Firm Business SimulatorThe prop firm business simulator is exactly what it sounds like. It's a plug and play tool to test out any tradingview strategy and simulate hypothetical performance on CFD Prop Firms.
Now what is a modern day CFD Prop Firm?
These companies sell simulated trading challenges for a challenge fee. If you complete the challenge you get access to simulated capital and you get a portion of the profits you make on those accounts payed out.
I've included some popular firms in the code as presets so it's easy to simulate them. Take into account that this info will likely be out of date soon as these prices and challenge conditions change.
Also, this tool will never be able to 100% simulate prop firm conditions and all their rules. All I aim to do with this tool is provide estimations.
Now why is this tool helpful?
Most traders on here want to turn their passion into their full-time career, prop firms have lately been the buzz in the trading community and market themselves as a faster way to reach that goal.
While this all sounds great on paper, it is sometimes hard to estimate how much money you will have to burn on challenge fees and set realistic monthly payout expectations for yourself and your trading. This is where this tool comes in.
I've specifically developed this for traders that want to treat prop firms as a business. And as a business you want to know your monthly costs and income depending on the trading strategy and prop firm challenge you are using.
How to use this tool
It's quite simple you remove the top part of the script and replace it with your own strategy. Make sure it's written in same version of pinescript before you do that.
//--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$--//--------------------------------------------------------------------------------------------------------------------------$$$$$$
//--$$$$$--Strategy-- --$$$$$$--// ******************************************************************************************************************************
//--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$--//--------------------------------------------------------------------------------------------------------------------------$$$$$$
length = input.int(20, minval=1, group="Keltner Channel Breakout")
mult = input(2.0, "Multiplier", group="Keltner Channel Breakout")
src = input(close, title="Source", group="Keltner Channel Breakout")
exp = input(true, "Use Exponential MA", display = display.data_window, group="Keltner Channel Breakout")
BandsStyle = input.string("Average True Range", options = , title="Bands Style", display = display.data_window, group="Keltner Channel Breakout")
atrlength = input(10, "ATR Length", display = display.data_window, group="Keltner Channel Breakout")
esma(source, length)=>
s = ta.sma(source, length)
e = ta.ema(source, length)
exp ? e : s
ma = esma(src, length)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
//--Graphical Display--// *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-$$$$$$
u = plot(upper, color=#2962FF, title="Upper", force_overlay=true)
plot(ma, color=#2962FF, title="Basis", force_overlay=true)
l = plot(lower, color=#2962FF, title="Lower", force_overlay=true)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background")
//--Risk Management--// *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-$$$$$$
riskPerTradePerc = input.float(1, title="Risk per trade (%)", group="Keltner Channel Breakout")
le = high>upper ? false : true
se = lowlower
strategy.entry('PivRevLE', strategy.long, comment = 'PivRevLE', stop = upper, qty=riskToLots)
if se and upper>lower
strategy.entry('PivRevSE', strategy.short, comment = 'PivRevSE', stop = lower, qty=riskToLots)
The tool will then use the strategy equity of your own strategy and use this to simulat prop firms. Since these CFD prop firms work with different phases and payouts the indicator will simulate the gains until target or max drawdown / daily drawdown limit gets reached. If it reaches target it will go to the next phase and keep on doing that until it fails a challenge.
If in one of the phases there is a reward for completing, like a payout, refund, extra it will add this to the gains.
If you fail the challenge by reaching max drawdown or daily drawdown limit it will substract the challenge fee from the gains.
These gains are then visualised in the calendar so you can get an idea of yearly / monthly gains of the backtest. Remember, it is just a backtest so no guarantees of future income.
The bottom pane (non-overlay) is visualising the performance of the backtest during the phases. This way u can check if it is realistic. For instance if it only takes 1 bar on chart to reach target you are probably risking more than the firm wants you to risk. Also, it becomes much less clear if daily drawdown got hit in those high risk strategies, the results will be less accurate.
The daily drawdown limit get's reset every time there is a new dayofweek on chart.
If you set your prop firm preset setting to "'custom" the settings below that are applied as your prop firm settings. Otherwise it will use one of the template by default it's FTMO 100K.
The strategy I'm using as an example in this script is a simple Keltner Channel breakout strategy. I'm using a 0.05% commission per trade as that is what I found most common on crypto exchanges and it's close to the commissions+spread you get on a cfd prop firm. I'm targeting a 1% risk per trade in the backtest to try and stay within prop firm boundaries of max 1% risk per trade.
Lastly, the original yearly and monthly performance table was developed by Quantnomad and I've build ontop of that code. Here's a link to the original publication:
That's everything for now, hope this indicator helps people visualise the potential of prop firms better or to understand that they are not a good fit for their current financial situation.
Bitcoin NUPL IndicatorThe Bitcoin NUPL (Net Unrealized Profit/Loss) Indicator is a powerful metric that shows the difference between Bitcoin's market cap and realized cap as a percentage of market cap. This indicator helps identify different market cycle phases, from capitulation to euphoria.
// How It Works
NUPL measures the aggregate profit or loss held by Bitcoin investors, calculated as:
```
NUPL = ((Market Cap - Realized Cap) / Market Cap) * 100
```
// Market Cycle Phases
The indicator automatically color-codes different market phases:
• **Deep Red (< 0%)**: Capitulation Phase - Most coins held at a loss, historically excellent buying opportunities
• **Orange (0-25%)**: Hope & Fear Phase - Early accumulation, price uncertainty and consolidation
• **Yellow (25-50%)**: Optimism & Anxiety Phase - Emerging bull market, increasing confidence
• **Light Green (50-75%)**: Belief & Denial Phase - Strong bull market, high conviction
• **Bright Green (> 75%)**: Euphoria & Greed Phase - Potential market top, historically good profit-taking zone
// Features
• Real-time NUPL calculation with customizable smoothing
• RSI indicator for additional momentum confirmation
• Color-coded background reflecting current market phase
• Reference lines marking key transition zones
• Detailed metrics table showing NUPL value, market sentiment, market cap, realized cap, and RSI
// Strategy Applications
• **Long-term investors**: Use extreme negative NUPL values (deep red) to identify potential bottoms for accumulation
• **Swing traders**: Look for transitions between phases for potential trend changes
• **Risk management**: Consider taking profits when entering the "Euphoria & Greed" phase (bright green)
• **Mean reversion**: Watch for overbought/oversold conditions when NUPL reaches historical extremes
// Settings
• **RSI Length**: Adjusts the period for RSI calculation
• **NUPL Smoothing Length**: Applies moving average smoothing to reduce noise
// Notes
• Premium TradingView subscription required for Glassnode and Coin Metrics data
• Best viewed on daily timeframes for macro analysis
• Historical NUPL extremes have often marked cycle bottoms and tops
• Use in conjunction with other indicators for confirmation
Rolling Beta against SPY📈 Pine Script Showcase: Rolling Beta Against SPY
Understanding how your favorite stock or ETF moves in relation to a benchmark like the S&P 500 can offer powerful insights into risk and exposure. This script calculates and visualizes the rolling beta of any asset versus the SPY ETF (which tracks the S&P 500).
🧠 What Is Beta?
Beta measures the sensitivity of an asset's returns to movements in the broader market. A beta of:
- 1.0 means the asset moves in lockstep with SPY,
- >1.0 indicates higher volatility than the market,
- <1.0 implies lower volatility or possible defensive behavior,
- <0 suggests inverse correlation (e.g., hedging instruments).
🧮 How It Works
This script computes rolling beta over a user-defined window (default = 60 periods) using classic linear regression math:
- Calculates daily returns for both the asset and SPY.
- Computes covariance between the two return streams.
- Divides by the variance of SPY returns to get beta.
⚙️ Customization
You can adjust the window size to control the smoothing:
- Shorter windows capture recent volatility changes,
- Longer windows give more stable, long-term estimates.
📊 Visual Output
The script plots the beta series dynamically, allowing you to observe how your asset’s correlation to SPY evolves over time. This is especially useful in regime-change environments or during major macroeconomic shifts.
💡 Use Cases
- Portfolio construction: Understand how your assets co-move with the market.
- Risk management: Detect when beta spikes—potentially signaling higher market sensitivity.
- Market timing: Use beta shifts to infer changing investor sentiment or market structure.
📌 Pro Tip: Combine this rolling beta with volatility, Sharpe ratio, or correlation tracking for a more robust factor-based analysis.
Ready to add a layer of quantitative insight to your chart? Add the script to your watchlist and start analyzing your favorite tickers against SPY today!
HTF FibonacciThis indicator displays Fibonacci lines for the selected previous HTF candle.
You can set its Fibs levels and colors.
HTF options: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours and 1 day
ADX with Shaded ZoneThe ADX with Shaded Zone indicator is a momentum-based tool that visualizes trend strength using the Average Directional Index (ADX) along with the +DI and -DI lines. This indicator enhances the traditional ADX setup by adding a shaded zone between ADX levels 20 and 25, helping traders easily identify the transition area between non-trending and trending market conditions.
It plots:
+DI (Green): Positive Directional Indicator
−DI (Red): Negative Directional Indicator
ADX (Blue): Measures the strength of the trend
Shaded Zone: Highlights the indecisive range where ADX is below 25 (gray background between levels 20 and 25)
⚙️ How to Use:
✅ Trend Identification:
ADX < 20: Weak or no trend. Avoid trend-following strategies.
ADX 20–25 (Shaded Zone): Transition zone. Potential trend forming — stay cautious.
ADX > 25: Stronger trend. Favor trend-following strategies.
✅ Direction Confirmation:
If +DI > -DI and ADX > 25 → Uptrend confirmation.
If -DI > +DI and ADX > 25 → Downtrend confirmation.
Crossovers between +DI and -DI can be used as early signals.
✅ Shaded Zone Use:
The gray shaded area helps visually filter out low-trend strength conditions.
Useful for trend traders to wait before entering until ADX breaks above 25.