[blackcat] L2 Ehlers Sine Wave Coupled Eight Planetary CycleLevel: 2
Background
Have you considered that factors outside the Earth will be related to macro market trends? Let’s discuss the relationship between the planetary movement in the Galaxy and the market movement on Earth today! Although I said that, you may have laughed out in front of the screen, but the calculations in this script are entirely based on astronomical data and mathematical relationships.
Your next question may be why you compare the movements of the eight planets and the laws of the market on the earth together? My answer comes from a Cybernetic Sine Wave indicator proposed by Dr. John F. Ehlers.
Function
L2 Ehlers Sine Wave Coupled Eight Planetary Cycle first converts the astronomical data of the eight major planets into planetary aspects/phases through mathematical relationships. Planetary aspects/phases can provide the historical and current relative positions of each planet in the mathematical triangle relationship. We can use a simple mathematical sine formula to constrain the planet's trajectory between -1 and 1, which is what we often call a sine wave.
The relationship between the sine wave and the market can be extracted from the theory of John F. Ehlers. In Ehlers' theory, market price can be modeled by the trend and cycle modes. And in his works, there are many indicators of how to completely remove the trend in the market price and only leave the cycle mode data. The Cybernetic Sine Wave indicator is exactly the cycle mode data after the market trend is stripped, and expressed in the form of a sine wave.
If you can read to here with patience, you must also be aware of the premise that the trajectories of the eight planets and the laws of the earth market can be coupled: the trajectory of the sine wave mode. Therefore, this indicator is a tool for comparing and analyzing the two in the same chart. I hope you like it.
Finally, in order to benchmark the trajectories of the eight planets and the specific market on the earth, a starting point in time is particularly important. This is the base date of the market index to be analyzed. It is the year, month, and day data specified by the index, which needs to be input by the user when analyzing a specific stock index. For example, the base date of the S&P 500 index is January 3, 1928. This date needs to be entered into the indicator to analyze the SPX500.
Key Signal
Mercury_trail ---> smoothed Mercury orbit sine wave
Venus_trail ---> smoothed Venus orbit sine wave
Earth_trail ---> smoothed Earth orbit sine wave
Earth_mirror ---> smoothed Earth mirrored orbit sine wave
Mars_trail ---> smoothed Mars orbit sine wave
Jupiter_trail ---> smoothed Jupiter orbit sine wave
Saturn_trail ---> smoothed Saturn orbit sine wave
Uranus_trail ---> smoothed Uranus orbit sine wave
Neptune_trail ---> smoothed Neptune orbit sine wave
Aspect 0, 45, 90, 225, 270 deg ---> key planet aspects
ehlersine ---> Ehlers Cybernetic Sine Wave
ehlerslsine ---> Ehlers Cybernetic Lead Sine Wave
Pros and Cons
This is a technical indicator that I have come up with on a whim, and the laws of planetary operation and the operation of the Earth market are still being explored. Hope that interested friends will share your new discoveries.
Remarks
To celebrate I released the 50th technical indicator script on TV!
Courtesy of @sal157011 John Ehlers "Cybernetic Sine Wave" indicator, I converted it from pine v2 to pine v4 in this script.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Tìm kiếm tập lệnh với "Cycle"
Narrow Bandpass FilterIn technical analysis most bandpass filters like the MACD, TRIX, AO, or COG will have a non-symmetrical frequency response, in fact, this one is generally right-skewed. As such these oscillators will not fully remove lower and higher frequency components from the input signal, the following indicator is a bandpass filter with a more symmetrical frequency response with the possibility to have a narrow bandwidth, this allows the indicator to potentially isolate sinusoids from the input signal.
Indicator & Settings
The filter is calculated via convolution, if we take into account that the frequency response of a filter is the Fourier transform of its weighting function we can deduce that we can get a narrow response by using a sinusoid sin(2𝛑nf) as the weighting function, with the peak of the frequency response being equal to f , this makes the filter quite easy to control by the user, as this one can choose the frequency to be isolated. The length of the weighting function controls the bandwidth of the frequency response, with a higher length returning an ever-smaller frequency response width.
In the indicator settings the "Cycle Period" determine the period of the sinusoid used as a weighting function, while "Bandwidth" determine the filter passband width, with higher values returning a narrower passband, this setting also determine the length of the convolution, because the sum of the weights must add to 0 we know that the length of the convolution must be a multiple of "Cycle Period", so the length of the convolution is equal to "Cycle Period × Bandwidth".
Finally, the windowing option determines if a window is applied to the weighting function, a weighting function allow to remove ripples in the filter frequency response
Above both indicators have a Cycle period of 100 and a Bandwidth of 4, we can see that the indicator with no windowing don't fully remove the trend component in the price, this is due to the presence of ripples allowing lower frequency components to pass, this is not the case for the windowed version.
In theory, an ultra-narrow passband would allow to fully isolate pure sinusoids, below the cycle period of interest is 20
using a bandwidth equal to 10 allow to retain that sinusoid, however, note that this sinusoid is subject to phase shift and that it might not be a dominant frequency in the price.
Envelope BTMStudi cicli? Questo fa per te, le bande che altro non sono due medie mobili, tengono il prezzo alle due estremità (in alto e in basso).
Questo ti farà semplicemente analizzare e tenere traccia i cicli dello strumento in questione.
Do you study cycles? This is for you, the bands, formed by two moving averages, keep the price between the two ends (top and bottom).
This will simply cause you to analyze and track the cycles of price in question.
Schaff Trend Cycle w/ MACD HistogramWhat Is Schaff Trend Cycle? (Reference from Investopedia)
The Schaff Trend Cycle (STC) is a charting indicator that is commonly used to identify market trends and provide buy and sell signals to traders. Developed in 1999 by noted currency trader Doug Schaff, STC is a type of oscillator and is based on the assumption that, regardless of time frame, currency trends accelerate and decelerate in cyclical patterns.
How STC Works
Many traders are familiar with moving average convergence/divergence (MACD) charting tool, which is an indicator that is used to forecast price action and is notorious for lagging due to its slow responsive signal line . By contrast, STC’s signal line enables it to detect trends sooner. In fact, it typically identifies up and downtrends long before MACD indicator.
While STC is computed using the same exponential moving averages as MACD, it adds a novel cycle component to improve accuracy and reliability. While MACD is simply computed using a series of moving average, the cycle aspect of STC is based on time (e.g. number of days).
It should also be noted that, although STC was developed primarily for fast currency markets, it may be effectively employed across all markets, just like MACD. It can be applied to intraday charts, such as five minutes or one hour charts, as well as daily, weekly, or monthly time frames.
What's included the indicator?
Zero MACD lag algorithm (can be enabled/disabled)
MACD Histogram (has a different calculation to show the trend clearly. Can revert to original algo but will not truly reflect the current trend.)
Histogram peaks
STC pivots
How to use this indicator?
Use the STC overbought/oversold to determine trend strength.
Use the MACD zeroline crossover to determine the trend if bull/bear
For risky trades:
Long or cover when STC shows a bullish pivot. Exit or short on STC bear pivots
For conservative trades:
Long when MACD histogram crosses above midline. Exit or short on STC bear pivots
Settings:
Default is Fast - 5, Slow - 20. You can turn it up to Fast - 10, Slow - 30.
You can enable or disable certain features if you dont like to see them.
BurgerCrypto.com: MA based band for bitcoin cycle highs&lowsWarning: This script works only on a daily chart and only works for bitcoin charts with a long history. Best to be used on the BLX chart as it goes back to July 2010.
This script shows you the Moving Average with the length of a full bitcoin cycle, in which a cycle is defined as a period between two reward halvings; i.e. 210.000 blocks.
After data analysis in Python, I found that the average inter arrival time is a bit lower than the often communicated 10minutes; it's 9.46minutes, which makes the 210.000 block interval equal to 1379days.
The 1379d Moving Average seems to serve well as a support for the price of bitcoin over time and it's 4th 2^n multiple did a good job in catching the cycle tops.
If you like this indicator, please leave some claps for the Medium article in which I introduced this indicator:
medium.com
ALMA Hurst Cycles V2 - Potential Pivot Points Chandelier VersionAlternative version to this script
Uses the calculation for creating chandelier stops as a basis for the bands. Seems to be more consistent especially over higher TFs. Still needs to be tuned for a good price fit.
Schaff Trend Cycle 1.1 with signal codingThis is an edit of Lazy Bear's Schaff Trend Cycle original description here. I've added in the syntax so that you can generate an alert when it crosses the threshold in either direction. Just tick the box to show threshold crosses.
More background on the indicator is here.
www.investopedia.com
Other common settings are fast 23 slow 53 or 10/30, 3/10. I have also set it to 9/20 for test purposes. They have different pluses and minuses on different timeframes.
@Complete Squeeze Cycle Detector v2.0 FINALDescription:
The Complete Squeeze Cycle Detector identifies and tracks the full lifecycle of squeeze formations, from pre-squeeze consolidation through active squeeze periods to squeeze completion. The indicator systematically detects the characteristic conditions that precede and accompany squeeze events.
The indicator monitors multiple factors associated with squeeze development including:
• Volatility compression relative to recent volume activity
• Elevated market stress conditions as measured by VIX levels
• Momentum compression through rate of change measurements across multiple time periods
• Alignment of multiple exponential moving averages indicating consolidation
The squeeze cycle is classified into three distinct phases: Pre-Squeeze Setup, Active Squeeze, and Squeeze Complete. Each phase is identified based on threshold levels of multiple compression metrics, with adjustable sensitivity settings to control the strictness of detection.
The indicator provides visual identification of each phase through labels, background coloring, and an optional dashboard, allowing users to distinguish between the preparation phase where volatility contracts, the active squeeze phase where compression reaches critical levels, and the completion phase where the squeeze releases and directional movement resumes.
This systematic approach enables users to identify squeeze formations throughout their complete development cycle rather than focusing only on the breakout phase.
Turnover Cycle MATurnover Cycle indicator
Turnover Cycle indicates how many days the market capitalization will be completed traded once.
The MA and EMA based on the Turnover Cycle would help you to observe the average market holding shares' price position.
If you buy the share when the price is lower than the average market holding shares' price position, that will dramatically increase your chances of returns.
!!!!! Due to the financial data has a limited period, the latest 500 bars is the true value.
Please don't refer to any value on the bar before 500.
Please enjoy.
Hurst Cycle Channel Clone %BA %B of lazy bears Hurst Cycle Channel Clone
Remember to thank him for his great scripts.
With this you can easily see when the close is above,below or in the short or medium cycle channel.
In-Phase & Quadrature IFMThis indicator provides a continuous measurement of a securities' dominant cycle period, based on Ehlers ever-impressive reports and analysis tools.
This method uses in-phase and quadrature analysis, making use of the imaginary domain. This method is prone to favor longer periods and can
allow noise to greatly affect the end result.
>What does that even mean?
Essentially, you get a real-time (low lag) plot of the cycle period in bars. If the I-Q IFM reads "16" then you can expect the distance between swing highs and swing lows to be approx. 16 bars.
>How is this useful?
When you throw an RSI or MACD on your chart, you can now set the "Period" or "Length" value with confidence.
Knowing the dominant cycle period tells you that price reversal will occur around these intervals.
>Extending.
The better way to use this tool is by extending the script into any indicators that use a length or period that is set manually.
Simply use the "len" variable in your custom script to replace your input values.
Now you have a way to adaptively set the period value, using signal processing theory instead of just intuition ;)
PM if you have questions.
Cosine IFM [Ehlers]This indicator provides a continuous measurement of a securities' dominant cycle period, based on Ehlers ever-impressive reports and analysis tools.
>What does that even mean?
Essentially, you get a real-time (low lag) plot of the cycle period in bars. If the COS IFM reads "16" then you can expect the distance between swing highs and swing lows to be approx. 16 bars.
>How is this useful?
When you throw an RSI or MACD on your chart, you can now set the "Period" or "Length" value with confidence.
Knowing the dominant cycle period tells you that price reversal will occur around these intervals.
>Extending.
The better way to use this tool is by extending the script into any indicators that use a length or period that is set manually.
Simply use the "len" variable in your custom script to replace your input values.
Now you have a way to adaptively set the period value, using signal processing theory instead of just intuition ;)
PM if you have questions.
Trend & Pullback Cycle How to use.
Trend Identification:
Green Columns: The cycle is above 50. Look for Longs.
Red Columns: The cycle is below 50. Look for Shorts.
Pullback Detection:
I added a Colour Change feature. If the Green bars turn Dark Green, it means momentum is fading (a pullback is happening). This is your signal to get ready to enter or add to a position once it turns Bright Green again.
The Yellow Line:
This is your trigger. In the screenshot, you see the bars cross the yellow line.
Entry Signal: When the Histogram crosses above the Yellow line (while generally green) or crosses below it (while generally red).
NIFTY, SENSEX AND BANKNIFTY Options Expiry MarkerNSE Options Expiry Background Marker
Category: Date/Time Indicators
Timeframe: Daily
Markets: NSE (India) / Any Exchange
Description
Automatically highlights weekly and monthly options expiry days for NIFTY, BANKNIFTY, and SENSEX using color-coded background shading. Works across entire chart history with customizable transparency levels.
Key Features
✅ Background Highlighting - Non-intrusive color shading on expiry days
✅ Multi-Index Support - NIFTY, BANKNIFTY, and SENSEX simultaneously
✅ Weekly & Monthly Expiry - Different transparency levels for easy distinction
✅ Customizable Expiry Days - Set any weekday (Mon-Fri) as expiry day
✅ Adjustable Transparency - Separate controls for weekly and monthly expiries
✅ Full Historical Data - Works on all visible bars across years
✅ Smart Monthly Detection - Automatically identifies last occurrence in month
✅ Color Coded - Blue (NIFTY), Red (BANKNIFTY), Green (SENSEX)
Use Cases
Options trading strategy planning
Identify expiry day volatility patterns
Visual reference for monthly vs weekly cycles
Backtest strategies around expiry days
Track multiple index expiries on single chart
Technical Details
Uses India timezone (GMT+5:30) for accurate date calculations
Handles leap years automatically
Smart algorithm identifies last weekday occurrence per month
Works seamlessly on any chart timeframe (optimized for Daily)
No performance impact - simple background coloring
Systemic Net Liquidity (Macro Fuel for Crypto & Stocks)This indicator tracks Systemic Net Liquidity, the single most important macro factor for determining the long-term trend of risk assets like Bitcoin (BTC) and major indices (S&P 500). It measures the amount of actual cash available in the financial system to chase speculative assets, distinguishing between money that is circulating and money that is locked up at the Federal Reserve.
Mechanism (What It Measures)
The script uses direct data from the FRED (Federal Reserve Economic Data) to calculate the true state of market funding:
\text{Net Liquidity} = \text{Fed Assets (WALCL)} - \text{Treasury General Account (TGA)} - \text{Reverse Repo (RRP)}
1. Fed Assets (WALCL): The total balance sheet of the Fed (The overall supply of money).
2. Treasury General Account (TGA): Funds the US Treasury collects via bond issuance. When the TGA rises, liquidity is actively drained from the banking system (A major bearish pressure).
3. Overnight Reverse Repo (RRP): Cash parked by banks and money market funds at the Fed, effectively frozen and not contributing to market activity.
How to Interpret Signals
Treat the Net Liquidity line as the market's "Fuel Gauge":
📈 BULLISH SIGNAL (Liquidity Injection): When the Net Liquidity line is rising, money is flowing back into the system, signalling a tailwind for risk assets.
📉 BEARISH SIGNAL (Liquidity Drain): When the line is falling (often due to high TGA balances), cash is being removed. This signals major friction and pressure on price action.
⚠️ DIVERGENCE WARNING: A strong signal is generated when Price (e.g., BTC) rises, but Net Liquidity falls. This macro divergence strongly suggests a major trend reversal or correction is imminent.
Important Notes
Data Source: Data is directly sourced from FRED and updates daily/weekly. This tool is best used for macro analysis and identifying high-level cycles, not short-term scalping.
Disclaimer: Use this indicator as a confirmation tool within your broader strategy. It is not a standalone trading signal.
GT3_Trades Sessions Highs & LowsThis indicator automatically identifies and displays the session highs and lows for the three major global market sessions: Asia, London, and New York. It is designed for intraday traders who rely on session-based structure, liquidity levels, and volatility windows. The script dynamically tracks and plots the highest and lowest price reached during each session and extends these levels forward on the chart for strong visual clarity.
Key Features
Session-Based Highs & Lows
Calculates and updates the high and low for each session (Asia, London, New York) in real time as price develops within the session window.
Fully Customizable Display Options
Traders can individually toggle the visibility of each session’s high and low levels.
Line colors, styles (Solid, Dashed, Dotted), and thickness are also user-configurable.
Accurate Timezone Handling
Session times are defined using user-selected timezone settings (default UTC+3), ensuring session boundaries match the trader’s desired market timing.
Automatic Daily Reset
At the start of each new trading day, the indicator clears the previous levels and begins tracking fresh highs and lows for the new day.
Dynamic Line Drawing
Each level is plotted using real Pine Script line objects, which update automatically as new highs or lows form. Once created, each line extends forward to the right—providing clear, persistent references for potential liquidity zones, breakouts, and reversions.
Efficient Tracking Logic
The script keeps track of the bar index where each high/low occurs and updates the line endpoints in real time. Historical levels are not reused, ensuring clean, uncluttered visuals.
How It Helps Traders
Identifies liquidity pools and sweep areas based on session extremes.
Highlights intraday structure shifts when price breaks or respects session highs/lows.
Provides a clear overview of volatility cycles across the global trading day.
Helps detect potential reversal or continuation setups when interacting with session boundaries.
Ideal For
Intraday and scalping strategies
ICT-based session analysis
Liquidity, sweep, and FVG traders
Forex, indices, crypto, and commodities
DRACO Tomas Delta (Custom/Monthly)🐉 DRACO Delta SessionBox (Custom / Monthly)
Overview
The DRACO Delta SessionBox is an advanced visual and analytical tool designed to measure and display cumulative buying and selling pressure (Δ — delta) within a user-defined time window, such as a specific custom date range, a recurring monthly period, or the entire current month.
It visually represents market accumulation or distribution phases by calculating an approximate delta — the imbalance between bullish and bearish volume — and then aggregates it inside a dynamic “box” that spans only the selected time window.
Core Concept
Delta in this context is an approximation of the real order-flow delta (buy vs sell volume difference).
Since TradingView doesn’t provide raw tick-by-tick trade direction data, this indicator uses a proxy formula based on OHLC and volume data:
Δ per bar
=
Volume
×
(
Close
−
Open
)
max
(
High
−
Low
,
Tick Size
)
Δ per bar=Volume×
max(High−Low,Tick Size)
(Close−Open)
This gives a very effective approximation of intrabar directional pressure — whether volume was dominated by buyers (Δ > 0) or sellers (Δ < 0).
Modes
The indicator can operate in three distinct modes:
🕒 Custom DateTime
The user manually sets an exact date & time range (From – To).
The box only measures delta and volume accumulation within this window.
Ideal for analyzing specific events, like FOMC weeks, quarterly earnings, or macro periods.
📆 Monthly Window
The user selects start and end days of the month (e.g. 5–20).
The same window repeats automatically every month.
Useful for identifying recurring accumulation or distribution cycles within months.
🧭 Whole Month
Automatically measures and visualizes delta for the entire current calendar month.
The box resets when a new month begins.
Provides a macro-level view of monthly directional bias.
Goldbach Energy Curve⚡ Goldbach Energy Curve (G-Energy)
Precision phase-energy detection for professional traders
The Goldbach Energy Curve transforms raw market motion into a smooth, color-coded energy profile — revealing when price transitions between Accumulation, Manipulation, and Distribution states.
It blends advanced filtering with adaptive energy mapping to visualize market compression and expansion cycles in real time.
Use it to sense when momentum is building, fading, or rotating across phases — before structure or volume confirms the shift.
⚙️ How to Read the Energy Curve
Below 10 → Ultra-Low Energy Zone
Market in deep Accumulation — liquidity builds, volatility compresses, and smart money positions quietly.
10 – 33 → Rising Accumulation
Early signs of energy release; watch for breakout or expansion setups.
33 – 66 → Manipulation Phase
Transitional zone; expect false moves, liquidity grabs, and short-term volatility spikes.
Above 66 → Distribution Phase
Energy peaks — trend exhaustion, reversals, or large-scale profit-taking often emerge.
Align your directional bias with the market’s current energy state, from silent buildup to full distribution.
Features
Dynamic A / M / D phase tracking
Smooth histogram with adaptive curve overlay
Automatic background shading for instant context
Non-repainting and optimized for multi-timeframe analysis
Ideal for:
Institutional-style traders who value precision, clarity, and early insight into phase rotations.
Indian Gold Festival Dates HistoricalIndian Gold Festival Dates (1975-2025)
Marks 8 major Indian festivals associated with gold buying over 50 years of historical data. Essential for analyzing seasonal patterns and cultural demand cycles in gold markets.
Festivals Included:
Dhanteras (Gold) - Most auspicious gold buying day
Diwali (Orange) - Festival of Lights
Akshaya Tritiya (Green) - "Never-ending" prosperity
Dussehra (Red) - Victory and success
Makar Sankranti (Cyan) - Solar new year
Gudi Padwa (Magenta) - Hindu New Year (Maharashtra)
Ugadi (Purple) - Hindu New Year (South India)
Navratri (Yellow) - 9-day festival
Features:
✓ 408 exact historical dates (1975-2025)
✓ Color-coded vertical lines for easy identification
✓ Toggle individual festivals on/off
✓ Adjustable line width and labels
✓ Works on all timeframes (best on daily/weekly)
Perfect for traders analyzing gold seasonality, Indian market sentiment, and cultural demand patterns. Use on XAUUSD, GC1!, or Indian gold futures.
US30 Quarter Levels (125-point grid) by FxMogul🟦 US30 Quarter Levels — Trade the Index Like the Banks
Discover the Dow’s hidden rhythm.
This indicator reveals the institutional quarter levels that govern US30 — spaced every 125 points, e.g. 45125, 45250, 45375, 45500, 45625, 45750, 45875, 46000, and so on.
These are the liquidity magnets and reaction zones where smart money executes — now visualized directly on your chart.
💼 Why You Need It
See institutional precision: The Dow respects 125-point cycles — this tool exposes them.
Catch reversals before retail sees them: Every impulse and retracement begins at one of these zones.
Build confluence instantly: Perfectly aligns with your FVGs, OBs, and session highs/lows.
Trade like a professional: Turn chaos into structure, and randomness into rhythm.
⚙️ Key Features
Automatically plots US30 quarter levels (…125 / …250 / …375 / …500 / …625 / …750 / …875 / …000).
Color-coded hierarchy:
🟨 xx000 / xx500 → major institutional levels
⚪ xx250 / xx750 → medium-impact levels
⚫ xx125 / xx375 / xx625 / xx875 → intraday liquidity pockets
Customizable window size, label spacing, and line extensions.
Works across all timeframes — from 1-minute scalps to 4-hour macro swings.
Optimized for clean visualization with no clutter.
🎯 How to Use It
Identify liquidity sweeps: Smart money hunts stops at these quarter zones.
Align structure: Combine with session opens, order blocks, or FVGs.
Set precision entries & exits: Trade reaction-to-reaction with tight risk.
Plan daily bias: Watch how New York respects these 125-point increments.
🧭 Designed For
Scalpers, day traders, and swing traders who understand that US30 doesn’t move randomly — it moves rhythmically.
Perfect for traders using ICT, SMC, or liquidity-based frameworks.
⚡ Creator’s Note
“Every 125 points, the Dow breathes. Every 1000, it shifts direction.
Once you see the rhythm, you’ll never unsee it.”
— FxMogul
DHYT 6 MAs, BMSB, Pi Cycle TopThis indicator has 6 Moving averages that are highly customizable and visible on all time frames, it also includes the Bull Market Support Band (BMSB) and the Pi Cycle Top indicator which has been very good at predicting Cycle Tops for Bitcoin (BTC).
You can customize all the moving averages, as well as using simple or exponential. You can also easily customize colors and line weights.
Created by: Dan Heilman
[DEM] Sequential Label Sequential Label is designed to display sequential counting methodology directly on the price chart by placing dynamic labels below each bar that show the current Sequential count value. The indicator implements a sequential system by tracking consecutive closes above or below the close from four periods ago, calculating separate upward and downward sequences, then displaying the net difference as a numbered label with color-coded backgrounds (green for positive/bullish counts, red for negative/bearish counts). Each label shows the absolute value of the current Sequential position and automatically updates and repositions with each new bar, providing traders with a real-time visual representation of momentum exhaustion cycles and potential reversal points according to sequential methodology without cluttering the chart with permanent markings.
PnL Bubble [%] | Fractalyst1. What's the indicator purpose?
The PnL Bubble indicator transforms your strategy's trade PnL percentages into an interactive bubble chart with professional-grade statistics and performance analytics. It helps traders quickly assess system profitability, understand win/loss distribution patterns, identify outliers, and make data-driven strategy improvements.
How does it work?
Think of this indicator as a visual report card for your trading performance. Here's what it does:
What You See
Colorful Bubbles: Each bubble represents one of your trades
Blue/Cyan bubbles = Winning trades (you made money)
Red bubbles = Losing trades (you lost money)
Bigger bubbles = Bigger wins or losses
Smaller bubbles = Smaller wins or losses
How It Organizes Your Trades:
Like a Photo Album: Instead of showing all your trades at once (which would be messy), it shows them in "pages" of 500 trades each:
Page 1: Your first 500 trades
Page 2: Trades 501-1000
Page 3: Trades 1001-1500, etc.
What the Numbers Tell You:
Average Win: How much money you typically make on winning trades
Average Loss: How much money you typically lose on losing trades
Expected Value (EV): Whether your trading system makes money over time
Positive EV = Your system is profitable long-term
Negative EV = Your system loses money long-term
Payoff Ratio (R): How your average win compares to your average loss
R > 1 = Your wins are bigger than your losses
R < 1 = Your losses are bigger than your wins
Why This Matters:
At a Glance: You can instantly see if you're a profitable trader or not
Pattern Recognition: Spot if you have more big wins than big losses
Performance Tracking: Watch how your trading improves over time
Realistic Expectations: Understand what "average" performance looks like for your system
The Cool Visual Effects:
Animation: The bubbles glow and shimmer to make the chart more engaging
Highlighting: Your biggest wins and losses get extra attention with special effects
Tooltips: hover any bubble to see details about that specific trade.
What are the underlying calculations?
The indicator processes trade PnL data using a dual-matrix architecture for optimal performance:
Dual-Matrix System:
• Display Matrix (display_matrix): Bounded to 500 trades for rendering performance
• Statistics Matrix (stats_matrix): Unbounded storage for complete statistical accuracy
Trade Classification & Aggregation:
// Separate wins, losses, and break-even trades
if val > 0.0
pos_sum += val // Sum winning trades
pos_count += 1 // Count winning trades
else if val < 0.0
neg_sum += val // Sum losing trades
neg_count += 1 // Count losing trades
else
zero_count += 1 // Count break-even trades
Statistical Averages:
avg_win = pos_count > 0 ? pos_sum / pos_count : na
avg_loss = neg_count > 0 ? math.abs(neg_sum) / neg_count : na
Win/Loss Rates:
total_obs = pos_count + neg_count + zero_count
win_rate = pos_count / total_obs
loss_rate = neg_count / total_obs
Expected Value (EV):
ev_value = (avg_win × win_rate) - (avg_loss × loss_rate)
Payoff Ratio (R):
R = avg_win ÷ |avg_loss|
Contribution Analysis:
ev_pos_contrib = avg_win × win_rate // Positive EV contribution
ev_neg_contrib = avg_loss × loss_rate // Negative EV contribution
How to integrate with any trading strategy?
Equity Change Tracking Method:
//@version=6
strategy("Your Strategy with Equity Change Export", overlay=true)
float prev_trade_equity = na
float equity_change_pct = na
if barstate.isconfirmed and na(prev_trade_equity)
prev_trade_equity := strategy.equity
trade_just_closed = strategy.closedtrades != strategy.closedtrades
if trade_just_closed and not na(prev_trade_equity)
current_equity = strategy.equity
equity_change_pct := ((current_equity - prev_trade_equity) / prev_trade_equity) * 100
prev_trade_equity := current_equity
else
equity_change_pct := na
plot(equity_change_pct, "Equity Change %", display=display.data_window)
Integration Steps:
1. Add equity tracking code to your strategy
2. Load both strategy and PnL Bubble indicator on the same chart
3. In bubble indicator settings, select your strategy's equity tracking output as data source
4. Configure visualization preferences (colors, effects, page navigation)
How does the pagination system work?
The indicator uses an intelligent pagination system to handle large trade datasets efficiently:
Page Organization:
• Page 1: Trades 1-500 (most recent)
• Page 2: Trades 501-1000
• Page 3: Trades 1001-1500
• Page N: Trades to
Example: With 1,500 trades total (3 pages available):
• User selects Page 1: Shows trades 1-500
• User selects Page 4: Automatically falls back to Page 3 (trades 1001-1500)
5. Understanding the Visual Elements
Bubble Visualization:
• Color Coding: Cyan/blue gradients for wins, red gradients for losses
• Size Mapping: Bubble size proportional to trade magnitude (larger = bigger P&L)
• Priority Rendering: Largest trades displayed first to ensure visibility
• Gradient Effects: Color intensity increases with trade magnitude within each category
Interactive Tooltips:
Each bubble displays quantitative trade information:
tooltip_text = outcome + " | PnL: " + pnl_str +
"\nDate: " + date_str + " " + time_str +
"\nTrade #" + str.tostring(trade_number) + " (Page " + str.tostring(active_page) + ")" +
"\nRank: " + str.tostring(rank) + " of " + str.tostring(n_display_rows) +
"\nPercentile: " + str.tostring(percentile, "#.#") + "%" +
"\nMagnitude: " + str.tostring(magnitude_pct, "#.#") + "%"
Example Tooltip:
Win | PnL: +2.45%
Date: 2024.03.15 14:30
Trade #1,247 (Page 3)
Rank: 5 of 347
Percentile: 98.6%
Magnitude: 85.2%
Reference Lines & Statistics:
• Average Win Line: Horizontal reference showing typical winning trade size
• Average Loss Line: Horizontal reference showing typical losing trade size
• Zero Line: Threshold separating wins from losses
• Statistical Labels: EV, R-Ratio, and contribution analysis displayed on chart
What do the statistical metrics mean?
Expected Value (EV):
Represents the mathematical expectation per trade in percentage terms
EV = (Average Win × Win Rate) - (Average Loss × Loss Rate)
Interpretation:
• EV > 0: Profitable system with positive mathematical expectation
• EV = 0: Break-even system, profitability depends on execution
• EV < 0: Unprofitable system with negative mathematical expectation
Example: EV = +0.34% means you expect +0.34% profit per trade on average
Payoff Ratio (R):
Quantifies the risk-reward relationship of your trading system
R = Average Win ÷ |Average Loss|
Interpretation:
• R > 1.0: Wins are larger than losses on average (favorable risk-reward)
• R = 1.0: Wins and losses are equal in magnitude
• R < 1.0: Losses are larger than wins on average (unfavorable risk-reward)
Example: R = 1.5 means your average win is 50% larger than your average loss
Contribution Analysis (Σ):
Breaks down the components of expected value
Positive Contribution (Σ+) = Average Win × Win Rate
Negative Contribution (Σ-) = Average Loss × Loss Rate
Purpose:
• Shows how much wins contribute to overall expectancy
• Shows how much losses detract from overall expectancy
• Net EV = Σ+ - Σ- (Expected Value per trade)
Example: Σ+: 1.23% means wins contribute +1.23% to expectancy
Example: Σ-: -0.89% means losses drag expectancy by -0.89%
Win/Loss Rates:
Win Rate = Count(Wins) ÷ Total Trades
Loss Rate = Count(Losses) ÷ Total Trades
Shows the probability of winning vs losing trades
Higher win rates don't guarantee profitability if average losses exceed average wins
7. Demo Mode & Synthetic Data Generation
When using built-in sources (close, open, etc.), the indicator generates realistic demo trades for testing:
if isBuiltInSource(source_data)
// Generate random trade outcomes with realistic distribution
u_sign = prand(float(time), float(bar_index))
if u_sign < 0.5
v_push := -1.0 // Loss trade
else
// Skewed distribution favoring smaller wins (realistic)
u_mag = prand(float(time) + 9876.543, float(bar_index) + 321.0)
k = 8.0 // Skewness factor
t = math.pow(u_mag, k)
v_push := 2.5 + t * 8.0 // Win trade
Demo Characteristics:
• Realistic win/loss distribution mimicking actual trading patterns
• Skewed distribution favoring smaller wins over large wins
• Deterministic randomness for consistent demo results
• Includes jitter effects to prevent visual overlap
8. Performance Limitations & Optimizations
Display Constraints:
points_count = 500 // Maximum 500 dots per page for optimal performance
Pine Script v6 Limits:
• Label Count: Maximum 500 labels per indicator
• Line Count: Maximum 100 lines per indicator
• Box Count: Maximum 50 boxes per indicator
• Matrix Size: Efficient memory management with dual-matrix system
Optimization Strategies:
• Pagination System: Handle unlimited trades through 500-trade pages
• Priority Rendering: Largest trades displayed first for maximum visibility
• Dual-Matrix Architecture: Separate display (bounded) from statistics (unbounded)
• Smart Fallback: Automatic page clamping prevents empty displays
Impact & Workarounds:
• Visual Limitation: Only 500 trades visible per page
• Statistical Accuracy: Complete dataset used for all calculations
• Navigation: Use page input to browse through entire trade history
• Performance: Smooth operation even with thousands of trades
9. Statistical Accuracy Guarantees
Data Integrity:
• Complete Dataset: Statistics matrix stores ALL trades without limit
• Proper Aggregation: Separate tracking of wins, losses, and break-even trades
• Mathematical Precision: Pine Script v6's enhanced floating-point calculations
• Dual-Matrix System: Display limitations don't affect statistical accuracy
Calculation Validation:
// Verified formulas match standard trading mathematics
avg_win = pos_sum / pos_count // Standard average calculation
win_rate = pos_count / total_obs // Standard probability calculation
ev_value = (avg_win * win_rate) - (avg_loss * loss_rate) // Standard EV formula
Accuracy Features:
• Mathematical Correctness: Formulas follow established trading statistics
• Data Preservation: Complete dataset maintained for all calculations
• Precision Handling: Proper rounding and boundary condition management
• Real-Time Updates: Statistics recalculated on every new trade
10. Advanced Technical Features
Real-Time Animation Engine:
// Shimmer effects with sine wave modulation
offset = math.sin(shimmer_t + phase) * amp
// Dynamic transparency with organic flicker
new_transp = math.min(flicker_limit, math.max(-flicker_limit, cur_transp + dir * flicker_step))
• Sine Wave Shimmer: Dynamic glowing effects on bubbles
• Organic Flicker: Random transparency variations for natural feel
• Extreme Value Highlighting: Special visual treatment for outliers
• Smooth Animations: Tick-based updates for fluid motion
Magnitude-Based Priority Rendering:
// Sort trades by magnitude for optimal visual hierarchy
sort_indices_by_magnitude(values_mat)
• Largest First: Most important trades always visible
• Intelligent Sorting: Custom bubble sort algorithm for trade prioritization
• Performance Optimized: Efficient sorting for real-time updates
• Visual Hierarchy: Ensures critical trades never get hidden
Professional Tooltip System:
• Quantitative Data: Pure numerical information without interpretative language
• Contextual Ranking: Shows trade position within page dataset
• Percentile Analysis: Performance ranking as percentage
• Magnitude Scaling: Relative size compared to page maximum
• Professional Format: Clean, data-focused presentation
11. Quick Start Guide
Step 1: Add Indicator
• Search for "PnL Bubble | Fractalyst" in TradingView indicators
• Add to your chart (works on any timeframe)
Step 2: Configure Data Source
• Demo Mode: Leave source as "close" to see synthetic trading data
• Strategy Mode: Select your strategy's PnL% output as data source
Step 3: Customize Visualization
• Colors: Set positive (cyan), negative (red), and neutral colors
• Page Navigation: Use "Trade Page" input to browse trade history
• Visual Effects: Built-in shimmer and animation effects are enabled by default
Step 4: Analyze Performance
• Study bubble patterns for win/loss distribution
• Review statistical metrics: EV, R-Ratio, Win Rate
• Use tooltips for detailed trade analysis
• Navigate pages to explore full trade history
Step 5: Optimize Strategy
• Identify outlier trades (largest bubbles)
• Analyze risk-reward profile through R-Ratio
• Monitor Expected Value for system profitability
• Use contribution analysis to understand win/loss impact
12. Why Choose PnL Bubble Indicator?
Unique Advantages:
• Advanced Pagination: Handle unlimited trades with smart fallback system
• Dual-Matrix Architecture: Perfect balance of performance and accuracy
• Professional Statistics: Institution-grade metrics with complete data integrity
• Real-Time Animation: Dynamic visual effects for engaging analysis
• Quantitative Tooltips: Pure numerical data without subjective interpretations
• Priority Rendering: Intelligent magnitude-based display ensures critical trades are always visible
Technical Excellence:
• Built with Pine Script v6 for maximum performance and modern features
• Optimized algorithms for smooth operation with large datasets
• Complete statistical accuracy despite display optimizations
• Professional-grade calculations matching institutional trading analytics
Practical Benefits:
• Instantly identify system profitability through visual patterns
• Spot outlier trades and risk management issues
• Understand true risk-reward profile of your strategies
• Make data-driven decisions for strategy optimization
• Professional presentation suitable for performance reporting
Disclaimer & Risk Considerations:
Important: Historical performance metrics, including positive Expected Value (EV), do not guarantee future trading success. Statistical measures are derived from finite sample data and subject to inherent limitations:
• Sample Bias: Historical data may not represent future market conditions or regime changes
• Ergodicity Assumption: Markets are non-stationary; past statistical relationships may break down
• Survivorship Bias: Strategies showing positive historical EV may fail during different market cycles
• Parameter Instability: Optimal parameters identified in backtesting often degrade in forward testing
• Transaction Cost Evolution: Slippage, spreads, and commission structures change over time
• Behavioral Factors: Live trading introduces psychological elements absent in backtesting
• Black Swan Events: Extreme market events can invalidate statistical assumptions instantaneously






















