BTC ATH ROIThis indicator shows the ROI % of Bitcoin from when it passed its ATH of the previous bull cycle. I found it interesting that each time it crossed its ATH it took around 260-280 days to peak for each one. This bull run seems to follow between both of the previous bull runs including this recent dip.
There are a couple issues I want to fix but can't figure out:
1. You need to completely scroll out and move towards 2013 on the Daily chart for all 3 lines to show up. Would be nice to load all of that data at the start.
2. I can't query the value of the plots after they have been offset. This would be useful to create a prediction bias for the current plot so would could see where btc might go.
If you peeps know of a way to load all data or query plot values after offsets, please share. That would be awesome.
Cerca negli script per "Cycle"
Ehler Stochastic Cyber Cycle Signals/AlertsThis script works based on @everget's version of Ehler Stochastic Cyber Cycle. Unlike @everget's work, my adaptation prints only crossovers into the chart that occur above or below the overbought/oversold zone.
You can find @everget's script with all related documentation here
I didn't change the calculation, I only reinvented how it is presented on the chart and added alerts.
5x Period Cycle SeasonalityShows the average from the last 5 periods for close price cycle. For example to see the annual seasonality of a stock for the last 5 years use on daily chart with the default setting of 252, the number of trading days in a year, approximately.
Super-Elliptic BandsThe core of the "Super-Elliptic Bands" indicator lies in its use of a super-ellipse mathematical model to create dynamic price bands around a central Simple Moving Average (SMA). Here's a concise breakdown of its essential components:
Central Moving Average (MA):
A Simple Moving Average (ta.sma(close, maLen)) serves as the baseline, anchoring the bands to the average price over a user-defined period (default: 50 bars).
Super-Ellipse Formula:
The bands are generated using the super-ellipse equation: |y/b| = (1 - |x/a|^p)^(1/p), where:
x is a normalized bar index based on a user-defined cycle period (periodBase, default: 64), scaled to range from -1 to +1.
a = 1 (fixed semi-major axis).
b is the volatility-based semi-minor axis, calculated as volRaw * mult, where volRaw comes from ta.stdev, ta.atr, or ta.tr (user-selectable).
p (shapeP, default: 2.0) controls the band shape:
p = 2: Elliptical bands.
p < 2: Pointier, diamond-like shapes.
p > 2: Flatter, rectangular-like shapes.
This formula creates bands that dynamically adjust their width and shape based on price volatility and a cyclical component.
enjoy....
Alt Szn Oracle - Institutional GradeThe Alt Szn Oracle is a macro-level indicator built to help traders front-run altseason by tracking liquidity, dominance rotation, sentiment, and capital flows—all in one signal. It’s designed for those who don’t just chase pumps, but want to understand when the tide is turning and why. This tool doesn't predict specific coin breakouts—it tells you when the market as a whole is gearing up to rotate into higher beta assets like altcoins, including memes and microcaps.
The index consolidates ten macro inputs into a normalized, smoothed score from 0–100. These include Bitcoin and Ethereum dominance, ETH/BTC, altcoin market cap (Total3), relative volume flows, and stablecoin supply (USDT, USDC, DAI)—which act as proxies for risk-on appetite and dry powder entering the system. It also incorporates manually updated sentiment metrics from Google Trends and the Fear & Greed Index, giving it a behavioral edge that most indicators lack.
The logic is simple but powerful: when BTC dominance is falling, ETH/BTC is rising, altcoin volume increases relative to BTC/ETH, and stablecoins start moving—you're likely in the early innings of rotation. The index is also filtered through a volatility threshold and smoothed with an EMA to eliminate chop and fakeouts.
Use this indicator on macro charts like TOTAL3, TOTAL2, or ETHBTC to gauge market health, or overlay it on specific coins like PEPE, DOGE, or SOL to confirm if the tide is in your favor. Interpreting the score is straightforward: readings above 80 suggest euphoria and signal it’s time to de-risk, 60–80 indicates expansion and confirms altseason is underway, 40–60 is neutral, and 20–40 is a capitulation zone where smart money accumulates.
What sets this apart is that it doesn’t just track price—it reflects the flow of capital, the positioning of liquidity, and the sentiment of the crowd. Most altseason indicators are lagging, overfitted, or too simplistic. This one is modular, forward-looking, and grounded in real capital rotation theory.
If you're a trader who wants to time the cycle, not guess it, this is your tool. Refine it, fork it, or expand it to your niche—DeFi, NFTs, meme coins, or L1s. It’s a framework for reading the macro winds, not a signal service. Use it with discipline, and you’ll catch the wave while others drown in noise.
BTC Transaction Indicator Name: "Bitcoin On-Chain Volume & Dynamic Parabolic Curve Signals"
Purpose:
This indicator is designed for Bitcoin traders and long-term holders. It combines the analysis of Bitcoin's on-chain transaction volume with price action to generate "Whale" and "Bear" signals. Additionally, it features a unique dynamic parabolic curve that acts as a visual support line, adapting its visibility based on price interaction with a key Exponential Moving Average (EMA).
Key Components:
On-Chain Volume Analysis:
Utilizes Estimated Transaction Volume (ETRAV) data from the Bitcoin blockchain.
Calculates fast and slow Simple Moving Averages (SMAs) of this volume.
Identifies volume trends (up/down) and significant volume increases/decreases.
Employs fixed thresholds (2,500,000 for low volume and 25,000,000 for high volume) to define key activity levels, similar to how historical on-chain analysis defined accumulation and distribution zones.
Price Action Analysis:
Calculates fast and slow SMAs of the price.
Detects price trends (up/down), recoveries, and declines based on these price SMAs.
"Whale" and "Bear" Signals:
Whale Signals (Buy-side): Generated when there's an upward volume trend, significant volume increase, and a downward price trend followed by price recovery. These indicate potential accumulation phases.
Bear Signals (Sell-side): Generated when there's a downward volume trend, significant volume decrease, and an upward price trend followed by price decline. These indicate potential distribution phases.
Visuals: Both types of signals are plotted as small, colored circles directly on the price chart, with corresponding text labels ("Whale," "Buy," "Bear," "Sell," "Price Recovering," "Price Declining").
Dynamic Parabolic Curve:
Concept: A green parabolic (exponential) curve that serves as a dynamic visual support line.
Activation: The curve starts drawing automatically only when the price crosses over the EMA 500 (Exponential Moving Average of 500 periods). The curve's starting point is set at a user-defined percentage below the EMA 500 value at that exact crossover point.
Visibility: The curve remains visible and continues its trajectory only as long as the price stays above the EMA 500.
Deactivation: The curve disappears instantly if the price falls below or equals the EMA 500. It will only reappear if the price crosses above the EMA 500 again.
Customization: The curve's steepness (Tasa Crecimiento Curva) and its initial distance from the EMA 500 (Inicio Curva % por debajo de EMA500) are adjustable.
Dynamic Label: A "Parabólico" text label is plotted near the center of the active curve segment, with an adjustable vertical offset to ensure it stays visually appealing below the curve.
What is PLOTTED on the chart:
The small, colored circle signals for Whale/Buy and Bear/Sell activity.
The green dynamic parabolic curve.
What is NOT PLOTTED:
EMA 200, EMA 500 lines (though they are calculated internally for logic).
Raw volume data or volume Moving Averages (these are only used for signal calculation, not plotted).
Ideal for:
Bitcoin traders and investors focused on long-term trends and cycle analysis, who want visual cues for accumulation/distribution phases based on on-chain activity, complemented by a unique, dynamically appearing parabolic support curve.
Important Notes:
Relies on the availability of external on-chain data (QUANDL:BCHAIN) within TradingView.
Functions best on a daily timeframe for optimal on-chain data relevance.
Global OECD CLI Diffusion Index YoY vs MoMThe Global OECD Composite Leading Indicators (CLI) Diffusion Index is used to gauge the health and directional momentum of the global economy and anticipate changes in economic conditions. It usually leads turning points in the economy by 6 - 9 months.
How to read: Above 50% signals economic expansion across the included countries. Below 50% signals economic contraction.
The diffusion index component specifically shows the proportion of countries with positive economic growth signals compared to those with negative or neutral signals.
The OECD CLI aggregates data from several leading economic indicators including order books, building permits, and consumer and business sentiment. It tracks the economic momentum and turning points in the business cycle across 38 OECD member countries and several other Non-OECD member countries.
Payday Anomaly StrategyThe "Payday Effect" refers to a predictable anomaly in financial markets where stock returns exhibit significant fluctuations around specific pay periods. Typically, these are associated with the beginning, middle, or end of the month when many investors receive wages and salaries. This influx of funds, often directed automatically into retirement accounts or investment portfolios (such as 401(k) plans in the United States), temporarily increases the demand for equities. This phenomenon has been linked to a cycle where stock prices rise disproportionately on and around payday periods due to increased buy-side liquidity.
Academic research on the payday effect suggests that this pattern is tied to systematic cash flows into financial markets, primarily driven by employee retirement and savings plans. The regularity of these cash infusions creates a calendar-based pattern that can be exploited in trading strategies. Studies show that returns on days around typical payroll dates tend to be above average, and this pattern remains observable across various time periods and regions.
The rationale behind the payday effect is rooted in the behavioral tendencies of investors, specifically the automatic reinvestment mechanisms used in retirement funds, which align with monthly or semi-monthly salary payments. This regular injection of funds can cause market microstructure effects where stock prices temporarily increase, only to stabilize or reverse after the funds have been invested. Consequently, the payday effect provides traders with a potentially profitable opportunity by predicting these inflows.
Scientific Bibliography on the Payday Effect
Ma, A., & Pratt, W. R. (2017). Payday Anomaly: The Market Impact of Semi-Monthly Pay Periods. Social Science Research Network (SSRN).
This study provides a comprehensive analysis of the payday effect, exploring how returns tend to peak around payroll periods due to semi-monthly cash flows. The paper discusses how systematic inflows impact returns, leading to predictable stock performance patterns on specific days of the month.
Lakonishok, J., & Smidt, S. (1988). Are Seasonal Anomalies Real? A Ninety-Year Perspective. The Review of Financial Studies, 1(4), 403-425.
This foundational study explores calendar anomalies, including the payday effect. By examining data over nearly a century, the authors establish a framework for understanding seasonal and monthly patterns in stock returns, which provides historical support for the payday effect.
Owen, S., & Rabinovitch, R. (1983). On the Predictability of Common Stock Returns: A Step Beyond the Random Walk Hypothesis. Journal of Business Finance & Accounting, 10(3), 379-396.
This paper investigates predictability in stock returns beyond random fluctuations. It considers payday effects among various calendar anomalies, arguing that certain dates yield predictable returns due to regular cash inflows.
Loughran, T., & Schultz, P. (2005). Liquidity: Urban versus Rural Firms. Journal of Financial Economics, 78(2), 341-374.
While primarily focused on liquidity, this study provides insight into how cash flows, such as those from semi-monthly paychecks, influence liquidity levels and consequently impact stock prices around predictable pay dates.
Ariel, R. A. (1990). High Stock Returns Before Holidays: Existence and Evidence on Possible Causes. The Journal of Finance, 45(5), 1611-1626.
Ariel’s work highlights stock return patterns tied to certain dates, including paydays. Although the study focuses on pre-holiday returns, it suggests broader implications of predictable investment timing, reinforcing the calendar-based effects seen with payday anomalies.
Summary
Research on the payday effect highlights a repeating pattern in stock market returns driven by scheduled payroll investments. This cyclical increase in stock demand aligns with behavioral finance insights and market microstructure theories, offering a valuable basis for trading strategies focused on the beginning, middle, and end of each month.
CRT AMD indicatorThis indicator is based on the Power of three (Accumulation Manipulation Distribution) Cycle, by marking the candle that Sweep the low or high of the previous candle and then closed back inside the range of the previous candle, indicating a possibility of a Manipulation or Reversal.
Combining the indicator with HTF Array and LTF Setup Entry will significantly improve the accuracy.
BTC x M2 Divergence (Weekly)### Why the "M2 Money Supply vs BTC Divergence with Normalized RSI" Indicator Should Work
IMPORTANT
- Weekly only indicator
- Combine it with BTC Halving Cycle Profit for better results
The "M2 Money Supply vs BTC Divergence with Normalized RSI" indicator leverages the relationship between macroeconomic factors (M2 money supply) and Bitcoin price movements, combined with technical analysis tools like RSI, to provide actionable trading signals. Here's a detailed rationale on why this indicator should be effective:
1. **Macroeconomic Influence**:
- **M2 Money Supply**: Represents the total money supply, including cash, checking deposits, and easily convertible near money. Changes in M2 reflect liquidity in the economy, which can influence asset prices, including Bitcoin.
- **Bitcoin Sensitivity to Liquidity**: Bitcoin, being a digital asset, often reacts to changes in liquidity conditions. An increase in money supply can lead to higher asset prices as more money chases fewer assets, while a decrease can signal tightening conditions and lower prices.
2. **Divergence Analysis**:
- **Economic Divergence**: The indicator calculates the divergence between the percentage changes in M2 and Bitcoin prices. This divergence can highlight discrepancies between Bitcoin's price movements and broader economic conditions.
- **Market Inefficiencies**: Large divergences may indicate inefficiencies or imbalances that could lead to price corrections or trends. For example, if M2 is increasing (indicating more liquidity) but Bitcoin is not rising proportionately, it might suggest a potential upward correction in Bitcoin's price.
3. **Normalization and Smoothing**:
- **Normalized Divergence**: Normalizing the divergence to a consistent scale (-100 to 100) allows for easier comparison and interpretation over time, making the signals more robust.
- **Smoothing with EMA**: Applying Exponential Moving Averages (EMAs) to the normalized divergence helps to reduce noise and identify the underlying trend more clearly. This double-smoothed divergence provides a clearer signal by filtering out short-term volatility.
4. **RSI Integration**:
- **RSI as a Momentum Indicator**: RSI measures the speed and change of price movements, indicating overbought or oversold conditions. Normalizing the RSI and incorporating it into the divergence analysis helps to confirm the strength of the signals.
- **Combining Divergence with RSI**: By using RSI in conjunction with divergence, the indicator gains an additional layer of confirmation. For instance, a bullish divergence combined with an oversold RSI can be a strong buy signal.
5. **Dynamic Zones and Sensitivity**:
- **Good DCA Zones**: Highlighting zones where the divergence is significantly positive (good DCA zones) indicates periods where Bitcoin might be undervalued relative to economic conditions, suggesting good buying opportunities.
- **Red Zones**: Marking zones with extremely negative divergence, combined with RSI confirmation, identifies potential market tops or bearish conditions. This helps traders avoid buying into overbought markets or consider selling.
- **Peak Detection**: The sensitivity setting for detecting upside down peaks allows for early identification of potential market bottoms, providing timely entry points for traders.
6. **Visual Cues and Alerts**:
- **Clear Visualization**: The plots and background colors provide immediate visual feedback, making it easier for traders to spot significant conditions without deep analysis.
- **Alerts**: Built-in alerts for key conditions (good DCA zones, red zones, sell signals) ensure traders can act promptly based on the indicator's signals, enhancing the practicality of the tool.
### Conclusion
The "M2 Money Supply vs BTC Divergence with Normalized RSI" indicator integrates macroeconomic data with technical analysis to offer a comprehensive view of Bitcoin's market conditions. By analyzing the divergence between M2 money supply and Bitcoin prices, normalizing and smoothing the data, and incorporating RSI for momentum confirmation, the indicator provides robust signals for identifying potential buying and selling opportunities. This holistic approach increases the likelihood of capturing significant market movements and making informed trading decisions.
Financial Astrology Jupiter DeclinationJupiter moving from South declination minima toward the North maxima and during all the travel from North maxima to zero declination produced the strong bullish long term trend, this coincide with other planets declinations observations, in general, we noted that when a planet is in North declination (above zero boundary) this strengthen the planet force and produces more strong price effects.
This Jupiter declination pattern needs more research in others markets, will be great to get the participation from more financial astrologers that could research this declination cycle in other markets and share feedback with us.
Note: The Jupiter declination indicator is based on an ephemeris array that covers years 2010 to 2030, prior or after this years the declination is not available, this daily ephemeris are based on UTC time so in order to align properly with the price bars times you should set UTC as your chart reference timezone.
Financial Astrology Sun DeclinationExtreme Sun declinations occurs at the solstices of summer and fall which correspond to the entry of Sun into Cancer and Capricorn respectively. At this extreme points we can observe that many markets tend to produce corrections. Is very interesting to see that when Sun reach the lowest and highest declination extremes. this events correlates very close to price corrections, is not an infalible rule, don't repeat for all observations but in many occurrences during all the historical data that we have of BTCUSD since 2010 have happened.
Is very likely that this same pattern repeats in others markets so will be great to get the participation of other financial astrologers that could research this cycle and share feedback with us.
Note: The Sun declination indicator is based on an ephemeris array that covers years 2010 to 2030, prior or after this years the declination is not available, this daily ephemeris are based on UTC time so in order to align properly with the price bars times you should set UTC as your chart reference timezone.
Schaff Trend CycleThis indicator was originally developed by Doug Schaff in the 1990s (published in 2008).
Full Moon and New Moon IndicatorThe Full Moon & New Moon Indicator is a custom Pine Script indicator which marks Full Moon (Pournami) and New Moon (Amavasya) events on the price chart. This indicator helps traders who incorporate lunar cycles into their market analysis, as certain traders believe these cycles influence market sentiment and price action. The current script is added for the year 2024 and 2025 and the dates are considered as per the Telugu calendar.
Features
✅ Identifies and labels Full Moon & New Moon days on the chart for the year 2024 and 2025
How it Works!
On a Full Moon day, it places a yellow label ("Pournami") above the corresponding candle.
On a New Moon day, it places a blue label ("Amavasya") above the corresponding candle.
Example Usage
When a Full Moon label appears, check for potential trend reversals or high volatility.
When a New Moon label appears, watch for market consolidation or a shift in sentiment.
Combine with candlestick patterns, support/resistance, or momentum indicators for a stronger trading setup.
🚀 Add this indicator to your TradingView chart and explore the market’s reaction to lunar cycles! 🌕
DominantCycleCollection of Dominant Cycle estimators. Length adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly). This collection may become encyclopaedic, so if you have any working cycle estimator, drop me a line in the comments below. Suggestions are welcome. Currently included estimators are based on the work of John F. Ehlers
mamaPeriod(src, dynLow, dynHigh) MESA Adaptation - MAMA Cycle
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
Returns: Calculated period
Based on MESA Adaptive Moving Average by John F. Ehlers
Performs Hilbert Transform Homodyne Discriminator cycle measurement
Unlike MAMA Alpha function (in LengthAdaptation library), this does not compute phase rate of change
Introduced in the September 2001 issue of Stocks and Commodities
Inspired by the @everget implementation:
Inspired by the @anoojpatel implementation:
paPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Pearson Autocorrelation
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter (default)
preSS : Use Super Smoother prefilter (default)
preHP : Use Hann Windowing prefilter
Returns: Calculated period
Based on Pearson Autocorrelation Periodogram by John F. Ehlers
Introduced in the September 2016 issue of Stocks and Commodities
Inspired by the @blackcat1402 implementation:
Inspired by the @rumpypumpydumpy implementation:
Corrected many errors, and made small speed optimizations, so this could be the best implementation to date (still slow, though, so may revisit in future)
High Pass and Super Smoother prefilters are used in the original implementation
dftPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Discrete Fourier Transform
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter (default)
preSS : Use Super Smoother prefilter (default)
preHP : Use Hann Windowing prefilter
Returns: Calculated period
Based on Spectrum from Discrete Fourier Transform by John F. Ehlers
Inspired by the @blackcat1402 implementation:
High Pass, Super Smoother and Hann Windowing prefilters are used in the original implementation
phasePeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Phase Accumulation
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter (default)
preSS : Use Super Smoother prefilter (default)
preHP : Use Hamm Windowing prefilter
Returns: Calculated period
Based on Dominant Cycle from Phase Accumulation by John F. Ehlers
High Pass and Super Smoother prefilters are used in the original implementation
doAdapt(type, src, len, dynLow, dynHigh, chandeSDLen, chandeSmooth, chandePower, preHP, preSS, preHP) Execute a particular Length Adaptation or Dominant Cycle Estimator from the list
Parameters:
type : Length Adaptation or Dominant Cycle Estimator type to use
src : Series to use
len : Reference lookback length
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
chandeSDLen : Lookback length of Standard deviation for Chande's Dynamic Length
chandeSmooth : Smoothing length of Standard deviation for Chande's Dynamic Length
chandePower : Exponent of the length adaptation for Chande's Dynamic Length (lower is smaller variation)
preHP : Use High Pass prefilter for the Estimators that support it (default)
preSS : Use Super Smoother prefilter for the Estimators that support it (default)
preHP : Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
doEstimate(type, src, dynLow, dynHigh, preHP, preSS, preHP) Execute a particular Dominant Cycle Estimator from the list
Parameters:
type : Dominant Cycle Estimator type to use
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter for the Estimators that support it (default)
preSS : Use Super Smoother prefilter for the Estimators that support it (default)
preHP : Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
Medium Term Weighted Stochastic (STPMT) by DGTLa Stochastique Pondérée Moyen Terme (STPMT) , or Mᴇᴅɪᴜᴍ Tᴇʀᴍ Wᴇɪɢʜᴛᴇᴅ Sᴛᴏᴄʜᴀꜱᴛɪᴄꜱ created by Eric Lefort in 1999, a French trader and author of trading books
█ The STPMT indicator is a tool which concerns itself with both the direction and the timing of the market. The STPMT indicator helps the trader with:
The general trend by observing the level around which the indicator oscillates
The changes of direction in the market
The timing to open or close a position by observing the oscillations and by observing the relative position of the STPMT versus its moving average
STPMT Calculation
stpmt = (4,1 * stoch(5, 3) + 2,5 * stoch(14, 3) + stoch(45, 14) + 4 * stoch(75, 20)) / 11.6
Where the first argument of the stoch function representation above is period (length) of K and second argument smoothing period of K. The result series is then plotted as red line and its moving average as blue line. By default disabled gray lines are the components of the STPMT
The oscillations of the STPMT around its moving average define the timing to open a position as crossing of STMP line and moving average line in case when both trends have same direction. The moving average determines the direction.
Long examples
█ Tʜᴇ CYCLE Iɴᴅɪᴄᴀᴛᴏʀ is derived from the STPMT. It is
cycle = stpmt – stpmt moving average
It is indicates more clearly all buy and sell opportunities. On the other hand it does not give any information on market direction. The Cycle indicator is a great help in timing as it allows the trader to more easily see the median length of an oscillation around the average point. In this way the traders can simply use the time axis to identify both a favorable price and a favorable moment. The Cycle Indicator is presented as histogram
The Lefort indicators are not a trading strategy. They are tools for different purposes which can be combined and which can serve for trading all instruments (stocks, market indices, forex, commodities…) in a variety of time frames. Hence they can be used for both day trading and swing trading.
👉 For whom that would like simple version of the Cycle indicator on top of the main price chart with signals as presented below.
Please note that in the following code STMP moving average direction is not considered and will plot signals regardless of the direction of STMP moving average. It is not a non-repainting version too.
here is pine code for the overlay version
// © dgtrd
//@version=4
study("Medium Term Weighted Stochastic (STPMT) by DGT", "STPMT ʙʏ DGT ☼☾", true, format.price, 2, resolution="")
i_maLen = input(9 , "Stoch MA Length", minval=1)
i_periodK1 = input(5 , "K1" , minval=1)
i_smoothK1 = input(3 , "Smooth K1", minval=1)
i_weightK1 = input(4.1 , "Weight K1", minval=1, step=.1)
i_periodK2 = input(14 , "K2" , minval=1)
i_smoothK2 = input(3 , "Smooth K2", minval=1)
i_weightK2 = input(2.5 , "Weight K2", minval=1, step=.1)
i_periodK3 = input(45 , "K3" , minval=1)
i_smoothK3 = input(14 , "Smooth K3", minval=1)
i_weightK3 = input(1. , "Weight K3", minval=1, step=.1)
i_periodK4 = input(75 , "K4" , minval=1)
i_smoothK4 = input(20 , "Smooth K4", minval=1)
i_weightK4 = input(4. , "Weight K4", minval=1, step=.1)
i_data = input(false, "Components of the STPMT")
//------------------------------------------------------------------------------
// stochastic function
f_stoch(_periodK, _smoothK) => sma(stoch(close, high, low, _periodK), _smoothK)
//------------------------------------------------------------------------------
// calculations
// La Stochastique Pondérée Moyen Terme (STPMT) or Medium Term Weighted Stochastics calculation
stpmt = (i_weightK1 * f_stoch(i_periodK1, i_smoothK1) + i_weightK2 * f_stoch(i_periodK2, i_smoothK2) + i_weightK3 * f_stoch(i_periodK3, i_smoothK3) + i_weightK4 * f_stoch(i_periodK4, i_smoothK4)) / (i_weightK1 + i_weightK2 + i_weightK3 + i_weightK4)
stpmt_ma = sma(stpmt, i_maLen) // STPMT Moving Average
cycle = stpmt - stpmt_ma // Cycle Indicator
//------------------------------------------------------------------------------
// plotting
plotarrow(change(sign(cycle)), "STPMT Signals", color.green, color.red, 0, maxheight=41)
alertcondition(cross(cycle, 0), title="Trading Opportunity", message="STPMT Cycle : Probable Trade Opportunity\n{{exchange}}:{{ticker}}->\nPrice = {{close}},\nTime = {{time}}")
[blackcat] L2 Ehlers Cyber CycleLevel: 2
Background
John F. Ehlers introuced Cyber Cycle Indicator in his "Cybernetic Analysis for Stocks and Futures" chapter 4 on 2004.
Function
Trading the Cyber Cycle Indicator is straightforward. Buy when the at this point. Sell when the Cycle line crosses under the Trigger line. You are at the bottom of the cycle at this point. Sell when the Cycle line crosses under the Trigger line. You are at the top of the cycle in this case. To be sure, there are crossings at other than the cyclic turning points. Many of these can be eliminated by discretionary traders using their experience or others of their favorite tools. One of the more interesting aspects of the Cyber Cycle is that it was developed simultaneously with the Instantaneous Trendline. They are opposite sides of the same coin because the total frequency content of the market being analyzed is in one indicator or the other. This is important because the conventional methods of using moving averages and oscillators can be dispensed with.
Key Signal
Cycle ---> Cyber Cycle fast line
Cycle (2) ---> Cyber Cycle slow line
Pros and Cons
100% John F. Ehlers definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
Remarks
The 24th script for Blackcat1402 John F. Ehlers Week publication.
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.
Exponential-Decay Cumulative Spread (Cycle-Tuned)## Indicator Overview
**Exponential-Decay Cumulative Spread (Cycle-Tuned)** – short title **LambdaCumDelta** – tracks the percentage spread between CEXs BTC spot prices.
By clipping outliers, applying an exponential-decay running sum, and comparing that sum to rolling percentile bands, the script flags potential **cycle bottoms** and **cycle tops** whenever the cumulative spread stays beyond extreme thresholds for three consecutive bars.
---
### Core Logic
1. **Price Spread**
`spread_pct = (cexA – cexB) / cexB × 100`.
2. **Outlier Suppression**
* Calculates the **90-day standard deviation σ** of `spread_pct`.
* Uses a **clip coefficient `k_clip`** (0.5–5.0) to cap the spread at `±k_clip × σ`, damping single-day anomalies.
3. **Exponential-Decay Sum**
* Applies a decay factor **λ** (0.50–0.999):
```
CumΔₜ = spread_clipₜ + λ × CumΔₜ₋₁
```
* Larger λ → longer memory half-life.
4. **Rolling Percentile Bands**
* Uses a **365-bar window** to derive dynamic percentile thresholds.
* Upper / Lower bands are set by **perc\_hi** and **perc\_lo** (e.g., 85 % and 15 %).
5. **Signal Definition**
* **Bullish** (cycle bottom): `CumΔ` above the upper band for **3 straight bars**.
* **Bearish** (cycle top): `CumΔ` below the lower band for **3 straight bars**.
---
### Chart Elements
| Plot | Style | Meaning |
| --------------- | ----------------- | ----------------------------------- |
| **CumΔ** | Teal thick line | Exponential-decay cumulative spread |
| Upper Threshold | Green thin line | Rolling upper percentile |
| Lower Threshold | Red thin line | Rolling lower percentile |
| Background | Faded green / red | Bullish / bearish signal zone |
---
### Key Inputs
| Input | Default | Purpose |
| -------------------- | ------- | ------------------------------- |
| **Decay factor λ** | 0.95 | Memory length of CumΔ |
| **Clip coefficient** | 2.0 | Multiple of σ for outlier cap |
| **Upper percentile** | 85 | Cycle-bottom trigger percentile |
| **Lower percentile** | 15 | Cycle-top trigger percentile |
---
### Practical Tips
1. **Timing bias**
* Green background often precedes mean-reversion of the spread – consider scaling into longs or covering shorts.
* Red background suggests stretched positive spread – consider trimming longs or lightening exposure.
2. **Combine with volume, trend filters (MA, MACD, etc.)** to weed out false extremes.
3. Designed for **daily charts**; ensure both exchange feeds are synchronized.
---
### Alerts
Two built-in `alertcondition`s fire when bullish or bearish criteria are met, enabling push / email / webhook notifications.
---
### Disclaimer
This script is for educational and research purposes only and is **not** financial advice. Test thoroughly and trade at your own risk.
Roberts Pi Cycle Top and Bottom Indicator BTCIndicator Overview
The Pi Cycle Top Indicator has historically been effective in picking out the timing of market cycle highs to within 3 days.
It uses the 111 day moving average (111DMA) and a newly created multiple of the 350 day moving average, the 350DMA x 2.
This updated indicator is based on the original x2 Daily Simple Moving Average Pi Cycle Top Indicator for BTCUSD but with the addition of a 3rd 350 SMA
Standard Pi Cycle SMA = 350*2 SMA + 111 SMA
Updated Pi Cycle SMA = 350*2 SMA + 111 SMA + 350 SMA
How It Can Be Used / How to Read:
Chart should be used on BTCUSD only
Chart should be set to Daily Timeframe only
Buy signal RED SMA crosses up over WHITE SMA
Sell Signal RED SMA crosses up over GREEN SMA (a vetical yellow line will indicate the cycle top)
TASC 2021.10 - Cycle/Trend AnalyticsPresented here is code for the "Cycle/Trend Analytics" indicator originally conceived by John Ehlers. This is another one of TradingView's first code releases published in the October 2021 issue of Trader's Tips by Technical Analysis of Stocks & Commodities (TASC) magazine.
This indicator, referred to as "CTA" in later explanations, has a companion indicator that is discussed in the article entitled MAD Moving Average Difference , authored by John Ehlers. He's providing an innovative double dose of indicator code for the month of October 2021.
Modes of Operation
CTA has two modes defined as "trend" and "cycle". Ehlers' intention from what can be gathered from the article is to portray "the strength of the trend" in trend mode on real data. Cycle mode exhibits the response of the bank of calculations when a hypothetical sine wave is utilized as price. When cycle mode is chosen, two other lines will be displayed that are not shown in trend mode. A more detailed explanation of the indicator's technical functionality and intention can be found in the original Cycle/Trend Analytics And The MAD Indicator article, which requires a subscription.
Computational Functionality
The CTA indicator only has one adjustment in the indicator "Settings" for choice of modes. The default mode of operation is "trend". Trend mode applies raw price data to the bank of plots, while the cycle mode employs a sinusoidal oscillator set to a cycle period of 30 bars. These are passed to multiple SMAs, which are then subtracted from the original source data. The result is a fascinating display of plots embellished with vivid array of gradient color on real data or the hypothetical sine wave.
Related Information
• SMA
• color.rgb()
Join TradingView
[blackcat] L2 Ehlers Inverse Fisher Cyber CycleLevel: 2
Background
John F. Ehlers introuced the Inverse Fisher Transform of Cyber Cycle in May, 2004.
Function
"The Inverse Fisher Transform ," describes the calculation and use of the inverse Fisher transform by Dr . Ehlers in 2004. The transform is applied to any indicator with a known probability distribution function, but this script offers a sample transforms: Cyber Cycle . I have created inputs for the trigger levels for entry and exit so that the user may adjust these levels as desired.
In his article, Dr . Ehlers states the inverse Fisher transform can work with any oscillator, and that values between -1 and 1 are more suited for the transform calculations. Here is one version of the inverse Fisher transform of Cyber Cycle . This version takes the highest and lowest value of the Cyber Cycle and normalizes the scale to a range of -1 to 1. John Ehlers shows how to use the inverse Fisher transform ( IFT ) to compress oscillator-type indicators to give clear trading indications of when to buy or sell. The IFT is a nonlinear transformation that changes the probability distribution, so for example, unbounded indicators can be transformed into bounded indicators with a high probability of being either +1 or -1.
Key Signal
ICycle--> Inverse Fisher Transform of Cyber Cycle fast line
Trigger--> Inverse Fisher Transform of Cyber Cycle slow line
Pros and Cons
100% John F. Ehlers definition translation, even variable names are the same. This help readers who would like to use pine to read his book.
Remarks
The 69th script for Blackcat1402 John F. Ehlers Week publication.
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.
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.
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.