Bitcoin Power Law OscillatorThis is the oscillator version of the script. The main body of the script can be found here.
Understanding the Bitcoin Power Law Model
Also called the Long-Term Bitcoin Power Law Model. The Bitcoin Power Law model tries to capture and predict Bitcoin's price growth over time. It assumes that Bitcoin's price follows an exponential growth pattern, where the price increases over time according to a mathematical relationship.
By fitting a power law to historical data, the model creates a trend line that represents this growth. It then generates additional parallel lines (support and resistance lines) to show potential price boundaries, helping to visualize where Bitcoin’s price could move within certain ranges.
In simple terms, the model helps us understand Bitcoin's general growth trajectory and provides a framework to visualize how its price could behave over the long term.
The Bitcoin Power Law has the following function:
Power Law = 10^(a + b * log10(d))
Consisting of the following parameters:
a: Power Law Intercept (default: -17.668).
b: Power Law Slope (default: 5.926).
d: Number of days since a reference point(calculated by counting bars from the reference point with an offset).
Explanation of the a and b parameters:
Roughly explained, the optimal values for the a and b parameters are determined through a process of linear regression on a log-log scale (after applying a logarithmic transformation to both the x and y axes). On this log-log scale, the power law relationship becomes linear, making it possible to apply linear regression. The best fit for the regression is then evaluated using metrics like the R-squared value, residual error analysis, and visual inspection. This process can be quite complex and is beyond the scope of this post.
Applying vertical shifts to generate the other lines:
Once the initial power-law is created, additional lines are generated by applying a vertical shift. This shift is achieved by adding a specific number of days (or years in case of this script) to the d-parameter. This creates new lines perfectly parallel to the initial power law with an added vertical shift, maintaining the same slope and intercept.
In the case of this script, shifts are made by adding +365 days, +2 * 365 days, +3 * 365 days, +4 * 365 days, and +5 * 365 days, effectively introducing one to five years of shifts. This results in a total of six Power Law lines, as outlined below (From lowest to highest):
Base Power Law Line (no shift)
1-year shifted line
2-year shifted line
3-year shifted line
4-year shifted line
5-year shifted line
The six power law lines:
Bitcoin Power Law Oscillator
This publication also includes the oscillator version of the Bitcoin Power Law. This version applies a logarithmic transformation to the price, Base Power Law Line, and 5-year shifted line using the formula: log10(x) .
The log-transformed price is then normalized using min-max normalization relative to the log-transformed Base Power Law Line and 5-year shifted line with the formula:
normalized price = log(close) - log(Base Power Law Line) / log(5-year shifted line) - log(Base Power Law Line)
Finally, the normalized price was multiplied by 5 to map its value between 0 and 5, aligning with the shifted lines.
Interpretation of the Bitcoin Power Law Model:
The shifted Power Law lines provide a framework for predicting Bitcoin's future price movements based on historical trends. These lines are created by applying a vertical shift to the initial Power Law line, with each shifted line representing a future time frame (e.g., 1 year, 2 years, 3 years, etc.).
By analyzing these shifted lines, users can make predictions about minimum price levels at specific future dates. For example, the 5-year shifted line will act as the main support level for Bitcoin’s price in 5 years, meaning that Bitcoin’s price should not fall below this line, ensuring that Bitcoin will be valued at least at this level by that time. Similarly, the 2-year shifted line will serve as the support line for Bitcoin's price in 2 years, establishing that the price should not drop below this line within that time frame.
On the other hand, the 5-year shifted line also functions as an absolute resistance , meaning Bitcoin's price will not exceed this line prior to the 5-year mark. This provides a prediction that Bitcoin cannot reach certain price levels before a specific date. For example, the price of Bitcoin is unlikely to reach $100,000 before 2021, and it will not exceed this price before the 5-year shifted line becomes relevant. After 2028, however, the price is predicted to never fall below $100,000, thanks to the support established by the shifted lines.
In essence, the shifted Power Law lines offer a way to predict both the minimum price levels that Bitcoin will hit by certain dates and the earliest dates by which certain price points will be reached. These lines help frame Bitcoin's potential future price range, offering insight into long-term price behavior and providing a guide for investors and analysts. Lets examine some examples:
Example 1:
In Example 1 it can be seen that point A on the 5-year shifted line acts as major resistance . Also it can be seen that 5 years later this price level now corresponds to the Base Power Law Line and acts as a major support at point B(Note: Vertical yearly grid lines have been added for this purpose👍).
Example 2:
In Example 2, the price level at point C on the 3-year shifted line becomes a major support three years later at point D, now aligning with the Base Power Law Line.
Finally, let's explore some future price predictions, as this script provides projections on the weekly timeframe :
Example 3:
In Example 3, the Bitcoin Power Law indicates that Bitcoin's price cannot surpass approximately $808K before 2030 as can be seen at point E, while also ensuring it will be at least $224K by then (point F).
In den Scripts nach "Cycle" suchen
Yearly History Calendar-Aligned Price up to 10 Years)Overview
This indicator helps traders compare historical price patterns from the past 10 calendar years with the current price action. It overlays translucent lines (polylines) for each year’s price data on the same calendar dates, providing a visual reference for recurring trends. A dynamic table at the top of the chart summarizes the active years, their price sources, and history retention settings.
Key Features
Historical Projections
Displays price data from the last 10 years (e.g., January 5, 2023 vs. January 5, 2024).
Price Source Selection
Choose from Open, Low, High, Close, or HL2 ((High + Low)/2) for historical alignment.
The selected source is shown in the legend table.
Bulk Control Toggles
Show All Years : Display all 10 years simultaneously.
Keep History for All : Preserve historical lines on year transitions.
Hide History for All : Automatically delete old lines to update with current data.
Individual Year Settings
Toggle visibility for each year (-1 to -10) independently.
Customize color and line width for each year.
Control whether to keep or delete historical lines for specific years.
Visual Alignment Aids
Vertical lines mark yearly transitions for reference.
Polylines are semi-transparent for clarity.
Dynamic Legend Table
Shows active years, their price sources, and history status (On/Off).
Updates automatically when settings change.
How to Use
Configure Settings
Projection Years : Select how many years to display (1–10).
Price Source : Choose Open, Low, High, Close, or HL2 for historical alignment.
History Precision : Set granularity (Daily, 60m, or 15m).
Daily (D) is recommended for long-term analysis (covers 10 years).
60m/15m provides finer precision but may only cover 1–3 years due to data limits.
Adjust Visibility & History
Show Year -X : Enable/disable specific years for comparison.
Keep History for Year -X : Choose whether to retain historical lines or delete them on new year transitions.
Bulk Controls
Show All Years : Display all 10 years at once (overrides individual toggles).
Keep History for All / Hide History for All : Globally enable/disable history retention for all years.
Customize Appearance
Line Width : Adjust polyline thickness for better visibility.
Colors : Assign unique colors to each year for easy identification.
Interpret the Legend Table
The table shows:
Year : Label (e.g., "Year -1").
Source : The selected price type (e.g., "Close", "HL2").
Keep History : Indicates whether lines are preserved (On) or deleted (Off).
Tips for Optimal Use
Use Daily Timeframes for Long-Term Analysis :
Daily (1D) allows 10+ years of data. Smaller timeframes (60m/15m) may have limited historical coverage.
Compare Recurring Patterns :
Look for overlaps between historical polylines and current price to identify potential support/resistance levels.
Customize Colors & Widths :
Use contrasting colors for years you want to highlight. Adjust line widths to avoid clutter.
Leverage Global Toggles :
Enable Show All Years for a quick overview. Use Keep History for All to maintain continuity across transitions.
Example Workflow
Set Up :
Select Projection Years = 5.
Choose Price Source = Close.
Set History Precision = 1D for long-term data.
Customize :
Enable Show Year -1 to Show Year -5.
Assign distinct colors to each year.
Disable Keep History for All to ensure lines update on year transitions.
Analyze :
Observe how the 2023 close prices align with 2024’s price action.
Use vertical lines to identify yearly boundaries.
Common Questions
Why are some years missing?
Ensure the chart has sufficient historical data (e.g., daily charts cover 10 years, 60m/15m may only cover 1–3 years).
How do I update the data?
Adjust the Price Source or toggle years/history settings. The legend table updates automatically.
Bitcoin Monthly Seasonality [Alpha Extract]The Bitcoin Monthly Seasonality indicator analyzes historical Bitcoin price performance across different months of the year, enabling traders to identify seasonal patterns and potential trading opportunities. This tool helps traders:
Visualize which months historically perform best and worst for Bitcoin.
Track average returns and win rates for each month of the year.
Identify seasonal patterns to enhance trading strategies.
Compare cumulative or individual monthly performance.
🔶 CALCULATION
The indicator processes historical Bitcoin price data to calculate monthly performance metrics
Monthly Return Calculation
Inputs:
Monthly open and close prices.
User-defined lookback period (1-15 years).
Return Types:
Percentage: (monthEndPrice / monthStartPrice - 1) × 100
Price: monthEndPrice - monthStartPrice
Statistical Measures
Monthly Averages: ◦ Average return for each month calculated from historical data.
Win Rate: ◦ Percentage of positive returns for each month.
Best/Worst Detection: ◦ Identifies months with highest and lowest average returns.
Cumulative Option
Standard View: Shows discrete monthly performance.
Cumulative View: Shows compounding effect of consecutive months.
Example Calculation (Pine Script):
monthReturn = returnType == "Percentage" ?
(monthEndPrice / monthStartPrice - 1) * 100 :
monthEndPrice - monthStartPrice
calcWinRate(arr) =>
winCount = 0
totalCount = array.size(arr)
if totalCount > 0
for i = 0 to totalCount - 1
if array.get(arr, i) > 0
winCount += 1
(winCount / totalCount) * 100
else
0.0
🔶 DETAILS
Visual Features
Monthly Performance Bars: ◦ Color-coded bars (teal for positive, red for negative returns). ◦ Special highlighting for best (yellow) and worst (fuchsia) months.
Optional Trend Line: ◦ Shows continuous performance across months.
Monthly Axis Labels: ◦ Clear month names for easy reference.
Statistics Table: ◦ Comprehensive view of monthly performance metrics. ◦ Color-coded rows based on performance.
Interpretation
Strong Positive Months: Historically bullish periods for Bitcoin.
Strong Negative Months: Historically bearish periods for Bitcoin.
Win Rate Analysis: Higher win rates indicate more consistently positive months.
Pattern Recognition: Identify recurring seasonal patterns across years.
Best/Worst Identification: Quickly spot the historically strongest and weakest months.
🔶 EXAMPLES
The indicator helps identify key seasonal patterns
Bullish Seasons: Visualize historically strong months where Bitcoin tends to perform well, allowing traders to align long positions with favorable seasonality.
Bearish Seasons: Identify historically weak months where Bitcoin tends to underperform, helping traders avoid unfavorable periods or consider short positions.
Seasonal Strategy Development: Create trading strategies that capitalize on recurring monthly patterns, such as entering positions in historically strong months and reducing exposure during weak months.
Year-to-Year Comparison: Assess how current year performance compares to historical seasonal patterns to identify anomalies or confirmation of trends.
🔶 SETTINGS
Customization Options
Lookback Period: Adjust the number of years (1-15) used for historical analysis.
Return Type: Choose between percentage returns or absolute price changes.
Cumulative Option: Toggle between discrete monthly performance or cumulative effect.
Visual Style Options: Bar Display: Enable/disable and customize colors for positive/negative bars, Line Display: Enable/disable and customize colors for trend line, Axes Display: Show/hide reference axes.
Visual Enhancement: Best/Worst Month Highlighting: Toggle special highlighting of extreme months, Custom highlight colors for best and worst performing months.
The Bitcoin Monthly Seasonality indicator provides traders with valuable insights into Bitcoin's historical performance patterns throughout the year, helping to identify potentially favorable and unfavorable trading periods based on seasonal tendencies.
Monthly Drawdowns and Moves UP This script allows users to analyze the performance of a specific month across multiple years, focusing on maximum drawdowns and maximum upward moves within the selected month. The script offers the following features:
Dynamic Month Selection : Choose any month to analyze using an intuitive dropdown menu.
Maximum Drawdown and Upward Move Calculations :
Calculate the largest percentage drop (drawdown) and rise (move up) for the selected month each year.
Visual Highlights :
The selected month is visually highlighted on the chart with a semi-transparent overlay.
Dynamic Labels:
Labels display the maximum drawdown and upward move directly on the chart for better visualization.
Comprehensive Table Summary:
A table provides a year-by-year summary of the maximum drawdowns and upward moves for the selected month, making it easy to spot trends over time.
Customizable Display Options:
Toggle the visibility of drawdown labels, move-up labels, and the summary table for a clutter-free experience.
This tool is perfect for traders and analysts looking to identify seasonal patterns, assess risk and opportunity, and gain deeper insights into monthly performance metrics across years. Customize, explore, and make informed decisions with this powerful Pine Script indicator.
Weighted Fourier Transform: Spectral Gating & Main Frequency🙏🏻 This drop has 2 purposes:
1) to inform every1 who'd ever see it that Weighted Fourier Tranform does exist, while being available nowhere online, not even in papers, yet there's nothing incredibly complicated about it, and it can/should be used in certain cases;
2) to show TradingView users how they can use it now in dem endevours, to show em what spectral filtering is, and what can they do with all of it in diy mode.
... so we gonna have 2 sections in the description
Section 1: Weighted Fourier Transform
It's quite easy to include weights in Fourier analysis: you just premultiply each datapoint by its corresponding weight -> feed to direct Fourier Transform, and then divide by weights after inverse Fourier transform. Alternatevely, in direct transform you just multiply contributions of each data point to the real and imaginary parts of the Fourier transform by corresponding weights (in accumulation phase), and in inverse transform you divide by weights instead during the accumulation phase. Everything else stays the same just like in non-weighted version.
If you're from the first target group let's say, you prolly know a thing or deux about how to code & about Fourier Transform, so you can just check lines of code to see the implementation of Weighted Discrete version of Fourier Transform, and port it to to any technology you desire. Pine Script is a developing technology that is incredibly comfortable in use for quant-related tasks and anything involving time series in general. While also using Python for research and C++ for development, every time I can do what I want in Pine Script, I reach for it and never touch matlab, python, R, or anything else.
Weighted version allows you to explicetly include order/time information into the operation, which is essential with every time series, although not widely used in mainstream just as many other obvious and right things. If you think deeply, you'll understand that you can apply a usual non-weighted Fourier to any 2d+ data you can (even if none of these dimensions represent time), because this is a geometric tool in essence. By applying linearly decaying weights inside Fourier transform, you're explicetly saying, "one of these dimensions is Time, and weights represent the order". And obviously you can combine multiple weightings, eg time and another characteristic of each datum, allows you to include another non-spatial dimension in your model.
By doing that, on properly processed (not only stationary but Also centered around zero data), you can get some interesting results that you won't be able to recreate without weights:
^^ A sine wave, centered around zero, period of 16. Gray line made by: DWFT (direct weighted Fourier transform) -> spectral gating -> IWFT (inverse weighted Fourier transform) -> plotting the last value of gated reconstructed data, all applied to expanding window. Look how precisely it follows the original data (the sine wave) with no lag at all. This can't be done by using non-weighted version of Fourier transform.
^^ spectral filtering applied to the whole dataset, calculated on the latest data update
And you should never forget about Fast Fourier Transform, tho it needs recursion...
Section 2: About use cases for quant trading, about this particular implementaion in Pine Script 6 (currently the latest version as of Friday 13, December 2k24).
Given the current state of things, we have certain limits on matrix size on TradingView (and we need big dope matrixes to calculate polynomial regression -> detrend & center our data before Fourier), and recursion is not yet available in Pine Script, so the script works on short datasets only, and requires some time.
A note on detrending. For quality results, Fourier Transform should be applied to not only stationary but also centered around zero data. The rightest way to do detrending of time series
is to fit Cumulative Weighted Moving Polynomial Regression (known as WLSMA in some narrow circles xD) and calculate the deltas between datapoint at time t and this wonderful fit at time t. That's exactly what you see on the main chart of script description: notice the distances between chart and WLSMA, now look lower and see how it matches the distances between zero and purple line in WFT study. Using residuals of one regression fit of the whole dataset makes less sense in time series context, we break some 'time' and order rules in a way, tho not many understand/cares abouit it in mainstream quant industry.
Two ways of using the script:
Spectral Gating aka Spectral filtering. Frequency domain filtering is quite responsive and for a greater computational cost does not introduce a lag the way it works with time-domain filtering. Works this way: direct Fourier transform your data to get frequency & phase info -> compute power spectrum out of it -> zero out all dem freqs that ain't hit your threshold -> inverse Fourier tranform what's left -> repeat at each datapoint plotting the very first value of reconstructed array*. With this you can watch for zero crossings to make appropriate trading decisions.
^^ plot Freq pass to use the script this way, use Level setting to control the intensity of gating. These 3 only available values: -1, 0 and 1, are the general & natural ones.
* if you turn on labels in script's style settings, you see the gray dots perfectly fitting your data. They get recalculated (for the whole dataset) at each update. You call it repainting, this is for analytical & aesthetic purposes. Included for demonstration only.
Finding main/dominant frequency & period. You can use it to set up Length for your other studies, and for analytical purposes simply to understand the periodicity of your data.
^^ plot main frequency/main period to use the script this way. On the screenshot, you can see the script applied to sine wave of period 16, notice how many datapoints it took the algo to figure out the signal's period quite good in expanding window mode
Now what's the next step? You can try applying signal windowing techniques to make it all less data-driven but your ego-driven, make a weighted periodogram or autocorrelogram (check Wiener-Khinchin Theorem ), and maybe whole shiny spectrogram?
... you decide, choice is yours,
The butterfly reflect the doors ...
∞
Weekly Stacked Daily Changes [LuxAlgo]The Weekly Stacked Daily Changes tool allows traders to compare daily net price changes for each day of the week, stacked by week. It provides a very convenient way to compare daily and weekly volatility at the same time.
🔶 USAGE
The tool requires no configuration and works perfectly out of the box, displaying the net price change for each day of the week as stacked boxes of the appropriate size.
Traders can adjust the width of the columns and the spacing between days and weeks, options to change the color and disable the months and new month lines are also available.
🔹 Bottom Stack Bias
This feature allows traders to compare weekly volatility in two different ways.
With this feature disabled, all weeks use zero as the bottom of the stack, so traders can see at a glance weeks with more volatility and weeks with less volatility.
Enabling this feature will cause the tool to display the stacks with the weekly net price change as the bottom, so if a stack starts below the zero line it means that week has a negative net return, and if it starts above the zero line it means that week has a positive net return.
🔶 SETTINGS
Width: Select the fixed width for each column.
Offset: Choose the fixed width between each column.
Spacing: Select the distance between each day within each column.
🔹 Style
Bottom Stack Bias: Use weekly net price change as the bottom of the stack.
Bullish Change: Color for days with positive net price change
Bearish Change: Color for days with negative net price change
Show Months: Under each week stack, display the month
Show Months Delimiter: Display a line indicating the start of a new month
Fibonacci Time PeriodsThe " Fibonacci Time Periods " indicator uses power exponents of the constant Phi based on your custom time period to generate Fibonacci sequence-based progression on a given chart. This tool can help to anticipate the timing of potential turning points by highlighting Fib time zones where significant price movements may occur.
It is different from other alternatives specifically for the ability to alter the rate of progression .
Most famous regular Fib sequence expands with 1.618^(n+1) rate which produces vast change just after few iterations.
Those ever-expanding big intervals don't allow us to cover the smaller details of the chart which we might find crucial. So, the idea was born to break down the constant Phi to a self-fraction using power exponents. In other words, reducing rate of progression to make the expansion more gradual without losing properties of Fibonacci proportions.
Default settings have a rate of 0.25 which is basically Phi^1/4
That means we expect 4x more lines than in regular sequence to cover missing bits owing to formula: 1.618^(0.25*(n+1))
(Line 0.618 is added to enhance visual orientation and perception of proportions)
How it works:
Exponential rate of progression
First, it works out the difference between your custom start (0) and end (1) period
The result is multiplied by 1.618^rate to get the step
Rest lines are created by iterations. For instance, with default rate of 0.25, the 1st generated line = start + (End-Start)*1.618^0.25* 1 , second line = start + (End-Start)*1.618^0.25* 2 , etc.
If we change the rate to 1 it will produce the regular fib sequence with 1.618^(n+1) rate
Fixed rate of progression:
In this mode, when rate is 0.25, it grows exactly with exponent step of 0.25 so first, second, third, etc generated lines also have the fixed exponent of 0.25. The distance between lines do not expand.
How to use:
Set the start and end dates
Choose the type of progression
Choose your desired rate of progression
Customize the colors to match your chart preferences.
Observe the generated Fibonacci time intervals and use them to identify potential market movements and reactions.
trend_switch
█ Description
Asset price data was time series data, commonly consisting of trends, seasonality, and noise. Many applicable indicators help traders to determine between trend or momentum to make a better trading decision based on their preferences. In some cases, there is little to no clear market direction, and price range. It feels much more appropriate to use a shorter trend identifier, until clearly defined market trend. The indicator/strategy developed with the notion aims to automatically switch between shorter and longer trend following indicator. There were many methods that can be applied and switched between, however in this indicator/strategy will be limited to the use of predictive moving average and MESA adaptive moving average (Ehlers), by first determining if there is a strong trend identified by calculating the slope, if slope value is between upper and lower threshold assumed there is not much price direction.
█ Formula
// predictive moving average
predict = (2*wma1-wma2)
trigger = (4*predict+3*predict +2*predict *predict)
// MESA adaptive moving average
mama = alpha*src+(1-alpha)*mama
fama = .5*alpha*mama+(1-.5-alpha)*fama
█ Feature
The indicator will have a specified default parameter of:
source = ohlc4
lookback period = 10
threshold = 10
fast limit = 0.5
slow limit = 0.05
Strategy type can be switched between Long/Short only and Long-Short strategy
Strategy backtest period
█ How it works
If slope between the upper (red) and lower (green) threshold line, assume there is little to no clear market direction, thus signal predictive moving average indicator
If slope is above the upper (red) or below the lower (green) threshold line, assume there is a clear trend forming, the signal generated from the MESA adaptive moving average indicator
█ Example 1 - Slope fall between the Threshold - activate shorter trend
█ Example 2 - Slope fall above/below Threshold - activate longer trend
Advanced MACD [CryptoSea]Advanced MACD (AMACD) enhances the traditional MACD indicator, integrating innovative features for traders aiming for deeper insights into market momentum and sentiment. It's crafted for those seeking to explore nuanced behaviors of the MACD histogram, thus offering a refined perspective on market dynamics.
Divergence moves can offer insight into continuation or potential reversals in structure, the example below is a clear continuation signal.
Key Features
Enhanced Histogram Analysis: Precisely tracks movements of the MACD histogram, identifying growth or decline periods, essential for understanding market momentum.
High/Low Markers: Marks the highest and lowest points of the histogram within a user-defined period, signaling potential shifts in the market.
Dynamic Averages Calculation: Computes average durations of histogram phases, providing a benchmark against historical performance.
Color-Coded Histogram: Dynamically adjusts the histogram's color intensity based on the current streak's duration relative to its average, offering a visual cue of momentum strength.
Customisable MACD Settings: Enables adjustments to MACD parameters, aligning with individual trading strategies.
Interactive Dashboard: Showcases an on-chart table with average durations for each phase, aiding swift decision-making.
Settings & Customisation
MACD Settings: Customise fast length, slow length, and signal smoothing to tailor the MACD calculations to your trading needs.
Reset Period: Determine the number of bars to identify the histogram's significant high and low points.
Histogram High/Lows: Option to display critical high and low levels of the histogram for easy referencing.
Candle Colours: Select between neutral or traditional candle colors to match your analytical preferences.
When in strong trends, you can use the average table to determine when to look to get into a position. This example we are in a strong downtrend, we then see the histogram growing above the average in these conditions which is where we should look to get into a shorting position.
Strategic Applications
The AMACD serves not just as an indicator but as a comprehensive analytical tool for spotting market trends, momentum shifts, and potential reversal points. It's particularly useful for traders to:
Spot Momentum Changes Utilise dynamic coloring and streak tracking to alert shifts in momentum, helping anticipate market movements.
Identify Market Extremes Use high and low markers to spot potential market turning points, aiding in risk management and decision-making.
Alert Conditions
Above Average Movement Alerts: Triggered when the duration of the MACD histogram's growth or decline is unusually long, these alerts signal sustained momentum:
Above Zero: Alerts for both growing and declining movements above zero, indicating either continued bullish trends or potential bearish reversals.
Below Zero: Alerts for growth and decline below zero, pointing to potential bullish reversals or confirmed bearish trends.
High/Low Break Alerts: Activated when the histogram reaches new highs or falls to new lows beyond the set thresholds, these alerts are crucial for identifying shifts in market dynamics:
Break Above Last High: Indicates a potential upward trend as the histogram surpasses recent highs.
Break Below Last Low: Warns of a possible downward trend as the histogram drops below recent lows.
These alert conditions enable traders to automate part of their market monitoring or potential to automate the signals to take action elsewhere.
Global Net Liquidity (TG fork)Worldwide net liquidity, with trend coloring.
Global Net Liquidity attempts to represent worldwide net liquidity, and is defined as: Fed + Japan + China + UK + ECB - RRP - TGA , Where the first five components are central bank assets.
On TradingView, the indicator can be reproduced with the following equations: Global Net Liquidity = FRED:WALCL + FRED:JPNASSETS * FX_IDC:JPYUSD + CNCBBS * FX_IDC:CNYUSD + GBCBBS * FX:GBPUSD + ECBASSETSW * FX:EURUSD + RRPONTSYD + WTREGEN
However, this indicator adds a moving average cloud, and margin coloring, which eases historical trend assessment at a glance.
This indicator can be seen as an alternative representation of the accumulation/distribution indicator (and hence the same terms can be used in this description).
The Moving Average Cloud is simply the filling between the moving average (by default an EMA) and the current value. This feature was inspired by D7R ACC/DIST closed-source indicator, kudos to D7R for making such neat visual indicators.
Usage instructions:
Blue is more likely a phase of accumulation because the current value is above its historical price as defined by the moving average,
red is when this is more likely a phase of distribution.
Yellow is when the difference is below the margin, so we consider it is insignificant and that the trend is undecided. This can be disabled by setting the margin to 0.
While the color indicates if it's more likely an accumulation (blue) or distribution (red) phase or undecided (yellow), the cloud's vertical size allows to assess the strength of this tendency and the horizontal size the momentum, so that the bigger the cloud, the stronger the accumulation (if cloud is blue) or distribution (if cloud is red).
Why is that so? This is because the cloud represents the difference between the current tendency and the moving averaged past one, so a bigger cloud represents a bigger departure from recently observed tendencies. In practice, when there is accumulation, a pump in price can be expected soon, or if it already happened then it means it is indeed supported by volume, whereas if distribution, either a dump is to be expected soon, or if it already happened it means it's supported by volume.
Or maybe not necessarily a dump, but if there is a move upward in price, but the indicator indicates a strong distribution, then it means that the price movement is not supported and may not be sustainable (reversal may happen at anytime), whereas if price is going upward AND there is an accumulation (blue coloring) then it is more sustainable. This can be used to adapt strategies accordingly (risk on/risk off depending on whether there is concordance of both price and accumulation/distribution).
This indicator also includes sentiment signals that can be used to trigger alarms.
This indicator is a remix of Dharmatech's, who authored the first this Global Net Liquidity equation, kudos to them! Please show them some love if you like this indicator!
MVRV Z-ScoreThe MVRV ratio was created by Murad Mahmudov & David Puell. It simply compares Market Cap to Realised Cap, presenting a ratio (MVRV = Market Cap / Realised Cap). The MVRV Z-Score is a later version, refining the metric by normalising the peaks and troughs of the data.
Fierytrading: Volatility DepthDear Tradingview community,
I'd like to share one of my staple indicators with you. The volatility depth indicator calculates the volatility over a 7-day period and plots it on your chart.
This indicator only works for the DAILY chart on BTC/USD.
Colors
I've color coded the indicator as follows:
- Red: Extreme Volatility
- Orange: High Volatility
- Yellow: Normal Volatility
- Green: Low Volatility
Red: extreme changes in price. Often during local tops and bottoms.
Orange: higher than average moves in price. Often before or after a "red" period. Often seen in the middle of bear or bull markets.
Yellow: normal price action. Often seen during early stage bull-markets and late stage bear-markets.
Green: very low price movement. Often during times of indecision. Once this indicator becomes green, you can expect a big move in either direction. Low volatility is always followed by high volatility.
In a long-term uptrend, a green period often signals a bullish break out. In a long-term downtrend it often signals a bearish break out.
How to use
Save the indicator and apply it to your chart. You can change the length in the settings, but it's optimized for 7 days, so no need to change it.
I've build in alerts for all 4 different volatility periods. In most cases, the low volatility alert is enough.
Good luck!
Fed Projected Interest RatesThis script shows you the current interest rates by the FED (see ZQ symbol nearest expiration)
and the next expirations (see ZQ further expiration dates).
It is important to keep your expiration and descriptions up to date, to do that to the indicator inputs and change as you please.
RS Stage AnalysisThis script trying to detect different lifecycle of stock / Stages.
There is mainly 4 stages of stocks.
1) stage 1 - Accumulation = color = aqua
2) stage 2 - Advancing = color = green
3) stage 3 - Distribution = color = yellow
4) stage 4 - Declining = color = red
At some point the condition i wrote wont detect any stage.
Stan Weinstein Trend IndicatorThis indicator is a trend indicator for trading charts based on the method of Stan Weinstein. It uses various technical methods to identify four trend phases on an asset: consolidation, advancement, plateauing, and decline. Users can customize the indicator by modifying parameters such as the periods for various calculations, such as the exponential moving average (EMA), the relative strength index (RSI), and support and resistance levels. The results of these calculations are then used to determine if an asset is in a phase of consolidation, advancement, plateauing, or decline.
The results are displayed as markers on the chart, with the following colors:
White: Consolidation
Green: Advancement
Blue: Plateauing
Red: Decline
According to the method of Stan Weinstein, it is recommended to buy an asset during an advancement phase and sell it during a plateauing phase. Similarly, it is recommended to sell an asset during a decline phase and cut this sale when the consolidation phase starts. It is important to note that this indicator is for informational purposes only and should not be used as investment advice. It is important to conduct fundamental and technical analysis before making an investment decision. It is also recommended to combine this analysis with other methods for optimal results and to consider the risks associated with any investment.
All default parameters of this indicator have been carefully chosen to provide the best possible results, however, it is possible to modify them according to personal preferences. It is important to note that modifying certain parameters may make the indicator less relevant and it is therefore recommended not to deviate too much from default values, unless you have a good understanding of the Stan Weinstein method and the technical indicators used.
It is important to note that this indicator is optimized for 1-week charts. It can be used to look at charts at other timeframes but calculations will always be based on weekly data.
Also, it is noteworthy that this indicator is optimized for cryptocurrencies, except Bitcoin, as it is used to calculate the relative strength of a token. However, you can choose the asset or index you want in the menu to calculate the relative strength. Furthermore, all the default settings are carefully chosen, but users are free to modify them, but doing so may result in less relevant results.
AlexD Market annual seasonalityThe indicator displays the percentage of bullish days with a given date over several years.
This allows you to determine the days of the year when the price usually goes up or down.
Indicator has a built-in "simple moving average" shifted back by half a period, due to which the delay of this smoothing is removed.
ciclo e velocita cicloCycle analisys made by MA builted usisng the difference between 2 MA , one with lenght double then the other one. Cycle speed indicator is the moment of the Cycle MA and give us the up or down of the Cycle MA
EMA(9) / SMMA(14) Crossover Alert with time blocksThis Pine Script v6 code is a Moving Average Crossover Alert Indicator that generates trading signals and alerts only within a specified time window. It uses a faster Exponential Moving Average (EMA) and a slower Smoothed Moving Average (SMMA) to identify potential shifts in market momentum.
Key Features and Logic
1. Moving Average Calculations
The indicator plots two moving averages (MAs) on the chart:
Fast MA (EMA 9): An Exponential Moving Average (EMA) with a default length of 9 periods. The EMA reacts more quickly to price changes.
Slow MA (SMMA 14): A Smoothed Moving Average (SMMA) with a default length of 14 periods. The SMMA (calculated using ta.rma in Pine v6) smooths price data more than a standard Simple Moving Average.
The user can customize both the EMA Length and SMMA Length via the indicator settings.
2. Time Window Restriction ⏰
The script incorporates a critical time filter to restrict all signals and alerts to a specific daily trading session.
Time Session: The alerts are restricted to the time between 6:30 AM CST and 2:30 PM CST.
Implementation: This is achieved by converting the Central Time (CST) range to 7:30-15:30 (EST) and applying the time() function with the "GMT-5" timezone (which covers EST/EDT). The boolean variable time_in_range is only true when the current bar falls within this time window.
3. Crossover Signals
The code defines two primary crossover events, which represent the trading signals:
Bullish Cross (Cross Up): The EMA 9 (blue line) crosses above the SMMA 14 (red line), indicating bullish momentum.
Bearish Cross (Cross Down): The EMA 9 (blue line) crosses below the SMMA 14 (red line), indicating bearish momentum.
4. Visuals and Alerts
Plots: Both the EMA 9 (blue) and SMMA 14 (red) lines are plotted directly on the price chart (overlay=true).
Visual Highlights: Small plotshapes are drawn on the chart only when a crossover occurs and the time is within the specified time_in_range window:
Green Triangle Up: for a Bullish Cross.
Red Triangle Down: for a Bearish Cross.
Alerts: Two separate alertcondition calls are configured to trigger external notifications. Crucially, the alerts will only fire if both the crossover condition AND the time_in_range condition are met. The alerts include dynamic placeholders for the ticker, interval, and closing price.
PM Range Breaker [CHE] PM Range Breaker — Premarket bias with first-five range breaks, optional SWDEMA regime latch, and simple two-times-range targets
Summary
This indicator sets a once-per-day directional bias during New York premarket and then tracks a strict first-five-minutes range from the session open. After the first five complete, it marks clean breakouts and can project targets at two times the measured range. A second mode latches an EMA-based regime to inform the bias and optional background tinting. A compact panel reports live state, first-five levels, and rolling hit rates of both bias modes using a user-defined midday close for statistics.
Motivation: Why this design?
Intraday traders often get whipsawed by early noise or by fast flips in trend filters. This script commits to a bias at a single premarket minute and then waits for the market to present an objective structure: the first-five range. Breaks after that window are clearer and easier to manage. The alternative SWDEMA regime gives a slower, latched context for users who prefer a trend scaffold rather than a midpoint reference.
What’s different vs. standard approaches?
Baseline: Typical open-range-breakout lines or a single moving-average filter without daily commitment.
Architecture differences:
Bias decision at a fixed New York time using either a midpoint lookback (“Classic”) or a two-EMA regime latch (“SWDEMA”).
Strict five-minute window from session open; breakout shapes print only after that window.
Single-shot breakout direction per session (debounce) and optional two-times-range targets.
On-chart panel with hit rates using a configurable midday close for statistics.
Practical effect: Cleaner visuals, fewer repeated signals, and a traceable daily decision that can be evaluated over time.
How it works (technical)
Time handling uses New York session times for premarket decision, open, first-five end, and a midday statistics checkpoint.
Classic bias: A midpoint is computed from the highest and lowest over a user period; at the premarket minute, the bias is set long when the close is above the midpoint, short otherwise.
SWDEMA bias: Two EMAs define a regime score that requires price and trend agreement; when both agree on a confirmed bar, the regime latches. At the premarket minute, the daily bias is set from the current regime.
The first-five range captures high and low from open until the end minute, then freezes. Breakouts are detected after that window using close-based cross logic.
The script draws range lines and optional targets at two times the frozen range. A session break direction latch prevents duplicate break markers.
Statistics compare daily open and a configurable midday close to record if the chosen bias aligned with the move.
Optional elements include EMA lines, midpoint line, latched-regime background, and regime switch markers.
Data aggregation for day logic and the first-five window is sampled on one-minute data with explicit lookahead off. On charts above one minute, values update intra-bar until the underlying minute closes.
Parameter Guide
Premarket Start (NY) — Minute when the bias is decided — Default: 08:30 — Move earlier for more stability; later for recency.
Market Open (NY) — Session start used for the first-five window — Default: 09:30 — Align to instrument’s RTH if different.
First-5 End (NY) — End of the first-five window — Default: 09:35 — Extend slightly to capture wider opening ranges.
Day End (NY) for Stats — Midday checkpoint for hit rate — Default: 12:00 — Use a later time for a longer evaluation window.
Show First-5 Lines — Draw the frozen range lines — Default: On — Turn off if your chart is crowded.
Show Bias Background (Session) — Tint by daily bias during session — Default: On — Useful for directional context.
Show Break Shapes — Print breakout triangles — Default: On — Disable if you only want lines and alerts.
Show 2R Targets (Optional) — Plot targets at two times the range — Default: On — Switch off if you manage exits differently.
Line Length Right — Extension length of drawn lines — Default: 20 (bars) — Increase for slower timeframes.
High/Low Line Colors — Visual colors for range levels — Defaults: Green/Red — Adjust to your theme.
Long/Short Bias Colors — Background tints — Defaults: Green/Red with high transparency — Lower transparency for stronger emphasis.
Show Corner Panel — Enable the info panel — Default: On — Centralizes status and numbers.
Show Hit Rates in Panel — Include success rates — Default: On — Turn off to reduce panel rows.
Panel Position — Anchor on chart — Default: Top right — Move to avoid overlap.
Panel Size — Text size in panel — Default: Small — Increase on high-resolution displays.
Dark Panel — Dark theme for the panel — Default: On — Match your chart background.
Show EMA Lines — Plot blue and red EMAs — Default: Off — Enable for SWDEMA context.
Show Midpoint Line — Plot the midpoint — Default: Off — Useful for Classic mode visualization.
Midpoint Lookback Period — Bars for high-low midpoint — Default: 300 — Larger values stabilize; smaller values respond faster.
Midpoint Line Color — Color for midpoint — Default: Gray — A neutral line works best.
SWDEMA Lengths (Blue/Red) — Periods for the two EMAs — Defaults: 144 and 312 — Longer values reduce flips.
Sources (Blue/Red) — Price sources — Defaults: Close and HLC3 — Adjust if you prefer consistency.
Offsets (Blue/Red) — Pixel offsets for EMA plots — Defaults: zero — Use only for visual shift.
Show Latched Regime Background — Background by SWDEMA regime — Default: Off — Separate from session bias.
Latched Background Transparency — Opacity of regime background — Default: eighty-eight — Lower value for stronger tint.
Show Latch Switch Markers — Plot regime change markers — Default: Off — For auditing regime changes.
Bias Mode — Classic midpoint or SWDEMA latch — Default: Classic — Choose per your style.
Background Mode — Session bias or SWDEMA regime — Default: Session — Decide which background narrative you want.
Reading & Interpretation
Panel: Shows the active bias, first-five high and low, and a state that reads Building during the window, Ready once frozen, and Break arrows when a breakout occurs. Hit rates show the percentage of days where each bias mode aligned with the midday move.
Colors and shapes: Green background implies long bias; red implies short bias. Triangle markers denote the first valid breakout after the first-five window. Optional regime markers flag regime changes.
Lines: First-five high and low form the core structure. Optional targets mark a level at two times the frozen range from the breakout side.
Practical Workflows & Combinations
Trend following: Choose a bias mode. Wait for the first clean breakout after the first-five window in the direction of the bias. Confirm with structure such as higher highs and higher lows or lower highs and lower lows.
Exits and risk: Conservative users can trail behind the opposite side of the first-five range. Aggressive users can scale near the two-times-range target.
Multi-asset and multi-TF: Works well on intraday timeframes from one minute upward. For non-US sessions, adjust the time inputs to the instrument’s regular trading hours.
Behavior, Constraints & Performance
Repaint and confirmation: Bias and regime decisions use confirmed bars. Breakout signals evaluate on bar close at the chart timeframe. On higher timeframes, minute-based sources update within the live bar until the minute closes.
security and HTF: The script samples one-minute data. Lookahead is off. Values stabilize once the source minute closes.
Resources: `max_bars_back` is five thousand. Drawing objects and the panel update efficiently, with position extensions handled on the last bar.
Known limits: Midday statistics use the configured time, not the official daily close. Session logic assumes New York session timing. Targets are simple multiples of the first-five range and do not adapt to volatility beyond that structure.
Sensible Defaults & Quick Tuning
Start with Classic bias, midpoint lookback at three hundred, and all visuals on.
Too many flips in context → switch to SWDEMA mode or increase EMA lengths.
Breakouts feel noisy → extend the first-five end by a minute or two, or wait for a retest by your own rules.
Too sluggish → reduce midpoint lookback or shorten EMA lengths.
Chart cluttered → hide EMA or midpoint lines and keep only range levels and breakout shapes.
What this indicator is—and isn’t
This is a visualization and signal layer for session bias and first-five structure. It does not manage orders, position sizing, or risk. It is not predictive. Use it alongside market structure, execution rules, and independent risk controls.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Many thanks to LonesomeTheBlue
for the original work. I adapted the midpoint calculation for this script. www.tradingview.com
GEX Delta Hedging Lines - v.4.1GEX Delta Hedging Indicator - Institutional Levels
Introduction
This Pine Script indicator is designed to visualize Gamma Exposure (GEX) levels, Delta Hedging zones, and institutional support/resistance points on your TradingView charts. It helps traders identify key price levels where market makers and institutions might hedge their options positions, potentially leading to price reversals or continuations. The indicator overlays lines for resistances (Call Wall, R1, R2), supports (Put Wall, S1, S2, S3), a Gamma Flip zone, and customizable trading zones (Buy, Neutral, Sell). It also includes alerts for level breaches and a summary table for quick reference.
Key Features
Resistance Levels: Call Wall (maximum resistance), R1 (strong), R2 (light) – all configurable with colors, styles, and widths.
Support Levels: Put Wall (maximum support), S1 (strong), S2 (moderate), S3 (weak/danger) – fully customizable.
Gamma Flip Zone: Indicates potential regime changes in market behavior.
Trading Zones: Visual boxes for Buy (green), Neutral (yellow), and Sell (red) areas, with adjustable boundaries and colors.
Current Price Line: Dotted line for the reference price, with labels.
Alerts: Trigger notifications when levels are tested or broken.
Summary Table: Displays levels, prices, and distances from the current close, positioned customizable.
Style Options: Adjust line widths, styles (solid/dashed/dotted), label sizes, and more for a personalized view.
Traffic Light MA — Trend IndicatorThis script displays a simple “traffic light” circle that reflects the market trend based on two moving averages (MA).
-Green: Price > Fast MA > Slow MA → Uptrend confirmation
-Yellow: Mixed conditions (transition zone)
-Red: Slow MA > Fast MA > Price → Downtrend confirmation
You can customize:
-MA type (SMA or EMA)
-Lengths of both MAs
-Timeframe used for evaluation (e.g. Daily, 4H, Weekly)
This tool is designed for traders who prefer a minimalistic chart, showing only a clean color signal instead of multiple lines.
Recommendation:
For small MAs (8,15,21) use EMA, for big MAs (50,100,200) use SMA
Alerts Killzones + PD/WL/ML Levels (No Labels)This indicator automatically highlights the London and New York killzones and triggers alerts at key price levels — without adding any labels or text clutter to the chart.
Features:
Highlights London (10:00–13:00) and New York (15:00–17:00) sessions (GMT+3, Romania).
Draws and updates key levels automatically:
PDH / PDL – Previous Day High & Low
WH / WL – Previous Week High & Low
MH / ML – Previous Month High & Low
Alerts when price touches any of these levels.
Alerts at session opens and closes for both London and New York.
Clean interface – no labels or extra markers on chart.
Ideal for:
Traders who follow ICT concepts, session-based setups, or liquidity sweeps and want precise alerts without chart noise.
Earnings Day - Price Predictor [DunesIsland]It's designed to analyze and visualize historical stock price movements on earnings report days, focusing on percentage changes.
Here's a breakdown of what it does, step by step:
Key Inputs and Setup
User Input: There's a single input for "Lookback Years" (default: 10), which determines how far back in time (approximately) the indicator analyzes earnings data. It uses a rough calculation of milliseconds in that period to filter historical data.
Data Fetching: It uses TradingView's request.earnings function to pull actual earnings per share (EPS) data for the current ticker. Earnings days are identified where EPS data exists on a bar but not on the previous one (to avoid duplicates).
Price Change Calculation: For each detected earnings day, it computes the percentage price movement as (close - close ) / close * 100, representing the change from the previous close to the current close on that day.
Processing and Calculations (on the Last Bar)
Lookback Filter: It calculates a cutoff timestamp for the lookback period and processes only earnings events within that window.
Overall Averages:
Separates positive (≥0%) and negative (<0%) percentage changes.
Seasonality (Next Quarter Prediction):
Identifies the most recent earnings quarter (latest_q).
Predicts the "next" quarter (e.g., if latest is Q4, next is Q1;
Again, separates positive and negative changes, computing their respective averages.
Visual Outputs
Lookback: How far to fetch the data in years.
Average Change (Green): Showing the average of all positive changes.
Average Change (Red): Showing the average of all negative changes.
Seasonality Change (Green): Showing the average of positive changes for the predicted next quarter.
Seasonality Change (Red): Showing the average of negative changes for the predicted next quarter.
Purpose and Usage
This indicator helps traders assess a stock's historical reaction to earnings announcements. The overall averages give a broad sense of typical gains/losses, while the seasonality focuses on quarter-specific trends to "predict" potential movement for the upcoming earnings (based on past same-quarter performance). It's best used on daily charts for stocks with reliable earnings data. Note that quarter inference is calendar-based and may not perfectly match fiscal calendars for all companies—it's an approximation.






















