Bitcoin Golden Pi CyclesTops are signaled by the fast top MA crossing above the slow top MA, and bottoms are signaled by the slow bottom MA crossing above the fast bottom MA. Alerts can be set on top and bottom prints. Does not repaint.
Similar to the work of Philip Swift regarding the Bitcoin Pi Cycle Top, I’ve recently come across a similar mathematically curious ratio that corresponds to Bitcoin cycle bottoms. This ratio was extracted from skirmantas’ Bitcoin Super Cycle indicator . Cycle bottoms are signaled when the 700D SMA crosses above the 137D SMA (because this indicator is closed source, these moving averages were reverse-engineered). Such crossings have historically coincided with the January 2015 and December 2018 bottoms. Also, although yet to be confirmed as a bottom, a cross occurred June 19, 2022 (two days prior to this article)
The original pi cycle uses the doubled 350D SMA and the 111D SMA . As pointed out this gives the original pi cycle top ratio:
350/111 = 3.1532 ≈ π
Also, as noted by Swift, 111 is the best integer for dividing 350 to approximate π. What is mathematically interesting about skirmanta’s ratio?
700/138 = 5.1095
After playing around with this for a while I realized that 5.11 is very close to the product of the two most numerologically significant geometrical constants, π and the golden ratio, ϕ:
πϕ = 5.0832
However, 138 turns out to be the best integer denominator to approximate πϕ:
700/138 = 5.0725 ≈ πϕ
This is what I’ve dubbed the Bitcoin Golden Pi Bottom Ratio.
In the spirit of numerology I must mention that 137 does have some things going for it: it’s a prime number and is very famously almost exactly the reciprocal of the fine structure constant (α is within 0.03% of 1/137).
Now why 350 and 700 and not say 360 and 720? After all, 360 is obviously much more numerologically significant than 350, which is proven by the fact that 360 has its own wikipedia page, and 350 does not! Using 360/115 and 720/142, which are also approximations of π and πϕ respectively, this also calls cycle tops and bottoms.
There are infinitely many such ratios that could work to approximate π and πϕ (although there are a finite number whose daily moving averages are defined). Further analysis is needed to find the range(s) of numerators (the numerator determines the denominator when maintaining the ratio) that correctly produce bottom and top signals.
"Cycle" için komut dosyalarını ara
CT Reverse Pi Cycle Bitcoin Top IndicatorIntroducing the Reverse BTC Pi Market Cycle Top indicator
Much respect to Philip Swift the original creator of this idea and big thanks to Tradingview author Ninorigo for sharing the script which this indicator is based on.
Philip Swift has noted that:
Using the x2 multiple of the 350 day moving average along with the 111 day moving average provides an interesting market cycle indicator.
Over the past three market cycles, when the 350DMA x2 crosses below the 111DMA, Bitcoin price peaks in its market cycle, this has been accurate to within three days of Bitcoin price topping out.
Here I have modified an existing script by Tradingview author @Ninorigo which shows the moving averages and gives signals upon crossover by adding the following features:
A function which shows the price at which the 350DMA will Cross Below the 111DMA.
(This is calculated from the prior bar closing data and does not repaint)
An “anticipated cross” function which may give a 1 bar advanced warning of a cross.
(this is calculated from current bar values and may change and repaint)
The crossover levels are shown in an info label to the right of the current price.
When there is a BTC Pi Market Cycle Top anticipated cross on the next bar there will be an orange background signal.
When there is an actual BTC Pi Market Cycle Top cross there will be a red background signal
When there is an anticipated cross back there will be a blue background signal
When there is an actual cross back there will be a green background signal
This indicator will show the appropriate moving averages and crossover information from the daily timeframe regardless of the timeframe you are using.
This should be helpful in more accurately identifying the price level where the Pi Market Cycle moving averages will cross denoting a possible market cycle top.
It is interesting to note:
350 / 111 = 3.153
Which is the closest we can get to Pi when dividing 350 by another whole number.
This is a script to give another view and metric on an interesting experimental idea. This is not financial advice.
DFT - Dominant Cycle Period 8-50 bars - John EhlerThis is the translation of discret cosine tranform (DCT) usage by John Ehler for finding dominant cycle period (DC).
The price is first filtered to remove aliasing noise(bellow 8 bars) and trend informations(above 50 bars), then the power is computed.
The trick here is to use a normalisation against the maximum power in order to get a good frequency resolution.
Current limitation in tradingview does not allow to display all of the periods, still the DC period is plot after beeing computed based on the center of gravity algo.
The DC period can be used to tune all of the indicators based on the cycles of the markets. For instance one can use this (DC period)/2 as an input for RSI.
Hope you find this of some interrest.
US Liquidity-Weighted Business Cycle📈 BTC Liquidity-Weighted Business Cycle
This indicator models the Bitcoin macro cycle by comparing its logarithmic price against a log-transformed liquidity proxy (e.g., US M2 Money Supply). It helps visualize cyclical tops and bottoms by measuring the relative expansion of Bitcoin price versus fiat liquidity.
🧠 How It Works:
Transforms both BTC and M2 using natural logarithms.
Computes a liquidity ratio: log(BTC) – log(M2) (i.e., log(BTC/M2)).
Runs MACD on this ratio to extract business cycle momentum.
Plots:
🔴 Histogram bars showing cyclical growth or contraction.
🟢 Top line to track the relative price-to-liquidity trend.
🔴 Cycle peak markers to flag historical market tops.
⚙️ Inputs:
Adjustable MACD lengths
Toggle for liquidity trend line overlay
🔍 Use Cases:
Identifying macro cycle tops and bottoms
Timing long-term Bitcoin accumulation or de-risking
Confirming global liquidity's influence on BTC price movement
Note: This version currently uses US M2 (FRED:M2SL) as the liquidity base. You can easily expand it with other global M2 sources or adjust the weights.
Short-Only Cycle IndicatorThis script is a follow-up to my previous 60-day Cycle, Long-Only Indicator.
The "Short-Only Cycle Indicator" is designed to help traders navigate optimal shorting opportunities by analyzing cyclical price behavior over a defined period. It focuses on recognizing distribution phases (ideal for shorting) and accumulation phases (where shorting should be avoided). It should be used with assets that the trader has an existing thesis for downward price movement.
Key Features:
1. Cycle Length: The indicator uses a 60-day cycle to identify high and low points in price, which are then used to determine the current market phase.
2. Distribution Phase: When the price is near the cycle high, the indicator signals a distribution phase, indicating potential shorting opportunities.
3. Accumulation Phase: When the price is near the cycle low, the indicator signals an accumulation phase, advising traders to avoid shorting.
4. Short Signal: A short signal is triggered when the price crosses below the cycle high, which is visually marked on the chart for easy identification.
This indicator is particularly useful for traders who prefer a short-only strategy, as it helps them time their entries and avoid shorting during unfavorable market conditions.
Ehlers Cycle Amplitude [CC]The Cycle Amplitude was created by John Ehlers (Trend Modes and Cycle Modes) and this indicator wasn't meant to give buy and sell signals by itself but I'm publishing this open source script in case someone comes up with a cool way to use this indicator for buy and sell signals. This indicator essentially tells you the distance between the peaks from the Cycle BandPass Filter and I will be including the last script tomorrow most likely. I'm reusing the same exact buy and sell signals from the cycle bandpass filter so if you have any questions then feel free to refer to the link I posted.
Let me know if there are any other scripts you would like to see me publish!
Liquidity-Weighted Business Cycle (Satoshi Global Base)🌍 BTC-Affinity Global Liquidity Business Cycle (MACD Model)
This indicator models Bitcoin’s macroeconomic business cycle using a BTC-weighted global liquidity index as its foundation. It adapts a MACD-based framework to visualize expansions and contractions in fiat liquidity across major economies with high Bitcoin affinity.
🔍 What It Does:
🧠 Constructs a Global M2 Liquidity Index from the top 10 most BTC-relevant fiat currencies
(USD, EUR, JPY, GBP, INR, CNY, KRW, BRL, CAD, AUD)
— each weighted by its Bitcoin adoption score and FX-converted into USD.
📊 Applies a MACD (Moving Average Convergence Divergence) signal to the index to detect macro liquidity trends.
🟢 Plots a histogram of business cycle momentum (red = expansion, green = contraction).
🔴 Marks potential cycle peaks, useful for macro trading alignment.
⚖️ BTC Affinity-Weighted Countries:
🇺🇸 United States
🇪🇺 Eurozone
🇯🇵 Japan
🇬🇧 United Kingdom
🇮🇳 India
🇨🇳 China
🇰🇷 South Korea
🇧🇷 Brazil
🇨🇦 Canada
🇦🇺 Australia
Weights are user-adjustable to reflect evolving capital controls, regulation, and real-world BTC adoption trends.
✅ Use Cases:
Confirm macro risk-on vs risk-off regimes for BTC and crypto.
Identify ideal entry and exit zones in macro pair trades (e.g., MSTR vs MSTY).
Monitor how global monetary expansion feeds into BTC valuations.
Missile RSI (RSI of momentum w/ Dominant Cycle length + Fisher)This is a predictive indicator that looks for explosions in momentum of the cycles in price and large shifts in Momentum (Fisher turns the Bimodal PDF into Guassian like) as statistically unlikely events, showing points to exit or reverse positions.
You can adjust the lowpass frequency cuttoff (Aka what cycles you want to remove from the calculations through the super smoother filter).
To be honest you can monkey trade the direction of the Signal if you'd like but the Divergences and Maxing of the values is whats most useful.
Let me know if you guys want me to add anything else.
Relative Vigor Index with Dominant Cycle Detection (RVI)Relative Vigor Index with Dominant Cycle Detection. As Ehler's mentioned, fixed length look back is inherently flawed when it is possible to extract a length from a dominant price cycle. may be less effective if signal to noise ratio is greater than 2, but that usually would not happen at >5m candles, and honestly shouldn't be looking at RV(igor)I when price is moving sideways.
Read just like an RVGI, but adjusted to the current time frame. To reduce noise, changing to heiken ashi will help with signals as well. Let me know if there are improvements!
Made for JD, the OG.
The Perfect RSI (Ehler's Cycle RSI Modified with Discriminator)This is the RSI indicator that I use. It combines two concepts of John Ehler. It integrates the idea of Highpass filtering the Price data, along with the the idea of automatically determining the Dominant price cycle through a Homodyne Discriminator, and using half of a cycle length as the input for the RSI. Not only determines the most effective range for the RSI by setting it based on the cycle, but also makes the RSI PDF(Probability Distribution Function) adjustable as shown in John Ehler's papers. Still needs some tweaking on determining the best calculations for cycles, and whether or not to better filter the price data into the discriminator.
Works just like a normal RSI, but should have less false signals, and also has the option for super smoothing. Play around it and see if theres any new indications or signals that come from it ;)
Let me know if there's any concerns or additions!
Pi Cycle Bottom IndicatorBack in June 2021, I was able to find two moving averages that crossed when Bitcoin reached it's cycle bottom, similar to Philip Swift's Pi-Cycle Top indicator.
The moving average pair used here was the x0.475 multiple of the 471 MA and the 150 EMA ( EMA to take into account of short term volatility ).
I have a more in-depth analysis and explanation of my findings on my medium page .
Trader Dončić.
Pi Cycle Bitcoin top indicatorThe 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.
Note: The multiple is of the price values of the 350DMA not the number of days.
For the past three market cycles, when the 111DMA moves up and crosses the 350DMA x 2 we see that it coincides with the price of Bitcoin peaking.
It is also interesting to note that 350 / 111 is 3.153, which is very close to Pi = 3.142. In fact, it is the closest we can get to Pi when dividing 350 by another whole number.
It once again demonstrates the cyclical nature of Bitcoin price action over long time frames. Though in this instance it does so with a high degree of accuracy over the past 7 years.
Full Credit to PositiveCrypto
TSP Cycles DoubleDouble Cycles
You can setup higher timeframe cycle period's as argument, default is M30
Ehlers Dominant Cycle Tuned Bypass Filter [CC]The Dominant Cycle Tuned Bypass Filter was created by John Ehlers (Stocks & Commodities V. 26:3 (16-22)) and this is a particularly unique indicator because this does a pretty good job at predicting the future stock movements. If the blue line crosses over the red then a few bars from now the stock price will most likely go up and if the blue line crosses below the red then a few bars from now the stock price should go down. Since this is such a unique indicator to use with entry and exit points, I don't have them color coded but try this out and let me know what you think.
This was a special request so let me know what other scripts you would like to see me publish or if you want anything custom done!
Note: I'm republishing this because the original script couldn't be found in searches so this will fix that.
Ehlers Correlation Cycle IndicatorThe Correlation Cycle Indicator was created by John Ehlers (Stocks & Commodities V. 38:06 (8–15)) and this is technically part of three indicators in one so I'm splitting each one to a separate script. This particular indicator was designed for trend direction and trend strength and simply buy when it is green and sell when it turns red. Also keep in mind that the higher the indicator is above the signal then the stronger the trend and when they are close together, conditions get choppy.
Let me know if you would like to see me publish other scripts or if you want something custom done!
Ehlers Simple Cycle Indicator [LazyBear]One of the early cycle indicators from John Ehlers.
Ehlers suggests using this with ITrend (see linked PDF below). Osc/signal crosses identify entry/exit points.
Options page has the usual set of configurable params.
More info:
- Simple Cycle Indicator: www.mesasoftware.com
List of my public indicators: bit.ly
List of my app-store indicators: blog.tradingview.com
RSI Bollinger WaveTrend Cycle Multi Free TSPMulti indicator
Bollinger Band x RSI
Wave Trend
Cycles
Free users will like it :)
Fell free to like share comments... and check my other stuff :]
ZenTrend Price CyclesZenTrend attempts to plot the cycles that occur as the price cycles between the top and bottom of long- and short-term price linear regression channels.
The indicator observes a fast (35-period) and a slow (100-period) linear regression channel and plots their slopes on an oscillator. When the slope of the fast channel crosses above or below the slope of the slow channel, a signal is plotted.
The red line is the slope of the fast channel; blue is the slope of the slow channel
A green dot and background indicates the slope of recent price action has crossed above the slope of long-term price action.
A red dot and background indicates the slope of recent price action has crossed below the slope of long-term price action.
A gray dot indicates the slope of recent price action is slowing. The difference between the long- and short-term slopes is narrowing.
Here are things I look for when observing price cycles
Where does the cross occur? Crosses high above or below the 'zero line' indicate a more extreme change in price channel slopes.
Flat line: crosses that occur while the lines are flat often indicate chop.
"Curve" of the line - a cross that occurs as the slope lines are starting to curve up/down indicates a sharper and more extreme change in price channel slope.
90 Minute Cycles90m cycles for 7:30-9, 9-10:30, 10:30-12
This indicator shows the 90 minute cycles for 7:30am-9am, 9am-10:30am and 10:30am-12pm New York time.
[blackcat] L2 Ehlers Phase Accumulator Cycle Period MeasurerLevel: 2
Background
John F. Ehlers introuced Phase Accumulation technique of cycle period measurement in his "Rocket Science for Traders" chapter 7. It is perhaps the easiest to comprehend. In this technique, John Ehlers measures the phase at each sample by taking the arctangent of the ratio of the Quadrature component to the In-phase component. A delta phase is generated by taking the difference of the phase between successive samples. At each sample Dr. Ehlers then looks backward, adding up the delta phases. When the sum of the delta phases reaches 360 degrees (2*pi in tradingview), we must have passed through one full cycle, on average. The process is repeated for each new sample.
Function
blackcat L2 Ehlers Phase Accumulator Cycle Period Measurer is used to measure Dominant Cycle (DC). This is one of John Ehlers three major methods to measure DC. The Phase Accumulation method of cycle measurement always uses one full cycle’s worth of historical data. This is both an advantage and disadvantage. The advantage is the lag in obtaining the answer scales directly with the cycle period. That is, the measurement of a short cycle period has less lag than the measurement of a longer cycle period. However, the number of samples used in making the measurement means the averaging period is variable with cycle period. Longer averaging reduces the noise level compared to the signal. Therefore, shorter cycle periods necessarily have a higher output Signal-to-Noise Ratio (SNR).
Key Signal
Smooth --> 4 bar WMA w/ 1 bar lag
Detrender --> The amplitude response of a minimum-length HT can be improved by adjusting the filter coefficients by
trial and error. HT does not allow DC component at zero frequency for transformation. So, Detrender is used to remove DC component/ trend component.
Q1 --> Quadrature phase signal
I1 --> In-phase signal
Period --> Dominant Cycle in bars
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 2nd 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.
Enhanced Instantaneous Cycle Period - Dr. John EhlersThis is my first public release of detector code entitled "Enhanced Instantaneous Cycle Period" for PSv4.0 I built many months ago. Be forewarned, this is not an indicator, this is a detector to be used by ADVANCED developers to build futuristic indicators in Pine. The origins of this script come from a document by Dr. John Ehlers entitled "SIGNAL ANALYSIS CONCEPTS". You may find this using the NSA's reverse search engine "goggles", as I call it. John Ehlers' MESA used this measurement to establish the data window for analysis for MESA Cycle computations. So... does any developer wish to emulate MESA Cycle now??
I decided to take instantaneous cycle period to another level of novel attainability in this public release of source code with the following methods, if you are curious how I ENHANCED it. Firstly I reduced the delay of accurate measurement from bar_index==0 by quite a few bars closer to IPO. Secondarily, I provided a limit of 6 for a minimum instantaneous cycle period. At bar_index==0, it would provide a period of 0 wrecking many algorithms from the start. I also increased the instantaneous cycle period's maximum value to 80 from 50, providing a window of 6-80 for the instantaneous cycle period value window limits. Thirdly, I replaced the internal EMA with another algorithm. It reduces the lag while extracting a floating point number, for algorithms that will accept that, compared to a sluggish ordinary EMA return. You will see the excessive EMA delay with adding plot(ema(ICP,7)) as it was originally designed. Lastly it's in one simple function for reusability in a nice little package comprising of less than 40 lines of code. I hope I explained that adequately enough and gave you the reader a glimpse of the "Power of Pine" combined with ingenuity.
Be forewarned again, that most of Pine's built-in functions will not accept a floating-point number or dynamic integers for the "length" of it's calculation. You will have to emulate the built-in functions by creating Pine based custom functions, and I assure you, this is very possible in many cases, but not all without array support. You may use int(ICP) to extract an integer from the smoothICP return variable, which may be favorable compared to the choppiness/ringing if ICP alone.
This is commonly what my dense intricate code looks like behind the veil. If you are wondering why there is barely any notation, that's because the notation is in the variable naming and this is intended primarily for ADVANCED developers too. It does contain lines of code that explore techniques in Pine that may be applicable in other Pine projects for those learning or wishing to excel with Pine.
Showcased in the chart below is my free to use "Enhanced Schaff Trend Cycle Indicator", having a common appeal to TV users frequently. If you do have any questions or comments regarding this indicator, I will consider your inquiries, thoughts, and ideas presented below in the comments section, when time provides it. As always, "Like" it if you simply just like it with a proper thumbs up, and also return to my scripts list occasionally for additional postings. Have a profitable future everyone!
NOTICE: Copy pasting bandits who may be having nefarious thoughts, DO NOT attempt this, because this may violate Tradingview's terms, conditions and/or house rules. "WE" are always watching the TV community vigilantly for mischievous behaviors and actions that exploit well intended authors for the purpose of increasing brownie points in reputation scores. Hiding behind a "protected" wall may not protect you from investigation and account penalization by TV staff. Be respectful, and don't just throw an ma() in there branding it as "your" gizmo. Fair enough? Alrighty then... I firmly believe in "innovating" future state-of-the-art indicators, and please contact me if you wish to do so.