Swing Trades Validator - The One TraderThis swing trading strategy validator is built on the original strategy taught in my bootcamp for swing traders.
The strategy is simple and follows a trend trading pattern on prices reacting to Exponential Moving Averages over a multiple time-frame analysis.
The details of the strategy are as follows:
- Holding Period : Upto a couple of months
- Time-frames to be analysed : Month - Week - Day
- Trade Execution : Daily Time-frame
Analysis Details:
Step 1 : On the Monthly time-frame, the candle needs to be bullish with the latest close being higher than the opening price of the month.
Step 2 : The price needs to be above the 8ema on the Monthly time-frame.
Step 3 : The 8ema must be above the 20ema on the Monthly time-frame.
The above steps indicate a bullish strength in the instrument on the Monthly time-frame.
Step 4 : On the Weekly time-frame, the candle needs to be bullish with the latest close being higher than the opening price of the week.
Step 5 : The price needs to be above the 8ema on the Weekly time-frame.
Step 6 : The 8ema must be above the 20ema on the Weekly time-frame.
The above steps indicate a bullish strength in the instrument on the Weekly time-frame.
Step 7 : On the Daily time-frame, the candle needs to be bullish with the latest close being higher than the opening price of the day.
Step 8 : The price needs to be above the 8ema on the Daily time-frame.
Step 9 : The 8ema must be above the 20ema on the Daily time-frame.
The above steps indicate a bullish strength in the instrument on the Daily time-frame.
Step 10 : While the 8ema is above the 20ema on the Daily time-frame, the price must be allowed to rise before a pullback is seen towards the moving averages, indicating a bearish move trying to change the trend.
Step 11 : These pullback candles need to form a pattern called the Ring Low with the second pullback candle having a lower high and lower low and the low of the last pullback candle being lesser than or equal to the fat ema on the Daily time-frame.
Step 12 : If the stock is still bullish and the trend is displaying a strength in the underlying bullish direction, then there will be a resumption candle that will have a closing price higher than the previous day's high price.
This trend continuation signal is a confirmation that the instrument will continue in the underlying trend direction and we will be able to enter if this condition is satisfied.
The profit and loss percentages are set at a default 10% as this can be a minimum risk : reward for swing trades on average, but the inputs have been made available to the users in order to adjust the risk : reward to find the most optimum breathing room for each individual stock or instrument. This will give the user a highly custom overview of the strategy on individual instruments based on their volatility and price movements.
The strategy tester will auto back-test this strategy historically and find all the trades that were taken based on this strategy and populate a performance summary.
The most important data in V1.0 of this script are as follows:
1. No. of Trades Taken : We want to see many trades being taken on this strategy in that particular instrument. This shows us a healthy report on the number of winning vs. losing trades.
2. Percentage Profitable : We want to see that this strategy has worked out in the past and is giving us a high probability of return. This in no way an indication that the strategy will definitely work out in the future as well, but gives us an idea of whether or not we should enter this trade.
3. No. of Winning Trades vs. Losing Trades : We would like to see a significantly higher number of winning trades.
4. Avg. # of bars in a trade : This gives us an idea of how long on average we might have to wait to see the results of this strategy either in favor of our reward or against our desired direction. Some trades can be completed in around 15-20 bars on average and some trades have shown to take upto 45 days to reach desired reward. This is in line with our planned holding period, but gives the trader a sense of time and increased level of patience.
The future updates will have more utility of the various elements of the strategy tester and the entire exit strategy will be integrated into the script.
This script is not to be used as a standalone method and must be studied well in order to execute trades. I have not hidden visibility on other time-frames, but since order execution is done on the Daily time-frame, the script must run on the Daily time-frame only.
There are many other factors to be taken into consideration before entering a trade and proper risk management and position sizing rules must be followed.
Our bootcamp participants will use this strategy tester in conjunction with the invite-only Trading Toolkit assigned to them.
The development of this script will be ongoing and all comments and feedback are welcome.
ابحث في النصوص البرمجية عن "daily"
Central Pivot Ranges (CPR) & 3 x VWAP & BarcolorsThis Script Combines daily, weekly and monthly VWAP (Volume Weighted Average Price) with a intraday, daily, weekly and monthly CPR (Central Pivot Range) - which is considered by some traders as the bread and butter of the market for a reason. A combination of Multiple CPRs and VWAPs from different timeframes can provide you with interesting confluences that can give you more confidence in performing your trades.
CPR Features:
- The option to look at current or developing CPRs.
- A resolution selector for all 4 CPRs
- Options to hide and show Tops, Bottoms and Pivots separately
- Various Styling options
- Alerts
VWAP Features:
- 3 x preset VWAPs set to daily, weekly and monthly
- VWAP Lines from the daily O&C or H&L
- Previous VWAP for S/R
- Line Styling options
General Features:
- Barcolors by pivots crossed or daily, weekly and monthly VWAP.
- Barcolors by daily VWAP additionally contain an O and C check instead of just taking the price above or below the VWAP into consideration.
Fear Of Missing Out grid of forex tradingAbstract
This script finds potential safe grids placing limit orders without fear of missing out.
This script computes grids according to power of 1.0025 .
You can reference those price levels for your trading.
Introduction
Grid trading is a popular trading method.
Traders plan several price levels as grids and repeat buying at lower grids and selling at higher grids.
Grids can be round number like multiple of 100 pips.
Grids can also be support and resistance according to price history.
Some traders may think they need to adjust grids to trade.
However, there are several problems in choosing grids.
One problem is rate of change is related and therefore exponential. 20 to 30 is different from 30 to 40.
Another interesting point is there are some special impressing reversal price levels.
Several months ago, I had a question why usdjpy bounced near 108.3 .
After using a calculator, I found that 108.3 = 100 * 1.083 ≒ 100 * pow(1.0025,31) .
1.0025 , as known as 0.25% of change, is a potential stop out zone.
Therefore, we can compute grids and one grid is a little more than 1.0025 times than an another one.
After we finished computing grids, we can consider buy and sell near those grids.
Note that different traders may obtain different grid values.
For example, from 1.0 to 2.0 , it can be splited as 270 grids or 277 grids because pow(1.0025,277)<2 .
Those grids cannot always imply potential reversal points but they can be useful for traders looking for 0.25% profit targets with reducing fearing of buying or selling too early.
Computing grids
This script split from 1.0 to 10.0 into three segments.
One is 1.0 to 2.0 .
The second segment is from 2.0 to 5.0 .
The third segment is from 5.0 to 10.0 .
This script does the same thing for 0.1 to 1.0 , 10.0 to 100.0 , and so on.
For 1.0 to 2.0 and 5.0 to 10.0 , this script split a segment as 270 grids.
For 2.0 to 5.0 , this script split a segment as 360 grids.
The last step is display the next grids to the daily low and daily high.
Maybe also display the grids behind grids shown.
Parameters
x1,x2,x3,x4 : display the next x1,x2,x3,x4 grids to daily high and daily low. 1 means the next grid to daily high and daily low. 2 means the next grid to 1.
x_seg : default 2.0 . This script split from 1.0 to 10.0 into three segments. One is 1.0 to x_seg. The second segment is from x_seg to 10.0/x_seg . The third segment is from 10.0/x_seg to 10.0 .
x_grid1 : how many grids in the first segment
x_grid2 : how many grids in the second segment
x_lowprice : add this number for bigger grid distance. Generally, you don't need this number when trading forex but you may need it in stock trading. For stocks with price between 50 to 100, I recommend you use x_lowprice=100.
Conclusion and suggestions
This script can find potential grids for trading.
If price touches grids usually, we can consider buy and sell after price touches grids.
If price reverses before touching grids usually, we may consider buy and sell before price touches grids.
Those grids can remind us don't buy too much unless the price touches the next grid.
For instruments with less volatility, maybe we need more grids.
For traders with more money, they may also consider more grids for more dedicated range trading to collect more profit.
Reference
Sorry, I forgot them.
My:HTF O/H/L/C█ MY Higher Time Frame Open / High / Low / Close
This indicator shows one line per Higher Time Frame Price of Interest.
We are interested to know whether we are currently seeing support or resistance at previous daily / weekly / monthly price of interest.
Each price of interest can be displayed or hidden in the configuration. Each line has a label attached to it with the (short) label on it to help identifying what is this line.
Price of interest with (short) label :
Current Daily Open (CDO)
Current Daily High (CDH)
Current Daily Low (CDL)
Previous Daily Open (PDO)
Previous Daily High (PDH)
Previous Daily Low (PDL)
Previous Daily Close (PDC)
Current Weekly Open (CWO)
Current Weekly High (CWH)
Current Weekly Low (CWL)
Previous Weekly Open (PWO)
Previous Weekly High (PWH)
Previous Weekly Low (PWL)
Previous Weekly Close (PWC)
Current Monthly Open (CMO)
Current Monthly High (CMH)
Current Monthly Low (CML)
Previous Monthly Open (PMO)
Previous Monthly High (PMH)
Previous Monthly Low (PML)
Previous Monthly Close (PMC)
Financial Astrology Vesta LongitudeVesta is one of the largest objects in the asteroid belt between Mars and Jupiter, the orbit duration is 3.63 years and seems to be very relevant celestial object in financial astrology. The experienced financial astrologer "Bill Meridian" indicates that this asteroid rules the security business, and paper securities such as bonds and stocks. We have confirmed through statistical research that adding this asteroid to astrology machine learning models provides an increase in daily trend predictions accuracy for crypto-currencies sector.
Our statistical analysis of Vesta zodiac sign location concluded that when is transiting the signs of Aries, Gemini, Cancer, Leo and Libra the daily trend is 59% or more of the days bullish. When Vesta is located at Capricorn is very bearish with 60% of the daily trend going in downward direction. In the other zodiac signs the daily trend was neutral showing most of the time a sideways pattern.
Is very interesting to note that the exact date July 21, 2021, when Vesta entered in Libra BTCUSD started the last bullish wave that finally broke the congestion zone of the 30K-35K and started a new bullish optimism. Pay attention on what happened in the previous cycle when Vesta was located in Libra and do your conclusions.
Note: Vesta longitude indicator is based on an ephemeris array that covers years 2010 to 2030, prior or after this years the data 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 timezone.
Alt Golden Ratio by USCG_VetPine Script math based on the medium article by Philip Swift.
Idea based from Willy Woo Charts.
Disclaimer: None of this Pine Script, Title, nor Description should be used for Financial Advice. For Education Purposes Only.
Purpose: Identify a Golden Ratio Cross of the 350 Daily MA vs the 111 Daily MA with Multiplier to theorize where local valuation tops or bottoms could be approximated. NOT FINANCIAL ADVICE!
Parameters:
DMA A: short Daily Moving Average
DMA B: long Daily Moving Average
Golden Ratio: point where short Daily Moving Average crosses value assigned in parameter.
Indicators:
S2: Cross of DMA A vs DMA B in upward direction (approximate local top)
Sn: additional approximate top indicators
Sell1: first approximate local bottom
Selln: additional approximate local bottom indicators
GR: Golden-Ratio Cross of DMA A
CheckmateTrades - Pivots End GameThis indicator is based on the Pivot study. Traders will be able to plot CPR, Standard floor pivots as well as Camarilla Pivots on multiple timeframes.
Why pivots from multiple timeframes are relevant and included in this one indicator?
We can analyse pivots on multiple timeframes for different trading setups. As in, Daily floor pivots are best suited for analysing the market trend for Day trading. Similarly, Weekly and Monthly floor pivots can be analysed for Swing and positional trading entries. Whereas yearly pivot is best suited for trend analysis for investment purpose.
What is the relevance of plotting tomorrow's pivot level in advance?
Pivot are calculated based on the price happened on a previous day. And hence trader can plot tomorrow pivots in advance to shortlist stocks for tomorrow's trading session.
TimeFrames Available to traders are –
1. Daily
2. Weekly
3. Monthly
A) Daily Pivots
Present Day –
1. Trader can plot Daily CPR
2. Trader can plot Daily R1, R2, R3 and R4 pivot resistance levels
3. Trader can plot Daily S1, S2, S3 and S4 pivot support levels
4. Trader can plot Daily Camarilla levels
Future Day –
1. Trader can plot Tomorrow CPR
2. Trader can plot Tomorrow R1, R2, R3 and R4 pivot resistance levels
3. Trader can plot Tomorrow S1, S2, S3 and S4 pivot support levels
4. Trader can plot Tomorrow Camarilla levels
5. Previous Day High and Low
B) Weekly Pivots
Present Week –
1. Trader can plot Present week CPR
2. Trader can plot Present week R1, R2, R3 and R4 pivot resistance levels
3. Trader can plot Present week S1, S2, S3 and S4 pivot support levels
4. Trader can plot Present week Camarilla levels
Next Week –
1. Trader can plot Next week CPR
2. Trader can plot Next week R1, R2, R3 and R4 pivot resistance levels
3. Trader can plot Next week S1, S2, S3 and S4 pivot support levels
4. Trader can plot Next week Camarilla levels
5. Previous Week High and Low
C) Monthly Pivots
Present Month –
1. Trader can plot Present Month CPR
2. Trader can plot Present Month R1, R2, R3 and R4 pivot resistance levels
3. Trader can plot Present Month S1, S2, S3 and S4 pivot support levels
4. Trader can plot Present Month Camarilla levels
Next Month –
1. Trader can plot Next Month CPR
2. Trader can plot Next Month R1, R2, R3 and R4 pivot resistance levels
3. Trader can plot Next Month S1, S2, S3 and S4 pivot support levels
4. Trader can plot Next Month Camarilla levels
5. Previous Month High and Low
Moreover, I have also included SMA (Simple moving averages) study in this indicator. Trader can add 20,50 & 200 SMA on there charts.
Why is it relevant? Trader can get a visual confirmation of an up-trending or an down-trending move by looking at rising or falling 20 & 50 SMA respectively
Usually in an uptrending stocks. 20 & 50 SMA will move in parallel to each other and will rise upwards. Price will tend to trade above the 20 SMA and 20 SMA will continue to act as a support.
Performance TableThis indicator is based on the Performance section in the TradingView's sidebar and uses new Pine tables functionality. It compares the current price of the symbol to its past price and calculates the rate of return to make it easier to track the performance of the symbol. Note that the Performance sidebar is not updated in real-time, while this indicator is, so on real-time charts the values between the two can differ (the indicator's values are more recent).
The formula of the calculation is (Current value - Past value) * 100 / Past value , where Past value is:
1W - close 5 daily bars ago
1M - close 21 daily bars ago
3M - close 63 daily bars ago
6M - close 126 daily bars ago
YTD - close of the past year
1Y - close 251 daily bars ago
[JL] High-Low CloudJust got this idea and made this one.
Default use 1-hour chart to watch 5-hour, daily and weekly high-low. Of course you can set up any parameters as you like.
It is more like an art. So I do not really know how to use it to trade at this moment. If you have good ideas, feel free to post comments. Thanks.
- Green cloud, SMA - Weekly HL ~ SMA - Daily HL
- Lime cloud, SMA - Daily HL ~ SMA - 5-Hour HL
- White cloud, SMA - 5-Hour HL ~ SMA + 5-Hour HL
- Organge cloud, SMA + 5-Hour HL ~ SMA + Daily HL
- Red Cloud, SMA + Daily HL ~ SMA + Weekly HL
To watch it, probably take care of :
- Angles
- cloud size changes
- divergence
- Oversold, overbought
Larry Williams Strategies IndicatorThis indicator is a trend following indicator. It plots some of the trend following strategies described by Larry Williams in his book 'Long Term Secrets to Short Term Trading'. Below are types of trend following strategies you can trade using this indicator. These are notes taken directly from Larry Williams' book.
Short Term Low Strategy
Short Term Low - Any daily low with higher lows on each side of it.
Intermediate Term Low – Any short term low with higher short term lows on each side of it.
Long Term Low – Any intermediate term low with higher intermediate term lows on each side of it.
Conceptual pattern for best buying opportunity is when forming an intermediate term low higher than the last intermediate term low.
This setup can be used on all time frames. However since Larry Williams usually trades the daily chart, the daily chart is probably the best timeframe to trade using this strategy.
Entry point – High of the day that has a higher high on the right side of it.
(My interpretation: price crossing above the high of the previous day is the buy signal)
Target – Markets have a strong tendency to rally above the last intermediate term high by the same amount it moved from the last intermediate term high to the lowest point prior to advancing to new highs.
Trailing Stop – Set stop to most recent short term low, move up as new short term lows are formed. Can also use formation of next intermediate term high as an exit point.
A 'run' to the upside is over when price fails to move higher the next day and falls below the prior day's low.
Short Term High Strategy
Short Term High - Any daily high with lower highs on each side of it.
Intermediate Term High – Any short term high with lower short term highs on each side of it.
Long Term High – Any intermediate term high with lower intermediate term highs on each side of it.
Conceptual pattern for best selling opportunity is when forming an intermediate term high lower than the last intermediate term high.
This setup can be used on all time frames. However since Larry Williams usually trades the daily chart, the daily chart is probably the best timeframe to trade using this strategy.
Entry point – Low of the day that has a lower low on the right side of it.
(My interpretation: price crossing below the low of the previous day is the sell short signal)
Target – Markets have a strong tendency to fall below the last intermediate term low by the same amount it moved from the last intermediate term low to the highest point prior to declining to new lows.
Trailing Stop – Set stop to most recent short term high, move down as new short term highs are formed. Can also use formation of next intermediate term low as an exit point.
A 'run' to the downside is over when price fails to move lower the next day and rises above the prior day's high.
Trend Reversals
A trend change from down to up occurs when a short term high is exceeded on the upside, a trend change from up to down is identified by price going below the most recent low.
Can take these signals to make trades, but it is best to filter them with a confirmation or edge such as Trading Day of the Week, Trading Day of the Month, trendlines, etc. to cut down on false signals.
Three Bar High/Low System
Calculate a three bar moving average of the highs and a three bar moving average of the lows.
Strategy is to buy at the at the price of the three bar moving average of the lows - if the trend is positive according to the swing point trend identification technique - and take profits at the three bar moving average of the highs.
Selling is just the opposite. Sell short at the three bar moving average of the highs and take profits at the three bar moving average of the lows, using the trend identification technique above for confirmation.
This strategy can work on any timeframe, but was described as a daytrading system by Larry Williams.
Gunzo Market SRGunzo Market SR is a set of 3 tools combined for trend analysis on day trading strategy.
VWAP (Volume Weighted Average Price) :
The VWAP indicator is generally used for trend analysis. For example if the VWAP line is under the closing price for a long period of time, the trend is strong. In this script, the VWAP has been optimized for day trading as the indicator is calculated inside the daily range, and resets when a new day starts. This way the indicator reflects the daily trend and not the overall trend. You can also use the position of closing price according to the VWAP to find optimal entry points according to the indicator.
Highs / Lows :
The Highs / Lows are generally used for trend analysis too. The High / Lows are mainly used to identify prices that have been key during the past and that we can use as an indication for the following candles. In this script, the Highs / Lows are computed on the daily period and then displayed on the current period (recommended to use on a daily period or lower). This way the indicator reflects the highest point and the lowest point of the day (can be modified to have a longer range of pivot days even if I recommend to stay on 1 day for day trading).
Support / Resistance :
The Support / Resistance is generally used for trend analysis too. The Support / Resistance are found by searching local high and lows. The longer the supports and resistance are, the strongest it can be considered. In this script, the Highs / Lows are computed by default on a lower time frame (usually 3-4 times lower). For example on a 15 minute graph, the Highs / Lows will be computed on the 5 minute graph (can be modified if the displayed result is not optimized for your asset).
How to use this set of tools :
I personally recommend to use this tool at the start of your day of trading. This way you will get a clear vision of the daily situation and try to identify key prices and the trend for the current day. I then suggest to set up an alert on the key price to be notified when you're getting close to it.
Strongholds - Objective & Accurate Reference Points / StructuresVery early in my trading career, I came across Pivot Points only to find out that there are as many calculations as one pleases. It was hard to find out which ones work. Most of them probably did only out of randomness, so I ditched the strategy and looked for something else.
I previously used my Oracle Eye and Reference Points scripts but it is time for an upgrade.
Stronghold is a script I have used for quite some time now. I ditched daily and weekly closing prices as not that important. Instead, Strongholds are equipped with:
►Daily High & Low • Azure color
►Weekly High & Low • Dark blue
►Weekly old High & Low • Semi-transparent dark circles
►Monthly High & Low • Wizardly purple
There is an option to print:
►4h High & Low • Semi-transparent red
►VWAP • Lovely purple
►Weekly VWAP • Black
All of the levels and lines are set for 1m, 5m, 10m, 15m, 30m, 1h, 4h, 1D timeframes. If you use any alien timeframe, you may need to enter the code.
You can opt-in and out for certain timeframes. For example, daily levels are visible from 15m or 30, so the indicator won't draw them unless you want to. However, they will not be seen on higher timeframes as there is no reason to show them and oversaturate the chart with lines.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Remember that if you use this script with auto-scale, you need to tick Scale Price Chart Only . Otherwise, your chart will fly to the moon!
Good luck & have fun!
Indices Sector SigmaSpikes█ OVERVIEW
“The benchmark Dow Jones Industrial Average is off nearly 300 points as of midday today...”
“So what? Is that a lot or a little? Should we care?”
-Adam H Grimes-
This screener aims to provide Bird-Eye view across sector indices, to find which sector is having significant or 'out-of-norm' move in either direction.
The significance of the move is measured based on Sigma Spikes, a method proposed by Adam H. Grimes, where Standard Deviation of returns used as a baseline.
*You can google his blog or read his book, got some gold in there, especially on how he use indicators for trading
█ Understanding Sigma Spikes
As described by Grimes, moves in markets are only meaningful when we consider what “normal” is for that market.
Without that baseline, the daily change number, and even the percent change on the day doesn’t really mean much.
To overcome that problem, Sigma Spikes, as a measure of volatility, attempt to put todays change in price (aka return) in context of the standard deviation of 20 days daily's return.
Refer chart below:
1. The blue bars refer to each days return
2. The orange line is 1 time standard deviation of past 20days daily's return (today not included)
3. The red line is 2 time standard deviation of past 20days daily's return (today not included)
Using the ratio of today's return over the Std Deviation, determining your threshold (1,2,3,etc) will be the key that tells if today's move is significant or not.
*Threshold referring to times standard deviation, and different market may require different threshold.
*20 Days period are based on the Lookback Period, adjustable from user input window.
█ Features
- Scan up to 13 symbols at a time (Bursa (MYX) indices are defaulted, but you may change to any symbols/index from the user input setting)
█ Limitation
- Due to multiple use of security() function required to call other symbols, expect the screener to be slow at certain times
- Custom Timeframe currently accept only Daily and Weekly. I'll try to include lower timeframe in the next update
█ Disclaimer
Past performance is not an indicator of future results.
My opinions and research are my own and do not constitute financial advice in any way whatsoever.
Nothing published by me constitutes an investment recommendation, nor should any data or Content published by me be relied upon for any investment/trading activities.
I strongly recommends that you perform your own independent research and/or speak with a qualified investment professional before making any financial decisions.
Any ideas to further improve this indicator are welcome :)
Derived moving averagesBITSTAMP:BTCUSD
This indicator shows five derived moving averages based on a daily simple moving average (daily MA).
The derived moving averages are projected along the daily MA on which they are based on the chart.
The period of the daily MA, and the percentages by which the derived moving averages are removed from the daily MA are adjustable.
The derived moving averages are shown both above and below the daily MA.
The derived moving averages act as support and resistance .
This indicator can be used for a wide array of markets.
As far as I know this indicator can be used for stocks, cryptocurrencies, futures , Forex and bond yields.
It only works on hourly time frames.
10ema Basic Swing Trade StrategySTRATEGY INGREDIENTS
* DAILY chart
* 10 ema on daily
* 50 ema on daily
STRATEGY RECIPE SUMMARY
Wait for a CLOSE BELOW the 10 ema on the daily chart ...YESTERDAY. Wait for a CLOSE ABOVE the 10ema TODAY...ensure the price action is ABOVE the 50 ema on the daily chart ...buy at the close if the green arrow indicator is shown. Be sure to get your order filled BEFORE the market closes -- if you are using directional options...b/c you know, the options market doesn't have after hours.
BE AWARE of your own risk tolerance...step stops at appropriate levels...Take responsibility for your own trades. BACKTEST this strategy before using a LIVE MONEY TRADING ACCOUNT.
Bitcoin Block Height (Total Blocks)Bitcoin Block Height by RagingRocketBull 2020
Version 1.0
Differences between versions are listed below:
ver 1.0: compare QUANDL Difficulty vs Blockchain Difficulty sources, get total error estimate
ver 2.0: compare QUANDL Hash Rate vs Blockchain Hash Rate sources, get total error estimate
ver 3.0: Total Blocks estimate using different methods
--------------------------------
This indicator estimates Bitcoin Block Height (Total Blocks) using Difficulty and Hash Rate in the most accurate way possible, since
QUANDL doesn't provide a direct source for Bitcoin Block Height (neither QUANDL:BCHAIN, nor QUANDL:BITCOINWATCH/MINING).
Bitcoin Block Height can be used in other calculations, for instance, to estimate the next date of Bitcoin Halving.
Using this indicator I demonstrate:
- that QUANDL data is not accurate and differ from Blockchain source data (industry standard), but still can be used in calculations
- how to plot a series of data points from an external csv source and compare it with another source
- how to accurately estimate Bitcoin Block Height
Features:
- compare QUANDL Difficulty source (EOD, D1) with external Blockchain Difficulty csv source (EOD, D1, embedded)
- show/hide Quandl/Blockchain Difficulty curves
- show/hide Blockchain Difficulty candles
- show/hide differences (aqua vertical lines)
- show/hide time gaps (green vertical lines)
- count source differences within data range only or for the whole history
- multiply both sources by alpha to match before comparing
- floor/round both matched sources when comparing
- Blockchain Difficulty offset to align sequences, bars > 0
- count time gaps and missing bars (as result of time gaps)
WARNING:
- This indicator hits the max 1000 vars limit, adding more plots/vars/data points is not possible
- Both QUANDL/Blockchain provide daily EOD data and must be plotted on a daily D1 chart otherwise results will be incorrect
- current chart must not have any time gaps inside the range (time gaps outside the range don't affect the calculation). Time gaps check is provided.
Otherwise hardcoded Blockchain series will be shifted forward on gaps and the whole sequence become truncated at the end => data comparison/total blocks estimate will be incorrect
Examples of valid charts that can run this indicator: COINBASE:BTCUSD,D1 (has 8 time gaps, 34 missing bars outside the range), QUANDL:BCHAIN/DIFF,D1 (has no gaps)
Usage:
- Description of output plot values from left to right:
- c_shifted - 4x blockchain plotcandles ohlc, green/black (default na)
- diff - QUANDL Difficulty
- c_shifted - Blockchain Difficulty with offset
- QUANDL Difficulty multiplied by alpha and rounded
- Blockchain Difficulty multiplied by alpha and rounded
- is_different, bool - cur bar's source values are different (1) or not (0)
- count, number of differences
- bars, total number of bars/data points in the range
- QUANDL daily blocks
- Blockchain daily blocks
- QUANDL total blocks
- Blockchain total blocks
- total_error - difference between total_blocks estimated using both sources as of cur bar, blocks
- number_of_gaps - number of time gaps on a chart
- missing_bars - number of missing bars as result of time gaps on a chart
- Color coding:
- Blue - QUANDL data
- Red - Blockchain data
- Black - Is Different
- Aqua - number of differences
- Green - number of time gaps
- by default the indicator will show lots of vertical aqua lines, 138 differences, 928 bars, total error -370 blocks
- to compare the best match of the 2 sources shift Blockchain source 1 bar into the future by setting Blockchain Difficulty offset = 1, leave alpha = 0.01 =>
this results in no vertical aqua lines, 0 differences, total_error = 0 blocks
if you move the mouse inside the range some bars will show total_error = 1 blocks => total_error <= 1 blocks
- now uncheck Round Difficulty Values flag => some filled aqua areas, 218 differences.
- now set alpha = 1 (use raw source values) instead of 0.01 => lots of filled aqua areas, 871 differences.
although there are many differences this still doesn't affect the total_blocks estimate provided Difficulty offset = 1
Methodology:
To estimate Bitcoin Block Height we need 3 steps, each step has its own version:
- Step 1: Compare QUANDL Difficulty vs Blockchain Difficulty sources and estimate error based on differences
- Step 2: Compare QUANDL Hash Rate vs Blockchain Hash Rate sources and estimate error based on differences
- Step 3: Estimate Bitcoin Block Height (Total Blocks) using different methods in the most accurate way possible
QUANDL doesn't provide block time data, but we can calculate it using the Hash Rate approximation formula:
estimated Hash rate/sec H = 2^32 * D / T, where D - Difficulty, T - block time, sec
1. block time (T) can be derived from the formula, since we already know Difficulty (D) and Hash Rate (H) from QUANDL
2. using block time (T) we can estimate daily blocks as daily time / block time
3. block height (total blocks) = cumulative sum of daily blocks of all bars on the chart (that's why having no gaps is important)
Notes:
- This code uses Pinescript v3 compatibility framework
- hash rate is in THash/s, although QUANDL falsely states in description GHash/s! THash = 1000 GHash
- you can't read files, can only embed/hardcode raw data in script
- both QUANDL and Blockchain sources have no gaps
- QUANDL and Blockchain series are different in the following ways:
- all QUANDL data is already shifted 1 bar into the future, i.e. prev day's value is shown as cur day's value => Blockchain data must be shifted 1 bar forward to match
- all QUANDL diff data > 1 bn (10^12) are truncated and have last 1-2 digits as zeros, unlike Blockchain data => must multiply both values by 0.01 and floor/round the results
- QUANDL sometimes rounds, other times truncates those 1-2 last zero digits to get the 3rd last digit => must use both floor/round
- you can only shift sequences forward into the future (right), not back into the past (left) using positive offset => only Blockchain source can be shifted
- since total_blocks is already a cumulative sum of all prev values on each bar, total_error must be simple delta, can't be also int(cum()) or incremental
- all Blockchain values and total_error are na outside the range - move you mouse cursor on the last bar/inside the range to see them
TLDR, ver 1.0 Conclusion:
QUANDL/Blockchain Difficulty source differences don't affect total blocks estimate, total error <= 1 block with avg 150 blocks/day is negligible
Both QUANDL/Blockchain Difficulty sources are equally valid and can be used in calculations. QUANDL is a relatively good stand in for Blockchain industry standard data.
Links:
QUANDL difficulty source: www.quandl.com
QUANDL hash rate source: www.quandl.com
Blockchain difficulty source (export data as csv): www.blockchain.com