Market Structure- ZigZag, Break of Structure & Order BlocksDescription:
This script is an all-in-one market structure tool designed for traders who follow price action, Smart Money Concepts (SMC), or institutional order flow. It combines Order Block detection , Break of Structure (BOS) , Internal Structure Shifts (CHoCH) , and a ZigZag swing framework to provide a clear and actionable view of market behavior.
Key Features:
Order Blocks (OB) :
-Detects Bullish (Green) and Bearish (Red) order blocks upon valid market structure shifts.
-Optional deletion of mitigated (touched) blocks to keep charts clean.
-Customizable block duration, fill color, and border color.
Break of Structure (BOS) :
-Marks BOS with horizontal dotted lines when price breaks previous swing highs/lows.
-Confirms new trends and structural shifts.
Internal Structure Shifts (CHoCH-like) :
-Detects early internal changes in direction before BOS.
-User-selectable logic: based on candle Open or High/Low.
-Plotted as small black triangle markers.
ZigZag Swings :
-Connects confirmed internal shifts with black zigzag lines.
-Visually simplifies trend structure and major swing points.
-Tracks last swing highs/lows for BOS validation.
Alerts :
-Bullish/Bearish Engulfments (OB signals)
-Internal Structure Shifts
-Bullish/Bearish Break of Structure
-OB Mitigation Events
Inputs & Settings :
-Show/Hide Bullish or Bearish Order Blocks
-Calculate internal shifts by: Open or High/Low
-Set order block fill and border colors
-Enable or disable automatic deletion of mitigated blocks
-Set duration for order block display
This tool is designed to support price action trading by visually mapping key structural changes and zones of interest directly on your chart. It is not intended to function as a standalone trading strategy , but rather as a supplementary tool to inform your own analysis and discretion.
Sentiment
SOPR with Z-Score Table📊 Glassnode SOPR with Dynamic Z-Score Table
ℹ️ Powered by Glassnode On-Chain Metrics
📈 Description:
This indicator visualizes the Spent Output Profit Ratio (SOPR) for major cryptocurrencies — Bitcoin, Ethereum, and Litecoin — along with a dynamically normalized Z-Score. SOPR is a key on-chain metric that reflects whether coins moved on-chain are being sold at a profit or a loss.
🔍 SOPR is calculated using Glassnode’s entity-adjusted SOPR feed, and a custom SMA is applied to smooth the signal. The normalized Z-Score helps identify market sentiment extremes by scaling SOPR relative to its historical context.
📊 Features:
Selectable cryptocurrency: Bitcoin, Ethereum, or Litecoin
SOPR smoothed by user-defined SMA (default: 10 periods)
Upper & lower bounds (±4%) for SOPR, shown as red/green lines
Background highlighting when SOPR moves outside normal range
Normalized Z-Score scaled between –2 and +2
Live Z-Score display in a compact top-right table
🧮 Calculations:
SOPR data is sourced daily from Glassnode:
Bitcoin: XTVCBTC_SOPR
Ethereum: XTVCETH_SOPR
Litecoin: XTVCLTC_SOPR
Z-Score is calculated as:
SMA of SOPR over zscore_length periods
Standard deviation of SOPR
Z-Score = (SOPR – mean) / standard deviation
Z-Score is clamped between –2 and +2 for visual consistency
🎯 Interpretation:
SOPR > 1 implies coins are sold in profit
SOPR < 1 suggests coins are sold at a loss
When SOPR is significantly above or below its recent range (e.g., +4% or –4%), it may signal overheating or capitulation
The Z-Score contextualizes how extreme the current SOPR is relative to history
📌 Notes:
Best viewed on daily charts
Works across selected assets (BTC, ETH, LTC)
Breakout Dailybreakout - with body - of yesterday's daily high or low.
Script created with ChatGPT.
###################################################################################
Rottura strutturale - con corpo - del massimo o minimo giornaliero di ieri.
Script creato con ChatGPT.
Goldman Sachs Risk Appetite ProxyRisk appetite indicators serve as barometers of market psychology, measuring investors' collective willingness to engage in risk-taking behavior. According to Mosley & Singer (2008), "cross-asset risk sentiment indicators provide valuable leading signals for market direction by capturing the underlying psychological state of market participants before it fully manifests in price action."
The GSRAI methodology aligns with modern portfolio theory, which emphasizes the importance of cross-asset correlations during different market regimes. As noted by Ang & Bekaert (2002), "asset correlations tend to increase during market stress, exhibiting asymmetric patterns that can be captured through multi-asset sentiment indicators."
Implementation Methodology
Component Selection
Our implementation follows the core framework outlined by Goldman Sachs research, focusing on four key components:
Credit Spreads (High Yield Credit Spread)
As noted by Duca et al. (2016), "credit spreads provide a market-based assessment of default risk and function as an effective barometer of economic uncertainty." Higher spreads generally indicate deteriorating risk appetite.
Volatility Measures (VIX)
Baker & Wurgler (2006) established that "implied volatility serves as a direct measure of market fear and uncertainty." The VIX, often called the "fear gauge," maintains an inverse relationship with risk appetite.
Equity/Bond Performance Ratio (SPY/IEF)
According to Connolly et al. (2005), "the relative performance of stocks versus bonds offers significant insight into market participants' risk preferences and flight-to-safety behavior."
Commodity Ratio (Oil/Gold)
Baur & McDermott (2010) demonstrated that "gold often functions as a safe haven during market turbulence, while oil typically performs better during risk-on environments, making their ratio an effective risk sentiment indicator."
Standardization Process
Each component undergoes z-score normalization to enable cross-asset comparisons, following the statistical approach advocated by Burdekin & Siklos (2012). The z-score transformation standardizes each variable by subtracting its mean and dividing by its standard deviation: Z = (X - μ) / σ
This approach allows for meaningful aggregation of different market signals regardless of their native scales or volatility characteristics.
Signal Integration
The four standardized components are equally weighted and combined to form a composite score. This democratic weighting approach is supported by Rapach et al. (2010), who found that "simple averaging often outperforms more complex weighting schemes in financial applications due to estimation error in the optimization process."
The final index is scaled to a 0-100 range, with:
Values above 70 indicating "Risk-On" market conditions
Values below 30 indicating "Risk-Off" market conditions
Values between 30-70 representing neutral risk sentiment
Limitations and Differences from Original Implementation
Proprietary Components
The original Goldman Sachs indicator incorporates additional proprietary elements not publicly disclosed. As Goldman Sachs Global Investment Research (2019) notes, "our comprehensive risk appetite framework incorporates proprietary positioning data and internal liquidity metrics that enhance predictive capability."
Technical Limitations
Pine Script v6 imposes certain constraints that prevent full replication:
Structural Limitations: Functions like plot, hline, and bgcolor must be defined in the global scope rather than conditionally, requiring workarounds for dynamic visualization.
Statistical Processing: Advanced statistical methods used in the original model, such as Kalman filtering or regime-switching models described by Ang & Timmermann (2012), cannot be fully implemented within Pine Script's constraints.
Data Availability: As noted by Kilian & Park (2009), "the quality and frequency of market data significantly impacts the effectiveness of sentiment indicators." Our implementation relies on publicly available data sources that may differ from Goldman Sachs' institutional data feeds.
Empirical Performance
While a formal backtest comparison with the original GSRAI is beyond the scope of this implementation, research by Froot & Ramadorai (2005) suggests that "publicly accessible proxies of proprietary sentiment indicators can capture a significant portion of their predictive power, particularly during major market turning points."
References
Ang, A., & Bekaert, G. (2002). "International Asset Allocation with Regime Shifts." Review of Financial Studies, 15(4), 1137-1187.
Ang, A., & Timmermann, A. (2012). "Regime Changes and Financial Markets." Annual Review of Financial Economics, 4(1), 313-337.
Baker, M., & Wurgler, J. (2006). "Investor Sentiment and the Cross-Section of Stock Returns." Journal of Finance, 61(4), 1645-1680.
Baur, D. G., & McDermott, T. K. (2010). "Is Gold a Safe Haven? International Evidence." Journal of Banking & Finance, 34(8), 1886-1898.
Burdekin, R. C., & Siklos, P. L. (2012). "Enter the Dragon: Interactions between Chinese, US and Asia-Pacific Equity Markets, 1995-2010." Pacific-Basin Finance Journal, 20(3), 521-541.
Connolly, R., Stivers, C., & Sun, L. (2005). "Stock Market Uncertainty and the Stock-Bond Return Relation." Journal of Financial and Quantitative Analysis, 40(1), 161-194.
Duca, M. L., Nicoletti, G., & Martinez, A. V. (2016). "Global Corporate Bond Issuance: What Role for US Quantitative Easing?" Journal of International Money and Finance, 60, 114-150.
Froot, K. A., & Ramadorai, T. (2005). "Currency Returns, Intrinsic Value, and Institutional-Investor Flows." Journal of Finance, 60(3), 1535-1566.
Goldman Sachs Global Investment Research (2019). "Risk Appetite Framework: A Practitioner's Guide."
Kilian, L., & Park, C. (2009). "The Impact of Oil Price Shocks on the U.S. Stock Market." International Economic Review, 50(4), 1267-1287.
Mosley, L., & Singer, D. A. (2008). "Taking Stock Seriously: Equity Market Performance, Government Policy, and Financial Globalization." International Studies Quarterly, 52(2), 405-425.
Oppenheimer, P. (2007). "A Framework for Financial Market Risk Appetite." Goldman Sachs Global Economics Paper.
Rapach, D. E., Strauss, J. K., & Zhou, G. (2010). "Out-of-Sample Equity Premium Prediction: Combination Forecasts and Links to the Real Economy." Review of Financial Studies, 23(2), 821-862.
AVWAP (Click & Label)An Anchored Volume Weighted Average Price indicator with increased functionality. Namely:
1. An option to choose the Input Source for your anchor.
2. "Point and Click" feature to anchor to your desired bar.
3. Fully customizable Label for the AVWAP line.
Used code from several creators to make this work.
Credit for the AVWAP logic and the input source option goes to: jamiespips' Anchored VWAP.
Credit for the "Point and Click" feature goes to: claypuzzle's Anchored VWAP Click.
For any other feature requests or improvements, just message me.
Enjoy, Traders!
Active Addresses Z-ScoreActive Addresses Z-Score Indicator
The Active Addresses Z-Score Indicator is a fundamental analysis tool designed to evaluate the relationship between Bitcoin network activity and its price movements over a specified period. This indicator aims to provide insights into whether the market is showing signs of increasing or decreasing interest in Bitcoin, based on its network usage and activity.
How to Read the Indicator
Orange Line (Price Z-Score):
This line represents the Z-Score of the price change over a defined period (e.g., 28 days). The Z-Score normalizes the price change by comparing it to the historical mean and standard deviation, essentially measuring how far the current price change is from the average.
A positive Z-Score indicates that the price change is above the historical average (a bullish signal), while a negative Z-Score means the price change is below the historical average (a bearish signal).
Gray Line (Active Addresses Z-Score):
This line represents the Z-Score of the change in active addresses over the same period. The Z-Score here normalizes the change in the number of active Bitcoin addresses by comparing it to historical data.
A positive Z-Score suggests that the number of active addresses is increasing more than usual, which can be a sign of increased market activity and potential interest in Bitcoin.
A negative Z-Score suggests that active addresses are decreasing more than usual, which may indicate reduced interest or usage of Bitcoin.
Upper and Lower Threshold Lines:
The upper and lower threshold lines (set by the user) act as Z-Score boundaries. If either the price Z-Score or the active address Z-Score exceeds the upper threshold, it can signal an overbought or overactive condition. Similarly, if the Z-Score falls below the lower threshold, it could indicate an oversold or underactive condition.
These thresholds are customizable by the user, allowing for flexible interpretation based on market conditions.
Indicator Calculation
Price Change Calculation:
The percentage change in the Bitcoin price over a specified lookback period (e.g., 28 days) is calculated as:
Price Change
=
Close
−
Close
Close
Price Change=
Close
Close−Close
This shows the relative price movement during the specified period.
Active Address Change Calculation:
Similarly, the percentage change in active addresses is calculated as:
Active Address Change
=
Active Addresses
−
Active Addresses
Active Addresses
Active Address Change=
Active Addresses
Active Addresses−Active Addresses
This shows the relative change in the number of active Bitcoin addresses over the same period.
Z-Score Calculation:
The Z-Score for both the price and active address changes is calculated as:
𝑍
=
X
−
𝜇
𝜎
Z=
σ
X−μ
Where:
X is the current change (price or active addresses),
μ (mu) is the mean (average) of the historical data over the lookback period,
σ (sigma) is the standard deviation of the historical data.
This Z-Score tells you how far the current value deviates from its historical average, normalized by the volatility (standard deviation).
Smoothing (Optional):
A simple moving average (SMA) is applied to smooth out the Z-Score values to reduce noise and provide a clearer trend.
What the Indicator Does
Signals of Bullish or Bearish Market Behavior:
The Z-Score of Price tells you how strong or weak the price movement is relative to its past performance.
The Z-Score of Active Addresses reveals whether more users are interacting with the Bitcoin network, which can be an indication of growing interest or market activity.
When both the price and active address Z-Scores are high, it may indicate a strong bull market, while low Z-Scores may point to a bear market or decreasing interest.
Overbought/Oversold Conditions:
The upper and lower threshold lines help you visualize when the Z-Scores for either price or active addresses have reached extreme values, signaling potential overbought or oversold conditions.
For example, if the Price Z-Score exceeds the upper threshold (e.g., +2), it might indicate that the price has risen too quickly, and a correction may be due. Conversely, if it falls below the lower threshold (e.g., -2), it may indicate a potential buying opportunity.
Important Note on Activity and Price Movements:
After Rapid Price Increases:
A sharp increase in Bitcoin’s price followed by a spike in active addresses can be interpreted as a bearish signal. High network activity after a rapid price surge might indicate that investors are taking profits or that speculative interest is peaking, potentially signaling an upcoming correction or reversal.
After Extreme Price Declines:
Conversely, high network activity after a significant price drop may indicate a bottoming signal. A surge in active addresses during a price decline could suggest increased buying interest and potential accumulation, signaling that the market may be finding support and a reversal may be imminent.
Customization and Flexibility
The lookback period (default: 28 days) can be adjusted to suit different trading strategies or time horizons.
The smoothing length (default: 7 periods) allows for smoothing the Z-Score, making it easier to detect longer-term trends and reduce noise.
The upper and lower threshold values are fully customizable to adjust the indicator’s sensitivity to market conditions.
Conclusion
The Active Addresses Z-Score Indicator combines network activity with price data to give you a deeper understanding of the Bitcoin market. By analyzing the relationship between price changes and active address changes, this indicator helps you assess whether the market is experiencing unusual activity or if Bitcoin is trending in an extreme overbought or oversold condition.
It is a powerful tool for fundamental analysis and can complement traditional technical indicators for a more comprehensive trading strategy.
Volume candle intraday 90% valid - with alertThe candle with the highest volume of the day and that creates a new daily high or low.
- Only usable on M15 timeframes;
- You can set a range of bars (from the beginning of the day) to ignore;
- "90% valid" means a candle with volume greater than 90% of the last candle with the highest volume of the day (in the script you can change the percentage of valid volumes to define the candle volume, replacing all the "90" with the desired percentage);
- Long volumes are compared to longs and short volumes are compared to shorts;
- Script created with ChatGpt;
The psychology behind this pattern is the following: on the daily high/low, a lot of volumes will enter in a short time, either by absorption: buyers or sellers enter en masse following the trend when it is too late; or by exhaustion: buyers or sellers who entered en masse and late have no more strength to continue pushing the price, they cause a volume peak to buy/sell as much as they could, then their enemies take over forming a high/low).
Happy trading everyone! :)
###################################################################################
La candela con il volume più alto della giornata e che crea un nuovo massimo o minimo giornaliero.
- Utilizzabile solo su timeframe M15;
- Si può impostare un range di barre(da inizio giornata) da ignorare;
- "90% valida" sta per candela con volume superiore del 90% dell'ultima candela con volume più alto della giornata(nello script si può cambiare percentuale di volumi validi per definire candela volume, sostituendo tutti i "90" con la percentuale desiderata);
- I volumi long vengono confrontati con i long e i volumi short con gli short;
- Script creato con ChatGpt;
La psicologia dietro questo pattern è la seguente: sul massimo/minimo giornaliero entreranno tanti volumi in breve tempo, sia per assorbimento: buyers o sellers entrano in massa seguendo il trend quando è troppo tardi; sia per esaurimento: buyers o sellers entrati in massa e in ritardo non hanno più forza per continuare a spingere il prezzo, causano un picco volumetrico per comprare/vendere più che potevano, quindi i loro nemici prendono il sopravvento formando un massimo/minimo).
Buon trading a tutti! :)
VWAP Indicator Channel | Multi Timeframe by Osbrah📊 Multi-Timeframe VWAP Indicator (Session / Weekly / Monthly)
This powerful indicator plots the Volume Weighted Average Price (VWAP) across multiple timeframes: intraday session, weekly, and monthly. It's designed to give traders a clear understanding of the market’s fair value over different horizons.
Key Features:
* Display Session VWAP (resets daily)
* Enable Weekly and Monthly VWAPs for broader market context
* Customize colors, styles, and visibility for each VWAP
* Toggle between standard VWAP or anchored to session opens
Use Cases:
* Identify value zones where price tends to gravitate
* Spot institutional levels of interest and potential reversal points
* Align entries with VWAP bounces or breaks
* Combine with EMAs or price action for high-probability setups
Perfect for day traders, swing traders, and institutional-style strategies, this VWAP tool helps you stay aligned with volume-based price dynamics across all market phases.
BPCO Z-ScoreBPCO Z-Score with Scaled Z-Value and Table
Description:
This custom indicator calculates the Z-Score of a specified financial instrument (using the closing price as a placeholder for the BPCO value), scales the Z-Score between -2 and +2 based on user-defined thresholds, and displays it in a table for easy reference.
The indicator uses a simple moving average (SMA) and standard deviation to calculate the original Z-Score, and then scales the Z-Score within a specified range (from -2 to +2) based on the upper and lower thresholds set by the user.
Additionally, the scaled Z-Score is displayed in a separate table on the right side of the chart, providing a clear, numerical value for users to track and interpret.
Key Features:
BPCO Z-Score: Calculates the Z-Score using a simple moving average and standard deviation over a user-defined window (default: 365 days). This provides a measure of how far the current price is from its historical average in terms of standard deviations.
Scaled Z-Score: The original Z-Score is then scaled between -2 and +2, based on the user-specified upper and lower thresholds. The thresholds default to 3.5 (upper) and -1.5 (lower), and can be adjusted as needed.
Threshold Bands: Horizontal lines are plotted on the chart to represent the upper and lower thresholds. These help visualize when the Z-Score crosses critical levels, indicating potential market overbought or oversold conditions.
Dynamic Table Display: The scaled Z-Score is shown in a dynamic table at the top-right of the chart, providing a convenient reference for traders. The table updates automatically as the Z-Score fluctuates.
How to Use:
Adjust Time Window: The "Z-Score Period (Days)" input allows you to adjust the time period used for calculating the moving average and standard deviation. By default, this is set to 365 days (1 year), but you can adjust this depending on your analysis needs.
Set Upper and Lower Thresholds: Use the "BPCO Upper Threshold" and "BPCO Lower Threshold" inputs to define the bands for your Z-Score. The default values are 3.5 for the upper band and -1.5 for the lower band, but you can adjust them based on your strategy.
Interpret the Z-Score: The Z-Score provides a standardized measure of how far the current price (or BPCO value) is from its historical mean, relative to the volatility. A value above the upper threshold (e.g., 3.5) may indicate overbought conditions, while a value below the lower threshold (e.g., -1.5) may indicate oversold conditions.
Use the Scaled Z-Score: The scaled Z-Score is calculated based on the original Z-Score, but it is constrained to a range between -2 and +2. When the BPCO value hits the upper threshold (3.5), the scaled Z-Score will be +2, and when it hits the lower threshold (-1.5), the scaled Z-Score will be -2. This gives you a clear, easy-to-read value to interpret the market's condition.
Data Sources:
BPCO Data: In this indicator, the BPCO value is represented by the closing price of the asset. The calculation of the Z-Score and scaled Z-Score is based on this price data, but you can modify it to incorporate other data streams as needed (e.g., specific economic indicators or custom metrics).
Indicator Calculation: The Z-Score is calculated using the following formulas:
Mean (SMA): A simple moving average of the BPCO (close price) over the selected period (365 days by default).
Standard Deviation (Std): The standard deviation of the BPCO (close price) over the same period.
Z-Score: (Current BPCO - Mean) / Standard Deviation
Scaled Z-Score: The Z-Score is normalized to fall within a specified range (from -2 to +2), based on the upper and lower threshold inputs.
Important Notes:
Customization: The indicator allows users to adjust the period (window) for calculating the Z-Score, as well as the upper and lower thresholds to suit different timeframes and trading strategies.
Visual Aids: Horizontal lines are drawn to represent the upper and lower threshold levels, making it easy to visualize when the Z-Score crosses critical levels.
Limitations: This indicator relies on historical price data (or BPCO) and assumes that the standard deviation and mean are representative of future price behavior. It does not account for potential market shifts or extreme events that may fall outside historical norms.
TrueDelta Candles📖 Description:
TrueDelta Candles is a precision tool for traders who want deeper insight into market sentiment through real-time volume delta analysis. Rather than using traditional volume bars, this indicator colors each chart candle based on the net volume delta—the difference between buying and selling volume—fetched from a lower timeframe.
🚀 Key Features:
🎯 Real Candle Coloring: Colors actual price candles based on delta volume—green (buying pressure), red (selling pressure).
⏱️ Multi-Timeframe Volume Analysis: Automatically selects the appropriate lower timeframe for better delta approximation, or lets you set a custom one.
🔬 Order Flow Insight: Visualizes the tug-of-war between buyers and sellers within each candle.
⚡ Lightweight & Non-Intrusive: No clutter—just clean color overlays on your chart candles.
🔄 Live Updating: Responds instantly as new data arrives.
🧠 Ideal For:
Intraday and scalping strategies.
Momentum and breakout traders.
Order flow enthusiasts looking for a visual edge.
🛠️ How It Works:
Behind the scenes, the script uses ta.requestVolumeDelta() to retrieve granular buy/sell volume data from a lower timeframe. The net delta volume then determines whether the candle is colored green (positive delta) or red (negative delta). This makes it easy to spot when market pressure aligns or diverges from price action.
⚙️ Settings:
Use Custom Timeframe: Manually select the lower timeframe used for delta calculation (e.g., "1", "5").
Default Auto Mode: Automatically adapts to your current chart resolution for optimal data balance.
If you're serious about understanding the real dynamics behind every candle, TrueDelta Candles adds an essential layer of volume-based context that price alone can't offer.
BTC Mining Income Oscillator Z-ScoreBTC Mining Income Oscillator (Z-Score)
Overview
The BTC Mining Income Oscillator (Z-Score) is a custom technical indicator that analyzes Bitcoin mining income to help traders identify overbought and oversold conditions. The indicator uses a Z-Score to track deviations in mining income, highlighting periods of high or low mining profitability.
This indicator is made up of:
Z-Score Line (Blue): Measures how far the current mining income deviates from its historical mean.
Mining Income Oscillator (Orange): A scaled value of mining income that oscillates within a specific range to indicate overbought and oversold conditions.
How the Indicator Works
1. Mining Income Calculation
The BTC Mining Income is determined using two main factors:
Block Reward: The number of BTC miners earn for each block mined (currently 3.125 BTC, adjustable in settings).
Transaction Fees: The average transaction fees per block (default is 0.3 BTC).
Blocks per Day: The number of blocks mined per day (default is 144).
The daily mining income in BTC is calculated as:
Mining Income
=
(
Block Reward
+
Transaction Fees
)
×
Blocks per Day
Mining Income=(Block Reward+Transaction Fees)×Blocks per Day
This value is then converted to USD by multiplying it by the current Bitcoin price.
2. Z-Score Calculation
The Z-Score measures how far the current mining income deviates from its mean over a set period (default is 90 days). The Z-Score helps identify when mining income is unusually high or low:
A high Z-Score indicates that the mining income is significantly above the historical mean, signaling overbought conditions.
A low Z-Score indicates that the mining income is significantly below the historical mean, signaling oversold conditions.
The Z-Score is calculated as follows:
Z-Score
=
(
Current Mining Income
−
Mean Income
)
Standard Deviation
Z-Score=
Standard Deviation
(Current Mining Income−Mean Income)
The result is then smoothed over a period (default is 5) to reduce noise and provide a more stable value.
3. Mining Income Oscillator
The mining income is scaled to oscillate between +20 and +90. This oscillation makes it easy to track overbought and oversold conditions in the market:
Values between 85 and 90 indicate overbought conditions (high mining profitability).
Values between 20 and 22 indicate oversold conditions (low mining profitability).
Values between 22 and 85 indicate neutral conditions, where mining profitability is normal.
The mining income oscillator helps traders spot extreme conditions (overbought or oversold) in mining profitability.
How to Read the Indicator
1. Z-Score Line (Blue)
The Z-Score represents how far current mining income is from the historical average.
Above +2: The mining income is unusually high, indicating an overbought market.
Below -2: The mining income is unusually low, indicating an oversold market.
Between -2 and +2: This range is neutral, where the mining income is within the average historical range.
2. Mining Income Oscillator (Orange)
The Mining Income Oscillator is scaled between 20 and 90.
85–90: Overbought conditions, indicating high mining profitability.
20–22: Oversold conditions, indicating low mining profitability.
22–85: Neutral conditions, indicating moderate mining profitability.
3. Background Shading
Red Shading (85–90): Indicates overbought conditions (mining income is unusually high).
Green Shading (20–22): Indicates oversold conditions (mining income is unusually low).
The shaded regions provide a visual guide to spot periods when the market is overbought or oversold.
4. Key Horizontal Lines
0 Line: Represents the neutral level for the Z-Score, where the mining income is at the historical mean.
+2 and -2 Lines: Indicate overbought and oversold conditions for the Z-Score.
90 and 20 Lines: Indicate the upper and lower bounds for the mining income oscillator.
Where the Data Comes From
Bitcoin Price: The current Bitcoin price is pulled directly from the chart.
Block Reward and Transaction Fees: These values are set manually by the user or can be updated dynamically.
Mining Income: Calculated based on the block reward, transaction fees, and current Bitcoin price.
Z-Score and Oscillator Calculations: Both are calculated based on mining income in USD over a defined look-back period.
Best Timeframe for This Indicator
This indicator is designed to work best on the 2-day chart (2D) timeframe. On the 2-day chart, the mining income data, Z-Score, and the oscillator are less sensitive to noise and short-term volatility, providing more reliable signals. While it can be used on other timeframes, the 2-day chart offers the clearest and most stable analysis.
Golden DNA Tracker v1.0
//@version=5
indicator("Golden DNA Tracker v1.0", overlay=true)
// === إعدادات ===
rsiPeriod = input.int(14, "RSI Period")
dnaLookback = input.int(200, "DNA Scan Range")
similarityThreshold = input.float(0.85, "Pattern Match Threshold (0-1)")
showSignals = input.bool(true, "Show DNA BUY/SELL Markers")
// === المؤشرات المساعدة (RSI وسلوك السعر) ===
rsi = ta.rsi(close, rsiPeriod)
priceChange = close / close - 1 // نسبة التغير خلال آخر 5 شموع
// === تكرار الأنماط (البصمة الوراثية) ===
// نحاول إيجاد شموع سابقة لها نفس النسبة والتصرف
dnaBuy = false
dnaSell = false
for i = 10 to dnaLookback by 1
pastRsi = rsi
pastChange = close / close - 1
rsiMatch = math.abs(rsi - pastRsi) / pastRsi < (1 - similarityThreshold)
changeMatch = math.abs(priceChange - pastChange) / math.abs(pastChange) < (1 - similarityThreshold)
if rsiMatch and changeMatch
dnaBuy := priceChange > 0 and rsi < 50
dnaSell := priceChange < 0 and rsi > 50
break
// === رسم الإشارات ===
plotshape(showSignals and dnaBuy, location=location.belowbar, style=shape.labelup, color=color.green, size=size.small, text="DNA BUY")
plotshape(showSignals and dnaSell, location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="DNA SELL")
// === تنبيهات ===
alertcondition(dnaBuy, title="DNA BUY Signal", message="إشارة شراء بناءً على نمط متكرر")
alertcondition(dnaSell, title="DNA SELL Signal", message="إشارة بيع بناءً على نمط متكرر")
Golden Unified Entry Pro v2.7 – Balanced Dynamic Edition
//@version=6
indicator("Golden Unified Entry Pro v2.7 – Balanced Dynamic Edition", overlay=true)
// === Inputs ===
showZones = input.bool(true, "Show Golden Zones")
showWave = input.bool(true, "Show Liquidity Wave")
showLabels = input.bool(true, "Show Entry Signals (Buy/Sell/Watch)")
// === Net Liquidity & RSI ===
netLiquidity = close - open
liquidityStrength = ta.ema(netLiquidity, 5)
rsi = ta.rsi(close, 14)
rsiBuy = rsi > 50
rsiSell = rsi < 50
// === Dynamic Swing High/Low Based on Liquidity ===
var float swingHigh = na
var float swingLow = na
if liquidityStrength > 0
swingLow := low
if liquidityStrength < 0
swingHigh := high
// === Golden Zones ===
fib618 = swingHigh - (swingHigh - swingLow) * 0.618
fib786 = swingHigh - (swingHigh - swingLow) * 0.786
fib618s = swingLow + (swingHigh - swingLow) * 0.618
fib786s = swingLow + (swingHigh - swingLow) * 0.786
buyZone = close >= fib786 and close <= fib618
sellZone = close <= fib786s and close >= fib618s
// === Entry Conditions ===
strongBuy = buyZone and liquidityStrength > 0 and rsiBuy
watchBuy = buyZone and (liquidityStrength > 0 or rsiBuy)
strongSell = sellZone and liquidityStrength < 0 and rsiSell
watchSell = sellZone and (liquidityStrength < 0 or rsiSell)
// === Dynamic Box ===
var box zoneBox = na
if showZones
if strongBuy or watchBuy
box.set_lefttop(zoneBox, bar_index, fib618)
box.set_rightbottom(zoneBox, bar_index + 3, fib786)
box.set_border_color(zoneBox, color.yellow)
box.set_bgcolor(zoneBox, color.new(color.yellow, 85))
else if strongSell or watchSell
box.set_lefttop(zoneBox, bar_index, fib786s)
box.set_rightbottom(zoneBox, bar_index + 3, fib618s)
box.set_border_color(zoneBox, color.red)
box.set_bgcolor(zoneBox, color.new(color.red, 85))
else
box.delete(zoneBox)
zoneBox := na
// === Labels ===
var label signalLabel = na
if showLabels
if strongBuy
label.set_xy(signalLabel, bar_index, high)
label.set_text(signalLabel, "Strong Buy")
label.set_style(signalLabel, label.style_label_up)
label.set_color(signalLabel, color.green)
label.set_textcolor(signalLabel, color.white)
else if strongSell
label.set_xy(signalLabel, bar_index, low)
label.set_text(signalLabel, "Strong Sell")
label.set_style(signalLabel, label.style_label_down)
label.set_color(signalLabel, color.red)
label.set_textcolor(signalLabel, color.white)
else if watchBuy
label.set_xy(signalLabel, bar_index, high)
label.set_text(signalLabel, "Buy Watch")
label.set_style(signalLabel, label.style_label_up)
label.set_color(signalLabel, color.new(color.green, 70))
label.set_textcolor(signalLabel, color.white)
else if watchSell
label.set_xy(signalLabel, bar_index, low)
label.set_text(signalLabel, "Sell Watch")
label.set_style(signalLabel, label.style_label_down)
label.set_color(signalLabel, color.new(color.red, 70))
label.set_textcolor(signalLabel, color.white)
else
label.delete(signalLabel)
signalLabel := na
// === Dynamic Wave ===
var line waveLine = na
if showWave
if liquidityStrength > 0 and rsiBuy
line.set_xy1(waveLine, bar_index , low )
line.set_xy2(waveLine, bar_index, low)
line.set_color(waveLine, color.green)
line.set_width(waveLine, 2)
else if liquidityStrength < 0 and rsiSell
line.set_xy1(waveLine, bar_index , high )
line.set_xy2(waveLine, bar_index, high)
line.set_color(waveLine, color.red)
line.set_width(waveLine, 2)
else
line.delete(waveLine)
waveLine := na
// Dummy plot for TradingView compatibility
plot(na, title="Invisible Plot")
Golden Unified Entry Pro v1.3
//@version=5
indicator("Golden Unified Entry Pro v1.3", overlay=true)
// === Inputs ===
rsiPeriod = input.int(14, title="RSI Period")
liquidityThreshold = input.float(1.5, title="Liquidity Threshold")
zoneTransparency = input.int(85, title="Zone Transparency", minval=0, maxval=100)
showBackground = input.bool(true, title="Show Liquidity Background")
showLiquidityMarkers = input.bool(false, title="Show Liquidity Text")
showWatchSignalsOnly = input.bool(false, title="Show Watchlist Signals Only")
showCallPutLabels = input.bool(true, title="Show CALL/PUT Labels")
// === RSI & Liquidity ===
rsi = ta.rsi(close, rsiPeriod)
netLiquidity = volume * (close - open)
liquidityColor = netLiquidity > liquidityThreshold ? color.new(color.green, 85) :
netLiquidity < -liquidityThreshold ? color.new(color.red, 85) : color.new(color.gray, 90)
bgcolor(showBackground ? liquidityColor : na)
// === Entry/Exit Logic ===
longCond = ta.crossover(rsi, 50) and netLiquidity > liquidityThreshold
shortCond = ta.crossunder(rsi, 50) and netLiquidity < -liquidityThreshold
watchLong = netLiquidity > 0 and rsi > 45
watchShort = netLiquidity < 0 and rsi < 55
plotshape(not showWatchSignalsOnly and longCond, title="Buy", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(not showWatchSignalsOnly and shortCond, title="Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(showWatchSignalsOnly and watchLong, title="Watch Buy", location=location.belowbar, color=color.teal, style=shape.circle, size=size.tiny)
plotshape(showWatchSignalsOnly and watchShort, title="Watch Sell", location=location.abovebar, color=color.maroon, style=shape.circle, size=size.tiny)
// === Optional Liquidity Labels ===
if showLiquidityMarkers
label.new(bar_index, high, text=netLiquidity > liquidityThreshold ? "IN" :
netLiquidity < -liquidityThreshold ? "OUT" : "",
style=label.style_label_left, textcolor=color.white, size=size.tiny,
color=netLiquidity > liquidityThreshold ? color.green :
netLiquidity < -liquidityThreshold ? color.red : na)
// === Golden Zone Drawing ===
pivotHigh = ta.pivothigh(high, 5, 5)
pivotLow = ta.pivotlow(low, 5, 5)
var float swingHigh = na
var float swingLow = na
var int swingBar = na
var bool isBullish = true
if not na(pivotHigh)
swingHigh := pivotHigh
swingBar := bar_index
isBullish := false
if not na(pivotLow)
swingLow := pivotLow
swingBar := bar_index
isBullish := true
var float fibFrom = na
var float fibTo = na
var float fib61 = na
var float fib78 = na
if not na(swingHigh) and not na(swingLow)
fibFrom := isBullish ? swingLow : swingHigh
fibTo := isBullish ? swingHigh : swingLow
fib61 := fibFrom + (fibTo - fibFrom) * 0.618
fib78 := fibFrom + (fibTo - fibFrom) * 0.786
zoneColor = isBullish ? color.new(color.rgb(255, 215, 0), zoneTransparency) : color.new(color.rgb(169, 169, 169), zoneTransparency)
drawZone = not na(fib61) and not na(fib78)
var box goldenZone = na
if drawZone
box.delete(goldenZone)
goldenZone := box.new(swingBar, fib78, bar_index, fib61, bgcolor=zoneColor, border_color=color.new(color.black, 90))
// === Filtered CALL/PUT Labels ===
isCall = rsi > 50 and netLiquidity > liquidityThreshold and close > open and ta.crossover(rsi, 50)
isPut = rsi < 50 and netLiquidity < -liquidityThreshold and close < open and ta.crossunder(rsi, 50)
if showCallPutLabels
if isCall
label.new(bar_index, low, text="CALL", style=label.style_label_up, textcolor=color.white, color=color.green, size=size.small)
if isPut
label.new(bar_index, high, text="PUT", style=label.style_label_down, textcolor=color.white, color=color.red, size=size.small)
CoinWise - OICOINWISE OPEN INTEREST
Commitment of market participants, visualize open interest positions on multiple exchanges.
🔹 What Is It? Why Does It Matter?
The CoinWise Open Interest indicator provides a live measurement of how many derivative contracts futures or options are still active and unsettled in the market.
Unlike volume, which counts how many trades occur within a session, Open Interest reveals how much positioning remains open at any given moment.
This matters because it shows the true conviction of traders:
Rising Open Interest: Signals new money entering the market growing commitment.
Falling Open Interest: Often signals unwinding closed trades, fading momentum.
Strong price move without Open Interest: could mean support might be a fakeout or an exhaustion move.
Understanding Open Interest helps you gauge whether market trends are fueled by fresh participation, fading away, or at risk of becoming overcrowded.
This indicator aggregates Open Interest data across multiple major exchanges including Bitfinex, Binance, Kraken, and BitMEX providing a broader and more reliable positioning view.
🔹 Core Components
The CoinWise Open Interest indicator visualizes live positioning pressure through two selectable plot types:
Candlestick Mode:
Plots Open, High, Low, and Close values of Open Interest per bar, showing the full range of positioning movement within a period.
Line Mode:
Simplifies the view to only track the closing Open Interest per candle ideal for traders who prefer clean trend interpretation.
Additionally, each candle can optionally display a label showing the range (High minus Low) net Open Interest amount for that bar, offering subtle insight into volatility behind the scenes.
🔹 Customization and Settings
The CoinWise Open Interest indicator offers a clean, no-clutter configuration:
Plot Type Selection:
Switch between Candlestick and Line visual styles depending on your preference for detail versus simplicity.
Color Controls:
Customize Up Color and Down Color to match your charting theme or highlight OI directionality.
Status Line Display:
Choose to show live Open Interest values in the chart’s status line for quick reference.
The design philosophy is lightweight: no manual exchange toggles, no excess options, just pure, real-time commitment tracking.
🔹 Practical Application
Use Open Interest alongside the Longs & Shorts indicator and price action to decode the hidden behavior of traders:
Rising Price + Rising OI: Fresh money entering. Bullish confirmation.
Falling Price + Rising OI: New shorts entering aggressively. Bearish momentum building.
Price Movement + Falling OI: Positions closing suggesting weakness, fakeouts, or end-of-trend behavior.
Monitoring Open Interest adds a second dimension to your price analysis letting you see commitment behind the candles rather than reacting to the surface alone.
When used correctly, it becomes a powerful filter for trend confirmation, fakeout detection, and sentiment timing across all major crypto and futures markets.
CoinWise - RTH/ETH GapCOINWISE RTH / ETH GAPS
Track Session Gaps. Spot Reversions. Trade the Magnet.
🔹 What Is It? Why Does It Matter?
The CoinWise RTH, ETH Gaps indicator automatically detects and tracks gaps formed between Regular Trading Hours (RTH) and Electronic Trading Hours (ETH). These gaps are critical reference points for traders because they represent price imbalances often acting as magnets that pull price back for fills, or serving as structural boundaries that trigger trend continuations or reversals.
Understanding how and when these gaps form gives traders a major tactical edge, especially in highly reactive futures markets like the CME or S&P 500 Index. Gaps reveal where liquidity is thin, where emotional moves happened, and where high-probability setups tend to cluster.
🔹 Core Components
The CoinWise RTH/ETH Gaps indicator detects and displays gaps that occur between sessions whether they form overnight, during pre-market, or between day sessions.
RTH Gaps:
Gaps formed between the close of Regular Trading Hours (typically 4 PM New York Time) and the next day’s open. They reflect overnight sentiment shifts and often act as magnets during the following session.
ETH Gaps:
Gaps formed during Electronic Trading Hours, capturing liquidity voids and off-session reactions when major markets are closed.
Gap Mitigation:
Traders can manage visual clutter by automatically removing fully filled gaps or adjusting their color and transparency. Filled gaps remain visible as soft historical footprints without dominating the chart.
🔹 Enhanced Features
The CoinWise RTH/ETH Gaps indicator includes several advanced visualization enhancements:
Gap Mitigation System:
Automatically manage filled gaps by removing them or adjusting their transparency once mitigated, keeping the chart focused on active imbalances.
Dynamic Fill Labels:
Display real-time percentage labels showing how much of each gap has been filled, helping traders gauge momentum and hesitation in live markets.
Session Isolation Mode:
Filter the chart to show only RTH gaps, ETH gaps, or a blended view, depending on which market dynamics are most relevant to your strategy.
Visual Customization Engine:
Independently adjust colors for RTH gaps, ETH gaps, and fill labels, allowing traders to visually separate different session behaviors at a glance.
🔹 Customization and Settings
The indicator is highly flexible, with settings to fine-tune how and when gaps are shown:
Set a Gap Fill Percentage to track partial or full closes.
Hide minor gaps by defining a minimum Gap Size Threshold .
Use the Start Date Filter to show gaps only from a specific date onward.
Choose the Asset Type you’re focusing on: RTH, ETH, or both.
Manage how filled gaps are handled: either remove them , or keep them visible with adjusted color and transparency .
Toggle the % Fill Label on or off to control how much detail is displayed on the chart.
And personalize the visual style with separate color settings for ETH gaps, RTH gaps, and fill labels.
🔹 Advanced Features
Beyond basic gap tracking, CoinWise RTH/ETH Gaps offers deeper tactical utilities:
Partial Fill Detection:
Identify hesitation zones where price partially fills a gap but fails to close fully, signaling indecision or the potential for violent reversals.
Gap Fill Trigger Points:
Configure alerts or analysis points based on specific fill percentages such as 50%, 75%, or full closures enhancing timing precision for reversion or breakout strategies.
Historical Backfiltering:
Limit displayed gaps to specific historical periods using the Start Date Filter, allowing focus on key market events, structural shifts, or regime changes.
Noise Gap Suppression:
Eliminate insignificant gaps from view by setting a Minimum Gap Size Threshold, ensuring only meaningful gaps remain highlighted during analysis.
🔹 Practical Application
Use the CoinWise RTH/ETH Gaps indicator to monitor unfilled gaps that act as hidden magnets for price.
Unfilled gaps:
Often serve as targets for price retracements, offering precise trade setups where institutional flows seek to rebalance.
Partially filled gaps:
Signal hesitation, helping traders anticipate whether price continuation or reversal is more likely.
Fully filled gaps:
Restore equilibrium, often triggering momentum shifts or breakout accelerations once the imbalance is cleared.
Gaps also act as natural support and resistance zones, where trapped traders and liquidity pockets create volatility.Especially in futures markets like the CME or crypto derivatives, understanding session-based gaps gives traders the ability to time reversion plays, identify hidden inflection points, and stay aligned with true market intent not surface noise.
CoinWise RTH/ETH Gaps helps you see these structural footprints before the rest of the market reacts.
💰 BTC GAMMA LEVELS 💰Indicator created to plot the Call Wall, Put Wall, GamaFlip, Call Wall ODTE and Put Wall ODTE levels.
Created so that the user can view the OTDE levels on the futures chart and make a decision regarding the possible movement.
The data is captured by a bot dedicated to calculating this data outside of the indicator.
Unfortunately, TradingView cannot calculate this data, thus requiring a bot for this.
Funding Rate + Z-Score SkynetVisualize funding-rate dynamics across major BTC markets and gauge their extremeness in historical context.
What it Shows
• Smoothed Funding Rate (columns):
• Calculates the average TWAP of perpetual futures across selected exchanges.
• Smooths the series with a user-defined moving average ("MA Length").
• Plotted as a histogram — green for positive (bullish), red for negative (bearish) funding.
• Z-Score of Funding Rate (lines):
• Measures how many standard deviations the current smoothed funding deviates from its
historical mean ("Z-Score Length").
• Yellow = real-time Z-Score. White lines = ±1σ and ±2σ thresholds.
• Gray baseline = zero, the long-term average.
Why it Matters
• Funding rates reflect trader positioning in perpetual futures — who’s paying whom to hold
exposure.
• High funding = overleveraged longs. Negative funding = aggressive shorts.
• Z-Scores contextualize those extremes, helping spot when sentiment may be overcooked.
How to Use
• Select source: Choose how funding is calculated (e.g., ohlc4 by default).
• Toggle exchanges: Include or exclude Binance, Bybit, Kraken, OKX, BitMEX, Coinbase.
• Adjust smoothing: MA Length smooths the funding data; set to 1 for raw values.
• Tune sensitivity: Modify Z-Score Length to control how far back normalization looks.
By combining a smoothed, aggregated view of funding rates with Z-score normalization, this tool helps you detect periods of speculative imbalance — ideal for mean-reversion strategies, sentiment tracking, or timing entries/exits around crowd behavior.
Funding Rate + Z-Score SkynetVisualize funding-rate dynamics across major BTC markets and gauge their extremeness in historical context.
What It Shows
• Smoothed Funding Rate (columns):
• Calculates the average TWAP of perpetual futures across selected exchanges.
• Smooths the series with a user-defined moving average ("MA Length").
• Plotted as a histogram — green for positive (bullish), red for negative (bearish) funding.
• Z-Score of Funding Rate (lines):
• Measures how many standard deviations the current smoothed funding deviates from its
historical mean ("Z-Score Length").
• Yellow = real-time Z-Score. White lines = ±1σ and ±2σ thresholds.
• Gray baseline = zero, the long-term average.
Why it Matters
• Funding rates reflect trader positioning in perpetual futures — who’s paying whom to hold
exposure.
• High funding = overleveraged longs. Negative funding = aggressive shorts.
• Z-Scores contextualize those extremes, helping spot when sentiment may be overcooked.
How to Use
• Select source: Choose how funding is calculated (e.g., ohlc4 by default).
• Toggle exchanges: Include or exclude Binance, Bybit, Kraken, OKX, BitMEX, Coinbase.
• Adjust smoothing: MA Length smooths the funding data; set to 1 for raw values.
• Tune sensitivity: Modify Z-Score Length to control how far back normalization looks.
By combining a smoothed, aggregated view of funding rates with Z-score normalization, this tool helps you detect periods of speculative imbalance — ideal for mean-reversion strategies, sentiment tracking, or timing entries/exits around crowd behavior.
Have fun
Funding Rate + Z-Score SkynetVisualize funding‐rate dynamics across major BTC markets and gauge their extremeness in context.
What it shows,
Smoothed Funding Rate (columns):
• Calculates the difference between the average TWAP of perpetual futures across your selected exchanges.
• Smooths that series with a simple moving average (customizable via “MA Length”).
• Plotted as a histogram (scaled for visibility), colored green when positive (bullish funding) and red when negative (bearish funding).
Z-Score of Funding Rate (lines):
• Computes how many standard deviations the current smoothed funding is from its moving average over the last “Z-Score Length” bars.
• The yellow line is the real-time Z-Score; white lines at ± 1 σ and ± 2 σ provide quick visual thresholds.
• A gray horizontal line at zero marks the long‐term average.
Why it matters
Funding rate reflects how traders in perpetual futures pay or receive funding to keep contract prices tethered to spot. Extreme values (high positive or negative funding) often precede short‐term reversals as one side of the market becomes over‐leveraged.
Z-Score helps you see when funding has stretched beyond its normal range—e.g., Z > 2 could signal overheated long positions, while Z < –2 points to extreme bearish funding.
How to use it
Select your data source: choose the price used to compute the funding rate (default is ohlc4).
Toggle exchanges on/off: include Binance, Bybit, Kraken, OKX, BitMEX, Coinbase for perp averages.
Adjust smoothing: set “MA Length” to smooth more or less (set to 1 to disable smoothing entirely).
Fine-tune Z-Score sensitivity: change “Z-Score Length” to shorten or lengthen the lookback window for volatility normalization.
By combining the smoothed, annualized funding rate with its statistically normalized Z-Score, this tool helps you both monitor ongoing funding trends and spot when those trends have gone unusually far. Use it as part of your broader toolkit for timing entries, exits, or simply staying aware of market leverage conditions.
Multi-TF BOS/CHoCH Detectori am abhijit i am devloping this structure maping indicator with alert .
on dated may 12-5-2025. disclaimer-it is only for educational purpose and not giving surety of success use it by your own risk