ULTIMATE Price Action Oscillator with Volume-Based S/R - MehtaULTIMATE Price Action Oscillator with Volume-Based S/R (UPO-PRO-VOL)
Key Features:
Smart Oscillator: Combines price action momentum with customizable smoothing.
Volume-Confirmed S/R: Identifies high-confidence Support/Resistance levels when price crosses above-average volume.
Real-Time Tracking: Displays S/R levels with timestamps (IST) in a clean table.
Visual Alerts: Dashed lines + labels mark key levels for easy spotting.
⚠️ STRONG DISCLAIMER
❌ This indicator is for educational purposes only.
❌ Not financial advice. Trading involves risk—always conduct your own analysis.
❌ No guarantee of accuracy. Past performance ≠ future results.
❌ Adjust settings carefully. Test in a demo account first.
❌ Volume thresholds may vary by asset. Customize Volume Threshold Multiplier as needed.
📝 How to Use:
S/R Signals: Green "S" = Support (oscillator crosses up with high volume). Red "R" = Resistance (oscillator crosses down with high volume).
Table: Tracks latest S/R prices and formation time (IST).
Tweak Settings: Adjust Oscillator Length, Smoothing, and Volume Threshold for your trading style.
Tip: Combine with trend analysis for higher-probability trades!
Script Settings (Default):
Oscillator Length: 5 (Can be adjusted upto a maximum value of 200)
Smoothing: 3
S/R Lookback: 100 bars
Volume Threshold: 1.5x avg volume
Educational
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?
Swing + 3-Bar Breakout(Mastersinnifty)Overview
This script is a hybrid trading tool combining swing-based structural analysis, momentum filtering, and breakout validation — designed to detect early reversals and confirm trend continuations within a single unified system.
It integrates five major components:
- ZigZag Structural Detection — to identify critical swing highs and lows.
- Momentum Validation — using RSI and Rate of Change (ROC) to confirm the strength behind swings.
- Three-Bar Breakout Confirmation — spotting trend continuation beyond swing structures.
- Dynamic Trailing Stop System — managing trades adaptively via ATR-based trailing stops.
- Projected Target Levels — estimating future price destinations based on measured swings.
---
What Makes This Script Unique
Rather than using standard indicators in isolation, this script layers multiple conditions sequentially and contextually:
- Structural Foundation: Identifies pivots through a tight ZigZag algorithm tuned with a low-depth setting for early detection.
- Momentum Checkpoint: Validates pivots only if RSI extremes and ROC momentum surges align, reducing false breakouts during sideways movements.
- Breakout Validation: Confirms trend continuation when price breaches critical multi-bar highs/lows post-swing formation.
- Risk-Managed Progression: Initiates adaptive ATR-based trailing stops immediately after signal generation, tightening risk dynamically as trends unfold.
- Target Projection: Estimates potential move size by projecting the magnitude of the last completed swing, offering realistic price milestones.
This combination provides a dual-purpose tool for both reversals and breakouts, allowing flexible trading styles within a single indicator.
---
How the Script Works
- Swing Detection
- A swing low is identified when a price bottom forms (via ZigZag) and momentum conditions are met (RSI < 20, ROC > +0.5).
- A swing high is identified when a price top forms and momentum conditions are met (RSI > 80, ROC < -0.5).
- Breakout Confirmation
- After a swing is detected, if price crosses above/below a three-bar swing structure, a secondary breakout signal is triggered.
- Trailing Stop Activation:
- Upon a confirmed swing or breakout, an ATR-multiplied trailing stop is initialized below/above the entry point to secure profits dynamically.
- Projection Logic
- Swing height is measured from the latest high-low sequence, and potential future targets are plotted for visual guidance.
---
Who Can Benefit From This Indicator
- Swing Traders — who seek early entries around reversal zones.
- Scalpers & Intraday Traders — needing fast-reacting momentum-based confirmation.
- Breakout Traders — to time entries after multi-bar compressions.
- Risk Managers — through integrated ATR trailing stops for dynamic exit management.
- Price Action Analysts — utilizing projected swing targets for strategic planning.
---
How to Use
- Entry Identification
- Look for buy signals at swing lows with strong positive momentum.
- Look for sell signals at swing highs with strong negative momentum.
- Use breakout confirmations to validate the trend continuation beyond swings.
- Risk Management
- Monitor trailing stop lines to track trade health.
- Watch projected targets to anticipate realistic move completions.
- Chart Visibility
- All plotted points, breakout markers, trailing stops, and projected levels are generated automatically for clarity.
---
Disclaimer
This script is intended for educational and analytical purposes only.
It does not constitute financial advice, and past performance does not guarantee future results.
All trading involves risk. Users are responsible for their own trading decisions.
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.
First Presented Fair Value Gap [TakingProphets]🧠 Indicator Purpose:
The "First Presented Fair Value Gap" (FPFVG) by Taking Prophets is a precision tool designed for traders utilizing Inner Circle Trader (ICT) concepts. It automatically detects and highlights the first valid Fair Value Gap (FVG) that forms between 9:30 AM and 10:00 AM New York time — one of the most critical windows in ICT-based trading frameworks.
It also plots the Opening Range Equilibrium (the average of the previous day's 4:14 PM close and today's 9:30 AM open) — a key ICT reference point for premium/discount analysis.
🌟 What Makes This Indicator Unique:
This script is highly specialized for early session trading and offers:
Automatic Detection: Finds the first Fair Value Gap after the 9:30 AM NYSE open.
Clear Visualization: Highlights the FVG zone and labels it with optional time stamps.
Equilibrium Line: Plots the Opening Range Equilibrium for instant premium/discount context.
Time-Sensitive Logic: Limits detection to the most volatile early session (9:30 AM - 10:00 AM).
Extension Options: You can extend both the FVG box and Equilibrium line out to 3:45 PM (end of major session liquidity).
⚙️ How the Indicator Works (Detailed):
Pre-Market Setup:
Captures the previous day's 4:14 PM close.
Captures today's 9:30 AM open.
Calculates the Equilibrium (midpoint between the two).
After 9:30 AM (New York Time):
Monitors each 1-minute candle for the creation of a Fair Value Gap:
Bullish FVG: Low of the current candle is above the high two candles ago.
Bearish FVG: High of the current candle is below the low two candles ago.
The first valid gap is boxed and optionally labeled.
Post-Detection Management:
The FVG box and label extend forward in time until 3:45 PM (or the current time, based on settings).
If enabled, the Equilibrium line and label also extend to help with premium/discount analysis.
🎯 How to Use It:
Step 1: Wait for market open (9:30 AM New York time).
Step 2: Watch for the first presented FVG on the 1-minute chart.
Step 3: Use the FPFVG zone to guide entries (retracements, rejections, or breaks).
Step 4: Use the Opening Range Equilibrium to determine premium vs. discount conditions:
Price above Equilibrium = Premium market.
Price below Equilibrium = Discount market.
Best Application:
In combination with ICT Killzones, especially during the London or New York Open.
When framing intraday bias and identifying optimal trade locations based on liquidity theory.
🔎 Underlying Concepts:
Fair Value Gaps: Price imbalances where liquidity is likely inefficient and future rebalancing can occur.
Opening Range Equilibrium: Key ICT price anchor used to separate premium and discount conditions post-open.
Time-Gated Setup: Limits focus to early session price action, aligning with inner circle trader timing models.
🎨 Customization Options:
FVG color, label visibility, and label size.
Opening Range Equilibrium line visibility and label styling.
Extend lines and boxes to 3:45 PM automatically for full session tracking.
✅ Recommended for:
Traders applying Inner Circle Trader (ICT) models.
Intraday scalpers or day traders trading the New York session open.
Traders who want to frame early session bias and liquidity traps effectively.
Flow State Model [TakingProphets]🧠 Indicator Purpose:
The "Flow State Model" by Taking Prophets is a precision-built trading framework based on the Inner Circle Trader (ICT) methodology. This script implements and automates the Flow State Model, a highly effective multi-timeframe trading system created and popularized by ITS Johnny.
It is designed to help traders systematically align higher timeframe liquidity draws with lower timeframe confirmation patterns, offering a clear roadmap for catching institutional moves with high confidence.
🌟 What Makes This Indicator Unique:
This is not a simple liquidity indicator or a basic FVG plotter. The Flow State Model executes a full multi-step process:
Higher Timeframe PD Array Detection: Automatically identifies and displays Fair Value Gaps (FVGs) from Daily, Weekly, and Monthly timeframes.
Liquidity Sweep Monitoring: Tracks swing highs and lows to detect Buyside or Sellside Liquidity sweeps into the HTF PD Arrays.
CISD Detection: Waits for a Change in State of Delivery (CISD) by monitoring bullish or bearish displacement after a sweep.
Full Trade Checklist: Visual checklist ensures all critical conditions are met before signaling a completed Flow State setup.
Sensitivity Control: Adapt detection strictness (High, Medium, Low) based on market volatility.
⚙️ How the Indicator Works (Detailed):
Fair Value Gap Mapping:
The indicator constantly scans higher timeframes (4H, Daily, Weekly) for valid bullish or bearish Fair Value Gaps that are large enough (based on ATR multiples) and not weekend gaps.
These FVGs are displayed on the current timeframe with full extension logic and mitigation handling (clearing when invalidated).
Liquidity Sweep Detection:
Swing highs and lows are identified using pivot logic (3-bar pivots). When price sweeps beyond a recent liquidity point into an active FVG, it flags the potential for a Flow State setup.
Change in State of Delivery (CISD) Confirmation:
After a sweep, the script monitors price action for a sequence of bullish or bearish candles followed by displacement (break in delivery).
Only after displacement closes beyond the initiating sequence does a CISD level plot, confirming the market's new delivery state.
Execution Checklist:
An optional table tracks whether critical components are present:
Higher Timeframe PD Array.
Aligned Timeframe Bias.
Liquidity Sweep into FVG.
SMT Divergence (optional manual confirmation).
CISD Confirmation.
Dynamic Management:
Active gaps are extended automatically.
Cleared gaps and mitigated CISDs are deleted to keep charts clean.
Distance-to-FVG prioritization keeps only the nearest active setups visible.
🎯 How to Use It:
Step 1: Identify the bias by locating active higher timeframe FVGs.
Step 2: Wait for a Liquidity Sweep into a PD Array (active FVG).
Step 3: Watch for a CISD event (the Flow State confirmation).
Step 4: Once all conditions are checked off, execute trades based on retracements to CISD levels or continuation after displacement.
Best Timing:
During ICT Killzones: London Open, New York AM.
After daily or weekly liquidity events.
🔎 Underlying Concepts:
Liquidity Theory: Markets seek to engineer liquidity for real institutional entries.
Fair Value Gaps: Imbalances where price is expected to react or rebalance.
Change in State of Delivery (CISD): Confirmation that the market's delivery mechanism has shifted, validating bias continuation.
Flow State Principle: Seamlessly aligning higher timeframe liquidity draws with lower timeframe confirmation to maximize trade probability.
🎨 Customization Options:
Adjust sensitivity (High / Medium / Low) for volatile or calm conditions.
Customize FVG visibility, CISD display, labels, line colors, and sizing.
Set checklist visibility and manual tracking of SMT or aligned bias.
✅ Recommended for:
Traders studying Inner Circle Trader (ICT) models.
Intraday scalpers and swing traders seeking confluence-driven setups.
Traders looking for a structured, checklist-based execution process.
Rejection Blocks [Taking Prophets]🧠 Indicator Purpose:
The "Rejection Blocks" indicator is built for traders using Inner Circle Trader (ICT) concepts. It identifies key reversal zones where price action shows strong rejection through wick-dominant behavior around major swing points — often signaling institutional activity. Traders can use these rejection blocks to anticipate future support, resistance, and mitigation zones based on ICT principles.
🌟 What Makes This Indicator Unique:
Unlike standard support/resistance indicators, this script detects true rejection points by filtering only candles where the wick is significantly larger than the body, confirming potential order flow shifts according to ICT methodology.
It not only marks these zones but also:
Dynamically extends the blocks into the future.
Deletes blocks that get invalidated (mitigation logic).
Optionally plots a 50% midline within each block to refine entry or exit precision.
⚙️ How the Indicator Works:
Swing Detection: Identifies significant highs and lows based on pivot structures.
Rejection Filtering: Confirms strong rejections with wick-to-body ratio validation.
Block Creation: Highlights bullish or bearish rejection zones with customizable visuals.
Midline Plotting: (Optional) Marks the 50% midpoint of the block for entry targeting.
Mitigation and Cleanup: Blocks are deleted automatically when their structure is invalidated, maintaining a clean and accurate chart view.
🎯 How to Use It:
Identify Reaction Zones: Use rejection blocks as potential areas for price reversals or consolidations.
Plan Trade Entries: Monitor retests of the block boundaries or 50% lines for precision entries.
Manage Risk: If price closes beyond the block, treat it as a potential invalidation or Change in State of Delivery (CISD) event.
Best Contexts:
Near higher timeframe Points of Interest (POIs) such as Order Blocks or Fair Value Gaps.
During ICT Killzones (London Open, New York AM).
🔎 Underlying Concepts:
Wick Rejections: Indicate strong liquidity rejection, aligning with ICT liquidity sweep theories.
Mitigation Behavior: Blocks often serve as revisit zones where price rebalances after an aggressive move.
Adaptive Market Behavior: Rejection Blocks adjust dynamically based on real-time price action according to ICT market structure logic.
🎨 Customization Options:
Bullish and Bearish block colors with adjustable opacity.
Border visibility, border width, and 50% midline display toggles.
Label size customization for optimal chart clarity.
✅ Recommended for:
Traders following Inner Circle Trader (ICT) concepts.
Scalpers, intraday, and swing traders seeking accurate reversal and mitigation zones.
Traders looking to improve precision around liquidity rejection events.
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
Advanced QQE Buy/Sell with Confirmation FiltersAdvanced QQE Buy/Sell with Confirmation Filters
This indicator provides high-probability Buy and Sell signals using an advanced Quantitative Qualitative Estimation (QQE) method, enhanced by optional powerful confirmation filters.
Core Strategy:
📈 QQE Signals: Based on smoothed RSI crossover of dynamic threshold bands.
🎯 Buy Signal: Triggered when RSI crosses above QQE Lower Band.
🎯 Sell Signal: Triggered when RSI crosses below QQE Upper Band.
Optional Confirmation Filters:
🔧 RSI Filter: Only accept buys when RSI > 55 or sells when RSI < 45.
🔧 MACD Histogram Filter: Confirms momentum direction.
🔧 VWAP Filter: Confirms if price is above (bullish) or below (bearish) VWAP.
Customization Options:
Adjust RSI Length, QQE Smoothing Length, and Threshold to match your trading style.
Independently toggle each confirmation filter ON/OFF from the settings.
VWAP line can also be plotted on chart for visual guidance.
Key Features:
Clean Buy (green up label) and Sell (red down label) signals plotted on chart.
Alerts available for Buy/Sell triggers.
Optimized for fast performance and low lag.
Recommended Timeframes:
15min, 1H, 4H, Daily.
Disclaimer:
This indicator is for educational purposes only. Trading involves risk. Always perform your own due diligence.
Developed and optimized by Keyvan 🚀
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.
BULB 20Fractal Wave Marker Indicator
The Fractal Wave Marker is a technical analysis tool designed to visually highlight significant turning points in price action, offering clear signals of potential market reversals. By detecting fractal-like patterns, the indicator identifies high and low points within a specified period, helping traders pinpoint key market swings.
Key Features:
Fixed Period: The period is set to .., ensuring consistency in detecting turning points based on historical price data.
Swing Detection: The indicator detects both base (lower-degree) and fractal (higher-degree) swings, helping to visualize both short-term and long-term trend changes.
Color-coded Markers: High points are marked with a custom color to indicate bullish conditions, while low points are marked in another color for bearish conditions.
Wave Processing: The indicator processes swing highs and lows, dynamically updating to reflect the most relevant turning points on the chart.
Overlay on Chart: Markers are overlaid directly on the chart for quick, intuitive insights into price action, helping traders make better entry and exit decisions.
How It Works:
The indicator calculates the highest highs and lowest lows over a -bar period (fixed period).
When a new swing point is detected, the indicator marks it with a circle, color-coded based on whether it’s a high or low point.
The base swing and fractal wave directions are updated with each new turning point, allowing traders to follow price action and identify market trends.
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.
Sessions OHLC - NY TimeThis Pine Script indicator, "Session OHLC Rays & Boxes - NY Time (Current Day)," visualizes trading sessions on a chart by marking the Open, High, Low, and Close (OHLC) levels for four predefined sessions—Asia, London, NY AM, and NY PM—based on New York time (EDT, UTC-4).
It draws the following for the current day:
Colored Boxes: Each session is enclosed in a semi-transparent box (e.g., green for Asia, blue for London) spanning the session’s duration, with the top and bottom at the session’s High and Low.
Horizontal Rays: Dashed lines extend rightward from the OHLC levels of each session, color-coded to match the session, if enabled via user inputs (e.g., "Show Asia Open").
OHLC Labels: Yellow labels display the OHLC prices at the start of each session box, updated dynamically: Open at session start, High and Low during the session, and Close at session end or during the session if active.
Additionally, users can display up to four previous days’ sessions (boxes and labels) by adjusting the "Show Previous Days" input. The indicator is customizable, allowing users to toggle OHLC labels and rays for each session and adjust session times and colors.