Fair Value MSThis indicator introduces rigid rules to familiar concepts to better capture and visualize Market Structure and Areas of Support and Resistance in a way that is both rule-based and reactive to market movements.
Typical "Market Structure" or "Zig-Zag" methods determine swing points based on fixed thresholds (length or percentage). While this does provide rigid structure, the results may be lagging or confusing due to the timing, since it is fixed to static parameters.
I believe the concept of Fair Value Gaps can solve this problem.
As you will notice, there are no length settings in this indicator.
> FVG Market Structure
Fair Value Gaps are a well known concept used to indicate directional intent, forming when price moves aggressively in one direction, leaving behind an imbalance between buyers and sellers. While the term FVG was popularized by ICT, the underlying concept predates them, known historically as imbalances, inefficiencies, or liquidity voids in institutional trading.
Note: For simplicity, in this indicator they'll be called FVGs.
By reading into this, we are able to clearly and rigidly define market structure simply by "looking" at the chart, using objective price events rather than subjective interpretation, or lengths.
By using FVGs to determine structure direction, the length, and speed of identification lies entirely on the market. If an FVG Down occurs immediately after a New Higher High forms, it is reasonable to assume there was a seller at that point, so the script would indicate a New Swing High.
The script is NOT stuck, waiting for a % retrace, or # bars to pass to identify it as such.
Sometimes the market is in a steady trend in a single direction and no FVGs form; therefore, no structure forms. -> Why would we try to impose structure on a clear trend?
Ultimately, the FVG Structure Method uses real reactions from the market to determine Market structure, and is not fixed to specific parameters.
As with other market structure indicators, "Market Structure Breaks" are still identifiable when price moves outside the most recent swing points.
These are helpful to indicate larger direction. In the following section you will see how these help us determine when we should start the search for an "Area of Interest (AOI)".
> Areas of Interest (AOIs)
"Area of Interest (AOI)" is a generalized term, and could refer to many types of zones you might recognize under different names. While the AOIs in this indicator are specialized in their own way, I have chosen to simply use the term "Area of Interest" because it’s more important to understand how they behave and why they exist than to focus on what they’re called.
The goal of an AOI is to point out reasonable areas where buyers or sellers may be staging, as is typical with support and resistance.
In order to reasonably identify these areas, we look for cause and effect relationships. When considering these relationships, it's easier to understand the placement of the points to define each zone.
(Buyer Examples)
Cause: Strong Buyers step in at Swing Low
Effect: Fair Value Gap Forms
Cause: Sustained Buying Pressure
Effect: Market Structure Breaks
In this example, The zone is drawn from the Swing Low, to the Bottom of the FVG closest to the swing point.
In theory, the participation at the swing point was strong and aggressive enough to create the FVG imbalance. Which then found acceptance and continued into a Market Structure Break. So with these AOIs, we are trying to locate the aggressive Buyers or Sellers which were positioned BEFORE the FVG.
These Zones are intended to act as areas to look for reactions from market participants, to judge where price may be going. When revisiting these zones, we look for a reaction or a break, to further provide us information to if the buyers or sellers are still there.
As seen in the screenshot above, The information we gain is not from the creation of these zones, but from the behavior we witness when these zones are revisited.
Technical Note: In this indicator, Market Structure Breaks are only considered when price closes outside the recent swing points. Wicks are not considered as confirmation, therefore are not used to detect structural breaks.
Inside each AOI you can optionally display a readout of the volume which accumulated during the time starting at the swing point and going until the closing bar of the FVG.
Note: We are counting volume until the closing bar of the FVG since the FVG is a 3 bar formation, and aggressive volume is required throughout to create the imbalance.
There are multiple FVGs that typically occur in a single direction, but we do not look to every single one to be indicative of structure, only the first FVG in the opposite direction of the previous direction (which is determined by previous FVGs)
You will probably notice, the AOIs do not form from the closest swing or FVG to the break, this is because we are targeting larger directional changes to draw these AOIs from.
Since they do not always happen perfectly every time, the AOI formation waits for an FVG to occur AND a Market structure break to happen. One without the other will result in no Zone displaying.
> Reflection Lines
While they may seem slightly redundant, Reflection Lines serve as reminders of previous support and resistance pivots. They are drawn at the same Pivots where and AOI is formed, and extend beyond the mitigation of the AOI.
These lines are often points of price to look for "Support Flips", a re-test pattern where price trades through previous support (or resistance) then returns to it and rejects, continuing into a larger move or trend.
Their namesake is based on the behavior of price, "reflecting" at these levels.
The Reflection lines are simple and change color based on price's location.
If price is above, we would typically look to a reflection line in with support in mind.
As a basic filter, these lines use an average price to determine their color, this way they will not change their color as frequently in choppy situations.
> Session Start/End Lines
For analysis purposes and trade review, it is helpful to analyze with context.
For that reason, I have implemented start and end session lines into the indicator, these are helpful when reviewing historical charts to not provide additional context.
By default, they are set to the NYSE Session, but can be changed to fit any needs.
These lines are not advanced, and simply draw a line as the chart passes the start and end of the sessions. It's very likely that you may need to adjust the session for your specific needs.
Note: The Timezone can be adjusted within the code if needed. By Default, the indicator uses "America/New_York" Timezone.
> Conclusion
If you’ve ever felt like your structure tools were confusing or lagging, drawing zones too late, or zones that simply don't make sense, this should feel like a breath of fresh air.
By removing arbitrary length settings and instead using FVGs to define structure and as a basis for AOIs, you're getting a more accurate look at what price is doing and where it's reacting from.
This indicator is rule-based, reactive, and aims to keep things logical without fluff or false confidence.
Enjoy!
Sentiment
CRS by TQCRS by TradeQUO
Comparative Relative Strength Indicator
What it does
Computes the percentage difference in performance between your current chart symbol (e.g. GC1!) and a chosen benchmark (e.g. ES1!, DXY, NQ1!).
Smooths that “CRS” line with a configurable moving average (SMA, EMA, WMA) — default length is 63 bars.
Key Plots
CRS (%) (aqua) — how your symbol has held up relative to the benchmark since the chart loaded.
CRS MA (%) (fuchsia) — smoothed trend of that relative strength.
How to Interpret
Trend-Following
Long when CRS crosses above its MA and is above 0 → your symbol is outperforming.
Short (or reverse) when CRS crosses below its MA and is below 0 → underperformance.
Regime Filter
CRS > 0 → Risk-On environment for your symbol vs. benchmark.
CRS < 0 → Risk-Off relative to the benchmark.
Divergence Signals
Bearish Divergence: Price makes a higher high, but CRS makes a lower high → potential sell-off incoming.
Bullish Divergence: Price makes a lower low, but CRS makes a higher low → look for rebound opportunity.
Pairs Trading
Outperformance: Long your symbol + Short benchmark when CRS > MA.
Underperformance: Short your symbol + Long benchmark when CRS < MA.
Why it matters
Reveals relative market leadership early, not just absolute price moves.
Helps you allocate risk dynamically, spot rotations and catch reversals before they show in price alone.
Overheat Oscillator with DivergenceIndicator Description
The Overheat Oscillator with Divergence is an advanced technical indicator designed for the TradingView platform, assisting traders in identifying potential market reversal points by analyzing price momentum and volume, as well as detecting divergences. The indicator combines trend strength assessment with signal smoothing to provide clear indications of market overheat or oversold conditions. An optional divergence detection feature allows for the identification of discrepancies between price movement and the oscillator's value, which may signal upcoming trend changes.
The indicator is displayed in a separate panel below the price chart and offers visual cues through a color gradient, horizontal reference lines, and a dynamic market sentiment table. Users can customize numerous parameters, such as calculation periods, sentiment thresholds, line colors, and visualization styles, making the indicator a versatile tool for various trading strategies.
How the Indicator Works
The indicator is based on the following key components:
Oscillator Calculations
The indicator analyzes price candles, assigning a score based on their nature. A bullish candle (when the closing price is higher than the opening price) receives a score of +1.0, while a bearish candle (when the closing price is lower than the opening price) receives a score of -1.0. This scoring reflects the strength of price movement over a given period.
The score is modified by a volume multiplier (default: 2.0) if the candle's volume exceeds the volume's simple moving average (SMA, default: calculated over 20 candles). This ensures that candles with higher volume have a greater impact on the oscillator's value, better capturing significant market movements driven by increased trading activity. For example, a bullish candle with high volume may receive a score of +2.0 instead of +1.0, amplifying the bullish signal.
The scores are summed over a specified number of candles (default: 20), normalized to a 0–100 range, and then smoothed using a simple moving average (SMA, default: 5 periods) to reduce noise and improve signal clarity.
Color Gradient
The oscillator's values are visualized using a color gradient that changes based on the oscillator's level:
Green: Market cooldown (values below the Gradient Min threshold).
Yellow: Neutral sentiment (values between Gradient Min and Gradient Yellow).
Orange: Elevated activity (values between Gradient Yellow and Gradient Orange).
Red: Market overheat (values above Gradient Orange).
The color gradient is applied as the background in the oscillator panel, facilitating quick assessment of market sentiment.
Reference Levels
The indicator displays customizable horizontal lines for key thresholds (e.g., Overheat Threshold, Oversold Threshold, Gradient Min, Yellow, Orange, Max). These lines are visible only at the height of the last few oscillator candles, preventing chart clutter and helping users focus on current values.
Users can also define three custom horizontal lines with selectable styles (solid, dotted, dashed) and colors. These lines serve as auxiliary tools, e.g., for marking personal support/resistance levels, but do not affect the oscillator's signals or background colors.
Market Sentiment
The indicator displays sentiment labels in a table located in the top-right corner of the panel, dynamically updating based on the oscillator's value:
Cooled: Values below Gradient Yellow (default: 35).
Neutral: Values between Gradient Yellow and Gradient Orange (default: 60).
Excited: Values between Gradient Orange and Overheat Threshold (default: 70).
Overheated: Values above Overheat Threshold (default: 70).
The Overheat Threshold and Oversold Threshold are critical for displaying the "Overheated" and "Cooled" labels in the sentiment table, enabling users to quickly identify extreme market conditions. The labels update when key thresholds are crossed, and their colors match the oscillator's gradient.
Divergence Detection
The indicator offers optional detection of regular bullish and bearish divergences:
Bullish Divergence: Occurs when the price forms a lower low, but the oscillator forms a higher low, suggesting a weakening downtrend.
Bearish Divergence: Occurs when the price forms a higher high, but the oscillator forms a lower high, suggesting a weakening uptrend.
Divergences are marked on the chart with labels ("Bull" for bullish, "Bear" for bearish) and lines indicating pivot points. They are calculated with a delay equal to the Lookback Right setting (default: 5 candles), meaning signals appear after pivot confirmation in the specified lookback period. The indicator also generates alerts for users when a divergence is detected.
Indicator Settings
Main Settings (SETTINGS)
Period Length: Specifies the number of candles used for oscillator calculations (default: 20).
Volume SMA Period: The period for the volume's simple moving average (default: 20).
Volume Multiplier: Multiplier applied to candle scores when volume exceeds the average (default: 2.0).
SMA Length: The period for smoothing the oscillator with a simple moving average (default: 5).
Thresholds (THRESHOLDS)
Overheat Threshold: Level indicating market overheat (default: 70). This value determines when the sentiment table displays the "Overheated" label, signaling a potential peak in an uptrend.
Oversold Threshold: Level indicating market cooldown (default: 30). This value determines when the sentiment table displays the "Cooled" label, signaling a potential bottom in a downtrend.
Gradient Min (Green): Lower threshold for the green gradient (default: 20).
Gradient Yellow Threshold: Threshold for the yellow gradient (default: 35).
Gradient Orange Threshold: Threshold for the orange gradient (default: 60).
Gradient Max (Red): Upper threshold for the red gradient (default: 70).
Visualization (VISUALIZATION)
Signal Line Color: Color of the oscillator line (default: dark red, RGB(5, 0, 0)).
Show Reference Lines: Enables/disables the display of threshold lines (default: enabled).
Divergence Settings (DIVERGENCE SETTINGS)
Calculate Divergence: Enables/disables divergence detection (default: disabled).
Lookback Right: Number of candles back for pivot analysis (default: 5).
Lookback Left: Number of candles to the left for pivot analysis (default: 5).
Line Style (STYLE)
Custom Line 1, 2, 3 Value: Levels for custom horizontal lines (default: 70, 50, 30).
Custom Line 1, 2, 3 Color: Colors for custom lines (default: black, RGB(0, 0, 0)).
Custom Line 1, 2, 3 Style: Line styles (solid, dotted, dashed; default: dashed, dotted, dashed).
How to Use the Indicator
Adding to the Chart
Add the indicator to your TradingView chart by searching for "Overheat Oscillator with Divergence."
Configure the settings according to your trading strategy.
Signal Interpretation
Overheated: Values above the Overheat Threshold (default: 70) in the sentiment table may indicate a potential uptrend peak.
Cooled: Values below the Oversold Threshold (default: 30) in the sentiment table may suggest a potential downtrend bottom.
Divergences:
Bullish: Look for "Bull" labels on the chart, indicating potential upward reversals (calculated with a Lookback Right delay).
Bearish: Look for "Bear" labels, indicating potential downward reversals (calculated with a Lookback Right delay).
Customization
Experiment with settings such as period length, volume multiplier, or gradient thresholds to tailor the indicator to your trading style (e.g., scalping, medium-term trading).
Usage Examples
Scalping: Set a shorter period (e.g., Period Length = 10, SMA Length = 3) and monitor rapid sentiment changes and divergences on lower timeframes (e.g., 5-minute charts).
Medium-Term Trading: Use default settings or increase Period Length (e.g., 30) and SMA Length (e.g., 7) for more stable signals on hourly or daily charts.
Reversal Detection: Enable divergence detection and observe "Bull" or "Bear" labels in conjunction with overheat/cooled levels in the sentiment table.
Notes
The indicator performs best when used in conjunction with other technical analysis tools, such as support/resistance lines, moving averages, or Fibonacci levels.
Divergences may serve as early signals but do not always guarantee immediate trend reversals—confirmation with other indicators is recommended.
Test different settings on historical data to find the optimal configuration for your chosen market and timeframe.
Advanced Correlation Monitor📊 Advanced Correlation Monitor - Pine Script v6
🎯 What does this indicator do?
Monitors real-time correlations between 13 different asset pairs and alerts you when historically strong correlations break, indicating potential trading opportunities or changes in market dynamics.
🚀 Key Features
✨ Multi-Market Monitoring
7 Forex Pairs (GBPUSD/DXY, EURUSD/GBPUSD, etc.)
6 Index/Stock Pairs (SPY/S&P500, DAX/NASDAQ, TSLA/NVDA, etc.)
Fully configurable - change any pair from inputs
📈 Dual Correlation Analysis
Long Period (90 bars): Identifies historically strong correlations
Short Period (6 bars): Detects recent breakdowns
Pearson Correlation using Pine Script v6 native functions
🎨 Intuitive Visualization
Real-time table with 6 information columns
Color coding: Green (correlated), Red (broken), Gray (normal)
Visual states: 🟢 OK, 🔴 BROKEN, ⚫ NORMAL
🚨 Smart Alert System
Only alerts previously correlated pairs (>80% historical)
Detects breakdowns when short correlation <80%
Consolidated alert with all affected pairs
🛠️ Flexible Configuration
Adjustable Parameters:
📅 Periods: Long (30-500), Short (2-50)
🎯 Threshold: 50%-99% (default 80%)
🎨 Table: Configurable position and size
📊 Symbols: All pairs are configurable
Default Pairs:
FOREX: INDICES/STOCKS:
- GBPUSD vs DXY • SPY vs S&P500
- EURUSD vs GBPUSD • DAX vs S&P500
- EURUSD vs DXY • DAX vs NASDAQ
- USDCHF vs DXY • TSLA vs NVDA
- GBPUSD vs USDCHF • MSFT vs NVDA
- EURUSD vs USDCHF • AAPL vs NVDA
- EURUSD vs EURCAD
💡 Practical Use Cases
🔄 Pairs Trading
Detects when strong correlations break for:
Statistical arbitrage
Mean reversion trading
Divergence opportunities
🛡️ Risk Management
Identifies when "safe" assets start moving independently:
Portfolio diversification
Smart hedging
Regime change detection
📊 Market Analysis
Understand underlying market structure:
Forex/DXY correlations
Tech sector rotation
Regional market disconnection
🎓 Results Interpretation
Reading Example:
EURUSD vs DXY: -98.57% → -98.27% | 🟢 OK
└─ Perfect negative correlation maintained (EUR rises when DXY falls)
TSLA vs NVDA: 78.12% → 0% | ⚫ NORMAL
└─ Lost tech correlation (divergence opportunity)
Trading Signals:
🟢 → 🔴: Broken correlation = Possible opportunity
Large difference: Indicates correlation tension
Multiple breaks: Market regime change
BANKNIFTY Contribution Table [GSK-VIZAG-AP-INDIA]1. Overview
This indicator provides a real-time visual contribution table of the 12 constituent stocks in the BANKNIFTY index. It displays key metrics for each stock that help traders quickly understand how each component is impacting the index at any given moment.
2. Purpose / Trading Use Case
The tool is designed for intraday and short-term traders who rely on index movement and its internal strength or weakness. By seeing which stocks are contributing positively or negatively, traders can:
Confirm trend strength or divergence within the index.
Identify whether a BANKNIFTY move is broad-based or driven by a few heavyweights.
Detect reversals when individual components decouple from index direction.
3. Key Features and Logic
Live LTP: Current price of each BANKNIFTY stock.
Price Change: Difference between current LTP and previous day’s close.
% Change: Percentage move from previous close.
Weight %: Static weight of each stock within the BANKNIFTY index (user-defined).
This estimates how much each stock contributes to the BANKNIFTY’s point change.
Sorted View: The stocks are sorted by their weight (descending), so high-impact movers are always at the top.
4. User Inputs / Settings
Table Position (tableLocationOpt):
Choose where the table appears on the chart:
top_left, top_right, bottom_left, or bottom_right.
This helps position the table away from your price action or indicators.
5. Visual and Plotting Elements
Table Layout: 6 columns
Stock | Contribution | Weight % | LTP | Change | % Change
Color Coding:
Green/red for positive/negative price changes and contributions.
Alternating background rows for better visibility.
BANKNIFTY row is highlighted separately at the top.
Text & Background Colors are chosen for both readability and direction indication.
6. Tips for Effective Use
Use this table on 1-minute or 5-minute intraday charts to see near real-time market structure.
Watch for:
A few heavyweight stocks pulling the index alone (can signal weak internal breadth).
Broad green/red across all rows (signals strong directional momentum).
Combine this with price action or volume-based strategies for confirmation.
Best used during market hours for live updates.
7. What Makes It Unique
Unlike other contribution tables that show only static data or require paid feeds, this script:
Updates in real time.
Uses dynamic calculated contributions.
Places BANKNIFTY at the top and presents the entire internal structure clearly.
Doesn’t repaint or rely on lagging indicators.
8. Alerts / Additional Features
No alerts are added in this version.
(Optional: Alerts can be added to notify when a certain stock contributes above/below a threshold.)
9. Technical Concepts Used
request.security() to pull both 1-minute and daily close data.
Conditional color formatting based on price change direction.
Dynamic table rendering using table.new() and table.cell().
Static weights assigned manually for BANKNIFTY stocks (can be updated if index weights change).
10. Disclaimer
This script is intended for educational and informational purposes only. It does not constitute financial advice or a buy/sell recommendation.
Users should test and validate the tool on paper or demo accounts before applying it to live trading.
📌 Note: Due to internet connectivity, data delays, or broker feeds, real-time values (LTP, change, contribution, etc.) may slightly differ from other platforms or terminals. Use this indicator as a supportive visual tool, not a sole decision-maker.
Script Title: BANKNIFTY Contribution Table -
Author: GSK-VIZAG-AP-INDIA
Version: Final Public Release
Midnight Open Line (Auto)This script plots the Midnight Open Line on the chart automatically based on GMT 00:00 Open.
Helps in setting daily bias according to ICT concepts.
Works on Forex, Indices & Crypto.
Clarix Trend Filter Purpose
This indicator helps traders quickly identify strong bullish or bearish market conditions by combining a moving average and directional strength.
How It Works
SMMA (200): Smooths price to detect overall trend direction.
ADX (14): Measures trend strength, filtering out weak/noisy moves.
+DI / -DI: Directional movement indicators help confirm the dominant side.
Trend Logic
Bullish Trend: Price is above SMMA, ADX > threshold, and +DI > -DI
Bearish Trend: Price is below SMMA, ADX > threshold, and -DI > +DI
Otherwise, the trend is considered weak or unclear.
Features
Background shading for trend clarity
Optional buy/sell arrows based on trend confirmation
Configurable SMMA length and ADX threshold
Designed for 1-minute timeframes, but can be adjusted
Tips
Best used as a trend filter with your existing entry/exit strategy
Avoid trading signals when ADX is low (flat or ranging conditions)
Works well when combined with volume or momentum indicators
📊 52-Week Price % Distance (Advanced Table)This TradingView Pine Script displays a compact, informative table showing how far the current price is from the 52-week high and low, expressed as percentages.
Top Crypto Above 28-Day AverageDescription
The “Top Crypto Above 28-Day Average” (CRYPTOTW) script scans a selectable universe of up to 120 top-capitalization cryptocurrencies (divided into customizable 40-symbol batches), then plots the count of those trading above their own 28-period simple moving average. It helps you gauge broad market strength and identify which tokens are showing momentum relative to their recent trend.
Key Features
• Batch Selection: Choose among “Top40,” “Mid40,” or “Low40” market-cap groups, or set a custom batch size (up to 40 symbols) to keep within the API limit.
• Dynamic Plot: Displays a live line chart of how many cryptos are above their 28-day MA on each bar.
• Reference Lines: Automatic horizontal lines at 25%, 50%, and 75% of your batch to provide quick visual thresholds.
• Background Coloration: The chart background shifts green/yellow/red based on whether more than 70%, 50–70%, or under 50% of the batch is above the MA.
• Optional Table: On the final bar, show a sortable table of up to 28 tickers currently above their 28-day MA, including current price, percent above MA, and “Above” status color-coding.
• Alerts:
• Strong Batch Performance: Fires when >70% of the batch is above the MA.
• Weak Batch Performance: Fires when <10 cryptos (i.e. <25%) are above the MA.
Inputs
• Show Results Table (show_table): Toggle the detailed table on/off.
• Table Position (table_position): Select one of the four corners for your table overlay.
• Max Cryptos to Display (max_display): Limit the number of rows in the results table.
• Current Batch (current_batch): Pick “Top40,” “Mid40,” or “Low40.”
• Batch Size (batch_size): Define the number of symbols (1–40) you want to include from the chosen batch.
How to Use
1. Add the CRYPTOTW indicator to any chart.
2. Select your batch and size to focus on the segment of the crypto market you follow.
3. Watch the plotted line to see the proportion of tokens with bullish momentum.
4. (Optional) Enable the results table to see exactly which tokens are outperforming their 28-day average.
5. Set alerts to be notified when the batch either overheats (strong performance) or cools off significantly.
Why It Matters
By tracking the share of assets riding their 28-day trend, you gain a macro-level view of market breadth—crucial for spotting emerging rallies or early signs of broad weakness. Whether you’re swing-trading individual altcoins or assessing overall market mood, this tool distills complex data into an intuitive, actionable signal.
SNIPERKILLS NQ JULY 18 2025, GAMEPLANNQ GAME PLAN JULY 18, 2025!
✅ Bullish Scenario
Condition: Price breaks and holds above 23,279.75
Targets:
🎯 Target 1: 23,320 — minor imbalance / reaction zone
🎯 Target 2: 23,375 — potential liquidity sweep
🎯 Target 3: 23,420 — psychological level / extended move
Stop Loss: Below 23,234.25 (Short Trigger / invalidation)
❌ Bearish Scenario
Condition: Price breaks and holds below 23,234.25
Targets:
🎯 Target 1: 23,200 — FVG or intraday demand
🎯 Target 2: 23,150 — mid-range flush target
🎯 Target 3: 23,017 — prior day’s low & major liquidity zone
Stop Loss: Above 23,279.75 (Long Trigger / invalidation)
RSI with 2-Pole FilterA momentum indicator that tells you if a stock is overbought or oversold.
RSI goes between 0 and 100.
70 = overbought (might fall)
<30 = oversold (might rise)
It often looks jagged or choppy on volatile days.
Think of this filter like a momentum smoother:
It still follows RSI closely,
But it doesn’t react to every little jiggle in price,
Which helps avoid false signals.
it keeps track of:
The current RSI,
The last 2 RSI values (inputs), and
The last 2 outputs (filtered RSIs).
It uses feedback to shape the output based on previous values, making it smoother than a simple moving average.
Ultra BUY SELL//@version=5
indicator("Ultra BUY SELL", overlay = false)
// Inputs
src = input(close, "Source", group = "Main settings")
p = input.int(180, "Trend period", group = "Main settings", tooltip = "Changes STRONG signals' sensitivity.", minval = 1)
atr_p = input.int(155, "ATR Period", group = "Main settings", minval = 1)
mult = input.float(2.1, "ATR Multiplier", step = 0.1, group = "Main settings", tooltip = "Changes sensitivity: higher period = higher sensitivty.")
mode = input.string("Type A", "Signal mode", options = , group = "Mode")
use_ema_smoother = input.string("No", "Smooth source with EMA?", options = , group = "Source")
src_ema_period = input(3, "EMA Smoother period", group = "Source")
color_bars = input(true, "Color bars?", group = "Addons")
signals_view = input.string("All", "Signals to show", options = , group = "Signal's Addon")
signals_shape = input.string("Labels", "Signal's shape", options = , group = "Signal's Addon")
buy_col = input(color.rgb(0, 255, 8), "Buy colour", group = "Signal's Addon", inline = "BS")
sell_col = input(color.rgb(255, 0, 0), "Sell colour", group = "Signal's Addon", inline = "BS")
// Calculations
src := use_ema_smoother == "Yes" ? ta.ema(src, src_ema_period) : src
// Source;
h = ta.highest(src, p)
// Highest of src p-bars back;
l = ta.lowest(src, p)
// Lowest of src p-bars back.
d = h - l
ls = ""
// Tracker of last signal
m = (h + l) / 2
// Initial trend line;
m := bar_index > p ? m : m
atr = ta.atr(atr_p)
// ATR;
epsilon = mult * atr
// Epsilon is a mathematical variable used in many different theorems in order to simplify work with mathematical object. Here it used as sensitivity measure.
change_up = (mode == "Type B" ? ta.cross(src, m + epsilon) : ta.crossover(src, m + epsilon)) or src > m + epsilon
// If price breaks trend line + epsilon (so called higher band), then it is time to update the value of a trend line;
change_down = (mode == "Type B" ? ta.cross(src, m - epsilon) : ta.crossunder(src, m - epsilon)) or src < m - epsilon
// If price breaks trend line - epsilon (so called higher band), then it is time to update the value of a trend line.
sb = open < l + d / 8 and open >= l
ss = open > h - d / 8 and open <= h
strong_buy = sb or sb or sb or sb or sb
strong_sell = ss or ss or ss or ss or ss
m := (change_up or change_down) and m != m ? m : change_up ? m + epsilon : change_down ? m - epsilon : nz(m , m)
// Updating the trend line.
ls := change_up ? "B" : change_down ? "S" : ls
// Last signal. Helps avoid multiple labels in a row with the same signal;
colour = ls == "B" ? buy_col : sell_col
// Colour of the trend line.
buy_shape = signals_shape == "Labels" ? shape.labelup : shape.triangleup
sell_shape = signals_shape == "Labels" ? shape.labeldown : shape.triangledown
// Plottings
// Signals with label shape
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "BUY", textcolor = color.white, force_overlay=true)
// Plotting the BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "SELL", textcolor = color.white, force_overlay=true)
// Plotting the SELL signal.
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true)
// Plotting the STRONG BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true)
// Plotting the STRONG SELL signal.
// Signal with arrow shape
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true)
// Plotting the BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true)
// Plotting the SELL signal.
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true)
// Plotting the STRONG BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true)
// Plotting the STRONG SELL signal.
barcolor(color_bars ? colour : na)
// Bar coloring
// Alerts
matype = input.string(title='MA Type', defval='EMA', options= )
ma_len1 = input(title='Short EMA1 Length', defval=5)
ma_len2 = input(title='Long EMA1 Length', defval=7)
ma_len3 = input(title='Short EMA2 Length', defval=5)
ma_len4 = input(title='Long EMA2 Length', defval=34)
ma_len5 = input(title='Short EMA3 Length', defval=98)
ma_len6 = input(title='Long EMA3 Length', defval=45)
ma_len7 = input(title='Short EMA4 Length', defval=7)
ma_len8 = input(title='Long EMA4 Length', defval=11)
ma_len9 = input(title='Short EMA5 Length', defval=11)
ma_len10 = input(title='Long EMA5 Length', defval=15)
ma_offset = input(title='Offset', defval=0)
//res = input(title="Resolution", type=resolution, defval="240")
f_ma(malen) =>
float result = 0
if matype == 'EMA'
result := ta.ema(src, malen)
result
if matype == 'SMA'
result := ta.sma(src, malen)
result
result
htf_ma1 = f_ma(ma_len1)
htf_ma2 = f_ma(ma_len2)
htf_ma3 = f_ma(ma_len3)
htf_ma4 = f_ma(ma_len4)
htf_ma5 = f_ma(ma_len5)
htf_ma6 = f_ma(ma_len6)
htf_ma7 = f_ma(ma_len7)
htf_ma8 = f_ma(ma_len8)
htf_ma9 = f_ma(ma_len9)
htf_ma10 = f_ma(ma_len10)
//plot(out1, color=green, offset=ma_offset)
//plot(out2, color=red, offset=ma_offset)
//lengthshort = input(8, minval = 1, title = "Short EMA Length")
//lengthlong = input(200, minval = 2, title = "Long EMA Length")
//emacloudleading = input(50, minval = 0, title = "Leading Period For EMA Cloud")
//src = input(hl2, title = "Source")
showlong = input(false, title='Show Long Alerts')
showshort = input(false, title='Show Short Alerts')
showLine = input(false, title='Display EMA Line')
ema1 = input(true, title='Show EMA Cloud-1')
ema2 = input(true, title='Show EMA Cloud-2')
ema3 = input(true, title='Show EMA Cloud-3')
ema4 = input(true, title='Show EMA Cloud-4')
ema5 = input(true, title='Show EMA Cloud-5')
emacloudleading = input.int(0, minval=0, title='Leading Period For EMA Cloud')
mashort1 = htf_ma1
malong1 = htf_ma2
mashort2 = htf_ma3
malong2 = htf_ma4
mashort3 = htf_ma5
malong3 = htf_ma6
mashort4 = htf_ma7
malong4 = htf_ma8
mashort5 = htf_ma9
malong5 = htf_ma10
cloudcolour1 = mashort1 >= malong1 ? color.rgb(0, 255, 0) : color.rgb(255, 0, 0)
cloudcolour2 = mashort2 >= malong2 ? #4caf4f47 : #ff110047
cloudcolour4 = mashort4 >= malong4 ? #4caf4f52 : #f2364652
cloudcolour5 = mashort5 >= malong5 ? #33ff0026 : #ff000026
//03abc1
mashortcolor1 = mashort1 >= mashort1 ? color.olive : color.maroon
mashortcolor2 = mashort2 >= mashort2 ? color.olive : color.maroon
mashortcolor3 = mashort3 >= mashort3 ? color.olive : color.maroon
mashortcolor4 = mashort4 >= mashort4 ? color.olive : color.maroon
mashortcolor5 = mashort5 >= mashort5 ? color.olive : color.maroon
mashortline1 = plot(ema1 ? mashort1 : na, color=showLine ? mashortcolor1 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA1', force_overlay=true)
mashortline2 = plot(ema2 ? mashort2 : na, color=showLine ? mashortcolor2 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA2', force_overlay=true)
mashortline3 = plot(ema3 ? mashort3 : na, color=showLine ? mashortcolor3 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA3', force_overlay=true)
mashortline4 = plot(ema4 ? mashort4 : na, color=showLine ? mashortcolor4 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA4', force_overlay=true)
mashortline5 = plot(ema5 ? mashort5 : na, color=showLine ? mashortcolor5 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA5', force_overlay=true)
malongcolor1 = malong1 >= malong1 ? color.green : color.red
malongcolor2 = malong2 >= malong2 ? color.green : color.red
malongcolor3 = malong3 >= malong3 ? color.green : color.red
malongcolor4 = malong4 >= malong4 ? color.green : color.red
malongcolor5 = malong5 >= malong5 ? color.green : color.red
malongline1 = plot(ema1 ? malong1 : na, color=showLine ? malongcolor1 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA1', force_overlay=true)
malongline2 = plot(ema2 ? malong2 : na, color=showLine ? malongcolor2 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA2', force_overlay=true)
malongline3 = plot(ema3 ? malong3 : na, color=showLine ? malongcolor3 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA3', force_overlay=true)
malongline4 = plot(ema4 ? malong4 : na, color=showLine ? malongcolor4 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA4', force_overlay=true)
malongline5 = plot(ema5 ? malong5 : na, color=showLine ? malongcolor5 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA5', force_overlay=true)
fill(mashortline1, malongline1, color=cloudcolour1, title='MA Cloud1', transp=45)
fill(mashortline2, malongline2, color=cloudcolour2, title='MA Cloud2', transp=65)
fill(mashortline4, malongline4, color=cloudcolour4, title='MA Cloud4', transp=65)
fill(mashortline5, malongline5, color=cloudcolour5, title='MA Cloud5', transp=65)
leftBars = input(15, title='Left Bars ')
rightBars = input(15, title='Right Bars')
volumeThresh = input(20, title='Volume Threshold')
//
highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars) )
lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars) )
r1 = plot(highUsePivot, color=ta.change(highUsePivot) ? na : #FF0000, linewidth=3, offset=-(rightBars + 1), title='Resistance', force_overlay=true)
s1 = plot(lowUsePivot, color=ta.change(lowUsePivot) ? na : #00ff0d, linewidth=3, offset=-(rightBars + 1), title='Support', force_overlay=true)
//Volume %
short = ta.ema(volume, 5)
long = ta.ema(volume, 10)
osc = 100 * (short - long) / long
//For bull / bear wicks
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © divudivu600
// Developer By ALCON ALGO
//telegram : @harmonicryptosignals
//@version = 5
//indicator(shorttitle='Oscillator Vision', title='Alcon Oscillator Vision', overlay=false)
n1 = input(10, 'Channel length')
n2 = input(21, 'Average length')
reaction_wt = input.int(defval=1, title='Reaction in change of direction', minval=1)
nsc = input.float(53, 'Levels About Buys', minval=0.0)
nsv = input.float(-53, 'Levels About Sells', maxval=-0.0)
Buy_sales = input(true, title='Only Smart Buy Reversal')
Sell_sales = input(true, title='Only Smart Sell Reversal')
Histogram = input(true, title='Show Histogarm')
//Trendx = input(false, title='Show Trendx')
barras = input(true, title='Divergence on chart(Bars)')
divregbull = input(true, title='Regular Divergence Bullish')
divregbear = input(true, title='Regular Divergence Bearish')
divhidbull = input(true, title='Show Divergence Hidden Bullish')
divhidbear = input(true, title='Show Divergence Hidden Bearish')
Tags = input(true, title='Show Divergence Lable')
amme = input(false, title='Activar media movil Extra para WT')
White = #FDFEFE
Black = #000000
Bearish = #e91e62
Bullish = #18e0ff
Strong_Bullish = #2962ff
Bullish2 = #00bedc
Blue1 = #00D4FF
Blue2 = #009BBA
orange = #FF8B00
yellow = #FFFB00
LEZ = #0066FF
purp = #FF33CC
// Colouring
tf(_res, _exp, gaps_on) =>
gaps_on == 0 ? request.security(syminfo.tickerid, _res, _exp) : gaps_on == true ? request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_on, barmerge.lookahead_off) : request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_off, barmerge.lookahead_off)
ha_htf = ''
show_ha = input.bool(true, "Show HA Plot/ Market Bias", group="HA Market Bias")
ha_len = input(7, 'Period', group="HA Market Bias")
ha_len2 = input(10, 'Smoothing', group="HA Market Bias")
// Calculations {
o = ta.ema(open, ha_len)
c = ta.ema(close, ha_len)
h1 = ta.ema(high, ha_len)
l1 = ta.ema(low, ha_len)
haclose = tf(ha_htf, (o + h1 + l1 + c) / 4, 0)
xhaopen = tf(ha_htf, (o + c) / 2, 0)
haopen = na(xhaopen ) ? (o + c) / 2 : (xhaopen + haclose ) / 2
hahigh = math.max(h1, math.max(haopen, haclose))
halow = math.min(l1, math.min(haopen, haclose))
o2 = tf(ha_htf, ta.ema(haopen, ha_len2), 0)
c2 = tf(ha_htf, ta.ema(haclose, ha_len2), 0)
h2 = tf(ha_htf, ta.ema(hahigh, ha_len2), 0)
l2 = tf(ha_htf, ta.ema(halow, ha_len2), 0)
ha_avg = (h2 + l2) / 2
// }
osc_len = 8
osc_bias = 100 *(c2 - o2)
osc_smooth = ta.ema(osc_bias, osc_len)
sigcolor =
(osc_bias > 0) and (osc_bias >= osc_smooth) ? color.new(Bullish, 35) :
(osc_bias > 0) and (osc_bias < osc_smooth) ? color.new(Bullish2, 75) :
(osc_bias < 0) and (osc_bias <= osc_smooth) ? color.new(Bearish, 35) :
(osc_bias < 0) and (osc_bias > osc_smooth) ? color.new(Bearish, 75) :
na
// }
nsc1 = nsc
nsc2 = nsc + 5
nsc3 = nsc + 10
nsc4 = nsc + 15
nsc5 = nsc + 20
nsc6 = nsc + 25
nsc7 = nsc + 30
nsc8 = nsc + 35
nsv1 = nsv - 5
nsv2 = nsv - 10
nsv3 = nsv - 15
nsv4 = nsv - 20
nsv5 = nsv - 25
nsv6 = nsv - 30
nsv7 = nsv - 35
nsv8 = nsv - 40
ap = hlc3
esa = ta.ema(ap, n1)
di = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * di)
tci = ta.ema(ci, n2)
wt1 = tci
wt2 = ta.sma(wt1, 4)
direction = 0
direction := ta.rising(wt1, reaction_wt) ? 1 : ta.falling(wt1, reaction_wt) ? -1 : nz(direction )
Change_of_direction = ta.change(direction, 1)
pcol = direction > 0 ? Strong_Bullish : direction < 0 ? Bearish : na
obLevel1 = input(60, 'Over Bought Level 1')
obLevel2 = input(53, 'Over Bought Level 2')
osLevel1 = input(-60, 'Over Sold Level 1')
osLevel2 = input(-53, 'Over Sold Level 2')
rsi = ta.rsi(close,14)
color greengrad = color.from_gradient(rsi, 10, 90, #00ddff, #007d91)
color redgrad = color.from_gradient(rsi, 10, 90, #8b002e, #e91e62)
ob1 = plot(obLevel1, color=#e91e6301)
os1 = plot(osLevel1, color=#00dbff01)
ob2 = plot(obLevel2, color=#e91e6301)
os2 = plot(osLevel2, color=#00dbff01)
p1 = plot(wt1, color=#00dbff01)
p2 = plot(wt2, color=#e91e6301)
plot(wt1 - wt2, color=wt2 - wt1 > 0 ? redgrad : greengrad, style=plot.style_columns)
// fill(p1,p2,color = wt2 - wt1 > 0 ? redgrad: greengrad) // old
fill(p1,p2,color = sigcolor)
// new
fill(ob1,ob2,color = #e91e6350)
fill(os1,os2,color = #00dbff50)
midpoint = (nsc + nsv) / 2
ploff = (nsc - midpoint) / 8
BullSale = ta.crossunder(wt1, wt2) and wt1 >= nsc and Buy_sales == true
BearSale = ta.crossunder(wt1, wt2) and Buy_sales == false
Bullishh = ta.crossover(wt1, wt2) and wt1 <= nsv and Sell_sales == true
Bearishh = ta.crossover(wt1, wt2) and Sell_sales == false
plot(BullSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='BuysG')
plot(BearSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='SellsG')
plot(Bullishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Buys On Sale')
plot(Bearishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Sells on Sale')
//plot(Histogram ? wt1 - wt2 : na, style=plot.style_area, color=color.new(Blue2, 80), linewidth=1, title='Histograma')
//barcolor(barras == true and Bullishh == true or barras == true and Bearishh == true ? Bullish2 : na)
//barcolor(barras == true and BullSale == true or barras == true and BearSale == true ? Bearish : na)
/////// Divergence ///////
f_top_fractal(_src) =>
_src < _src and _src < _src and _src > _src and _src > _src
f_bot_fractal(_src) =>
_src > _src and _src > _src and _src < _src and _src < _src
f_fractalize(_src) =>
f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0
fractal_top1 = f_fractalize(wt1) > 0 ? wt1 : na
fractal_bot1 = f_fractalize(wt1) < 0 ? wt1 : na
high_prev1 = ta.valuewhen(fractal_top1, wt1 , 0)
high_price1 = ta.valuewhen(fractal_top1, high , 0)
low_prev1 = ta.valuewhen(fractal_bot1, wt1 , 0)
low_price1 = ta.valuewhen(fractal_bot1, low , 0)
regular_bearish_div1 = fractal_top1 and high > high_price1 and wt1 < high_prev1 and divregbear == true
hidden_bearish_div1 = fractal_top1 and high < high_price1 and wt1 > high_prev1 and divhidbear == true
regular_bullish_div1 = fractal_bot1 and low < low_price1 and wt1 > low_prev1 and divregbull == true
hidden_bullish_div1 = fractal_bot1 and low > low_price1 and wt1 < low_prev1 and divhidbull == true
col1 = regular_bearish_div1 ? Bearish : hidden_bearish_div1 ? Bearish : na
col2 = regular_bullish_div1 ? Strong_Bullish : hidden_bullish_div1 ? Strong_Bullish : na
//plot(title='Divergence Bearish', series=fractal_top1 ? wt1 : na, color=col1, linewidth=2, transp=0)
//plot(title='Divergence Bullish', series=fractal_bot1 ? wt1 : na, color=col2, linewidth=2, transp=0)
plotshape(regular_bearish_div1 and divregbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Regular Bearish', text='Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bearish_div1 and divhidbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Hidden Bearish', text='H Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(regular_bullish_div1 and divregbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Regular Bullish', text='Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bullish_div1 and divhidbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Hidden Bullish', text='H Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
/////// Unfazed Alerts //////
////////////////////////////////////////////////-MISTERMOTA MOMENTUM-/////////////////////////////////////
source = input(close)
responsiveness = math.max(0.00001, input.float(0.9, minval=0.0, maxval=1.0))
periodd = input(50)
sd = ta.stdev(source, 50) * responsiveness
var worm = source
diff = source - worm
delta = math.abs(diff) > sd ? math.sign(diff) * sd : diff
worm += delta
ma = ta.sma(source, periodd)
raw_momentum = (worm - ma) / worm
current_med = raw_momentum
min_med = ta.lowest(current_med, periodd)
max_med = ta.highest(current_med, periodd)
temp = (current_med - min_med) / (max_med - min_med)
value = 0.5 * 2
value *= (temp - .5 + .5 * nz(value ))
value := value > .9999 ? .9999 : value
value := value < -0.9999 ? -0.9999 : value
temp2 = (1 + value) / (1 - value)
momentum = .25 * math.log(temp2)
momentum += .5 * nz(momentum )
//momentum := raw_momentum
signal = nz(momentum )
trend = math.abs(momentum) <= math.abs(momentum )
////////////////////////////////////////////////-GROWING/FAILING-//////////////////////////////////////////
length = input.int(title="MOM Period", minval=1, defval=14, group="MOM Settings")
srcc = input(title="MOM Source", defval=hlc3, group="MOM Settings")
txtcol_grow_above = input(#1a7b24, "Above Grow", group="MOM Settings", inline="Above")
txtcol_fall_above = input(#672ec5, "Fall", group="MOM Settings", inline="Above")
txtcol_grow_below = input(#F37121, "Below Grow", group="MOM Settings", inline="Below")
txtcol_fall_below = input(#be0606, "Fall", group="MOM Settings", inline="Below")
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options= , group="MA Settings")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="MA Settings")
smoothingLine = ma(delta, smoothingLength, typeMA)
deltaText=(delta > 0 ? (delta > delta ? " MOM > 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##") :" MOM > 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##") ) : (delta > delta ? "MOM < 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##"): " MOM < 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##")))
oneDay = 24 * 60 * 60 * 1000
barsAhead = 3
tmf = if timeframe.ismonthly
barsAhead * oneDay * 30
else if timeframe.isweekly
barsAhead * oneDay * 7
else if timeframe.isdaily
barsAhead * oneDay
else if timeframe.isminutes
barsAhead * oneDay * timeframe.multiplier / 1440
else if timeframe.isseconds
barsAhead * oneDay * timeframe.multiplier / 86400
else
0
angle(_src) =>
rad2degree = 180 / 3.14159265359
//pi
ang = rad2degree * math.atan((_src - _src ) / ta.atr(14))
ang
emae = angle(smoothingLine)
emaanglestat = emae > emae ? "▲ Growing": "▼ Falling"
deltaTextxxx = "MOM MA/ATR angle value is " + str.tostring(emae, "#.##") + "° and is " + emaanglestat
deltacolorxxx = emae >0 and emae >=emae ? txtcol_grow_above : txtcol_fall_below
// Label
label lpt1 = label.new(time, -30, text=deltaTextxxx , color=deltacolorxxx, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(lpt1, label.get_x(lpt1) + tmf)
label.delete(lpt1 )
txtdeltaColors = (delta > 50 ? (delta < delta ? txtcol_grow_above : txtcol_fall_above) : (delta < delta ? txtcol_grow_below : txtcol_fall_below))
label ldelta1 = label.new(time, 30, text=deltaText , color=txtdeltaColors, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(ldelta1, label.get_x(ldelta1) + tmf)
label.delete(ldelta1 )
Info TableOverview
The Info Table V1 is a versatile TradingView indicator tailored for intraday futures traders, particularly those focusing on MESM2 (Micro E-mini S&P 500 futures) on 1-minute charts. It presents essential market insights through two customizable tables: the Main Table for predictive and macro metrics, and the New Metrics Table for momentum and volatility indicators. Designed for high-activity sessions like 9:30 AM–11:00 AM CDT, this tool helps traders assess price alignment, sentiment, and risk in real-time. Metrics update dynamically (except weekly COT data), with optional alerts for key conditions like volatility spikes or momentum shifts.
This indicator builds on foundational concepts like linear regression for predictions and adapts open-source elements for enhanced functionality. Gradient code is adapted from TradingView's Color Library. QQE logic is adapted from LuxAlgo's QQE Weighted Oscillator, licensed under CC BY-NC-SA 4.0. The script is released under the Mozilla Public License 2.0.
Key Features
Two Customizable Tables: Positioned independently (e.g., top-right for Main, bottom-right for New Metrics) with toggle options to show/hide for a clutter-free chart.
Gradient Coloring: User-defined high/low colors (default green/red) for quick visual interpretation of extremes, such as overbought/oversold or high volatility.
Arrows for Directional Bias: In the New Metrics Table, up (↑) or down (↓) arrows appear in value cells based on metric thresholds (top/bottom 25% of range), indicating bullish/high or bearish/low conditions.
Consensus Highlighting: The New Metrics Table's title cells ("Metric" and "Value") turn green if all arrows are ↑ (strong bullish consensus), red if all are ↓ (strong bearish consensus), or gray otherwise.
Predicted Price Plot: Optional line (default blue) overlaying the ML-predicted price for visual comparison with actual price action.
Alerts: Notifications for high/low Frahm Volatility (≥8 or ≤3) and QQE Bias crosses (bullish/bearish momentum shifts).
Main Table Metrics
This table focuses on predictive, positional, and macro insights:
ML-Predicted Price: A linear regression forecast using normalized price, volume, and RSI over a customizable lookback (default 500 bars). Gradient scales from low (red) to high (green) relative to the current price ± threshold (default 100 points).
Deviation %: Percentage difference between current price and predicted price. Gradient highlights extremes (±0.5% default threshold), signaling potential overextensions.
VWAP Deviation %: Percentage difference from Volume Weighted Average Price (VWAP). Gradient indicates if price is above (green) or below (red) fair value (±0.5% default).
FRED UNRATE % Change: Percentage change in U.S. unemployment rate (via FRED data). Cell turns red for increases (economic weakness), green for decreases (strength), gray if zero or disabled.
Open Interest: Total open MESM2 futures contracts. Gradient scales from low (red) to high (green) up to a hardcoded 300,000 threshold, reflecting market participation.
COT Commercial Long/Short: Weekly Commitment of Traders data for commercial positions. Long cell green if longs > shorts (bullish institutional sentiment); Short cell red if shorts > longs (bearish); gray otherwise.
New Metrics Table Metrics
This table emphasizes technical momentum and volatility, with arrows for quick bias assessment:
QQE Bias: Smoothed RSI vs. trailing stop (default length 14, factor 4.236, smooth 5). Green for bullish (RSI > stop, ↑ arrow), red for bearish (RSI < stop, ↓ arrow), gray for neutral.
RSI: Relative Strength Index (default period 14). Gradient from oversold (red, <30 + threshold offset, ↓ arrow if ≤40) to overbought (green, >70 - offset, ↑ arrow if ≥60).
ATR Volatility: Score (1–20) based on Average True Range (default period 14, lookback 50). High scores (green, ↑ if ≥15) signal swings; low (red, ↓ if ≤5) indicate calm.
ADX Trend: Average Directional Index (default period 14). Gradient from weak (red, ↓ if ≤0.25×25 threshold) to strong trends (green, ↑ if ≥0.75×25).
Volume Momentum: Score (1–20) comparing current to historical volume (lookback 50). High (green, ↑ if ≥15) suggests pressure; low (red, ↓ if ≤5) implies weakness.
Frahm Volatility: Score (1–20) from true range over a window (default 24 hours, multiplier 9). Dynamic gradient (green/red/yellow); ↑ if ≥7.5, ↓ if ≤2.5.
Frahm Avg Candle (Ticks): Average candle size in ticks over the window. Blue gradient (or dynamic green/red/yellow); ↑ if ≥0.75 percentile, ↓ if ≤0.25.
Arrows trigger on metric-specific logic (e.g., RSI ≥60 for ↑), providing directional cues without strict color ties.
Customization Options
Adapt the indicator to your strategy:
ML Inputs: Lookback (10–5000 bars) and RSI period (2+) for prediction sensitivity—shorter for volatility, longer for trends.
Timeframes: Individual per metric (e.g., 1H for QQE Bias to match higher frames; blank for chart timeframe).
Thresholds: Adjust gradients and arrows (e.g., Deviation 0.1–5%, ADX 0–100, RSI overbought/oversold).
QQE Settings: Length, factor, and smooth for fine-tuned momentum.
Data Toggles: Enable/disable FRED, Open Interest, COT for focus (e.g., disable macro for pure intraday).
Frahm Options: Window hours (1+), scale multiplier (1–10), dynamic colors for avg candle.
Plot/Table: Line color, positions, gradients, and visibility.
Ideal Use Case
Perfect for MESM2 scalpers and trend traders. Use the Main Table for entry confirmation via predicted deviations and institutional positioning. Leverage the New Metrics Table arrows for short-term signals—enter bullish on green consensus (all ↑), avoid chop on low volatility. Set alerts to catch shifts without constant monitoring.
Why It's Valuable
Info Table V1 consolidates diverse metrics into actionable visuals, answering critical questions: Is price mispriced? Is momentum aligning? Is volatility manageable? With real-time updates, consensus highlights, and extensive customization, it enhances precision in fast markets, reducing guesswork for confident trades.
Note: Optimized for futures; some metrics (OI, COT) unavailable on non-futures symbols. Test on demo accounts. No financial advice—use at your own risk.
The provided script reuses open-source elements from TradingView's Color Library and LuxAlgo's QQE Weighted Oscillator, as noted in the script comments and description. Credits are appropriately given in both the description and code comments, satisfying the requirement for attribution.
Regarding significant improvements and proportion:
The QQE logic comprises approximately 15 lines of code in a script exceeding 400 lines, representing a small proportion (<5%).
Adaptations include integration with multi-timeframe support via request.security, user-customizable inputs for length, factor, and smooth, and application within a broader table-based indicator for momentum bias display (with color gradients, arrows, and alerts). This extends the original QQE beyond standalone oscillator use, incorporating it as one of seven metrics in the New Metrics Table for confluence analysis (e.g., consensus highlighting when all metrics align). These are functional enhancements, not mere stylistic or variable changes.
The Color Library usage is via official import (import TradingView/Color/1 as Color), leveraging built-in gradient functions without copying code, and applied to enhance visual interpretation across multiple metrics.
The script complies with the rules: reused code is minimal, significantly improved through integration and expansion, and properly credited. It qualifies for open-source publication under the Mozilla Public License 2.0, as stated.
Glamour ETF Index vs. QQQ mit MA10, MA20 & MA50Stan Weinstein uses the term "Glamour Index" as a sentiment indicator to assess how speculative or overheated the stock market is. The Glamour Index measures the relationship between so-called "glamour stocks" (trendy stocks, hyped stocks with high media attention and sometimes extreme price increases) and solid, more conservative stocks. Weinstein uses this index to: 1) Analyze market sentiment – particularly whether the market is in a speculative euphoria phase.
2) Identify warning signs of a potential top formation or an impending downturn.
My basket compares performance against the QQQ (alternatively, SPY or any other benchmark is also possible).
My basket consists of the ETFs in the ARK universe, as well as other growth ETFs such as IPO, FFTY, and QQQJ.
Multi-TF Z-Score IndicatorIndicator to find the Z score for the daily 4h, 1h, 15m and 5 min time frames with 20 previous samples.
Fractal Pullback Market StructureFractal Pullback Market Structure
Author: The_Forex_Steward
License: Mozilla Public License 2.0
The Fractal Pullback Market Structure indicator is a sophisticated price action tool designed to visualize internal structure shifts and break-of-structure (BoS) events with high accuracy. It leverages fractal pullback logic to identify market swing points and confirm whether a directional change has occurred.
This indicator detects swing highs and lows based on fractal behavior, drawing zigzag lines to connect these key pivot points. It classifies and labels each structural point as either a Higher High (HH), Higher Low (HL), Lower High (LH), or Lower Low (LL). Internal shifts are marked using triangle symbols on the chart, distinguishing bullish from bearish developments.
Break of Structure events are confirmed when price closes beyond the most recent swing high or low, and a horizontal line is drawn at the breakout level. This helps traders validate when a structural trend change is underway.
Users can configure the lookback period that defines the sensitivity of the pullback detection, as well as a timeframe multiplier to align the logic with higher timeframes such as 4H or Daily. There are visual customization settings for the zigzag lines and BoS markers, including color, width, and style (solid, dotted, or dashed).
Alerts are available for each key structural label—HH, HL, LH, LL—as well as for BoS events. These alerts are filtered through a selectable alert mode that separates signals by timeframe category: Low Timeframe (LTF), Medium Timeframe (MTF), and High Timeframe (HTF). Each mode allows the user to receive alerts only when relevant to their strategy.
This indicator excels in trend confirmation and reversal detection. Traders can use it to identify developing structure, validate internal shifts, and anticipate breakout continuation or rejection. It is particularly useful for Smart Money Concept (SMC) traders, swing traders, and those looking to refine entries and exits based on price structure rather than lagging indicators.
Visual clarity, adaptable timeframe logic, and precise structural event detection make this tool a valuable addition to any price action trader’s toolkit.
USDT + USDC DominanceUSDT and USDC Dominance: This refers to the combined market capitalization of Tether (USDT) and USD Coin (USDC) as a percentage of the total cryptocurrency market capitalization. It measures the proportion of the crypto market held by these stablecoins, which are pegged to the US dollar. High dominance indicates a "risk-off" sentiment, where investors hold stablecoins for safety during market uncertainty. A drop in dominance suggests capital is flowing into riskier assets like altcoins, often signaling a bullish market or the start of an "alt season."
Economy RadarEconomy Radar — Key US Macro Indicators Visualized
A handy tool for traders and investors to monitor major US economic data in one chart.
Includes:
Inflation: CPI, PCE, yearly %, expectations
Monetary policy: Fed funds rate, M2 money supply
Labor market: Unemployment, jobless claims, consumer sentiment
Economy & markets: GDP, 10Y yield, US Dollar Index (DXY)
Options:
Toggle indicators on/off
Customizable colors
Tooltips explain each metric (in Russian & English)
Perfect for spotting economic cycles and supporting trading decisions.
Add to your chart and get a clear macro picture instantly!
USDT + USDC Dominance USDT + USDC Dominance: This refers to the combined market capitalization of Tether (USDT) and USD Coin (USDC) as a percentage of the total cryptocurrency market capitalization. It measures the proportion of the crypto market held by these stablecoins, which are pegged to the US dollar. High dominance indicates a "risk-off" sentiment, where investors hold stablecoins for safety during market uncertainty. A drop in dominance suggests capital is flowing into riskier assets like altcoins, often signaling a bullish market or the start of an "alt season.
Delta Spike Detector [GSK-VIZAG-AP-INDIA]📌 Delta Spike Detector – Volume Imbalance Ratio
By GSK-VIZAG-AP-INDIA
📘 Overview
This indicator highlights aggressive buying or selling activity by analyzing the imbalance between estimated Buy and Sell volume per candle. It flags moments when one side dominates the other significantly — defined by user-selectable volume ratio thresholds (10x, 15x, 20x, 25x).
📊 How It Works
Buy/Sell Volume Estimation
Approximates buyer and seller participation using candle structure:
Buy Volume = Proximity of close to low
Sell Volume = Proximity of close to high
Delta & Delta Ratio
Delta = Buy Volume − Sell Volume
Delta Ratio = Ratio of dominant volume side to the weaker side
When this ratio exceeds a threshold, it’s classified as a spike.
Spike Labels
Labels are plotted on the chart:
10x B, 15x B, 20x B, 25x B → Buy Spike Labels (below candles)
10x S, 15x S, 20x S, 25x S → Sell Spike Labels (above candles)
The color of each label reflects the spike strength.
⚙️ User Inputs
Enable/Disable Buy or Sell Spikes
Set custom delta ratio thresholds (default: 10x, 15x, 20x, 25x)
🎯 Use Cases
Spotting sudden aggressive activity (e.g. smart money moves, traps, breakouts)
Identifying short-term market exhaustion or momentum bursts
Complementing other trend or volume-based tools
⚠️ Important Notes
The script uses approximated Buy/Sell Volume based on price position, not actual order flow.
This is not a buy/sell signal generator. It should be used in context with other confirmation indicators or market structure.
✍️ Credits
Developed by GSK-VIZAG-AP-INDIA
For educational and research use only.
Multi SMA AnalyzerMulti SMA Analyzer with Custom SMA Table & Advanced Session Logic
A feature-rich SMA analysis suite for traders, offering up to 7 configurable SMAs, in-depth trend detection, real-time table, and true session-aware calculations.
Ideal for those who want to combine intraday, swing, and higher-timeframe trend analysis with maximum chart flexibility.
Key Features
📊 Multi-SMA Overlay
- 7 SMAs (default: 5, 20, 50, 100, 200, 21, 34)—individually configurable (period, source, color, line style)
- Show/hide each SMA, custom line style (solid, stepline, circles), and color logic
- Dynamic color: full opacity above SMA, reduced when below
⏰ Session-Aware SMAs
- Each SMA can be calculated using only user-defined session hours/days/timezone
- “Ignore extended hours” option for accurate intraday trend
📋 Smart Data Table
- Live SMA values, % distance from price, and directional arrows (↑/↓/→)
- Bull/Bear/Sideways trend classification
- Custom table position, size, colors, transparency
- Table can run on chart or custom (higher) timeframe for multi-TF analysis
🎯 Golden/Death Cross Detection
- Flexible crossover engine: select any two from (5, 10, 20, 50, 100, 200) for fast/slow SMA cross signals
- Plots icons (★ Golden, 💀 Death), optional crossover labels with custom size/colors
🏷️ SMA Labels
- Optional on-chart SMA period labels
- Custom placement (above/below/on line), size, color, offset
🚨 Signal & Trend Engine
- Bull/Bear/Sideways logic: price vs. multiple SMAs (not just one pair)
- Volume spike detection (2x 20-period SMA)
- Bullish engulfing candlestick detection
- All signals can use chart or custom table timeframe
🎨 Visual Customization
- Dynamic background color (Bull: green, Bear: red, Neutral: gray)
- Every visual aspect is customizable: label/table colors, transparency, size, position
🔔 Built-in Alerts
- Crossovers (SMA20/50, Golden/Death)
- Bull trend, volume spikes, engulfing pattern—all alert-ready
How It Works
- Session Filtering:
- SMAs can be set to count only bars from your chosen market session, for true intraday/trading-hour signals
Dynamic Table & Signals:
- Table and all signal logic run on your selected chart or custom timeframe
Flexible Crossover:
- Choose any pair (5, 10, 20, 50, 100, 200) for cross detection—SMA 10 is available for crossover even if not shown as an SMA line
Everything is modular:
- Toggle features, set visuals, and alerts to your workflow
🚨 How to Use Alerts
- All key signals (crossovers, trend shifts, volume spikes, engulfing patterns) are available as alert conditions.
To enable:
- Click the “Alerts” (clock) icon at the top of TradingView.
- Select your desired signal (e.g., “Golden Cross”) from the condition dropdown.
- Set your alert preferences and create the alert.
- Now, you’ll get notified automatically whenever a signal occurs!
Perfect For
- Multi-timeframe and swing traders seeking higher timeframe SMA confirmation
- Intraday traders who want to ignore pre/post-market data
- Anyone wanting a modern, powerful, fully customizable multi-SMA overlay
// P.S: Experiment with Golden Cross where Fast SMA is 5 and Slow SMA is 20.
// Set custom timeframe for 4 hr while monitoring your chart on 15 min time frame.
// Enable Background Color and Use Table Timeframe for Background.
// Uncheck Pine labels in Style tab.
Clean, open-source, and loaded with pro features—enjoy!
Like, share, and let me know if you'd like any new features added.
Floor and Roof Indicator with SignalsFloor and Roof Indicator with Trading Signals
A comprehensive support and resistance indicator that identifies premium and discount zones with automated signal generation.
Key Features:
Dynamic Support/Resistance Zones: Calculates floor (support) and roof (resistance) levels using price action and volatility
Premium/Discount Zone Identification: Highlights areas where price may find resistance or support
Customizable Signal Frequency: Control how often signals are displayed (every Nth occurrence)
Visual Signal Table: Optional table showing the last 5 long and short signal prices
Multiple Timeframe Compatibility: Works across all timeframes
Technical Details:
Uses ATR-based calculations for dynamic zone width adjustment
Combines Bollinger Bands with highest/lowest price analysis
Smoothing options for cleaner signal generation
Fully customizable colors and display options
How to Use:
Floor Zones (Blue): Potential support areas where long positions may be considered
Roof Zones (Pink): Potential resistance areas where short positions may be considered
Signal Crosses: Visual markers when price interacts with key levels
Signal Table: Track recent signal prices for analysis
Settings:
Length: Period for calculations (default: 200)
Smooth: Smoothing factor for cleaner signals
Zone Width: Adjust the thickness of support/resistance zones
Signal Frequency: Control signal display frequency
Visual Options: Customize colors and table position
Alerts Available:
Long signal alerts when price touches discount zones
Short signal alerts when price reaches premium zones
Educational Purpose: This indicator is designed to help traders identify potential support and resistance areas. Always combine with proper risk management and additional analysis.
This description focuses on the technical aspects and educational value while avoiding any language that could be interpreted as financial advice or guaranteed profits.