Bitcoin Pi Cycle Top Indicator - Daily Timeframe Only1 Day Timeframe Only
The Bitcoin Pi Cycle Top Indicator has garnered attention for its historical effectiveness in identifying the timing of Bitcoin's market cycle peaks with remarkable precision, typically within a margin of 3 days.
It utilizes a specific combination of moving averages—the 111-day moving average and a 2x multiple of the 350-day moving average—to signal potential tops in the Bitcoin market.
The 111-day moving average (MA): This shorter-term MA is chosen to reflect more recent price action and trends within the Bitcoin market.
The 350-day moving average (MA) multiplied by 2: This longer-term MA is adjusted to capture broader market trends and cycles over an extended period.
The key premise behind the Bitcoin Pi Cycle Top Indicator is that a potential market top for Bitcoin can be signaled when the 111-day MA crosses above the 350-day MA (which has been doubled). Historically, this crossover event has shown a remarkable correlation with the peaks of Bitcoin's price cycles, making it a tool of interest for traders and investors aiming to anticipate significant market shifts.
#Bitcoin
Halving2024
Bitcoin wave modelBitcoin wave model is based on the logarithmic regression model and the sinusoidal waves, induced by the halving events.
This chart presents the outcome of an in-depth analysis of the complete set of Bitcoin price data available from October 2009 to August 2023.
The central concept is that the logarithm of the Bitcoin price closely adheres to the logarithmic regression model. If we plot the logarithm of the price against the logarithm of time, it forms a nearly straight line.
The parameters of this model are provided in the script as follows: log (BTCUSD) = 1.48 + 5.44log(h).
The secondary concept involves employing the inherent time unit of Bitcoin instead of days:
'h' denotes a slightly adjusted time measurement intrinsic to the Bitcoin blockchain. It can be approximated as (days since the genesis block) * 0.0007. Precisely, 'h' is defined as follows: h = 0 at the genesis block, h = 1 at the first halving block, and so forth. In general, h = block height / 210,000.
Adjustments are made to account for variations in block creation time.
The third concept revolves around investigating halving waves triggered by supply shock events resulting from the halvings. These halvings occur at regular intervals in Bitcoin's native time 'h'. All halvings transpire when 'h' is an integer. These events induce waves with intervals denoted as h = 1.
Consequently, we can model these waves using a sin(2pih - a) function. The parameter determining the time shift is assessed as 'a = 0.4', aligning with earlier expectations for halving events and their subsequent outcomes.
The fourth concept introduces the notion that the waves gradually diminish in amplitude over the progression of "time h," diminishing at a rate of 0.7^h.
Lastly, we can create bands around the modeled sinusoidal waves. The upper band is derived by multiplying the sine wave by a factor of 3.1*(1-0.16)^h, while the lower band is obtained by dividing the sine wave by the same factor, 3.1*(1-0.16)^h.
The current bandwidth is 2.5x. That means that the upper band is 2.5 times the lower band. These bands are forming an exceptionally narrow predictive channel for Bitcoin. Consequently, a highly accurate estimation of the peak of the next cycle can be derived.
The prediction indicates that the zenith past the fourth halving, expected around the summer of 2025, could result in prices ranging between 200,000 and 240,000 USD.
Enjoy the mathematical insights!
Bitcoin Halving Rainbow + S2F Model PriceOverview
The rainbow price line:
This script creates a colorful view of Bitcoin's price action, where different colors indicate the time until the next halving date. The color scale in the top right highlights what each main color group represents in terms of days until the next halving. Using historical data, the simple indication of days until the next halving has somewhat accurately predicted potential bottoms and tops of market cycles. Comparing current colors to previous cycles provides a rough view of where BTC is in its current cycle and what to expect going forward until the next halving date.
In addition to the colored price action, I have incorporated the stock-to-flow model price for Bitcoin.
The stock-to-flow (S2F) model price:
The stock-to-flow ratio is a calculation that aims to estimate how many years are required to produce the current stock of an asset, based on the current production rate. When applied to Bitcoin, we simply divide the total amount of bitcoins in circulation by the amount of bitcoins mined in a certain timeframe. Once we have this value, we can calculate a model price based on the stock-to-flow ratio. This S2F model price uses a 463-day moving average. Preston Pysh came up with this number as he believed Bitcoin cycles happen in three phases: bull run, correction, and a reversion to the mean. He estimated there are about 200,000 blocks per cycle, three phases per cycle, and ~144 blocks per day. Dividing all three gets us 463. I have removed 1,000,000 coins from this calculation to account for Satoshi's coins.
The process I took to plot this model price (credit to PlanB for originally creating this calculation):
-Declare constant variables for the halving period, starting block reward, and the number of coins Satoshi owns.
-Fetch the block index by using the request.security() function.
-Determine the number of halvings that have occurred by dividing the block index by the halving period.
-Calculate the current block reward by multiplying the initial block reward by 0.5 raised to the power of the number of halvings.
-Calculate the number of blocks mined per period (day or week) and derive the stock (total bitcoins in circulation minus Satoshi's coins) and flow (annual block rewards) from it.
-Calculate the S2F ratio by dividing the stock by the flow.
-Calculate the S2F model price by applying a mathematical formula (ModelPrice = exp(-1.84) * S2F to the power of 3.36) along with a 463-day moving average.
** Please note, due to the use of the 463-day MA, the first ~400 days of the S2F model price is not entirely accurate.
In addition to the above, I have added vertical lines on each halving date, along with labels that have a tooltip if you hover over them, which will show more information about that particular halving.
Important tips:
-This script has been designed to work on the 1-Day timeframe but can also work on the 1-Week timeframe. Any other timeframe will not accurately plot all the information due to the way I have developed the script.
-This script is best used on the ticker I have posted this on, "INDEX:BTCUSD". It can also work on "BLX" or "BITSTAMP:BTCUSD".
-Hide candles when using the script to just show the halving rainbow (hover over the symbol name in the top left and press the eye icon).
-Right-click the price scale and select "Scale price chart only" to get a better view of the plots.
-Right-click the price scale and select "Logarithmic."
-I will update the script as time goes on to show future halvings along with adjusting the next halving date as we get closer (if it changes).
Settings Menu:
Tooltips are included explaining what the settings do, but here's a quick summary:
-'Show Vertical Halving Lines?': Default is true. This allows the user to remove the vertical lines shown on each halving date.
-'Show Halving Labels?': Default is true. This allows the user to remove the info labels shown on each halving date.
-'Halving Line and Label Color': Default is white. This allows the user to change the color of the halving lines and labels to better fit their chart layout.
-'Show Stock to Flow Model Price?': Default is true. This allows the user to remove the S2F model price.
-'Stock to Flow Model Price Color': Default is white. This allows the user to change the color of the S2F model price to better fit their chart layout.
-'Draw Color Table?': Default is true. This allows the user to remove the color table in the top right of the chart.
-'Distance rainbow is away from actual price action': Default is 0 (Plots over candles). This allows the user to adjust where the halving rainbow is plotted if they would like to also see candles on the chart. (Use any value under 0.9)
Feel free to message me or comment on the post with any questions or issues!
Much more to come!
Thanks for reading, enjoy!