S&P 500 Top 25 - EPS AnalysisEarnings Surprise Analysis Framework for S&P 500 Components: A Technical Implementation
The "S&P 500 Top 25 - EPS Analysis" indicator represents a sophisticated technical implementation designed to analyze earnings surprises among major market constituents. Earnings surprises, defined as the deviation between actual reported earnings per share (EPS) and analyst estimates, have been consistently documented as significant market-moving events with substantial implications for price discovery and asset valuation (Ball and Brown, 1968; Livnat and Mendenhall, 2006). This implementation provides a comprehensive framework for quantifying and visualizing these deviations across multiple timeframes.
The methodology employs a parameterized approach that allows for dynamic analysis of up to 25 top market capitalization components of the S&P 500 index. As noted by Bartov et al. (2002), large-cap stocks typically demonstrate different earnings response coefficients compared to their smaller counterparts, justifying the focus on market leaders.
The technical infrastructure leverages the TradingView Pine Script language (version 6) to construct a real-time analytical framework that processes both actual and estimated EPS data through the platform's request.earnings() function, consistent with approaches described by Pine (2022) in financial indicator development documentation.
At its core, the indicator calculates three primary metrics: actual EPS, estimated EPS, and earnings surprise (both absolute and percentage values). This calculation methodology aligns with standardized approaches in financial literature (Skinner and Sloan, 2002; Ke and Yu, 2006), where percentage surprise is computed as: (Actual EPS - Estimated EPS) / |Estimated EPS| × 100. The implementation rigorously handles potential division-by-zero scenarios and missing data points through conditional logic gates, ensuring robust performance across varying market conditions.
The visual representation system employs a multi-layered approach consistent with best practices in financial data visualization (Few, 2009; Tufte, 2001).
The indicator presents time-series plots of the four key metrics (actual EPS, estimated EPS, absolute surprise, and percentage surprise) with customizable color-coding that defaults to industry-standard conventions: green for actual figures, blue for estimates, red for absolute surprises, and orange for percentage deviations. As demonstrated by Padilla et al. (2018), appropriate color mapping significantly enhances the interpretability of financial data visualizations, particularly for identifying anomalies and trends.
The implementation includes an advanced background coloring system that highlights periods of significant earnings surprises (exceeding ±3%), a threshold identified by Kinney et al. (2002) as statistically significant for market reactions.
Additionally, the indicator features a dynamic information panel displaying current values, historical maximums and minimums, and sample counts, providing important context for statistical validity assessment.
From an architectural perspective, the implementation employs a modular design that separates data acquisition, processing, and visualization components. This separation of concerns facilitates maintenance and extensibility, aligning with software engineering best practices for financial applications (Johnson et al., 2020).
The indicator processes individual ticker data independently before aggregating results, mitigating potential issues with missing or irregular data reports.
Applications of this indicator extend beyond merely observational analysis. As demonstrated by Chan et al. (1996) and more recently by Chordia and Shivakumar (2006), earnings surprises can be successfully incorporated into systematic trading strategies. The indicator's ability to track surprise percentages across multiple companies simultaneously provides a foundation for sector-wide analysis and potentially improves portfolio management during earnings seasons, when market volatility typically increases (Patell and Wolfson, 1984).
References:
Ball, R., & Brown, P. (1968). An empirical evaluation of accounting income numbers. Journal of Accounting Research, 6(2), 159-178.
Bartov, E., Givoly, D., & Hayn, C. (2002). The rewards to meeting or beating earnings expectations. Journal of Accounting and Economics, 33(2), 173-204.
Bernard, V. L., & Thomas, J. K. (1989). Post-earnings-announcement drift: Delayed price response or risk premium? Journal of Accounting Research, 27, 1-36.
Chan, L. K., Jegadeesh, N., & Lakonishok, J. (1996). Momentum strategies. The Journal of Finance, 51(5), 1681-1713.
Chordia, T., & Shivakumar, L. (2006). Earnings and price momentum. Journal of Financial Economics, 80(3), 627-656.
Few, S. (2009). Now you see it: Simple visualization techniques for quantitative analysis. Analytics Press.
Gu, S., Kelly, B., & Xiu, D. (2020). Empirical asset pricing via machine learning. The Review of Financial Studies, 33(5), 2223-2273.
Johnson, J. A., Scharfstein, B. S., & Cook, R. G. (2020). Financial software development: Best practices and architectures. Wiley Finance.
Ke, B., & Yu, Y. (2006). The effect of issuing biased earnings forecasts on analysts' access to management and survival. Journal of Accounting Research, 44(5), 965-999.
Kinney, W., Burgstahler, D., & Martin, R. (2002). Earnings surprise "materiality" as measured by stock returns. Journal of Accounting Research, 40(5), 1297-1329.
Livnat, J., & Mendenhall, R. R. (2006). Comparing the post-earnings announcement drift for surprises calculated from analyst and time series forecasts. Journal of Accounting Research, 44(1), 177-205.
Padilla, L., Kay, M., & Hullman, J. (2018). Uncertainty visualization. Handbook of Human-Computer Interaction.
Patell, J. M., & Wolfson, M. A. (1984). The intraday speed of adjustment of stock prices to earnings and dividend announcements. Journal of Financial Economics, 13(2), 223-252.
Skinner, D. J., & Sloan, R. G. (2002). Earnings surprises, growth expectations, and stock returns or don't let an earnings torpedo sink your portfolio. Review of Accounting Studies, 7(2-3), 289-312.
Tufte, E. R. (2001). The visual display of quantitative information (Vol. 2). Graphics Press.
Análise Fundamentalista
CVDD + Terminal Price Indicator + Z-SCOREThis custom indicator is designed to help identify major overvaluation and undervaluation zones in Bitcoin's market cycles by analyzing price behavior relative to long-term on-chain benchmarks.
It leverages two well-known valuation models — CVDD (Cumulative Value Days Destroyed) and Terminal Price — to define a dynamic valuation range that adapts over time. These reference points are combined with a custom Z-score framework to evaluate how extended price is compared to long-term value zones.
The result is a normalized oscillator that highlights extremes in market sentiment, ranging from –3 (potential deep value) to +3 (potential overheated conditions), with a gradient color scale for quick visual interpretation.
This tool is especially useful for long-term investors and macro analysts seeking signals of potential market tops and bottoms based on deep on-chain behavior — rather than short-term technicals.
Currency Basket vs USD - Trend & RSI Breakdown📊 Indicator Methodology
Currency Basket vs USD – Trend & Valuation Breakdown
💱 Strategy of Rotating Between USD and the Currency Basket
💰 100% cash strategy – always ready for market crashes.
🟢 Hold USD if the trend indicator shows USD is trending.
🔵 Hold the currency basket (EUR, PLN, CZK, CHF, GBP) if the basket is trending.
✅ This way, you're always on the winning side of the trade, never risking a loss of purchasing power.
📈 Since it's a LONG ONLY, NO LEVERAGE strategy, there are no trading or holding fees, except for a small 0.15% FX fee every few months when the trending currency changes.
📈 Trend Indicator
Uses 5 different indicators working together to determine which asset is in a trend.
👀 On the chart it's visualized as:
➕ Plus symbols indicating trend strength (usually ranges from -4 to +4).
🔺 If USD has a higher trend signal than the basket → Hold USD.
🔻 If the basket has a higher signal → Hold the basket.
🕒 Signals typically last several months and operate on the 3D (3-day) timeframe, giving a high probability of catching macro moves.
💡 Valuation Indicator (Z-scored RSI)
Uses RSI with a length of 30.
Z-scored between -1 to 1.
📉 Interpretation:
-1 for USD = too strong → likely stagnation or reversal.
-1 for Basket = undervalued → likely growth or stabilization.
📊 Displayed as a separate line below the main chart.
📍 A horizontal line at 90 is added on the main chart – helping you quickly see what’s above or below this key reference level.
⚙️ How the Strategy Works in Practice
✅ You update the indicator daily (takes only seconds).
✅ The trend indicator tells you which currency to hold.
✅ The valuation indicator prepares you for possible reversals.
🔄 When the trend shifts, you rotate your full position.
⏳ Trades typically last several months.
📈 Usually generates consistent profits of 2–8%.
💪 It grows your capital while keeping you ready to buy assets during major selloffs.
🔍 Best Usage
Use it as a quick scanner to observe trend or valuation changes.
If a signal appears, validate it using additional trend and valuation indicators.
📌 If most agree, take the position.
Avg Session & Daily Volatility (Pips) - Forex/CFDS🔍 Overview
The Avg Session & Daily Volatility (Pips) indicator measures the average High–Low range (volatility) of three major Forex sessions—Asia, London, New York—and the entire trading day, then displays the results in a compact overlay table.
⚙️ Key Features
Session Windows
Asia: Default 23:00 – 07:00 server time
London: 07:00 – 16:00
New York: 13:00 – 22:00
Daily Range
– Tracks the full High–Low from midnight to midnight.
Flexible Lookback
– Choose 1W / 2W / 4W / 8W (≈ 5 / 10 / 20 / 40 trading days)
Pip Conversion
Forex Pairs: 1 pip = 0.0001 → (ticks / mintick) / 10
XAU/USD (Gold): 1 pip = 1 USD → direct price difference
Custom Styling
– Pick your own colors per session & daily
– Table position: Left/Center/Right × Top/Middle/Bottom
📈 Benefits & Use Cases
Optimal Stop-Loss & Take-Profit
Gauge each session’s typical movement to size SL/TP appropriately.
Intraday Performance Check
Compare your real-time trade swings against historical averages.
Risk Management
Align position sizes with average volatility to control risk.
Multi-Asset Support
Works seamlessly for major Forex pairs and Gold (XAU/USD) thanks to smart pip logic.
🚀 How It Works
Session Scanning – Continuously tracks the session’s high and low.
Array Storage – At session close, calculates range in pips and pushes it into a rolling buffer.
Averaging – Computes the arithmetic mean of the last N values (your chosen lookback).
Visualization – Paints the four averages in a neat 2×5 table overlay.
👍 Pro Tips
Check Your Time Zone – Make sure chart timezone matches your broker’s session times.
Tweak Lookback – Use shorter windows (1W) to react quickly; longer (4–8W) to smooth out outliers.
Combine Indicators – Pair with volume or trend tools for deeper insights.
Happy Trading,
Riseofatrader
Fakeout Filter📈 Fakeout Filter by ARV
🔍 Overview:
The Fakeout Filter is a smart breakout validation tool designed to help traders avoid false breakouts and focus only on high-probability breakout trades. This indicator combines price action, volume analysis, RSI divergence detection, and OBV trend confirmation to filter out noise and improve your entries.
⚙️ Key Features:
✅ Breakout Detection
Detects when the price closes above a user-defined resistance level.
✅ Volume Spike Confirmation
Confirms breakouts only if there’s a significant increase in volume (customizable via settings).
✅ RSI Bearish Divergence Filter
Warns you of bearish RSI divergence, which often signals fakeouts during breakouts.
✅ OBV Trend Confirmation
Ensures On-Balance Volume (OBV) is rising, aligning volume flow with price movement.
✅ EMA Filter (Trend Confirmation)
Adds a safety filter using Exponential Moving Average (EMA) to ensure price action aligns with the short-term trend.
📌 How to Use:
Set Resistance Level:
In the indicator settings, input a key resistance level (manual input based on your chart analysis).
Watch for Signals:
A green background and “Breakout” label appear when:
Price closes above the resistance.
Volume is significantly higher than average.
OBV is rising.
No bearish RSI divergence is detected.
Price is above the EMA (trend confirmation).
Entry Suggestion:
Consider entering long positions only when the breakout label appears.
For additional confirmation, wait for a retest of the resistance as support before entering.
🔧 Settings:
Resistance Level – Manually set the level you're watching.
Volume Multiplier – Adjusts sensitivity to volume spikes (default: 1.5x average).
RSI Period – RSI used for divergence detection (default: 14).
EMA Period – For trend direction confirmation (default: 21).
✅ Best Use Cases:
Scalpers and intraday traders avoiding fakeouts on 5m–1H timeframes.
Swing traders validating breakout setups.
BTC, ETH, and major altcoins in consolidation or breakout zones.
⚠️ Disclaimer:
This tool is for educational purposes only. Always combine it with your own market analysis and risk management.
Sharpe & Sortino Ratio PROSharpe & Sortino Ratio PRO offers an advanced and more precise way to calculate and visualize the Sharpe and Sortino Ratios for financial assets on TradingView. Its main goal is to provide a scientifically accurate method for assessing the risk-adjusted performance of assets, both in the short and long term. Unlike TradingView’s built-in metrics, this script correctly handles periodic returns, uses optional logarithmic returns, properly annualizes both returns and volatility, and adjusts for the risk-free rate — all critical factors for truly meaningful Sharpe and Sortino calculations.
Users can customize the rolling analysis window (e.g., 252 periods for one year on daily data) and the long-term smoothing period (e.g., 1260 periods for five years). There’s also an option to select between linear and logarithmic returns and to manually input a risk-free rate if real-time data from FRED (the 3-Month T-Bill Rate via FRED:DGS3MO) is unavailable. Based on the chart’s timeframe (daily, weekly, or monthly), the script automatically adjusts the risk-free rate to a per-period basis.
The Sharpe Ratio is calculated by first determining the asset’s excess returns (returns after subtracting the risk-free return per period), then computing the average and standard deviation of those excess returns over the specified window, and finally annualizing these figures separately — in line with best scientific practices (Sharpe, 1994). The Sortino Ratio follows a similar approach but only considers negative returns, focusing specifically on downside risk (Sortino & Van der Meer, 1991).
To enhance readability, the script visualizes the ratios using a color gradient: strong negative values are shown in red, neutral values in yellow, and strong positive values in green. Additionally, the long-term averages for both Sharpe and Sortino are plotted with steady colors (teal and orange, respectively), making it easier to spot enduring performance trends.
Why calculating Sharpe and Sortino Ratios manually on TradingView is necessary?
While TradingView provides basic Sharpe and Sortino Ratios, they come with significant methodological flaws that can lead to misleading conclusions about an asset’s true risk-adjusted performance.
First, TradingView often computes volatility based on the standard deviation of price levels rather than returns (TradingView, 2023). This method is problematic because it causes the volatility measure to be directly dependent on the asset’s absolute price. For instance, a stock priced at $1,000 will naturally show larger absolute daily price moves than a $10 stock, even if their percentage changes are similar. This artificially inflates the measured standard deviation and, as a result, depresses the calculated Sharpe Ratio.
Second, TradingView frequently neglects to adjust for the risk-free rate. By treating all returns as risky returns, the computed Sharpe Ratio may significantly underestimate risk-adjusted performance, especially when interest rates are high (Sharpe, 1994).
Third, and perhaps most critically, TradingView doesn’t properly annualize the mean excess return and the standard deviation separately. In correct financial math, the mean excess return should be multiplied by the number of periods per year, while the standard deviation should be multiplied by the square root of the number of periods per year (Cont, 2001; Fabozzi et al., 2007). Incorrect annualization skews the Sharpe and Sortino Ratios and can lead to under- or overestimating investment risk.
These flaws lead to three major issues:
• Overstated volatility for high-priced assets.
• Incorrect scaling between returns and risk.
• Sharpe Ratios that are systematically biased downward, especially in high-price or high-interest environments.
How to properly calculate Sharpe and Sortino Ratios in Pine Script?
To get accurate results, the Sharpe and Sortino Ratios must be calculated using the correct methodology:
1. Use returns, not price levels, to calculate volatility. Ideally, use logarithmic returns for better mathematical properties like time additivity (Cont, 2001).
2. Adjust returns by subtracting the risk-free rate on a per-period basis to obtain true excess returns.
3. Annualize separately:
• Multiply the mean excess return by the number of periods per year (e.g., 252 for daily data).
• Multiply the standard deviation by the square root of the number of periods per year.
4. Finally, divide the annualized mean excess return by the annualized standard deviation to calculate the Sharpe Ratio.
The Sortino Ratio follows the same structure but uses downside deviations instead of standard deviations.
By following this scientifically sound method, you ensure that your Sharpe and Sortino Ratios truly reflect the asset’s real-world risk and return characteristics.
References
• Cont, R. (2001). Empirical properties of asset returns: stylized facts and statistical issues. Quantitative Finance, 1(2), pp. 223–236.
• Fabozzi, F.J., Gupta, F. and Markowitz, H.M. (2007). The Legacy of Modern Portfolio Theory. Journal of Investing, 16(3), pp. 7–22.
• Sharpe, W.F. (1994). The Sharpe Ratio. Journal of Portfolio Management, 21(1), pp. 49–58.
• Sortino, F.A. and Van der Meer, R. (1991). Downside Risk: Capturing What’s at Stake in Investment Situations. Journal of Portfolio Management, 17(4), pp. 27–31.
• TradingView (2023). Help Center - Understanding Sharpe and Sortino Ratios. Available at: www.tradingview.com (Accessed: 25 April 2025).
ICT Macro Zone Boxes w/ Individual H/L Tracking v3.1ICT Macro Zones (Grey Box Version
This indicator dynamically highlights key intraday time-based macro sessions using a clean, minimalistic grey box overlay, helping traders align with institutional trading cycles. Inspired by ICT (Inner Circle Trader) concepts, it tracks real-time highs and lows for each session and optionally extends the zone box after the session ends — making it a precision tool for intraday setups, order flow analysis, and macro-level liquidity sweeps.
### 🔍 **What It Does**
- Plots **six predefined macro sessions** used in Smart Money Concepts:
- AM Macro (09:50–10:10)
- London Close (10:50–11:10)
- Lunch Macro (11:30–13:30)
- PM Macro (14:50–15:10)
- London SB (03:00–04:00)
- PM SB (15:00–16:00)
- Each zone:
- **Tracks high and low dynamically** throughout the session.
- **Draws a consistent grey shaded box** to visualize price boundaries.
- **Displays a label** at the first bar of the session (optional).
- **Optionally extends** the box to the right after the session closes.
### 🧠 **How It Works**
- Uses Pine Script arrays to define each session’s time window, label, and color.
- Detects session entry using `time()` within a New York timezone context.
- High/Low values are updated per bar inside the session window.
- Once a session ends, the box is optionally closed and fixed in place.
- All visual zones use a standardized grey tone for clarity and consistency across charts.
### 🛠️ **Settings**
- **Shade Zone High→Low:** Enable/disable the grey macro box.
- **Extend Box After Session:** Keep the zone visible after it ends.
- **Show Entry Label:** Display a label at the start of each session.
### 🎯 **Why This Script is Unique**
Unlike basic session markers or colored backgrounds, this tool:
- Focuses on **macro moments of liquidity and reversal**, not just open/close times.
- Uses **per-session logic** to individually track price behavior inside key time windows.
- Supports **real-time high/low tracking and clean zone drawing**, ideal for Smart Money and ICT-style strategies.
Perfect — based on your list, here's a **bundle-style description** that not only explains the function of each script but also shows how they **work together** in a Smart Money/ICT workflow. This kind of cross-script explanation is exactly what TradingView wants to see to justify closed-source mashups or interdependent tools.
---
📚 ICT SMC Toolkit — Script Integration Guide
This set of advanced Smart Money Concept (SMC) tools is designed for traders who follow ICT-based methodologies, combining liquidity theory, time-based precision, and engineered confluences for high-probability trades. Each indicator is optimized to work both independently and synergistically, forming a comprehensive trading framework.
---
First FVG Custom Time Range
**Purpose:**
Plots the **first Fair Value Gap (FVG)** that appears within a defined session (e.g., NY Kill Zone, Custom range). Includes optional retest alerts.
**Best Used With:**
- Use with **ICT Macro Zones (Grey Box Version)** to isolate FVGs during high-probability times like AM Macro or PM SB.
- Combine with **Liquidity Levels** to assess whether FVGs form near swing points or liquidity voids.
---
ICT SMC Liquidity Grabs and OB s
**Purpose:**
Detects **liquidity grabs** (stop hunts above/below swing highs/lows) and **bullish/bearish order blocks**. Includes optional Fibonacci OTE levels for sniper entries.
**Best Used With:**
- Use with **ICT Turtle Soup (Reversal)** for confirmation after a liquidity grab.
- Combine with **Macro Zones** to catch order blocks forming inside timed macro windows.
- Match with **Smart Swing Levels** to confirm structure breaks before entry.
ICT SMC Liquidity Levels (Smart Swing Lows)
**Purpose:**
Automatically marks swing highs/lows based on user-defined lookbacks. Tracks whether those levels have been breached or respected.
**Best Used With:**
- Combine with **Turtle Soup** to detect if a swing level was swept, then reversed.
- Use with **Liquidity Grabs** to confirm a grab occurred at a meaningful structural point.
- Align with **Macro Zones** to understand when liquidity events occur within macro session timing.
ICT Turtle Soup (Liquidity Reversal)
**Purpose:**
Implements the classic ICT Turtle Soup model. Looks for swing failure and quick reversals after a liquidity sweep — ideal for catching traps.
Best Used With:
- Confirm with **Liquidity Grabs + OBs** to identify institutional activity at the reversal point.
- Use **Liquidity Levels** to ensure the reversal is happening at valid previous swing highs/lows.
- Amplify probability when pattern appears during **Macro Zones** or near the **First FVG**.
ICT Turtle Soup Ultimate V2
**Purpose:**
An enhanced, multi-layer version of the Turtle Soup setup that includes built-in liquidity checks, OTE levels, structure validation, and customizable visual output.
**Best Used With:**
- Use as an **entry signal generator** when other indicators (e.g., OBs, liquidity grabs) are aligned.
- Pair with **Macro Zones** for high-precision timing.
- Combine with **First FVG** to anticipate price rebalancing before explosive moves.
---
## 🧠 Workflow Example:
1. **Start with Macro Zones** to focus only on institutional trading windows.
2. Look for **Liquidity Grabs or Swing Sweeps** around key highs/lows.
3. Check for a **Turtle Soup Reversal** or **Order Block Reaction** near that level.
4. Confirm confluence with a **Fair Value Gap**.
5. Execute using the **OTE level** from the Liquidity Grabs + OB script.
---
Let me know which script you want to publish first — I’ll tailor its **individual TradingView description** and flag its ideal **“Best Used With” partners** to help users see the value in your ecosystem.
London/NY Sessions + SMC Levels📜 Indicator Description: London/NY Sessions + SMC Levels
Overview: This indicator highlights the key trading sessions — London, New York, NY Lunch, and Asian Range — providing structured visual guides based on Smart Money Concepts (SMC) and ICT principles.
It dynamically plots:
Session Backgrounds and Boxes for London, NY, Lunch, and Asian sessions
Reference Levels for the High, Low, and Close from today, previous day, or weekly data
Midnight Open line for ICT-style power of three setups
Real-time alerts for session starts, session closes, and important price level crossings
Features:
🕰️ Session Visualization:
Toggle London, NY, Lunch, and Asian session ranges individually, with customizable colors and transparent backgrounds.
🔔 Built-in Alerts:
Alerts for:
Price crossing the previous day's high/low
Price crossing the Midnight Open
Start and end of major sessions (London, NY, Lunch, Asian)
🟩 Reference Levels:
Plot selectable session reference levels:
Today’s intraday High/Low/Close
Previous Day’s High/Low/Close
This Week’s or Previous Week’s levels for broader context.
🌙 Midnight Open:
Track the Midnight New York Open as a reference point for daily bias shifts.
🎯 Customizable Settings:
Choose your session time zones (UTC, New York, London, etc.)
Customize all border colors, background colors, and session hours.
Use Cases:
Identify killzones and optimal trade entry windows for Smart Money Concepts (SMC) and ICT strategies.
Monitor liquidity pool sweeps and session transitions.
Confirm or refine your intraday or swing trading setups by referencing session highs/lows.
Recommended For:
ICT traders
Smart Money Concepts (SMC) practitioners
Forex, indices, crypto, and futures traders focusing on session-based volatility patterns
Anyone wanting a clean, professional session mapping tool
📈
Designed to help you trade with session precision and Smart Money accuracy.
Integrates seamlessly into any ICT, Wyckoff, or Liquidity-based trading approach.
COT3 - Flip Strength Index - Invincible3This indicator uses the TradingView COT library to visualize institutional positioning and potential sentiment or trend shifts. It compares the long% vs short% of commercial and non-commercial traders for both Pair A and Pair B, helping traders identify trend strength, market overextension, and early reversal signals.
🔷 COT RSI
The COT RSI normalizes the net positioning difference between non-commercial and commercial traders over (N=13, 26, and 52)-week periods. It ranges from 0 to 100, highlighting when sentiment is at bullish or bearish extremes.
COT RSI (N)= ((NC - C)−min)/(max-min) x100
🟡 COT Index
The COT Index tracks where the current non-commercial net position lies within its 1-year and 3-year historical range. It reflects institutional accumulation or distribution phases.
Strength represents the magnitude of that positioning bias, visualized through normalized RSI-style metrics.
COT Index (N)= (NC net)/(max-min) x100
🔁 Flip Detection
Flip refers to the crossovers between long% and short%, indicating a change in directional bias among trader groups. When long positions exceed shorts (or vice versa), it signals a possible market flip in sentiment or trend.
For example, Pair B commercial flip is calculated as:
Long% = (Long/Open Interest)×100
Short% = (Short/Open Interest)×100
Flip = Long%−Short%
A bullish flip occurs when long% overtakes short%, and vice versa for a bearish flip. These flips often precede price trend changes or confirm sentiment breakouts.
Flip captures how far current positioning deviates from historical norms — highlighting periods of institutional overconfidence or exhaustion, often leading to significant market turns.
This combination offers a multi-layered edge for identifying when smart money is flipping direction, and whether that flip has strong conviction or is likely to fade.
..........................................................................................................................................................
Coinbase BTC Premium by BIGTAKERBTC Premium Gap Analysis: Binance, Coinbase, Upbit
This indicator provides real-time analysis and visualization of the premium gap between the Binance BTCUSDT price and the BTC prices on Coinbase (BTCUSD) and Upbit (BTCKRW).
Key Features
Coinbase Premium Gap
Measures the price difference between Coinbase and Binance as a percentage.
To improve visibility, the Coinbase premium is visually amplified by 10x.
Upbit Premium Gap
Calculates the premium by comparing Upbit's BTCKRW price (converted into USD using the real-time USDKRW exchange rate) against Binance BTCUSDT.
Dynamic Color Coding
Premiums above 0% are displayed in lime green, indicating positive premiums.
Premiums below 0% are displayed in red, indicating discounts.
Real-Time Labels
Displays real-time premium values for both Coinbase and Upbit on the right side of the chart.
Additional Notes
Upbit premiums are adjusted for the USD/KRW exchange rate to ensure accurate USD-based comparison.
The Coinbase premium is magnified visually (10x) to better capture minor movements, while the actual premium value remains correctly displayed.
The indicator is optimized for traders who monitor global BTC market price disparities across major exchanges.
How to Use
Quickly track global BTC price discrepancies across Binance, Coinbase, and Upbit.
Detect "Kimchi Premium" conditions in the Korean market through Upbit premiums.
Analyze buying and selling pressure in North American markets through Coinbase premiums.
My-Indicator - Global Liquidity & Money Supply M2 + Time OffsetThis script is designed to visualize a global liquidity and money supply index by combining data from various regions and, optionally, central bank activity. Visualizing this data on a chart allows you to see how central banks are intervening in the financial system and how the total amount of money in the economy is changing. Let’s take a look at how it works:
Central Bank Liquidity
Shows the actions of central banks (e.g. FED, ECB) providing short-term cash to commercial banks. If you see spikes or a steady increase in these indicators, it may suggest that liquidity is being increased through intervention, which often stimulates the market.
Money Supply
M2 money supply is a monetary aggregate that includes M1 (cash and current deposits) plus savings deposits, small term deposits, and other financial instruments that, while not as liquid as M1, can be quickly converted into cash. As a result, M2 provides a broader picture of the available money in the economy, which is useful for analyzing market conditions and potential economic trends.
How does it help investors?
It allows you to quickly see when central banks are injecting additional liquidity, which could signal higher prices.
It allows you to see trends in the money supply, which informs potential changes in inflation and the economic cycle.
Combining both sets of data provides a more complete picture – both in the short and long term – which makes it easier to predict upcoming price movements.
This allows investors to better respond to changes in central bank policy and broader monetary trends, increasing their chances of making better investment decisions.
Data Collection
The script retrieves money supply data for key markets such as the USA (USM2), Europe (EUM2), China (CNM2), and Japan (JPM2). It also offers additional money supply series for other markets—like Canada (CAM2), Great Britain (GBM2), Russia (RUM2), Brazil (BRM2), Mexico (MXM2), and New Zealand (NZM2)—with extra options (e.g., Australia, India, Korea, Indonesia, Malaysia, Sweden) disabled by default. Moreover, you can enable data for central bank liquidity (such as FED, RRP, TGA, ECB, PBC, BOJ, and other central banks), which are also disabled by default.
Index Calculation
The indicator calculates the index by adding together all the enabled money supply series (and the central bank data if activated) and then scales the sum by dividing it by 1,000,000,000,000 (one trillion). This scaling makes the resulting values more manageable and easier to read on the chart.
Time Offset Feature
A key feature of the script is the time offset. With the input parameter "Time Offset (days)", the user can shift the plotted index line by a specific number of days. The script converts the given offset in days into a number of bars based on the current chart's timeframe. This allows you to adjust for the delay between liquidity changes and their effect on asset prices.
Overall, the indicator plots a line on your chart representing the global liquidity and money supply index, allowing you to visually monitor trends and better understand how liquidity and central bank actions may influence market movements.
What makes this script different from others?
Every supported market—both major regions (USA, Eurozone, China, Japan, etc.) and additional ones—is available. You can toggle each series on or off, so you can view only Money Supply data, only Central Bank Liquidity, or any custom combination.
Separated Data Groups. Inputs are organized into clear groups (“Money Supply”, “Other Money Supply”, “Central Bank Liquidity”), making it easy to focus on just the data you need without clutter.
True Day‑Based Offset. This script converts your chosen “Time Offset (days)” into actual days regardless of timeframe. Whether you’re on a 5‑minute or daily chart, the index is always shifted by exactly the number of days you specify.
Gold/Silver RatioOverview
This indicator displays the Gold/Silver Ratio by dividing the price of gold (XAUUSD) by the price of silver (XAGUSD) on the same timeframe. It is a widely used tool in macroeconomic and precious metals analysis, helping traders and investors evaluate the relative value of gold compared to silver.
📈 What it does
Plots the ratio between gold and silver prices as a line on the chart.
Displays two key horizontal levels:
Overbought level at 90 (dashed red line).
Oversold level at 70 (dashed green line).
Highlights the chart background to show extreme conditions:
Red shading when the ratio exceeds 90 (gold is likely overvalued relative to silver).
Green shading when the ratio drops below 70 (silver is likely overvalued relative to gold).
🧠 How to Use
When the ratio exceeds 90, it suggests that gold may be overbought or silver may be undervalued. Historically, these have been good times to consider shifting exposure from gold to silver.
When the ratio falls below 70, it may indicate silver is overbought or gold is undervalued.
This tool is best used in conjunction with technical analysis, macroeconomic trends, or RSI/Bollinger Bands applied to the ratio.
⚙️ Inputs
This version of the script uses OANDA's XAUUSD and XAGUSD pairs for spot gold and silver prices. You may edit the request.security() calls to change data sources (e.g., FXCM, FOREXCOM, or CFD tickers from your broker).
✅ Best For:
Macro traders
Commodity investors
Ratio and spread traders
Long-term portfolio reallocators
DDDDD: SET50 (40 Stocks) - % New 52W LowsDDDDD: SET50 - % New 52W Lows (40 Stocks)
This indicator measures the percentage of selected SET50 stocks making a new 52-week low, helping identify periods of extreme market fear that often align with long-term buying opportunities.
How It Works:
Tracks the daily closing prices of 40 major SET50 constituents.
A stock is counted when it closes at its lowest price over the past 252 trading days (approximately 1 year).
Calculates the percentage of new 52-week lows relative to 40 stocks.
Displays threshold lines to highlight levels of market panic.
📈 Threshold Levels:
Threshold Line Color Level (%) Interpretation Action
30% Threshold Orange 30% Early signs of stress Start monitoring opportunities
33% Threshold Yellow 33% Confirmed panic Consider gradual accumulation
50% Panic Zone Red 50% Extreme market panic Aggressive accumulation zone
📌 Important Notes:
Why not use the full 50 stocks?
Due to TradingView Pine Script's current technical limits, a script cannot request data for more than 40 symbols efficiently.
Therefore, this indicator uses 40 representative SET50 stocks to ensure optimal performance without exceeding system limits.
The selected stocks are diversified across major sectors to maintain reliability.
🔥 Key Insights:
Historically, spikes above 30%-50% of stocks making new lows have coincided with major market bottoms (e.g., 2011, 2020).
Higher simultaneous new lows = stronger potential for long-term recovery.
Global M2The Global Liquidity M2 Indicator tracks the aggregate M2 money supply across major economies (e.g., US, China, Eurozone, Japan, UK), converted to USD for consistency. M2 includes cash, checking/savings deposits, and easily convertible near-money. It visualizes global liquidity trends, helping investors assess economic conditions and potential impacts on asset prices, like stocks or cryptocurrencies, with higher M2 levels often signaling increased liquidity and economic growth.
EPS & Sales/Revenue Growth MarkerThis script plots the Revenue Growth and EPS Growth % on Earnings Date.
Idea Credit: Special thanks to @dharmeshrbhatt for inspiring the concept behind this tool.
Developed and Published by learningvitals.
Plots Revenue Growth % and EPS Growth % on earnings date.
Choose label position: Above Bar, Below Bar, Top, or Bottom.
Customizable growth colors based on combined EPS and Revenue performance.
Customizable line style and colors.
Controls max number of labels to keep the chart clean.
PEAD strategy█ OVERVIEW
This strategy trades the classic post-earnings announcement drift (PEAD).
It goes long only when the market gaps up after a positive EPS surprise.
█ LOGIC
1 — Earnings filter — EPS surprise > epsSprThresh %
2 — Gap filter — first regular 5-minute bar gaps ≥ gapThresh % above yesterday’s close
3 — Timing — only the first qualifying gap within one trading day of the earnings bar
4 — Momentum filter — last perfDays trading-day performance is positive
5 — Risk management
• Fixed stop-loss: stopPct % below entry
• Trailing exit: price < Daily EMA( emaLen )
█ INPUTS
• Gap up threshold (%) — 1 (gap size for entry)
• EPS surprise threshold (%) — 5 (min positive surprise)
• Past price performance — 20 (look-back bars for trend check)
• Fixed stop-loss (%) — 8 (hard stop distance)
• Daily EMA length — 30 (trailing exit length)
Note — Back-tests fill on the second 5-minute bar (Pine limitation).
Live trading: enable calc_on_every_tick=true for first-tick entries.
────────────────────────────────────────────
█ 概要(日本語)
本ストラテジーは決算後の PEAD を狙い、
EPS サプライズがプラス かつ 寄付きギャップアップ が発生した銘柄をスイングで買い持ちします。
█ ロジック
1 — 決算フィルター — EPS サプライズ > epsSprThresh %
2 — ギャップフィルター — レギュラー時間最初の 5 分足が前日終値+ gapThresh %以上
3 — タイミング — 決算当日または翌営業日の最初のギャップのみエントリー
4 — モメンタムフィルター — 過去 perfDays 営業日の騰落率がプラス
5 — リスク管理
• 固定ストップ:エントリー − stopPct %
• 利確:終値が日足 EMA( emaLen ) を下抜け
█ 入力パラメータ
• Gap up threshold (%) — 1 (ギャップ条件)
• EPS surprise threshold (%) — 5 (EPS サプライズ最小値)
• Past price performance — 20 (パフォーマンス判定日数)
• Fixed stop-loss (%) — 8 (固定ストップ幅)
• Daily EMA length — 30 (利確用 EMA 期間)
注意 — Pine の仕様上、バックテストでは寄付き 5 分足の次バーで約定します。
実運用で寄付き成行に合わせたい場合は calc_on_every_tick=true を有効にしてください。
────
ご意見や質問があればお気軽にコメントください。
Happy trading!
Support and Resistance Signals MTF [ZaryFlux]Support and Resistance Signals MTF is a powerful multi-timeframe (MTF) indicator designed to automatically detect key support and resistance levels across different timeframes.
It highlights significant price zones where reversals, breakouts, or trend continuations are most likely to occur — helping traders of all styles (scalping, swing, intraday) make smarter entries and exits.
Key Features :
Automatic plotting of dynamic support & resistance zones
Multi-Timeframe analysis: view higher timeframe zones directly on your current chart
Real-time alerts for price interactions with key levels
Customizable sensitivity for different trading strategies
Clean, non-cluttered design for easy readability
Whether you're trading Forex, crypto, stocks, or indices, this tool gives you a clearer view of market structure and high-probability trading zones.
MVA-PMI ModelThe Macroeconomic Volatility-Adjusted PMI Alpha Strategy: A Proprietary Trading Approach
The relationship between macroeconomic indicators and financial markets has been extensively documented in the academic literature (Fama, 1981; Chen et al., 1986). Among these indicators, the Purchasing Managers' Index (PMI) has emerged as a particularly valuable forward-looking metric for economic activity and, by extension, equity market returns (Lahiri & Monokroussos, 2013). The PMI captures manufacturing sentiment before many traditional economic indicators, providing investors with early signals of potential economic regime shifts.
The MVA-PMI trading strategy presented here leverages these temporal advantages through a sophisticated algorithmic framework that extends beyond traditional applications of economic data. Unlike conventional approaches that rely on static thresholds described in previous literature (Koenig, 2002), our proprietary model employs a multi-dimensional analysis of PMI time series data through various moving averages and momentum indicators.
As noted by Beckmann et al. (2020), composite signals derived from economic indicators significantly enhance predictive power compared to simpler univariate models. The MVA-PMI model adopts this principle by synthesizing multiple PMI-derived features through a machine learning optimization process. This approach aligns with Johnson and Watson's (2018) findings that trailing averages of economic indicators often outperform point-in-time readings for investment decision-making.
A distinctive feature of the model is its adaptive volatility mechanism, which draws on the extensive volatility feedback literature (Campbell & Hentschel, 1992; Bollerslev et al., 2011). This component dynamically adjusts position sizing according to market volatility regimes, reflecting the documented inverse relationship between market turbulence and expected returns. Such volatility-based position sizing has been shown to enhance risk-adjusted performance across various strategy types (Harvey et al., 2018).
The model's signal generation employs an asymmetric approach for long and short positions, consistent with Estrada and Vargas' (2016) research highlighting the positive long-term drift in equity markets and the inherently higher risks associated with short selling. This asymmetry is implemented through a proprietary scoring system that synthesizes multiple factors while maintaining different thresholds for bullish and bearish signals.
Extensive backtesting demonstrates that the MVA-PMI strategy exhibits particular strength during economic transition periods, correctly identifying a significant percentage of economic inflection points that preceded major market movements. This characteristic aligns with Croushore and Stark's (2003) observations regarding the value of leading indicators during periods of economic regime change.
The strategy's performance characteristics support the findings of Neely et al. (2014) and Rapach et al. (2010), who demonstrated that macroeconomic-based investment strategies can generate alpha that is distinct from traditional factor models. The MVA-PMI model extends this research by integrating machine learning for parameter optimization, an approach that has shown promise in extracting signal from noisy economic data (Gu et al., 2020).
These findings contribute to the growing literature on systematic macro trading and offer practical implications for portfolio managers seeking to incorporate economic cycle positioning into their allocation frameworks. As noted by Beber et al. (2021), strategies that successfully capture economic regime shifts can provide valuable diversification benefits within broader investment portfolios.
References
Beckmann, J., Glycopantis, D. & Pilbeam, K., 2020. The dollar-euro exchange rate and economic fundamentals: A time-varying FAVAR model. Journal of International Money and Finance, 107, p.102205.
Beber, A., Brandt, M.W. & Luisi, M., 2021. Economic cycles and expected stock returns. Review of Financial Studies, 34(8), pp.3803-3844.
Bollerslev, T., Tauchen, G. & Zhou, H., 2011. Volatility and correlations: An international GARCH perspective. Journal of Econometrics, 160(1), pp.102-116.
Campbell, J.Y. & Hentschel, L., 1992. No news is good news: An asymmetric model of changing volatility in stock returns. Journal of Financial Economics, 31(3), pp.281-318.
Chen, N.F., Roll, R. & Ross, S.A., 1986. Economic forces and the stock market. Journal of Business, 59(3), pp.383-403.
Croushore, D. & Stark, T., 2003. A real-time data set for macroeconomists: Does the data vintage matter? Review of Economics and Statistics, 85(3), pp.605-617.
Estrada, J. & Vargas, M., 2016. Black swans, beta, risk, and return. Journal of Applied Corporate Finance, 28(3), pp.48-61.
Fama, E.F., 1981. Stock returns, real activity, inflation, and money. The American Economic Review, 71(4), pp.545-565.
Gu, S., Kelly, B. & Xiu, D., 2020. Empirical asset pricing via machine learning. The Review of Financial Studies, 33(5), pp.2223-2273.
Harvey, C.R., Hoyle, E., Korgaonkar, R., Rattray, S., Sargaison, M. & Van Hemert, O., 2018. The impact of volatility targeting. Journal of Portfolio Management, 45(1), pp.14-33.
Johnson, R. & Watson, K., 2018. Economic indicators and equity returns: The importance of time horizons. Journal of Financial Research, 41(4), pp.519-552.
Koenig, E.F., 2002. Using the purchasing managers' index to assess the economy's strength and the likely direction of monetary policy. Economic and Financial Policy Review, 1(6), pp.1-14.
Lahiri, K. & Monokroussos, G., 2013. Nowcasting US GDP: The role of ISM business surveys. International Journal of Forecasting, 29(4), pp.644-658.
Neely, C.J., Rapach, D.E., Tu, J. & Zhou, G., 2014. Forecasting the equity risk premium: The role of technical indicators. Management Science, 60(7), pp.1772-1791.
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), pp.821-862.
Global M2 [BizFing]MARKETSCOM:BITCOIN ECONOMICS:USM2
This is an indicator designed to show the correlation between the global M2 money supply and Bitcoin.
This indicator basically provides a Global M2 index by summing the M2 money supply data from the United States, South Korea, China, Japan, the EU, and the United Kingdom.
Furthermore, it is configured to allow you to add or remove the M2 data of desired countries within the settings.
I hope this proves to be a small aid in predicting the future price of Bitcoin.
If you have any questions or require any improvements while using it, please feel free to contact me.
Thank you.
TUF_LOGICTUF_LOGIC: Three-Value Logic for Pine Script v6
The TUF_LOGIC library implements a robust three-valued logic system (trilean logic) for Pine Script v6, providing a formal framework for reasoning about uncertain or incomplete information in financial markets. By extending beyond binary True/False states to include an explicit "Uncertain" state, this library enables more nuanced algorithmic decision-making, particularly valuable in environments characterized by imperfect information.
Core Architecture
TUF_LOGIC offers two complementary interfaces for working with trilean values:
Enum-Based API (Recommended): Leverages Pine Script v6's enum capabilities with Trilean.True , Trilean.Uncertain , and Trilean.False for improved type safety and performance.
Integer-Based API (Legacy Support): Maintains compatibility with existing code using integer values 1 (True), 0 (Uncertain), and -1 (False).
Fundamental Operations
The library provides type conversion methods for seamless interaction between integer representation and enum types ( to_trilean() , to_int() ), along with validation functions to maintain trilean invariants.
Logical Operators
TUF_LOGIC extends traditional boolean operators to the trilean domain with NOT , AND , OR , XOR , and EQUALITY functions that properly handle the Uncertain state according to the principles of three-valued logic.
The library implements three different implication operators providing flexibility for different logical requirements: IMP_K (Kleene's approach), IMP_L (Łukasiewicz's approach), and IMP_RM3 (Relevant implication under RM3 logic).
Inspired by Tarski-Łukasiewicz's modal logic formulations, TUF_LOGIC includes modal operators: MA (Modal Assertion) evaluates whether a state is possibly true; LA (Logical Assertion) determines if a state is necessarily true; and IA (Indeterminacy Assertion) identifies explicitly uncertain states.
The UNANIMOUS operator evaluates trilean values for complete agreement, returning the consensus value if one exists or Uncertain otherwise. This function is available for both pairs of values and arrays of trilean values.
Practical Applications
TUF_LOGIC excels in financial market scenarios where decision-making must account for uncertainty. It enables technical indicator consensus by combining signals with different confidence levels, supports multi-timeframe analysis by reconciling potentially contradictory signals, enhances risk management by explicitly modeling uncertainty, and handles partial information systems where some data sources may be unreliable.
By providing a mathematically sound framework for reasoning about uncertainty, TUF_LOGIC elevates trading system design beyond simplistic binary logic, allowing for more sophisticated decision-making that better reflects real-world market complexity.
Library "TUF_LOGIC"
Three-Value Logic (TUF: True, Uncertain, False) implementation for Pine Script.
This library provides a comprehensive set of logical operations supporting trilean logic systems,
including Kleene, Łukasiewicz, and RM3 implications. Compatible with Pine v6 enums.
method validate(self)
Ensures a valid trilean integer value by clamping to the appropriate range .
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The integer value to validate.
Returns: An integer value guaranteed to be within the valid trilean range.
method to_trilean(self)
Converts an integer value to a Trilean enum value.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The integer to convert (typically -1, 0, or 1).
Returns: A Trilean enum value: True (1), Uncertain (0), or False (-1).
method to_int(self)
Converts a Trilean enum value to its corresponding integer representation.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The Trilean enum value to convert.
Returns: Integer value: 1 (True), 0 (Uncertain), or -1 (False).
method NOT(self)
Negates a trilean integer value (NOT operation).
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The integer value to negate.
Returns: Negated integer value: 1 -> -1, 0 -> 0, -1 -> 1.
method NOT(self)
Negates a Trilean enum value (NOT operation).
Namespace types: series Trilean
Parameters:
self (series Trilean) : The Trilean enum value to negate.
Returns: Negated Trilean: True -> False, Uncertain -> Uncertain, False -> True.
method AND(self, comparator)
Logical AND operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The first integer value.
comparator (int) : The second integer value to compare with.
Returns: Integer result of the AND operation (minimum value).
method AND(self, comparator)
Logical AND operation for Trilean enum values following three-valued logic.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The first Trilean enum value.
comparator (series Trilean) : The second Trilean enum value to compare with.
Returns: Trilean result of the AND operation.
method OR(self, comparator)
Logical OR operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The first integer value.
comparator (int) : The second integer value to compare with.
Returns: Integer result of the OR operation (maximum value).
method OR(self, comparator)
Logical OR operation for Trilean enum values following three-valued logic.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The first Trilean enum value.
comparator (series Trilean) : The second Trilean enum value to compare with.
Returns: Trilean result of the OR operation.
method EQUALITY(self, comparator)
Logical EQUALITY operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The first integer value.
comparator (int) : The second integer value to compare with.
Returns: Integer representation (1/-1) indicating if values are equal.
method EQUALITY(self, comparator)
Logical EQUALITY operation for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The first Trilean enum value.
comparator (series Trilean) : The second Trilean enum value to compare with.
Returns: Trilean.True if both values are equal, Trilean.False otherwise.
method XOR(self, comparator)
Logical XOR (Exclusive OR) operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The first integer value.
comparator (int) : The second integer value to compare with.
Returns: Integer result of the XOR operation.
method XOR(self, comparator)
Logical XOR (Exclusive OR) operation for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The first Trilean enum value.
comparator (series Trilean) : The second Trilean enum value to compare with.
Returns: Trilean result of the XOR operation.
method IMP_K(self, comparator)
Material implication using Kleene's logic for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The antecedent integer value.
comparator (int) : The consequent integer value.
Returns: Integer result of Kleene's implication operation.
method IMP_K(self, comparator)
Material implication using Kleene's logic for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The antecedent Trilean enum value.
comparator (series Trilean) : The consequent Trilean enum value.
Returns: Trilean result of Kleene's implication operation.
method IMP_L(self, comparator)
Logical implication using Łukasiewicz's logic for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The antecedent integer value.
comparator (int) : The consequent integer value.
Returns: Integer result of Łukasiewicz's implication operation.
method IMP_L(self, comparator)
Logical implication using Łukasiewicz's logic for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The antecedent Trilean enum value.
comparator (series Trilean) : The consequent Trilean enum value.
Returns: Trilean result of Łukasiewicz's implication operation.
method IMP_RM3(self, comparator)
Logical implication using RM3 logic for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The antecedent integer value.
comparator (int) : The consequent integer value.
Returns: Integer result of the RM3 implication operation.
method IMP_RM3(self, comparator)
Logical implication using RM3 logic for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The antecedent Trilean enum value.
comparator (series Trilean) : The consequent Trilean enum value.
Returns: Trilean result of the RM3 implication operation.
method MA(self)
Modal Assertion (MA) operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The integer value to evaluate.
Returns: 1 if the value is 1 or 0, -1 if the value is -1.
method MA(self)
Modal Assertion (MA) operation for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The Trilean enum value to evaluate.
Returns: Trilean.True if value is True or Uncertain, Trilean.False if value is False.
method LA(self)
Logical Assertion (LA) operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The integer value to evaluate.
Returns: 1 if the value is 1, -1 otherwise.
method LA(self)
Logical Assertion (LA) operation for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The Trilean enum value to evaluate.
Returns: Trilean.True if value is True, Trilean.False otherwise.
method IA(self)
Indeterminacy Assertion (IA) operation for trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The integer value to evaluate.
Returns: 1 if the value is 0, -1 otherwise.
method IA(self)
Indeterminacy Assertion (IA) operation for Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The Trilean enum value to evaluate.
Returns: Trilean.True if value is Uncertain, Trilean.False otherwise.
method UNANIMOUS(self, comparator)
Evaluates the unanimity between two trilean integer values.
Namespace types: series int, simple int, input int, const int
Parameters:
self (int) : The first integer value.
comparator (int) : The second integer value.
Returns: Integer value of self if both values are equal, 0 (Uncertain) otherwise.
method UNANIMOUS(self, comparator)
Evaluates the unanimity between two Trilean enum values.
Namespace types: series Trilean
Parameters:
self (series Trilean) : The first Trilean enum value.
comparator (series Trilean) : The second Trilean enum value.
Returns: Value of self if both values are equal, Trilean.Uncertain otherwise.
method UNANIMOUS(self)
Evaluates the unanimity among an array of trilean integer values.
Namespace types: array
Parameters:
self (array) : The array of integer values.
Returns: First value if all values are identical, 0 (Uncertain) otherwise.
method UNANIMOUS(self)
Evaluates the unanimity among an array of Trilean enum values.
Namespace types: array
Parameters:
self (array) : The array of Trilean enum values.
Returns: First value if all values are identical, Trilean.Uncertain otherwise.
RSI + MACD + Liquidity FinderLiquidity Finder: The liquidity zones are heuristic and based on volume and swing points. You may need to tweak the volumeThreshold and lookback to match the asset's volatility and timeframe.
Timeframe: This script works on any timeframe, but signals may vary in reliability (e.g., higher timeframes like 4H or 1D may reduce noise).
Customization: You can modify signal conditions (e.g., require only RSI or MACD) or add filters like trend direction using moving averages.
Backtesting: Use TradingView's strategy tester to evaluate performance by converting the indicator to a strategy (replace plotshape with strategy.entry/strategy.close).
Accurate Global M2 (Top10 GDP, FX-Stabilized)This script was created to solve the serious distortions found in other circulating "Global M2" indicators.
Many previous versions used noisy daily FX rates, unweighted country data, mixed liquidity categories (e.g., RRP, TGA), or aggregated low-quality sources, causing exaggerated or misleading charts.
This version fixes those problems by:
Using Top 10 global economies only (based on GDP).
GDP-weighting each country's M2 contribution.
Fetching monthly-averaged M2 data.
Applying monthly FX conversions to eliminate daily volatility noise.
Forward-shifting the M2 line (default 90 days) to study potential Bitcoin correlations.
Keeping the math clean, without mixing central bank liquidity tools with broad M2 aggregates.
As a result, this script provides a more realistic and stable representation of global M2 expansion in USD terms, more suitable for serious macroeconomic analysis and Bitcoin market correlation studies.
GGG - Market Breadth UST vs GoldThis indicator provides a dynamic macro view between the 10YR U.S. Treasury future market and Gold prices. It combines bond market momentum with gold technical trend confirmation to enhance trading decision-making.
Recommended Timeframes: Suitable for intraday to swing trading setups (e.g., 15-minutes, 1-hour, 4-hour).
Notes:
REMARK: This indicator is designed as a macro filter or confirmation tool. It is highly recommended to use in conjunction with your preferred entry/exit techniques for optimal performance.
Sharpe Ratio Forced Selling StrategyThis study introduces the “Sharpe Ratio Forced Selling Strategy”, a quantitative trading model that dynamically manages positions based on the rolling Sharpe Ratio of an asset’s excess returns relative to the risk-free rate. The Sharpe Ratio, first introduced by Sharpe (1966), remains a cornerstone in risk-adjusted performance measurement, capturing the trade-off between return and volatility. In this strategy, entries are triggered when the Sharpe Ratio falls below a specified low threshold (indicating excessive pessimism), and exits occur either when the Sharpe Ratio surpasses a high threshold (indicating optimism or mean reversion) or when a maximum holding period is reached.
The underlying economic intuition stems from institutional behavior. Institutional investors, such as pension funds and mutual funds, are often subject to risk management mandates and performance benchmarking, requiring them to reduce exposure to assets that exhibit deteriorating risk-adjusted returns over rolling periods (Greenwood and Scharfstein, 2013). When risk-adjusted performance improves, institutions may rebalance or liquidate positions to meet regulatory requirements or internal mandates, a behavior that can be proxied effectively through a rising Sharpe Ratio.
By systematically monitoring the Sharpe Ratio, the strategy anticipates when “forced selling” pressure is likely to abate, allowing for opportunistic entries into assets priced below fundamental value. Exits are equally mechanized, either triggered by Sharpe Ratio improvements or by a strict time-based constraint, acknowledging that institutional rebalancing and window-dressing activities are often time-bound (Coval and Stafford, 2007).
The Sharpe Ratio is particularly suitable for this framework due to its ability to standardize excess returns per unit of risk, ensuring comparability across timeframes and asset classes (Sharpe, 1994). Furthermore, adjusting returns by a dynamically updating short-term risk-free rate (e.g., US 3-Month T-Bills from FRED) ensures that macroeconomic conditions, such as shifting interest rates, are accurately incorporated into the risk assessment.
While the Sharpe Ratio is an efficient and widely recognized measure, the strategy could be enhanced by incorporating alternative or complementary risk metrics:
• Sortino Ratio: Unlike the Sharpe Ratio, the Sortino Ratio penalizes only downside volatility (Sortino and van der Meer, 1991). This would refine entries and exits to distinguish between “good” and “bad” volatility.
• Maximum Drawdown Constraints: Integrating a moving window maximum drawdown filter could prevent entries during persistent downtrends not captured by volatility alone.
• Conditional Value at Risk (CVaR): A measure of expected shortfall beyond the Value at Risk, CVaR could further constrain entry conditions by accounting for tail risk in extreme environments (Rockafellar and Uryasev, 2000).
• Dynamic Thresholds: Instead of static Sharpe thresholds, one could implement dynamic bands based on the historical distribution of the Sharpe Ratio, adjusting for volatility clustering effects (Cont, 2001).
Each of these risk parameters could be incorporated into the current script as additional input controls, further tailoring the model to different market regimes or investor risk appetites.
References
• Cont, R. (2001) ‘Empirical properties of asset returns: stylized facts and statistical issues’, Quantitative Finance, 1(2), pp. 223-236.
• Coval, J.D. and Stafford, E. (2007) ‘Asset Fire Sales (and Purchases) in Equity Markets’, Journal of Financial Economics, 86(2), pp. 479-512.
• Greenwood, R. and Scharfstein, D. (2013) ‘The Growth of Finance’, Journal of Economic Perspectives, 27(2), pp. 3-28.
• Rockafellar, R.T. and Uryasev, S. (2000) ‘Optimization of Conditional Value-at-Risk’, Journal of Risk, 2(3), pp. 21-41.
• Sharpe, W.F. (1966) ‘Mutual Fund Performance’, Journal of Business, 39(1), pp. 119-138.
• Sharpe, W.F. (1994) ‘The Sharpe Ratio’, Journal of Portfolio Management, 21(1), pp. 49-58.
• Sortino, F.A. and van der Meer, R. (1991) ‘Downside Risk’, Journal of Portfolio Management, 17(4), pp. 27-31.