BTC Daily DCA CalculatorThe BTC Daily DCA Calculator is an indicator that calculates how much Bitcoin (BTC) you would own today by investing a fixed dollar amount daily (Dollar-Cost Averaging) over a user-defined period. Simply input your start date, end date, and daily investment amount, and the indicator will display a table on the last candle showing your total BTC, total invested, portfolio value, and unrealized yield (in USD and percentage).
Features
Customizable Inputs: Set the start date, end date, and daily dollar amount to simulate your DCA strategy.
Results Table: Displays on the last candle (top-right of the chart) with:
Total BTC: The accumulated Bitcoin from daily purchases.
Total Invested ($): The total dollars invested.
Portfolio Value ($): The current value of your BTC holdings.
Unrealized Yield ($): Your profit/loss in USD.
Unrealized Yield (%): Your profit/loss as a percentage.
Visual Markers: Green triangles below the chart mark each daily investment.
Overlay on Chart: The table and markers appear directly on the BTCUSD price chart for easy reference.
Daily Timeframe: Designed for Daily (1D) charts to ensure accurate calculations.
How to Use
Add the Indicator: Apply the indicator to a BTCUSD chart (e.g., Coinbase:BTCUSD, Binance:BTCUSDT).
Set Daily Timeframe: Ensure your chart is on the Daily (1D) timeframe, or the script will display an error.
Configure Inputs: Open the indicator’s Settings > Inputs tab and set:
Start Date: When to begin the DCA strategy (e.g., 2024-01-01).
End Date: When to end the strategy (e.g., 2025-04-27 or earlier).
Daily Investment ($): The fixed dollar amount to invest daily (e.g., $100).
View Results: Scroll to the last candle in your date range to see the results table in the top-right corner of the chart. Green triangles below the bars indicate investment days.
Settings
Start Date: Choose the start date for your DCA strategy (default: 2024-01-01).
End Date: Choose the end date (default: 2025-04-27). Must be after the start date and within available chart data.
Daily Investment ($): Set the daily investment amount (default: $100). Minimum is $0.01.
Notes
Timeframe: The indicator requires a Daily (1D) chart. Other timeframes will trigger an error.
Data: Ensure your BTCUSD chart has historical data for the selected date range. Use reliable pairs like Coinbase:BTCUSD or Binance:BTCUSDT.
Limitations: Does not account for trading fees or slippage. Future dates (beyond the current date) will not display results.
Performance: Works best with historical data. Free TradingView accounts may have limited historical data; consider premium for longer ranges.
Cerca negli script per "上大股份+最新股价+走势分析+2025年6月"
TASC 2025.05 Trading The Channel█ OVERVIEW
This script implements channel-based trading strategies based on the concepts explained by Perry J. Kaufman in the article "A Test Of Three Approaches: Trading The Channel" from the May 2025 edition of TASC's Traders' Tips . The script explores three distinct trading methods for equities and futures using information from a linear regression channel. Each rule set corresponds to different market behaviors, offering flexibility for trend-following, breakout, and mean-reversion trading styles.
█ CONCEPTS
Linear regression
Linear regression is a model that estimates the relationship between a dependent variable and one or more independent variables by fitting a straight line to the observed data. In the context of financial time series, traders often use linear regression to estimate trends in price movements over time.
The slope of the linear regression line indicates the strength and direction of the price trend. For example, a larger positive slope indicates a stronger upward trend, and a larger negative slope indicates the opposite. Traders can look for shifts in the direction of a linear regression slope to identify potential trend trading signals, and they can analyze the magnitude of the slope to support trading decisions.
One caveat to linear regression is that most financial time series data does not follow a straight line, meaning a regression line cannot perfectly describe the relationships between values. Prices typically fluctuate around a regression line to some degree. As such, analysts often project ranges above and below regression lines, creating channels to model the expected extent of the data's variability. This strategy constructs a channel based on the method used in Kaufman's article. It measures the maximum distances from points on the linear regression line to historical price values, then adds those distances and the current slope to the regression points.
Depending on the trading style, traders might look for prices to move outside an established channel for breakout signals, or they might look for price action to reach extremes within the channel for potential mean reversion opportunities.
█ STRATEGY CALCULATIONS
Primary trade rules
This strategy implements three distinct sets of rules for trend, breakout, and mean-reversion trades based on the methods Kaufman describes in his article:
Trade the trend (Rule 1) : Open new positions when the sign of the slope changes, indicating a potential trend reversal. Close short trades and enter a long trade when the slope changes from negative to positive, and do the opposite when the slope changes from positive to negative.
Trade channel breakouts (Rule 2) : Open new positions when prices cross outside the linear regression channel for the current sample. Close short trades and enter a long trade when the price moves above the channel, and do the opposite when the price moves below the channel.
Trade within the channel (Rule 3) : Open new positions based on price values within the channel's range. Close short trades and enter a long trade when the price is near the channel's low, within a specified percentage of the channel's range, and do the opposite when the price is near the channel's high. With this rule, users can also filter the trades based on the channel's slope. When the filter is active, long positions are allowed only when the slope is positive, and short positions are allowed only when it is negative.
Position sizing
Kaufman's strategy uses specific trade sizes for equities and futures markets:
For an equities symbol, the number of shares traded is $10,000 divided by the current price.
For a futures symbol, the number of contracts traded is based on a volatility-adjusted formula that divides $25,000 by the product of the 20-bar average true range and the instrument's point value.
By default, this script automatically uses these sizes for its trade simulation on equities and futures symbols and does not simulate trading on other symbols. However, users can control position sizes from the "Settings/Properties" tab and enable trade simulation on other symbol types by selecting the "Manual" option in the script's "Position sizing" input.
Stop-loss
This strategy includes the option to place an accompanying stop-loss order for each trade, which users can enable from the "SL %" input in the "Settings/Inputs" tab. When enabled, the strategy places a stop-loss order at a specified percentage distance from the closing price where the entry order occurs, allowing users to compare how the strategy performs with added loss protection.
█ USAGE
This strategy adapts its display logic for the three trading approaches based on the rule selected in the "Trade rule" input:
For all rules, the script plots the linear regression slope in a separate pane. The plot is color-coded to indicate whether the current slope is positive or negative.
When the selected rule is "Trade the trend", the script plots triangles in the separate pane to indicate when the slope's direction changes from positive to negative or vice versa. Additionally, it plots a color-coded SMA on the main chart pane, allowing visual comparison of the slope to directional changes in a moving average.
When the rule is "Trade channel breakouts" or "Trade within the channel", the script draws the current period's linear regression channel on the main chart pane, and it plots bands representing the history of the channel values from the specified start time onward.
When the rule is "Trade within the channel", the script plots overbought and oversold zones between the bands based on a user-specified percentage of the channel range to indicate the value ranges where new trades are allowed.
Users can customize the strategy's calculations with the following additional inputs in the "Settings/Inputs" tab:
Start date : Sets the date and time when the strategy begins simulating trades. The script marks the specified point on the chart with a gray vertical line. The plots for rules 2 and 3 display the bands and trading zones from this point onward.
Period : Specifies the number of bars in the linear regression channel calculation. The default is 40.
Linreg source : Specifies the source series from which to calculate the linear regression values. The default is "close".
Range source : Specifies whether the script uses the distances from the linear regression line to closing prices or high and low prices to determine the channel's upper and lower ranges for rules 2 and 3. The default is "close".
Zone % : The percentage of the channel's overall range to use for trading zones with rule 3. The default is 20, meaning the width of the upper and lower zones is 20% of the range.
SL% : If the checkbox is selected, the strategy adds a stop-loss to each trade at the specified percentage distance away from the closing price where the entry order occurs. The checkbox is deselected by default, and the default percentage value is 5.
Position sizing : Determines whether the strategy uses Kaufman's predefined trade sizes ("Auto") or allows user-defined sizes from the "Settings/Properties" tab ("Manual"). The default is "Auto".
Long trades only : If selected, the strategy does not allow short positions. It is deselected by default.
Trend filter : If selected, the strategy filters positions for rule 3 based on the linear regression slope, allowing long positions only when the slope is positive and short positions only when the slope is negative. It is deselected by default.
NOTE: Because of this strategy's trading rules, the simulated results for a specific symbol or channel configuration might have significantly fewer than 100 trades. For meaningful results, we recommend adjusting the start date and other parameters to achieve a reasonable number of closed trades for analysis.
Additionally, this strategy does not specify commission and slippage amounts by default, because these values can vary across market types. Therefore, we recommend setting realistic values for these properties in the "Cost simulation" section of the "Settings/Properties" tab.
Psych Level ScreenerThis Script is intended for Pine Screener and is not designed as a indicator!!!
Pine Screener is something TradingView has recently added and is still only a Beta version.
Pine Screener itself is currently only available to members that are Premium and above.
What it does:
This screener will actively look for tickers that are close to Pysch level in your watchlist.
Psych level here refers to price levels that are round numbers such as 50,100,1000.
Users can specify the offset from a psych level (in %) and scanner will scan for tickers that are within the offset. For example if offset is set at 5% then it will scan for tickers that are within +/-5% of a ticker. (for $100 psych level it will scan for ticker in $95-105 range)
Once scan is completed you will be able to see:
- Current price of ticker
- Closest psych level for that ticker
- % and $ move required for it to hit that psych level
- Ticker's day range and Average range (with % of average range completed for the day)
- Ticker volume and average volume
Setting up:
www.tradingview.com
Above link will help you guide how to setup Pine screener.
Use steps below to guide you the setup for this specific screener:
1. Open Pine Screener (open new tab, select screener the "Pine")
2. At the top, click on "Choose Indicator" and select "Psych Level Screener"
3. At the top again, click "Indicator Psych Level Screener" and select settings.
4. Change setting to your needs. Hit Apply when done.
a)"% offset from Psych Level" will scan for any stocks in your watchlist which are +/- from the offset you chose for any given psych level. Default is 5. (e.g. If offset is 5%, it will scan for stocks that are between $95-$105 vs $100 psych level, $190-$210 for $200 psych level and so on)
b) ATR length is number of previous trading days you want to include in your calculation. Moving Average Type is calculation method.
c) Rvol length is number of previous trading days you want to include in your calculation.
5. On top left, click "Price within specified offset of Psych. Level" and select true. Then select "Scan" which is located at the top next to "Indicator Psych Level Screener". This will filter out all the stock that meets the condition.
6. At the end of the column on the right there is a "+" symbol. From there you can add/remove columns. 30min/1hr/4hr/1D Trend are disabled by default so if this is needed please enable them.
7. You can change the order of ticker by ascending and descending order of each column label if needed. Just click on the arrow that comes up when you move the cursor to any of the column items.
8. You can specify advanced filter settings based on the variables in the column. (e.g., set price range of stock to filter out further) To do so, click on the column variable name in interest, located above the screener table (or right below "scan") and select "manual setup".
How to read the column:
Current Price: Shows current price of the ticker when scan was done. Currently Pine Screener does NOT support pre/post-hours data so no PM and AH price.
Psych Level: Psych level the current price is near to.
% to Psych Level: Price movement in % necessary to get to the Psych level.
$ to Psych Level: Price movement in $ necessary to get to the Psych level.
DTR: Daily True Range of the stock. i.e. High - Low of the ticker on the day.
ATR: Average True Range of stock in the last x days, where x is a value selected in the setting. (See step 3 in Previous section)
DTR vs ATR: Amount of DTR a ticker has done in % with respect to ATR. (e.g., 90% means DTR is 90% of ATR)
Vol.: Volume of a ticker for the day. Currently Pine Screener does NOT support pre/post-hours data so no PM and AH volume.
Avg. Vol: Average volume of a ticker in the last x days, where x is a value selected in the setting. (See step 3 in Previous section)
Rvol: Relative volume in percentage, measured by the ratio of day's volume and average volume.
30min/1hr/4hr/1D Trend: Trend status to see if the chart is Bullish or Bearish on each of the time frame. Bullishness or Bearishness is defined by the price being over or under the 34/50 cloud on each of the time frame. Output of 1 is Bullish, -1 is Bearish. 0 means price is sitting inside the 34/50 cloud. Currently Pine Screener does NOT support pre/post-hours data so 34/50 cloud is based on regular trading hours data ONLY.
Some things user should be aware of:
- Pine Screener itself is currently only available to TradingView members with Premium Subscription and above. (I can't to anything about this as this is NOT set by me, I have no control) For more info: www.tradingview.com
- The Pine Screener itself is a Beta version and this screener can stop working anytime depending on changes made by TradingView themselves. (Again I cannot control this)
- Pine Screener can only run on Watchlists for now. (as of 03/31/2025) You will have to prepare your own watchlists. In a Watchlist no more than 1000 tickers may be added. (This is TradingView rules)
- Psych level included are currently 50 to 1500 in steps of 50. If you need a specific number please let me know. Will add accordingly.
- Unfortunately this screener does not update automatically, so please hit "scan" to get latest screener result.
- I cannot add 10min trend to the column as Pine Screener does NOT support 10min timeframe as of now. (03/31/2025)
- This code is only meant for Pine Screener. I do NOT recommend using this as an indicator.
- Currently Pine Screener does NOT support pre/post-hours data. So data such as Price, Volume and EMA values are based on market hours data ONLY! (If I'm wrong about this please correct me / let me know and will make look into and make changes to the code)
Other useful links about Pine Screener:
Quick overview of the Screener’s functionality: www.tradingview.com
what do you need to know before you start working? : www.tradingview.com
These links will go over the setting up with GIFs so is easier to understand.
-----------------------------------------------------------------------------------------------------------------
If there are other column variables that you think is worth adding please let me know! Will try add it to the screener!
If you have any questions let me know as well, will reply soon as I can!
Have a good trading day and hope it helps!
TASC 2025.04 The Ultimate Oscillator█ OVERVIEW
This script implements an alternative, refined version of the Ultimate Oscillator (UO) designed to reduce lag and enhance responsiveness in momentum indicators, as introduced by John F. Ehlers in his article "Less Lag In Momentum Indicators, The Ultimate Oscillator" from the April 2025 edition of TASC's Traders' Tips .
█ CONCEPTS
In his article, Ehlers states that indicators are essentially filters that remove unwanted noise (i.e., unnecessary information) from market data. Simply put, they process a series of data to place focus on specific information, providing a different perspective on price dynamics. Various filter types attenuate different periodic signals within the data. For instance, a lowpass filter allows only low-frequency signals, a highpass filter allows only high-frequency signals, and a bandpass filter allows signals within a specific frequency range .
Ehlers explains that the key to removing indicator lag is to combine filters of different types in such a way that the result preserves necessary, useful signals while minimizing delay (lag). His proposed UltimateOscillator aims to maintain responsiveness to a specific frequency range by measuring the difference between two highpass filters' outputs. The oscillator uses the following formula:
UO = (HP1 - HP2) / RMS
Where:
HP1 is the first highpass filter.
HP2 is another highpass filter that allows only shorter wavelengths than the critical period of HP1.
RMS is the root mean square of the highpass filter difference, used as a scaling factor to standardize the output.
The resulting oscillator is similar to a bandpass filter , because it emphasizes wavelengths between the critical periods of the two highpass filters. Ehlers' UO responds quickly to value changes in a series, providing a responsive view of momentum with little to no lag.
█ USAGE
Ehlers' UltimateOscillator sets the critical periods of its highpass filters using two parameters: BandEdge and Bandwidth :
The BandEdge sets the critical period of the second highpass filter, which determines the shortest wavelengths in the response.
The Bandwidth is a multiple of the BandEdge used for the critical period of the first highpass filter, which determines the longest wavelengths in the response. Ehlers suggests that a Bandwidth value of 2 works well for most applications. However, traders can use any value above or equal to 1.4.
Users can customize these parameters with the "Bandwidth" and "BandEdge" inputs in the "Settings/Inputs" tab.
The script plots the UO calculated for the specified "Source" series in a separate pane, with a color based on the chart's foreground color. Positive UO values indicate upward momentum or trends, and negative UO values indicate the opposite.
Additionally, this indicator provides the option to display a "cloud" from 10 additional UO series with different settings for an aggregate view of momentum. The "Cloud" input offers four display choices: "Bandwidth", "BandEdge", "Bandwidth + BandEdge", or "None".
The "Bandwidth" option calculates oscillators with different Bandwidth values based on the main oscillator's setting. Likewise, the "BandEdge" option calculates oscillators with varying BandEdge values. The "Bandwidth + BandEdge" option calculates the extra oscillators with different values for both parameters.
When a user selects any of these options, the script plots the maximum and minimum oscillator values and fills their space with a color gradient. The fill color corresponds to the net sum of each UO's sign , indicating whether most of the UOs reflect positive or negative momentum. Green hues mean most oscillators are above zero, signifying stronger upward momentum. Red hues mean most are below zero, indicating stronger downward momentum.
Cash And Carry Arbitrage BTC Compare Month 6 by SeoNo1Detailed Explanation of the BTC Cash and Carry Arbitrage Script
Script Title: BTC Cash And Carry Arbitrage Month 6 by SeoNo1
Short Title: BTC C&C ABT Month 6
Version: Pine Script v5
Overlay: True (The indicators are plotted directly on the price chart)
Purpose of the Script
This script is designed to help traders analyze and track arbitrage opportunities between the spot market and futures market for Bitcoin (BTC). Specifically, it calculates the spread and Annual Percentage Yield (APY) from a cash-and-carry arbitrage strategy until a specific expiry date (in this case, June 27, 2025).
The strategy helps identify profitable opportunities when the futures price of BTC is higher than the spot price. Traders can then buy BTC in the spot market and short BTC futures contracts to lock in a risk-free profit.
1. Input Settings
Spot Symbol: The real-time BTC spot price from Binance (BTCUSDT).
Futures Symbol: The BTC futures contract that expires in June 2025 (BTCUSDM2025).
Expiry Date: The expiration date of the futures contract, set to June 27, 2025.
These inputs allow users to adjust the symbols or expiry date according to their trading needs.
2. Price Data Retrieval
Spot Price: Fetches the latest closing price of BTC from the spot market.
Futures Price: Fetches the latest closing price of BTC futures.
Spread: The difference between the futures price and the spot price (futures_price - spot_price).
The spread indicates how much higher (or lower) the futures price is compared to the spot market.
3. Time to Maturity (TTM) and Annual Percentage Yield (APY) Calculation
Current Date: Gets the current timestamp.
Time to Maturity (TTM): The number of days left until the futures contract expires.
APY Calculation:
Formula:
APY = ( Spread / Spot Price ) x ( 365 / TTM Days ) x 100
This represents the annualized return from holding a cash-and-carry arbitrage position if the trader buys BTC at the spot price and sells BTC futures.
4. Display Information Table on the Chart
A table is created on the chart's top-right corner showing the following data:
Metric: Labels such as Spread and APY
Value: Displays the calculated spread and APY
The table automatically updates at the latest bar to display the most recent data.
5. Alert Condition
This sets an alert condition that triggers every time the script runs.
In practice, users can modify this alert to trigger based on specific conditions (e.g., APY exceeds a threshold).
6. Plotting the APY and Spread
APY Plot: Displays the annualized yield as a blue line on the chart.
Spread Plot: Visualizes the futures-spot spread as a red line.
This helps traders quickly identify arbitrage opportunities when the spread or APY reaches desirable levels.
How to Use the Script
Monitor Arbitrage Opportunities:
A positive spread indicates a potential cash-and-carry arbitrage opportunity.
The larger the APY, the more profitable the arbitrage opportunity could be.
Timing Trades:
Execute a buy on the BTC spot market and simultaneously sell BTC futures when the APY is attractive.
Close both positions upon futures contract expiry to realize profits.
Risk Management:
Ensure you have sufficient margin to hold both positions until expiry.
Monitor funding rates and volatility, which could affect returns.
Conclusion
This script is an essential tool for traders looking to exploit price discrepancies between the BTC spot market and futures market through a cash-and-carry arbitrage strategy. It provides real-time data on spreads, annualized returns (APY), and visual alerts, helping traders make informed decisions and maximize their profit potential.
Full Moon and New Moon IndicatorThe Full Moon & New Moon Indicator is a custom Pine Script indicator which marks Full Moon (Pournami) and New Moon (Amavasya) events on the price chart. This indicator helps traders who incorporate lunar cycles into their market analysis, as certain traders believe these cycles influence market sentiment and price action. The current script is added for the year 2024 and 2025 and the dates are considered as per the Telugu calendar.
Features
✅ Identifies and labels Full Moon & New Moon days on the chart for the year 2024 and 2025
How it Works!
On a Full Moon day, it places a yellow label ("Pournami") above the corresponding candle.
On a New Moon day, it places a blue label ("Amavasya") above the corresponding candle.
Example Usage
When a Full Moon label appears, check for potential trend reversals or high volatility.
When a New Moon label appears, watch for market consolidation or a shift in sentiment.
Combine with candlestick patterns, support/resistance, or momentum indicators for a stronger trading setup.
🚀 Add this indicator to your TradingView chart and explore the market’s reaction to lunar cycles! 🌕
TASC 2025.03 A New Solution, Removing Moving Average Lag█ OVERVIEW
This script implements a novel technique for removing lag from a moving average, as introduced by John Ehlers in the "A New Solution, Removing Moving Average Lag" article featured in the March 2025 edition of TASC's Traders' Tips .
█ CONCEPTS
In his article, Ehlers explains that the average price in a time series represents a statistical estimate for a block of price values, where the estimate is positioned at the block's center on the time axis. In the case of a simple moving average (SMA), the calculation moves the analyzed block along the time axis and computes an average after each new sample. Because the average's position is at the center of each block, the SMA inherently lags behind price changes by half the data length.
As a solution to removing moving average lag, Ehlers proposes a new projected moving average (PMA) . The PMA smooths price data while maintaining responsiveness by calculating a projection of the average using the data's linear regression slope.
The slope of linear regression on a block of financial time series data can be expressed as the covariance between prices and sample points divided by the variance of the sample points. Ehlers derives the PMA by adding this slope across half the data length to the SMA, creating a first-order prediction that substantially reduces lag:
PMA = SMA + Slope * Length / 2
In addition, the article includes methods for calculating predictions of the PMA and the slope based on second-order and fourth-order differences. The formulas for these predictions are as follows:
PredictPMA = PMA + 0.5 * (Slope - Slope ) * Length
PredictSlope = 1.5 * Slope - 0.5 * Slope
Ehlers suggests that crossings between the predictions and the original values can help traders identify timely buy and sell signals.
█ USAGE
This indicator displays the SMA, PMA, and PMA prediction for a specified series in the main chart pane, and it shows the linear regression slope and prediction in a separate pane. Analyzing the difference between the PMA and SMA can help to identify trends. The differences between PMA or slope and its corresponding prediction can indicate turning points and potential trade opportunities.
The SMA plot uses the chart's foreground color, and the PMA and slope plots are blue by default. The plots of the predictions have a green or red hue to signify direction. Additionally, the indicator fills the space between the SMA and PMA with a green or red color gradient based on their differences:
Users can customize the source series, data length, and plot colors via the inputs in the "Settings/Inputs" tab.
█ NOTES FOR Pine Script® CODERS
The article's code implementation uses a loop to calculate all necessary sums for the slope and SMA calculations. Ported into Pine, the implementation is as follows:
pma(float src, int length) =>
float PMA = 0., float SMA = 0., float Slope = 0.
float Sx = 0.0 , float Sy = 0.0
float Sxx = 0.0 , float Syy = 0.0 , float Sxy = 0.0
for count = 1 to length
float src1 = src
Sx += count
Sy += src
Sxx += count * count
Syy += src1 * src1
Sxy += count * src1
Slope := -(length * Sxy - Sx * Sy) / (length * Sxx - Sx * Sx)
SMA := Sy / length
PMA := SMA + Slope * length / 2
However, loops in Pine can be computationally expensive, and the above loop's runtime scales directly with the specified length. Fortunately, Pine's built-in functions often eliminate the need for loops. This indicator implements the following function, which simplifies the process by using the ta.linreg() and ta.sma() functions to calculate equivalent slope and SMA values efficiently:
pma(float src, int length) =>
float Slope = ta.linreg(src, length, 0) - ta.linreg(src, length, 1)
float SMA = ta.sma(src, length)
float PMA = SMA + Slope * length * 0.5
To learn more about loop elimination in Pine, refer to this section of the User Manual's Profiling and optimization page.
TASC 2025.02 Autocorrelation Indicator█ OVERVIEW
This script implements the Autocorrelation Indicator introduced by John Ehlers in the "Drunkard's Walk: Theory And Measurement By Autocorrelation" article from the February 2025 edition of TASC's Traders' Tips . The indicator calculates the autocorrelation of a price series across several lags to construct a periodogram , which traders can use to identify market cycles, trends, and potential reversal patterns.
█ CONCEPTS
Drunkard's walk
A drunkard's walk , formally known as a random walk , is a type of stochastic process that models the evolution of a system or variable through successive random steps.
In his article, John Ehlers relates this model to market data. He discusses two first- and second-order partial differential equations, modified for discrete (non-continuous) data, that can represent solutions to the discrete random walk problem: the diffusion equation and the wave equation. According to Ehlers, market data takes on a mixture of two "modes" described by these equations. He theorizes that when "diffusion mode" is dominant, trading success is almost a matter of luck, and when "wave mode" is dominant, indicators may have improved performance.
Pink spectrum
John Ehlers explains that many recent academic studies affirm that market data has a pink spectrum , meaning the power spectral density of the data is proportional to the wavelengths it contains, like pink noise . A random walk with a pink spectrum suggests that the states of the random variable are correlated and not independent. In other words, the random variable exhibits long-range dependence with respect to previous states.
Autocorrelation function (ACF)
Autocorrelation measures the correlation of a time series with a delayed copy, or lag , of itself. The autocorrelation function (ACF) is a method that evaluates autocorrelation across a range of lags , which can help to identify patterns, trends, and cycles in stochastic market data. Analysts often use ACF to detect and characterize long-range dependence in a time series.
The Autocorrelation Indicator evaluates the ACF of market prices over a fixed range of lags, expressing the results as a color-coded heatmap representing a dynamic periodogram. Ehlers suggests the information from the periodogram can help traders identify different market behaviors, including:
Cycles : Distinguishable as repeated patterns in the periodogram.
Reversals : Indicated by sharp vertical changes in the periodogram when the indicator uses a short data length .
Trends : Indicated by increasing correlation across lags, starting with the shortest, over time.
█ USAGE
This script calculates the Autocorrelation Indicator on an input "Source" series, smoothed by Ehlers' UltimateSmoother filter, and plots several color-coded lines to represent the periodogram's information. Each line corresponds to an analyzed lag, with the shortest lag's line at the bottom of the pane. Green hues in the line indicate a positive correlation for the lag, red hues indicate a negative correlation (anticorrelation), and orange or yellow hues mean the correlation is near zero.
Because Pine has a limit on the number of plots for a single indicator, this script divides the periodogram display into three distinct ranges that cover different lags. To see the full periodogram, add three instances of this script to the chart and set the "Lag range" input for each to a different value, as demonstrated in the chart above.
With a modest autocorrelation length, such as 20 on a "1D" chart, traders can identify seasonal patterns in the price series, which can help to pinpoint cycles and moderate trends. For instance, on the daily ES1! chart above, the indicator shows repetitive, similar patterns through fall 2023 and winter 2023-2024. The green "triangular" shape rising from the zero lag baseline over different time ranges corresponds to seasonal trends in the data.
To identify turning points in the price series, Ehlers recommends using a short autocorrelation length, such as 2. With this length, users can observe sharp, sudden shifts along the vertical axis, which suggest potential turning points from upward to downward or vice versa.
Highs & Lows RTH/OVN/IBs/D/W/M/YOverview
Plots the highs and lows of RTH, OVN/ETH, IBs of those sessions, previous Day, Week, Month, and Year.
Features
Allows the user to enable/disable plotting the high/low of each period.
Lines' length, offset, and colors can be customized
Labels' position, size, color, and style can be customized
Support
Questions, feedbacks, and requests are welcomed. Please feel free to use Comments or direct private message via TradingView.
Disclaimer
This stock chart indicator provided is for informational purposes only and should not be considered as financial or investment advice. The data and information presented in this indicator are obtained from sources believed to be reliable, but we do not warrant its completeness or accuracy.
Users should be aware that:
Any investment decisions made based on this indicator are at your own risk.
The creators and providers of this indicator disclaim all liability for any losses, damages, or other consequences resulting from its use. By using this stock chart indicator, you acknowledge and accept the inherent risks associated with trading and investing in financial markets.
Release Date: 2025-01-17
Release Version: v1 r1
Release Notes Date: 2025-01-17
TASC 2025.01 Linear Predictive Filters█ OVERVIEW
This script implements a suite of tools for identifying and utilizing dominant cycles in time series data, as introduced by John Ehlers in the "Linear Predictive Filters And Instantaneous Frequency" article featured in the January 2025 edition of TASC's Traders' Tips . Dominant cycle information can help traders adapt their indicators and strategies to changing market conditions.
█ CONCEPTS
Conventional technical indicators and strategies often rely on static, unchanging parameters, which may fail to account for the dynamic nature of market data. In his article, John Ehlers applies digital signal processing principles to address this issue, introducing linear predictive filters to identify cyclic information for adapting indicators and strategies to evolving market conditions.
This approach treats market data as a complex series in the time domain. Analyzing the series in the frequency domain reveals information about its cyclic components. To reduce the impact of frequencies outside a range of interest and focus on a specific range of cycles, Ehlers applies second-order highpass and lowpass filters to the price data, which attenuate or remove wavelengths outside the desired range. This band-limited analysis isolates specific parts of the frequency spectrum for various trading styles, e.g., longer wavelengths for position trading or shorter wavelengths for swing trading.
After filtering the series to produce band-limited data, Ehlers applies a linear predictive filter to predict future values a few bars ahead. The filter, calculated based on the techniques proposed by Lloyd Griffiths, adaptively minimizes the error between the latest data point and prediction, successively adjusting its coefficients to align with the band-limited series. The filter's coefficients can then be applied to generate an adaptive estimate of the band-limited data's structure in the frequency domain and identify the dominant cycle.
█ USAGE
This script implements the following tools presented in the article:
Griffiths Predictor
This tool calculates a linear predictive filter to forecast future data points in band-limited price data. The crosses between the prediction and signal lines can provide potential trade signals.
Griffiths Spectrum
This tool calculates a partial frequency spectrum of the band-limited price data derived from the linear predictive filter's coefficients, displaying a color-coded representation of the frequency information in the pane. This mode's display represents the data as a periodogram . The bottom of each plotted bar corresponds to a specific analyzed period (inverse of frequency), and the bar's color represents the presence of that periodic cycle in the time series relative to the one with the highest presence (i.e., the dominant cycle). Warmer, brighter colors indicate a higher presence of the cycle in the series, whereas darker colors indicate a lower presence.
Griffiths Dominant Cycle
This tool compares the cyclic components within the partial spectrum and identifies the frequency with the highest power, i.e., the dominant cycle . Traders can use this dominant cycle information to tune other indicators and strategies, which may help promote better alignment with dynamic market conditions.
Notes on parameters
Bandpass boundaries:
In the article, Ehlers recommends an upper bound of 125 bars or higher to capture longer-term cycles for position trading. He recommends an upper bound of 40 bars and a lower bound of 18 bars for swing trading. If traders use smaller lower bounds, Ehlers advises a minimum of eight bars to minimize the potential effects of aliasing.
Data length:
The Griffiths predictor can use a relatively small data length, as autocorrelation diminishes rapidly with lag. However, for optimal spectrum and dominant cycle calculations, the length must match or exceed the upper bound of the bandpass filter. Ehlers recommends avoiding excessively long lengths to maintain responsiveness to shorter-term cycles.
Ripple (XRP) Model PriceAn article titled Bitcoin Stock-to-Flow Model was published in March 2019 by "PlanB" with mathematical model used to calculate Bitcoin model price during the time. We know that Ripple has a strong correlation with Bitcoin. But does this correlation have a definite rule?
In this study, we examine the relationship between bitcoin's stock-to-flow ratio and the ripple(XRP) price.
The Halving and the stock-to-flow ratio
Stock-to-flow is defined as a relationship between production and current stock that is out there.
SF = stock / flow
The term "halving" as it relates to Bitcoin has to do with how many Bitcoin tokens are found in a newly created block. Back in 2009, when Bitcoin launched, each block contained 50 BTC, but this amount was set to be reduced by 50% every 210,000 blocks (about 4 years). Today, there have been three halving events, and a block now only contains 6.25 BTC. When the next halving occurs, a block will only contain 3.125 BTC. Halving events will continue until the reward for minors reaches 0 BTC.
With each halving, the stock-to-flow ratio increased and Bitcoin experienced a huge bull market that absolutely crushed its previous all-time high. But what exactly does this affect the price of Ripple?
Price Model
I have used Bitcoin's stock-to-flow ratio and Ripple's price data from April 1, 2014 to November 3, 2021 (Daily Close-Price) as the statistical population.
Then I used linear regression to determine the relationship between the natural logarithm of the Ripple price and the natural logarithm of the Bitcoin's stock-to-flow (BSF).
You can see the results in the image below:
Basic Equation : ln(Model Price) = 3.2977 * ln(BSF) - 12.13
The high R-Squared value (R2 = 0.83) indicates a large positive linear association.
Then I "winsorized" the statistical data to limit extreme values to reduce the effect of possibly spurious outliers (This process affected less than 4.5% of the total price data).
ln(Model Price) = 3.3297 * ln(BSF) - 12.214
If we raise the both sides of the equation to the power of e, we will have:
============================================
Final Equation:
■ Model Price = Exp(- 12.214) * BSF ^ 3.3297
Where BSF is Bitcoin's stock-to-flow
============================================
If we put current Bitcoin's stock-to-flow value (54.2) into this equation we get value of 2.95USD. This is the price which is indicated by the model.
There is a power law relationship between the market price and Bitcoin's stock-to-flow (BSF). Power laws are interesting because they reveal an underlying regularity in the properties of seemingly random complex systems.
I plotted XRP model price (black) over time on the chart.
Estimating the range of price movements
I also used several bands to estimate the range of price movements and used the residual standard deviation to determine the equation for those bands.
Residual STDEV = 0.82188
ln(First-Upper-Band) = 3.3297 * ln(BSF) - 12.214 + Residual STDEV =>
ln(First-Upper-Band) = 3.3297 * ln(BSF) – 11.392 =>
■ First-Upper-Band = Exp(-11.392) * BSF ^ 3.3297
In the same way:
■ First-Lower-Band = Exp(-13.036) * BSF ^ 3.3297
I also used twice the residual standard deviation to define two extra bands:
■ Second-Upper-Band = Exp(-10.570) * BSF ^ 3.3297
■ Second-Lower-Band = Exp(-13.858) * BSF ^ 3.3297
These bands can be used to determine overbought and oversold levels.
Estimating of the future price movements
Because we know that every four years the stock-to-flow ratio, or current circulation relative to new supply, doubles, this metric can be plotted into the future.
At the time of the next halving event, Bitcoins will be produced at a rate of 450 BTC / day. There will be around 19,900,000 coins in circulation by August 2025
It is estimated that during first year of Bitcoin (2009) Satoshi Nakamoto (Bitcoin creator) mined around 1 million Bitcoins and did not move them until today. It can be debated if those coins might be lost or Satoshi is just waiting still to sell them but the fact is that they are not moving at all ever since. We simply decrease stock amount for 1 million BTC so stock to flow value would be:
BSF = (19,900,000 – 1.000.000) / (450 * 365) =115.07
Thus, Bitcoin's stock-to-flow will increase to around 115 until AUG 2025. If we put this number in the equation:
Model Price = Exp(- 12.214) * 114 ^ 3.3297 = 36.06$
Ripple has a fixed supply rate. In AUG 2025, the total number of coins in circulation will be about 56,000,000,000. According to the equation, Ripple's market cap will reach $2 trillion.
Note that these studies have been conducted only to better understand price movements and are not a financial advice.
100+ BTC Tracker + 182-Day Dormant (6-Month HODL)Instantly see what the biggest Bitcoin whales are doing — and exactly how much of the supply has been completely untouched for 6 full months or longer (182+ days), the strictest and most respected definition of true HODLing.
What this indicator shows you in real time:
Number of wallets holding ≥100 BTC (~15,800 whales)
Total Bitcoin controlled by these whales (~3.25 million BTC)
6-Month Dormant Supply — Bitcoin that hasn’t moved in 182+ days (~14.1 million BTC)
6-Month Dormant % — What percentage of circulating supply is truly locked away
Why 182 days matters:
The 6-month threshold (≈182 days) is the industry-standard cutoff used by Glassnode, CryptoQuant, and analysts worldwide to define ultra-long-term holders. These are the coins least likely to ever hit exchanges — the ultimate measure of conviction and scarcity.
Key features:Live or fallback? — Instantly know if you’re seeing real-time on-chain data (green) or verified backup values (yellow)
Works on free accounts — No paid data subscription required (though it becomes even more accurate with Glassnode/CryptoQuant add-ons)
Clean, non-intrusive design — Three bold plots + sleek dark table in the top-right corner
Always up to date — Fallback values manually verified as of November 21, 2025
Perfect for:
Spotting whale accumulation/distribution phases
Tracking real Bitcoin scarcity during bull or bear markets
Confirming long-term holder conviction before big moves
Add it to any BTC chart and instantly understand who really controls Bitcoin — and how much of it is locked away forever by the strongest hands in crypto.
BTC Energy Ratio + HashrateBTC Energy Ratio + Hashrate — The definitive energy-maximalist Bitcoin macro indicator.
Bitcoin priced in real-world mining energy basket (Oil×Gas + Uranium×Coal) ×1000
Live BTC price → ratio updates in real-time on any timeframe
Scaled hashrate overlay (perfect visual correlation/divergence)
200 EMA + RSI(14) pane
Permanent right-side labels on all key cycle levels (2025 ATH, Bull/Bear, Strong Buy, 2022 Low, etc.)
Ultra-compact dashboard: current ratio, hashrate (EH/s), 180d correlation, RSI, market zone & clear actionable signal
When hashrate is near ATH and the orange line is low → maximum miner pain = maximum opportunity.
The cleanest, most powerful BTC/energy chart on TradingView. Load it, watch the blue line peak while orange bottoms, and thank me when the next leg up starts. 🚀
Mirror Blocks: StrategyMirror Blocks is an educational structural-wave model built around a unique concept:
the interaction of mirrored weighted moving averages (“blocks”) that reflect shifts in market structure as price transitions between layered symmetry zones.
Rather than attempting to “predict” markets, the Mirror Blocks framework visualizes how price behaves when it expands away from, contracts toward, or flips across stacked WMA structures. These mirrored layers form a wave-like block system that highlights transitional zones in a clean, mechanical way.
This strategy version allows you to study how these structural transitions behave in different environments and on different timeframes.
The goal is understanding wave structure, not generating signals.
How It Works
Mirror Blocks builds three mirrored layers:
Top Block (Structural High Symmetry)
Base Block (Neutral Wave)
Bottom Block (Structural Low Symmetry)
The relative position of these blocks — and how price interacts with them — helps visualize:
Compression and expansion
Reversal zones
Wave stability
Momentum transitions
Structure flips
A structure is considered bullish-stack aligned when:
Top > Base > Bottom
and bearish-stack aligned when:
Bottom > Base > Top
These formations create the core of the Mirror Blocks wave engine.
What the Strategy Version Adds
This version includes:
Long Only, Short Only, or Long & Short modes
Adjustable symmetry distance (Mirror Distance)
Configurable WMA smoothing length
Optional trend filter using fast/slow MA comparison
ENTER / EXIT / LONG / SHORT labels for structural transitions
Fixed stop-loss controls for research
A clean, transparent structure with no hidden components
It is optimized for educational chart study, not automated signals.
Intended Purpose
Mirror Blocks is meant to help traders:
Study structural transitions
Understand symmetry-based wave models
Explore how price interacts with mirrored layers
Examine reversals and expansions from a mechanical perspective
Conduct long and short backtesting for research
Develop a deeper sense of market rhythm
This is not a prediction model.
It is a visual and structural framework for understanding movement.
Backtesting Disclaimer
Backtest results can vary depending on:
Slippage settings
Commission settings
Timeframe
Asset volatility
Structural sensitivity parameters
Past performance does not guarantee future results.
Use this as a research tool only.
Warnings & Compliance
This script is educational.
It is not financial advice.
It does not provide signals.
It does not promise profitability.
The purpose is to help visualize structure, not predict price.
The strategy features are simply here to help users study how structural transitions behave under various conditions.
License
Released under the Michael Culpepper Gratitude License (2025).
Use and modify freely for education and research with attribution.
No resale.
No promises of profitability.
Purpose is understanding, not signals.
Bitcoin vs M2 Global Liquidity (Lead 3M) - Table Ticker═══════════════════════════════════════════════════════════════
Bitcoin vs M2 Global Liquidity - Regression Indicator
═══════════════════════════════════════════════════════════════
TECHNICAL SPECS
• Pine Script v6
• Overlay: false (separate pane)
• Data sources: 5 M2 series + 4 FX pairs (request.security)
• Calculation: Rolling OLS linear regression with configurable lead
• Output: Regression line + ±1σ/±2σ confidence bands + R² ticker
CORE FUNCTIONALITY
Aggregates M2 money supply from 5 central banks (CN, US, EU, JP, GB),
converts to USD, applies time-lead, runs rolling linear regression
vs Bitcoin price, plots predicted value with confidence intervals.
CONFIGURABLE PARAMETERS
Input Controls:
• Lead Period: 0-365 days (default: 90)
• Lookback Window: 50-2000 bars (default: 750)
• Bands: Toggle ±1σ and ±2σ visibility
• Colors: BTC, M2, regression line, confidence zones
• Ticker: Position, size, colors, transparency
Advanced Settings:
• Table display: R², lead, M2 total, country breakdown (%)
• Ticker customization: 9 position options, 6 text sizes
• Border: Width 0-10px, color, outline-only mode
DATA AGGREGATION
Sources (via request.security):
• ECONOMICS:CNM2, USM2, EUM2, JPM2, GBM2
• FX_IDC:CNYUSD, JPYUSD (others: FX:EURUSD, GBPUSD)
• Conversion: All M2 → USD → Sum / 1e12 (trillions)
REGRESSION ENGINE
• Arrays: m2Array, btcArray (dynamic sizing, auto-trim)
• Window: Rolling (lookbackPeriod bars)
• Lead: Time-shift via array indexing (i + leadPeriodDays)
• Calc: Manual OLS (covariance/variance), no built-in ta functions
• Outputs: slope, intercept, r2, stdResiduals
CONFIDENCE BANDS
±1σ and ±2σ calculated from standard deviation of residuals.
Fill zones between upper/lower bounds with configurable transparency.
ALERTS
5 pre-configured alertcondition():
• Divergence > 15%
• Price crosses ±1σ bands (up/down)
• Price crosses ±2σ bands (up/down)
TICKER TABLE
Dynamic table.new() with 9 rows:
• R² value (4 decimals)
• Lead period (days + months)
• M2 Global total (trillions USD)
• Country breakdown: CN, US, EU, JP, GB (absolute + %)
• Optional: Hide/show M2 details
VISUAL CUSTOMIZATION
All plot() elements support:
• Color picker inputs (group="Couleurs")
• Line width: 1-3px
• Transparency: 0-100% for zones
• Offset: M2 plot has +leadPeriodDays offset option
PERFORMANCE
• Max arrays size: lookbackPeriod + leadPeriodDays + 200
• Calculations: Only when array.size >= lookbackPeriod + leadPeriodDays
• Table update: barstate.islast (once per bar)
• Request.security: gaps_off mode
CODE STRUCTURE
1. Inputs (lines 7-54)
2. Data fetch (lines 56-76)
3. M2 aggregation (line 78)
4. Array management (lines 84-95)
5. Regression calc (lines 97-172)
6. Prediction + bands (lines 174-183)
7. Plots (lines 185-199)
8. Ticker table (lines 201-236)
9. Alerts (lines 238-246)
DEPENDENCIES
None. Pure Pine Script v6. No external libraries.
LIMITATIONS
• Daily timeframe recommended (1D)
• Requires 750+ bars history for optimal calculation
• M2 data availability: TradingView ECONOMICS feed
• Max lines: 500 (declared in indicator())
CUSTOMIZATION EXAMPLES
• Shorter lookback (200d): More reactive, lower R²
• Longer lookback (1500d): More stable, regime mixing
• No bands: Set showBands=false for clean view
• Different lead: Test 60d, 120d for sensitivity analysis
TECHNICAL NOTES
• Manual OLS implementation (no ta.linreg)
• Array-based lead application (not plot offset)
• M2 values stored in trillions (/ 1e12) for readability
• Residuals array cleared/rebuilt each calculation
OPEN SOURCE
Code fully visible. Modify, fork, analyze freely.
No hidden calculations. No proprietary data.
VERSION
1.0 | November 2025 | Pine Script v6
═══════════════════════════════════════════════════════════════
100+ BTC Tracker + Sleepy ProxyThis lightweight Pine Script v6 indicator gives you four key on-chain metrics in real time — no paid subscription, no N/A, no NaN, no Glassnode required.
What it shows (daily timeframe recommended)
Orange line → Number of Bitcoin addresses holding ≥100 BTC right now
(Currently ~15,800–16,200 addresses)
Blue line → Total BTC sitting in those ≥100 BTC wallets
(Currently ~3.1–3.3 million BTC)
Purple table row → % of all Bitcoin supply held by long-term holders (Santiment’s LTH metric)
(Currently ~68–72%)
Teal line & table row → Approximate amount of BTC owned by long-term holders (the best free “sleepy/dormant” proxy)
(Currently ~13.5–14.2 million BTC)
Data sources (100% free & public – November 2025)
≥100 BTC wallets & supply → CryptoQuant (public symbols)
Sleepy proxy → Santiment “% of total supply held by long-term holders” (free tier)
Why this matters
Watch whale accumulation/distribution in real time
See how much Bitcoin is truly “sleeping” (LTH coins rarely move in bear markets)
Spot potential supply shocks when the teal line starts dropping fast → long-term holders are selling/waking up
Key advantages
Works on any free TradingView account
No errors, no missing data, no paid add-ons
Updates daily (as fast as free on-chain data gets)
Super clean table with latest values in the top-right corner
Fully open-source and ready to fork/customize
LiqD HeatMap 👑 [RubiXalgo]LiqD HeatMap - Advanced Liquidation Heatmap IndicatorOverviewThe LiqD HeatMap is a cutting-edge Pine Script™ indicator designed to visualize liquidation levels, market bias, and potential trade setups through an AI-driven color system. Inspired by Rubik's Cube mechanics and Ichimoku principles, it transforms complex market data (price, volume, momentum) into intuitive visuals like heatmaps, bubbles, lines, and gradients. This tool helps traders spot high-probability liquidation zones, support/resistance, and trend reversals without overwhelming charts.Powered by advanced smoothing (Kalman filters + LOWESS), pattern recognition (implied KNN clustering), and machine learning, it offers a "color language" for quick decisions: green/teal for bullish (buy), red/purple for bearish (sell), and yellow/orange for max volume (high-action zones). Darker shades indicate stronger signals.Key Benefits:Reduces trader bias with AI-based visuals.
Supports multi-timeframe (MTF) analysis for intraday to long-term trades.
Customizable for longs, shorts, or both.
No math required—follow the colors for 3:1+ risk-reward setups.
This indicator is for educational purposes only and does not guarantee profits. Trading involves risk; use at your own discretion.Main FeaturesLiquidation Heatmap (Bubbles & Lines): Displays liquidation levels as bubbles (circles) and horizontal lines. Bubbles show precise spots; lines mark broader zones. Size and color intensity reflect volume strength.
MTF Liquidation Levels: Overlay higher timeframes (e.g., Daily, Weekly) for thicker, brighter lines indicating stronger support/resistance.
Dynamic VWAP: Anchored VWAP with ATR multipliers for bias and liquidation estimates. Custom periods (e.g., Session, Month).
A.I. Volume Profit-Trend: Polyline prediction based on Ichimoku, volume delta, and targets (V, N, E, NT). Includes stop-loss, entry, and profit levels in a "Trade Window."
Stochastic Money Flow & Bollinger Band Width Percent: Labels above/below bars for momentum and volatility. Ranges from 3%–96% for extreme conditions.
Daily 0.618 Expansion (Fibonacci Ranges): Visualizes daily/HTF ranges with fib projections. Options for bar graphs and pre-market display.
Color Themes: "Classic" (red/green) or "Crypto" (teal/purple) for personalized visuals.
Trade Signals: High-probability setups like "Dark Green Bubble Surge" (long) or "Thick Red Line Breakdown" (short).
How to UseThe indicator shines in spotting liquidations and trends. Use the color language:Green/Teal: Bullish—buy or hold.
Red/Purple: Bearish—sell or short.
Yellow/Orange: Max volume—watch for reversals or breakouts.
Top Long Setups (3:1+ RR):Dark Green Bubble Surge: Enter long on dark green bubble below price + green bar. SL below bar low; TP 3x SL to red line. Exit on red bubble.
Thick Green Line Breakout: Enter long above thick green line + green bar. SL below line; TP 3x SL to red line. Exit on red rejection.
Yellow Line Bounce: Enter long off yellow line bounce + green bar. SL below low; TP 3x SL to higher red. Exit on red shift.
Top Short Setups (3:1+ RR):Dark Red Bubble Surge: Enter short on dark red bubble above price + red bar. SL above bar high; TP 3x SL to green line. Exit on green bubble.
Thick Red Line Breakdown: Enter short below thick red line + red bar. SL above line; TP 3x SL to green line. Exit on green support.
Yellow Line Rejection: Enter short off yellow line rejection + red bar. SL above high; TP 3x SL to lower green. Exit on green shift.
Pro Tips:In ranging markets: Trade bounces off levels.
In trends: Follow breakouts—aggressive moves take out levels.
Combine with Volume Profit-Trend: Polyline up + green = hit targets; down + red = breakdowns.
Stochastic Labels: >69% (red) = overbought; <31% (green) = oversold. Yellow (31–69%) = caution.
Bollinger Width: High % = volatility spike; low % = squeeze incoming.
For best results, use on crypto or forex charts. Test on demo accounts first.SettingsChart Settings: Toggle LiqD Levels/Bubbles, VWAP, Volume Profit-Trend, LiqD Window, Stochastic Flow, Bollinger Width.
HeatMap Liquidation Levels: Dynamic Lookback (8–21 bars for money flow), Market Bias (Both/Long/Short), Leverage (25–500 for signal frequency), Color Gradient (0–33 for intensity).
Dynamic VWAP: Anchor Period (e.g., Month), ATR Multiplier (0.9–3.14 for divergence).
MTF Liquidation Levels: Timeframe (e.g., D), Options (Current + HTF for overlays).
Daily 0.618 Expansion V4: Enable for fib ranges; Hide Historical, Show as Bar Graph, Resolution/Display (e.g., D), Mode (Daily Open/OHLC4/VWAP), Pre-Market Display.
Color Themes: Classic (red/green) or Crypto (teal/purple).
DisclaimersFinancial Disclaimer: This is for educational/informational purposes only. Not financial, investment, or trading advice. Use at your own risk; no liability for losses.
Copyright & Fair Use: Open-source under Mozilla Public License 2.0 and CC BY-NC-SA 4.0. Reuse for non-commercial, educational purposes with credit. Fair use applies per U.S. law (e.g., 17 U.S.C. § 107).
AI & Educational Reuse: AI modifications for learning are allowed under fair use precedents (e.g., Sony v. Universal, 1984).
TradingView Rules: Complies with platform guidelines; federal laws supersede any conflicts.
Risk Warning: Trading involves financial risk. Past performance ≠ future results. Rubik's Algo assumes no liability.
© 2025 Rubik's Algo. All rights reserved. Built with contributions from open-source Pine Script community and AI assistance (e.g., Grok). Special thanks to @StupidBitcoin
and referenced creators.
Global M2 Money Supply Growth (GDP-Weighted)📊 Global M2 Money Supply Growth (GDP-Weighted)
This indicator tracks the weighted aggregate M2 money supply growth across the world's four largest economies: United States, China, Eurozone, and Japan. These economies represent approximately 69.3 trillion USD in combined GDP and account for the majority of global liquidity, making this a comprehensive macro indicator for analyzing worldwide monetary conditions.
════════════════════════════════════════════
🔧 KEY FEATURES:
📈 GDP-Weighted Aggregation
Each economy is weighted proportionally by its nominal GDP using 2025 IMF World Economic Outlook data:
• United States: 44.2% (30.62 trillion USD)
• China: 28.0% (19.40 trillion USD)
• Eurozone: 21.6% (15.0 trillion USD)
• Japan: 6.2% (4.28 trillion USD)
The weights are fully adjustable through the indicator settings, allowing you to update them annually as new IMF forecasts are released (typically April and October).
⏱️ Multiple Time Period Options
Choose between three calculation methods to analyze different timeframes:
• YoY (Year-over-Year): 12-month growth rate for identifying long-term liquidity trends and cycles
• MoM (Month-over-Month): 1-month growth rate for detecting short-term monetary policy shifts
• QoQ (Quarter-over-Quarter): 3-month growth rate for medium-term trend analysis
🔄 Advanced Offset Function
Shift the entire indicator forward by 0-365 days to test lead/lag relationships between global liquidity and asset prices. Research suggests a 56-70 day lag between M2 changes and Bitcoin price movements, but you can experiment with different offsets for various assets (equities, gold, commodities, etc.).
🌍 Individual Country Breakdown
Real-time display of each economy's M2 growth rate with:
• Current percentage change (YoY/MoM/QoQ)
• GDP weight contribution
• Color-coded values (green = monetary expansion, red = contraction)
📊 Smart Overlay Capability
Displays directly on your main price chart with an independent left-side scale, allowing you to visually correlate global liquidity trends with any asset's price action without cluttering the chart.
🔧 Customizable GDP Weights
All GDP values can be adjusted through the indicator settings without editing code, making annual updates simple and accessible for all users.
════════════════════════════════════════════
📡 DATA SOURCES:
All M2 money supply data is sourced from ECONOMICS (Trading Economics) for consistency and reliability:
• ECONOMICS:USM2 (United States)
• ECONOMICS:CNM2 (China)
• ECONOMICS:EUM2 (Eurozone)
• ECONOMICS:JPM2 (Japan)
All values are normalized to USD using current daily exchange rates (USDCNY, EURUSD, USDJPY) before GDP-weighted aggregation, ensuring accurate cross-country comparisons.
══════════════════════════════════════════════
💡 USE CASES & APPLICATIONS:
🔹 Liquidity Cycle Analysis
Track global monetary expansion/contraction cycles to identify when central banks are coordinating loose or tight monetary policies.
🔹 Market Timing & Risk Assessment
High M2 growth (>10%) historically correlates with risk-on environments and rising asset prices across crypto, equities, and commodities. Negative M2 growth signals monetary tightening and potential market corrections.
🔹 Bitcoin & Crypto Correlation
Compare with Bitcoin price using the offset feature to identify the optimal lag period. Many traders use 60-70 day offsets to predict crypto market movements based on liquidity changes.
🔹 Macro Portfolio Allocation
Use as a regime filter to adjust portfolio exposure: increase risk assets during liquidity expansion, reduce during contraction.
🔹 Central Bank Policy Divergence
Monitor individual country metrics to identify when major central banks are pursuing divergent policies (e.g., Fed tightening while China eases).
🔹 Inflation & Economic Forecasting
Rapid M2 growth often leads inflation by 12-18 months, making this a leading indicator for future inflation trends.
🔹 Recession Early Warning
Negative M2 growth is extremely rare and has preceded major recessions, making this a valuable risk management tool.
════════════════════════════════════════════
📊 INTERPRETATION GUIDE:
🟢 +10% or Higher
Aggressive monetary expansion, typically during crises (2001, 2008, 2020). The COVID-19 period saw M2 growth reach 20-27%, which preceded significant inflation and asset price surges. Strong bullish signal for risk assets.
🟢 +6% to +10%
Above-average liquidity growth. Central banks are providing stimulus beyond normal levels. Generally favorable for equities, crypto, and commodities.
🟡 +3% to +6%
Normal/healthy growth rate, roughly in line with GDP growth plus 2% inflation targets. Neutral environment with moderate support for risk assets.
🟠 0% to +3%
Slowing liquidity, potential tightening phase beginning. Central banks may be raising rates or reducing balance sheets. Caution warranted for high-beta assets.
🔴 Negative Growth
Monetary contraction - extremely rare. Only occurred during aggressive Fed tightening in 2022-2023. Strong warning signal for risk assets, often precedes recessions or major market corrections.
════════════════════════════════════════════
🎯 OPTIMAL USAGE:
📅 Recommended Timeframes:
• Daily or Weekly charts for macro analysis
• Monthly charts for very long-term trends
💹 Compatible Asset Classes:
• Cryptocurrencies (especially Bitcoin, Ethereum)
• Equity indices (S&P 500, NASDAQ, global markets)
• Commodities (Gold, Silver, Oil)
• Forex majors (DXY correlation analysis)
⚙️ Suggested Settings:
• Default: YoY calculation with 0 offset for current liquidity conditions
• Bitcoin traders: YoY with 60-70 day offset for predictive analysis
• Short-term traders: MoM with 0 offset for recent policy changes
• Quarterly rebalancers: QoQ with 0 offset for medium-term trends
════════════════════════════════════════════
📋 VISUAL DISPLAY:
The indicator plots a blue line showing the selected growth metric (YoY/MoM/QoQ), with a dashed reference line at 0% to clearly identify expansion vs. contraction regimes.
A comprehensive table in the top-right corner displays:
• Current global M2 growth rate (large, prominent display)
• Individual country breakdowns with their GDP weights
• Color-coded growth rates (green for positive, red for negative)
════════════════════════════════════════════
🔄 MAINTENANCE & UPDATES:
GDP weights should be updated annually (ideally in April or October) when the IMF releases new World Economic Outlook forecasts. Simply adjust the four GDP input parameters in the indicator settings - no code editing required.
The relative GDP proportions between the Big 4 economies change very gradually (typically <1-2% per year), so even if you update weights once every 1-2 years, the impact on the indicator's accuracy is minimal.
════════════════════════════════════════════
💭 TRADING PHILOSOPHY:
This indicator embodies the principle that "liquidity drives markets." By tracking the combined M2 money supply of the world's largest economies, weighted by their economic size, you gain insight into the fundamental liquidity conditions that underpin all asset prices.
Unlike single-country M2 indicators, this GDP-weighted approach captures the true global picture, accounting for the fact that US monetary policy has 2x the impact of Japanese policy due to economic size differences.
Perfect for macro-focused traders, long-term investors, and anyone seeking to understand the "tide that lifts all boats" in financial markets.
════════════════════════════════════════════
Created for traders and investors who incorporate global liquidity trends into their decision-making process. Best used alongside other technical and fundamental analysis tools for comprehensive market assessment.
⚠️ Disclaimer: M2 money supply is a lagging macroeconomic indicator. Past correlations do not guarantee future results. Always use proper risk management and combine with other analysis methods.
SOXX ETF-$345 Target or Breakdown?🧠 SOXX ETF – Bearish RSI Divergence Amid Rising Channel | $345 Target or Breakdown?
📅 Date: November 17, 2025
📈 Ticker: NASDAQ:SOXX (iShares Semiconductor ETF)
🕰️ Timeframe: 1D (Daily)
📊 Technical Setup
SOXX has been trading within a rising parallel channel since late Q2. Price is currently consolidating near the mid-line support of this channel after a strong uptrend, with a recent close at $288.52 (-0.30%).
⚠️ Bearish Divergence Alert
The RSI Divergence Indicator (14 close) is showing a clear bearish divergence:
Price: Higher highs
RSI: Lower highs → Now around 41.76
This could suggest weakening momentum and an increased probability of a short-term correction or deeper pullback if trendline support fails.
🔍 Key Levels to Watch
Support Zones:
$280: Mid-channel trendline
$260: Horizontal structure from prior consolidation
$245–250: Lower bound of the rising channel
Resistance / Target Zones:
$300–305: Short-term resistance
$345: Longer-term target based on channel extension and fib projection (approx. Jan 2026)
📉 Bearish Breakdown?
A daily close below $280 on rising volume could trigger further downside toward $260 or lower, invalidating the bullish structure. However, holding this line keeps the uptrend intact.
🧭 Outlook Summary
Channel trend remains bullish 📈
Momentum is weakening 📉
RSI divergence = caution 🚨
Upcoming sessions are key for trend confirmation or breakdown.
Trade idea: Watch for price reaction at $280. Bullish continuation above $305 could validate the $345 projection. Breakdown could see retest of $260.
🔖 Disclaimer:
This is general information only and not financial advice. For personal guidance, please talk to a licensed professional.
MACD Divergence Optimizer# MACD Divergence Optimizer - User Guide
## Overview
The **MACD Divergence Optimizer** is a professional-grade technical analysis indicator for TradingView that automatically detects hidden divergences on MACD with volume weighting. It identifies potential reversal points before price action confirms the move, giving traders an early edge.
---
## What is Divergence?
A **divergence** occurs when price and an oscillator (like MACD) move in opposite directions:
- **Bullish Divergence**: Price makes a lower low, but MACD makes a higher low → Potential uptrend reversal
- **Bearish Divergence**: Price makes a higher high, but MACD makes a lower high → Potential downtrend reversal
Divergences are among the most reliable reversal signals in technical analysis.
---
## Indicator Features
### Volume-Weighted MACD
- Standard MACD is calculated on closing price
- This indicator uses **volume-weighted closing prices** for greater accuracy
- Formula: MACD = (Volume-Weighted EMA₁₂ - Volume-Weighted EMA₂₆)
- Volume weighting gives more importance to high-conviction price moves
### Automatic Swing Detection
- Detects local highs and lows (5-bar lookback)
- Tracks the last 5 swings for divergence analysis
- Only meaningful swings are tracked (filtered for noise)
### Smart Signal Generation
- Green triangle (▲) = Bullish Divergence (BUY signal)
- Red triangle (▼) = Bearish Divergence (SELL signal)
- Triangles appear directly on the MACD line for precise entry timing
### Built-in Alerts
- Real-time notifications for divergence signals
- Alerts can trigger mobile push notifications or sound
- Never miss a trading opportunity
---
## How to Use
### Installation
1. Open TradingView and navigate to the Chart
2. Click "Indicator" → Search "MACD Divergence Optimizer"
3. Click "Add to Chart"
4. The indicator appears in a separate panel below the price chart
### Reading the Indicator
**MACD Panel displays:**
- **Blue Line** = MACD (fast momentum)
- **Orange Line** = Signal line (slow momentum)
- **Histogram** (colored bars) = Difference between MACD and Signal
- Green bars = MACD above signal (bullish)
- Red bars = MACD below signal (bearish)
**Divergence Signals:**
- **Green Triangle ▲** = Bullish divergence detected
- Price is lower, but MACD momentum is strengthening
- Look for uptrend reversal
- Confirm with higher closes or volume
- **Red Triangle ▼** = Bearish divergence detected
- Price is higher, but MACD momentum is weakening
- Look for downtrend reversal
- Confirm with lower closes or selling volume
---
## Parameters & Settings
### MACD Fast Length (Default: 12)
- Controls the faster moving average period
- **Lower values** → More responsive, more false signals
- **Higher values** → Smoother, fewer signals
- **Typical range**: 8-15
### MACD Slow Length (Default: 26)
- Controls the slower moving average period
- **Lower values** → Faster divergence detection
- **Higher values** → More reliable, fewer signals
- **Typical range**: 20-35
### Signal Smoothing (Default: 9)
- EMA period applied to MACD itself
- **Lower values** → Faster crossover signals
- **Higher values** → Fewer false crossovers
- **Typical range**: 5-15
### Min Divergence Strength (Default: 0.5%)
- Minimum % difference between current MACD and swing MACD
- **Lower values** → More divergence signals (noisier)
- **Higher values** → Only strong divergences (fewer signals)
- **Recommended**: 0.3% - 1.0%
### Lookback Bars (Default: 75)
- Historical window for analysis
- Larger lookback = more context but slower calculation
- **Typical range**: 50-100
---
## Trading Strategy
### Bullish Divergence (Entry Setup)
1. **Identify Signal**: Green triangle appears on MACD
2. **Confirm Price**: Look for price rejection of the low (bounce)
3. **Volume Check**: Buy on increase in volume at the bounce
4. **Entry**: Above the swing low level
5. **Stop Loss**: Below the most recent swing low
6. **Target**: Next swing high or resistance level
### Bearish Divergence (Entry Setup)
1. **Identify Signal**: Red triangle appears on MACD
2. **Confirm Price**: Look for price rejection of the high
3. **Volume Check**: Sell on increase in volume at rejection
4. **Entry**: Below the swing high level
5. **Stop Loss**: Above the most recent swing high
6. **Target**: Next swing low or support level
### Risk Management
- **Position Size**: Risk only 1-2% per trade
- **Stop Loss**: Place beyond recent swings
- **Take Profit**: Scale out at 1:1, 1:2, 1:3 risk-reward ratios
- **Filter**: Use on higher timeframes (4H, Daily) for reliability
---
## Timeframe Recommendations
| Timeframe | Best For | Signal Quality |
|-----------|----------|---|
| **1H** | Scalping, day trading | Moderate (some noise) |
| **4H** | Swing trading | Excellent |
| **Daily** | Position trading | Excellent |
| **Weekly** | Long-term trends | Excellent |
---
## Tips & Best Practices
### ✅ DO:
- **Use on trends**: Divergences work best when there's a clear trend
- **Combine signals**: Look for confirmation from price action, volume, or moving averages
- **Trade the bounce**: Wait for price to react to the swing, then enter
- **Adjust parameters**: Test different MACD lengths for your trading style
- **Use alerts**: Set up mobile alerts so you don't miss signals
### ❌ DON'T:
- **Trade every signal**: Some signals are stronger than others
- **Trade flat/choppy markets**: Divergences fail in ranging markets
- **Ignore support/resistance**: Trade divergences near key levels for best results
- **Over-leverage**: Divergences are probabilistic, not guaranteed
- **Disable volume analysis**: Always check volume when divergence fires
---
## Advanced Features
### Volume Weighting
The indicator uses **volume-weighted MACD** instead of standard MACD. This means:
- High-volume reversals get more emphasis
- Low-volume moves are smoothed out
- More accurate momentum readings
- Better at identifying true trend changes
### Array Tracking
The indicator tracks the last 5 swings in arrays:
- `swingLows ` = last 5 price lows
- `swingHighs ` = last 5 price highs
- `swingMacds ` = corresponding MACD values
This allows detection of **hidden divergences** not visible in traditional analysis.
---
## Common Questions
**Q: Why didn't the indicator trigger a signal when I see a divergence?**
A: The indicator may require:
- MACD histogram to cross the zero line (confirms momentum shift)
- Minimum strength threshold to be met (adjust Min Divergence Strength)
- At least 5 swings to be recorded in the lookback window
**Q: Can I use this on all timeframes?**
A: Yes, but divergences are more reliable on higher timeframes (4H+). Lower timeframes produce more signals but with more noise.
**Q: Should I trade every green/red triangle?**
A: No. Use them as a heads-up for potential reversals. Always confirm with:
- Price action (rejection of the swing)
- Volume (increasing volume at reversal)
- Key support/resistance levels
**Q: How do I set alerts?**
A:
1. Right-click the indicator → Edit Alerts
2. Check "Bullish Divergence" and/or "Bearish Divergence"
3. Choose notification type (browser, mobile, email)
4. Set frequency to "Once per bar close"
**Q: What's the difference between regular and hidden divergence?**
A: This indicator detects **hidden divergences** (also called continuation divergences):
- **Regular**: Price makes new extreme, but oscillator doesn't
- **Hidden**: Price makes new extreme, oscillator makes new extreme in different direction
- Hidden divergences are often more reliable for continuation plays
---
## Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Past performance does not guarantee future results. Always use proper risk management and combine with other analysis methods. Trading and investing carry risk of loss. Do your own research before making trading decisions.
---
## Support & Updates
For issues, feature requests, or questions:
- Check the indicator settings and parameter values
- Test on historical data first before live trading
- Adjust parameters to match your trading style and timeframe
---
**Version**: 1.0
**Last Updated**: November 2025
**Compatible**: TradingView v6+
O'Neil Market TimingBill O'Neil Market Timing Indicator - User Guide
Overview
This Pine Script indicator implements William O'Neil's market timing methodology, which assigns one of four distinct states to a market index (such as SPY or QQQ) to help traders identify optimal market conditions for investing. The indicator is designed to work exclusively on Daily timeframe charts.
The Four Market States
The indicator tracks the market through four distinct states, with specific transition rules between them:
1. Confirmed Uptrend (Green)
- Meaning: The market is in a healthy uptrend with institutional support
- Action: Favorable conditions for building positions in leading stocks
- Can transition to: State 2 (Uptrend Under Pressure)
2. Uptrend Under Pressure (Yellow)
- Meaning: The uptrend is showing signs of weakness with increasing distribution
- Action: Be cautious, tighten stops, reduce position sizes
- Can transition to: State 1 (Confirmed Uptrend) or State 3 (Downtrend)
3. Downtrend (Red)
- Meaning: The market is in a confirmed downtrend
- Action: Stay mostly in cash, avoid new purchases
- Can transition to: State 4 (Rally Attempt)
4. Rally Attempt (Pink/Fuchsia)
- Meaning: The market is attempting to bottom and reverse
- Action: Watch for Follow-Through Day to confirm new uptrend
- Can transition to: State 1 (Confirmed Uptrend) or State 3 (Downtrend)
Key Concepts
Distribution Day
A distribution day occurs when:
1. The index closes down by more than the critical percentage (default 0.2%)
2. Volume is higher than the previous day's volume
Distribution days indicate institutional selling and are marked with red triangles on the indicator.
Follow-Through Day
A follow-through day occurs during a Rally Attempt when:
1. The index closes up by more than the critical percentage (default 1.6%)
2. Volume is higher than the previous day's volume
A Follow-Through Day confirms a new uptrend and triggers the transition from Rally Attempt to Confirmed Uptrend.
State Transition Logic
Valid Transitions
The system only allows specific transitions:
- 1 → 2: When distribution days reach the "pressure number" (default 5) within the lookback period (default 25 bars)
- 2 → 1: When distribution days drop below the pressure number
- 2 → 3: When distribution days reach "downtrend number" (default 7) AND price drops by "downtrend criterion" (default 6%) from the lookback high
- 3 → 4: When the market doesn't make a new low for 3 consecutive days
- 4 → 3: When a new low is made, undercutting the downtrend low
- 4 → 1: When a Follow-Through Day occurs during the Rally Attempt
Input Parameters
Distribution Day Parameters
- Distribution Day % Threshold (default 0.2%, range 0.1-2.0%)
- Minimum percentage decline required to qualify as a distribution day. While 0.2% seems to be the canonical number I see in literature about this, I use a much higher threshold (at least 0.5%)
Follow-Through Day Parameters
- Follow-Through Day % Threshold (default 1.6%, range 1.0-2.0%)
- Minimum percentage gain required to qualify as a follow-through day
### State Transition Parameters
- Pressure Number (default 5, range 3-6)
- Number of distribution days needed to transition from Confirmed Uptrend to Uptrend Under Pressure
- Lookback Period (default 25 bars, range 20-30)
- Number of days to count distribution days
- Downtrend Number (default 7, range 4-10)
- Number of distribution days needed (with price drop) to transition to Downtrend
- Downtrend % Drop from High (default 6%, range 5-10%)
- Percentage drop from lookback high required for downtrend confirmation
Visual Settings
- Color customization for each state
- Table position selection (Top Left, Top Right, Bottom Left, Bottom Right)
## How to Use This Indicator
### Installation
1. Open TradingView and navigate to SPY or QQQ (or another major index)
2. **Important**: Switch to the Daily (1D) timeframe
3. Click on "Indicators" at the top of the chart
4. Click "Pine Editor" at the bottom of the screen
5. Copy and paste the Pine Script code
6. Click "Add to Chart"
### Interpretation
**When the indicator shows:**
- **Green (State 1)**: Market is healthy - consider adding quality positions
- **Yellow (State 2)**: Exercise caution - tighten stops, be selective
- **Red (State 3)**: Defensive mode - preserve capital, avoid new buys
- **Pink (State 4)**: Watch closely - prepare for potential Follow-Through Day
### The Information Table
The table displays:
- **Current State**: The current market condition
- **Distribution Days**: Number of distribution days in the lookback period
- **Lookback Period**: Number of bars being analyzed
- **Rally Attempt Day**: (Only in State 4) Days into the current rally attempt
### Visual Elements
1. **State Line**: A stepped line showing the current state (1-4)
2. **Red Triangles**: Mark each distribution day
3. **Horizontal Reference Lines**: Dotted lines marking each state level
4. **Color-Coded Display**: The state line changes color based on the current market condition
## Trading Strategy Guidelines
### In Confirmed Uptrend (State 1)
- Build positions in stocks breaking out of proper bases
- Use normal position sizing
- Focus on stocks showing institutional accumulation
- Hold winners as long as they act properly
### In Uptrend Under Pressure (State 2)
- Take partial profits in extended positions
- Tighten stop losses
- Be more selective with new entries
- Reduce overall exposure
### In Downtrend (State 3)
- Move to cash or maintain very light exposure
- Avoid new purchases
- Focus on preservation of capital
- Use the time for research and watchlist building
### In Rally Attempt (State 4)
- Stay mostly in cash but prepare
- Build a watchlist of strong stocks
- On Day 4+ of the rally attempt, watch for Follow-Through Day
- If FTD occurs, begin cautiously adding positions
## Best Practices
1. **Use with Major Indices**: This indicator works best with SPY, QQQ, or other broad market indices
2. **Daily Timeframe Only**: The indicator is designed for daily bars - do not use on intraday timeframes
3. **Combine with Stock Analysis**: Use the market state as a filter for individual stock decisions
4. **Respect the Signals**: When the market enters Downtrend, reduce exposure regardless of individual stock setups
5. **Monitor Distribution Days**: Pay attention when distribution days accumulate - it's a warning sign
6. **Wait for Follow-Through**: Don't jump back in too early during Rally Attempt - wait for confirmation
## Alert Conditions
The indicator includes built-in alert conditions for:
- State changes (entering any of the four states)
- Distribution Day detection
- Follow-Through Day detection during Rally Attempt
To set up alerts:
1. Click the "Alert" button while the indicator is on your chart
2. Select "O'Neil Market Timing"
3. Choose your desired alert condition
4. Configure notification preferences
## Customization Tips
### For More Sensitive Detection
- Lower the "Pressure Number" to 3-4
- Lower the "Distribution Day % Threshold" to 0.15%
- Reduce the "Downtrend Number" to 5-6
### For More Conservative Detection
- Raise the "Pressure Number" to 6
- Raise the "Distribution Day % Threshold" to 0.3-0.5%
- Increase the "Downtrend Number" to 8-9
### For Different Market Conditions
- **Bull Market**: Consider slightly higher thresholds
- **Bear Market**: Consider slightly lower thresholds
- **Volatile Market**: May need to increase percentage thresholds
## Limitations and Considerations
1. **Not a Crystal Ball**: The indicator identifies conditions but doesn't predict the future
2. **False Signals**: Follow-Through Days can fail - use proper risk management
3. **Whipsaws Possible**: In choppy markets, the indicator may switch states frequently
4. **Confirmation Lag**: By design, there's a lag as the system waits for confirmation
5. **Works Best with Price Action**: Combine with your analysis of individual stocks
## Historical Context
This methodology is based on William J. O'Neil's decades of market research, documented in books like "How to Make Money in Stocks" and through Investor's Business Daily. O'Neil's research showed that:
- Most major market tops are preceded by accumulation of distribution days
- Most successful rallies begin with a Follow-Through Day on Day 4-7 of a rally attempt
- Identifying market state helps prevent buying during unfavorable conditions
## Troubleshooting
**Problem**: Indicator shows "Initializing"
- **Solution**: Let the chart load at least 5 bars to establish the initial state
**Problem**: No distribution day markers appear
- **Solution**: Verify you're on daily timeframe and check if volume data is available
**Problem**: Table not visible
- **Solution**: Check the table position setting and ensure it's not off-screen
**Problem**: State seems to change too frequently
- **Solution**: Increase the lookback period or adjust threshold parameters
## Support and Further Learning
For deeper understanding of this methodology:
- Read "How to Make Money in Stocks" by William J. O'Neil
- Study Investor's Business Daily's "Market Pulse"
- Review historical market tops and bottoms to see the pattern
- Practice identifying distribution days and follow-through days manually
## Version History
**Version 1.0** (November 2025)
- Initial implementation
- Four-state system with proper transitions
- Distribution day detection and marking
- Follow-through day detection
- Customizable parameters
- Information table display
- Alert conditions
---
## Quick Reference Card
| State | Number | Color | Action |
|-------|--------|-------|--------|
| Confirmed Uptrend | 1 | Green | Buy quality setups |
| Uptrend Under Pressure | 2 | Yellow | Tighten stops, be selective |
| Downtrend | 3 | Red | Cash position, no new buys |
| Rally Attempt | 4 | Pink | Watch for Follow-Through Day |
**Distribution Day**: Down > 0.2% on higher volume (red triangle)
**Follow-Through Day**: Up > 1.6% on higher volume during Rally Attempt (triggers State 4→1)
---
*Remember: This indicator is a tool to help identify market conditions. It should be used as part of a comprehensive trading strategy that includes proper risk management, position sizing, and individual stock analysis.*
Also, I created this with the help of an AI coding framework, and I didn't exhaustively test it. I don't actually use this for my own trading, so it's quite possible that it's materially wrong, and that following this will lead to poor investment decisions.. This is "copy left" software, so feel free to alter this to your own tastes, and claim authorship.
Trend-S&R-WiP11-15-2025: This new indicator is my 5/15-Min-ORB-Trend-Finder-WiP indicator simplified to only have:
> Market Open
> 5-Min & 15-Min High/Low
> Support/Resistance lines
> Fair Value Gaps (FVGs)
> a Trend Line
> a Trend table
Recommended to be used with my other indicator: Buy-or-Sell-WiP
Strategy:
> I only trade one ticker, SPX, with ODTE CALL/PUT Credit Spreads
> use Break & Retest with 5-Min High/Low or 15-Min High/Low or FVGs
> 📈 Bullish Trend
Trade: PUT Credit Spread
Trend Confirmations:
Trend Line is green
MACD Histogram is green
Price Condition: Nearest resistance 8-10 points above market price
> 📉 Bearish Trend
Trade: CALL Credit Spread
Trend Confirmations:
Trend Line is purple
MACD Histogram is red
Price Condition: Nearest support 8-10 points below market price
> Fair Value Gaps (FVGs)
- Trade anytime during the day using Break & Retest and all indicator confirmations shown above
Michael's FVG Detector═══════════════════════════════════════
Michael's FVG Detector
═══════════════════════════════════════
A clean and efficient Fair Value Gap (FVG) indicator for TradingView that helps traders identify market imbalances with precision.
───────────────────────────────────────
Overview
───────────────────────────────────────
Fair Value Gaps (FVGs) are price inefficiencies that occur when there's a gap between the wicks of candlesticks, indicating rapid price movement with minimal trading activity. These gaps often act as support/resistance zones where price may return to "fill the gap."
This indicator automatically detects and visualizes both bullish and bearish FVGs on any timeframe, making it easy to spot potential trading opportunities.
───────────────────────────────────────
Features
───────────────────────────────────────
Core Functionality
Automatic FVG Detection : Identifies Fair Value Gaps in real-time as they form
Bullish & Bearish FVGs : Detects both upward and downward price gaps
3-Candle Pattern : Uses classic FVG logic (current candle low > high from 2 bars ago for bullish, vice versa for bearish)
Gap Size Display : Shows the exact size of each FVG in ticks directly on the box
Confirmed Bars Only : Only draws FVGs on confirmed bars to prevent repainting
Customization
Color Settings : Fully customizable colors for bullish and bearish FVGs with transparency control
Text Color : Configurable color for the tick size labels
Default Styling : Comes with sensible defaults (20% transparency, dark gray labels)
Performance Optimization
Smart Cleanup : Automatically removes boxes outside the visible chart area
Efficient Rendering : Maintains optimal performance even on lower timeframes
No Repainting : Uses confirmed bars only for reliable signals
───────────────────────────────────────
How It Works
───────────────────────────────────────
Detection Logic
Bullish FVG:
Current bar's low is higher than the high from 2 bars ago
Creates an upward gap that price left behind during bullish momentum
Bearish FVG:
Current bar's high is lower than the low from 2 bars ago
Creates a downward gap that price left behind during bearish momentum
Visual Display
Each detected FVG is displayed as:
A semi-transparent colored box spanning the gap area
The box extends from bar -2 to the current bar
Gap size in ticks shown at the bottom-left of each box
Singular/plural formatting ("1 tick" vs "X ticks")
───────────────────────────────────────
Performance Notes
───────────────────────────────────────
Cleanup runs every 50 bars to maintain optimal performance
Only creates boxes on confirmed bars (no real-time repainting)
Efficiently manages memory by removing off-screen boxes
Suitable for both manual and automated trading strategies
───────────────────────────────────────
Disclaimer
───────────────────────────────────────
This indicator is for educational and informational purposes only. It is not financial advice. Always do your own research and risk management before making trading decisions.
───────────────────────────────────────
Author : Michael
Version : 1.0
License : Free for personal use
Last Updated : November 2025






















