[VIP] Composite BTC Funding Rate APR
Calculates and displays a BTC funding rate (positive or negative) in terms of APR. Positive APR = Positive funding. Negative APR = Negative funding
This calculation is sourced from a variety of spot and perpetual markets on a couple of top-volume exchanges, Binance, FTX, etc.
This logic is utilized in Dip Hunter and Take Profit Hunter
Code is open source! All feedback and improvements encouraged
BTC-M
BTC Puell Multiple with alert functionThe Puell Multiple examines the fundamentals of mining profitability and the way they shape market cycles. It is calculated by taking a ratio of daily coin issuance (in USD) and the 365 moving average of daily coin issuance (in USD).
Interpretation of the Puell Multiple can generally be considered in the following framework:
high values indicate that current miner profitability if high compared to the yearly average. As such, the incentive for miners to liquidate their treasuries is high and greater sell pressure may be expected.
Low values indicate that current miner profitability is low compared to the yearly average. As such, income stress may become a factor, and some miners may need to start reducing hash-power by switching off rigs. This increases the hash-share of remaining miners who can then sell fewer coins to cover their operations, reducing their impact on liquid supply.
Halving events will drop the current coin issuance by 50% relative to the preceding year creating an immediate halving of the Puell Multiple also. The effect on miner profitability will thus be as per the point on low values above.
Keltner Channels BandsKeltner Channel Bands
Great indicator for mean reversion strategies.
Alerts you can set:
Crossover EMA
Crossunder EMA
Crossover upper band
Crossunder upper band
Crossover lower band
Crossunder lower band
Have fun!
Anchored BTCIntroduce
When looking at altcoins and bitcoins together and seeing coupling and decoupling, we add a bitcoin chart in the "Compare" tab.
We checked where the coupling occurs in "Auto" mode, but if we move the chart, the overlapped position will change.
So I created the “Anchored BTC” indicator, which made the Bitcoin chart immovable.
How to use
First, add a bitcoin chart in the "Compare" tab and compare it with the altcoin chart.
And add the "Correlation Coefficient" built-in indicator to find the part where the correlation coefficient is 0.8 or higher.(it means finding well coupled part)
Among them, set the swing high or swing low part to Time1 and Time2.
Check if it looks the same as the existing BTC chart and you are done.
소개
알트코인과 비트코인을 함께 보며 커플링과 디커플링을 볼 때 우리는 비교 탭에서 비트코인 차트를 추가하여 봅니다.
"오토" 모드로 어느 부분에서 커플링이 일어나는지 체크했는데 차트를 옮기면 겹쳐놓아졌던 위치가 달라지게됩니다.
그래서 "Anchored BTC" 지표를 만들어, 비트코인 차트가 움직이지 못하게 만들었습니다.
사용법
우선 비교탭에서 비트코인차트를 추가하여 알트코인 차트와 비교해봅니다.
그리고 "상관계수" 빌트인 지표를 추가하여 상관계수가 0.8이상인 부분을 찾습니다.(커플링한 부분을 찾는겁니다)
이 중에서 스윙하이나 스윙로우인 부분을 Time1, Time2로 맞춰줍니다.
기존의 BTC차트와 동일하게 보여지는지 확인하면 끝납니다.
BTC Risk Metric - Estimates the risk of BTC price versus the USD
- To be used on the daily timeframe
- Works best on a BTC pair that has a lot of bars, e.g. The Bitcoin All Time History Index
- 0 is the lowest risk, 1 is the highest risk
- Historically, buying when the risk was low and selling when the risk was high would have yielded good ROI
- The risk bands are 0.1 in width and are highlighted on the plot
Typical Strategy:
- weighted DCA into the market when risk <0.5, do nothing between 0.5-0.6 and weighted DCA out of the market when risk >0.6
- x = buy amount per DCA interval
- y = 1/10th total BTC held by the user
- if 0 ≤ Risk < 0.1 then buy 5x
- if 0.1 ≤ Risk < 0.2 then buy 4x
- if 0.2 ≤ Risk < 0.3 then buy 3x
- if 0.3 ≤ Risk < 0.4 then buy 2x
- if 0.4 ≤ Risk < 0.5 then buy x
- if 0.5 ≤ Risk < 0.6 then do nothing
- if 0.6 ≤ Risk < 0.7 then sell y
- if 0.7 ≤ Risk < 0.8 then sell 2y
- if 0.8 ≤ Risk < 0.9 then sell 3y
- if 0.9 ≤ Risk ≤ 1.0 then sell 4y
Double candlestick reversal patternDouble candlestick reversal pattern
It can only be used as a reference for price behavior, and cannot be used alone. It must be combined with other indicators, otherwise it is useless
This indicator does not constitute any investment advice, you are solely responsible for your profits and losses
ICHIMOKU Crypto Swing AlertThis is a crypto swing alert for the strategy with the same name designed for timeframes bigger than 1h.
The main components are
ICHOMOKU
KDJ
Average High
Average Low
Rules for entry
For long: we have the ichimoku crosses between tenkan and baselines, we have a rising kdj line and at the same time we have a increase in the average high
For short: we have the ichimoku crosses between tenkan and baselines, we have a falling kdj line and at the same time we have an increase in the average low
Rules for exit
We exit when we have inverse conditions than the initial ones used for entry.
Caution
This strategy does not use a risk management, so be careful with it !
If you have any questions let me know !
SSR - Stablecoin Supply Ratio - Bitcoin - CryptocurrencyThe Stablecoin Supply Ratio (SSR) is the ratio between Bitcoin supply and the supply of stablecoins, denominated in BTC.
When the SSR is low, the current stablecoin supply has more "buying power" to purchase BTC. It serves as a proxy for the supply/demand mechanics between BTC and USD.
BTC Dominance TrendThis simple script applies the DMI/ADX (trend) indicator to the Bitcoin Dominance Index (BTC.D) to check whether BTC is increasing its dominance or not on that day. It is meant to be applied to altcoins on medium intervals. I put it together to test the following hypothesis: On days when BTC dominance is on the rise, altcoins are harder to take off, because Bitcoin is draining the lifeblood out of them, so caution is needed when opening trades.
Olive background means BTC dominance is rising on that day, purple that it is decreasing. White background means it is not moving significantly in any direction.
You can change the resolution (i.e. apply the DMI/ADX to a different BTC.D interval), just make sure to lower the threshold as well. I hope you find a good use for it! Beware if you try to incorporate it in your strategy, it uses higher timeframe data and hence is prone to repainting.
[DS]Bitcoin BTC ETH and others cryptos==DESCRIPTION - English version
The purpose of this script is to show information on graph that can help your decision to buy and sell cryptos.
The script is indicated for Position Trade (Long Term - Holder) and Swing Trade (Medium term).
Position Trade it is recommended to use the Weekly (W) and Daily (D) charts, Swing trade to use the 4H and 2H charts.
It is not advisable to use this indicator with graphic time frame less than 2 hours because the noise levels of information are very high.
An alert function has been inserted in the indicator and to activate this function you will need configure it in the Tradingview.
This alert will indicate the likely points of entry and exit of the asset.
**DESCRIÇÃO - Versão em Português
A proposta deste script é mostrar no gráfico informações que possam auxiliar a sua decisão de compra e venda de cryptos.
Este script é indicado para negociação Position Trade (Longo Prazo - Holders) e Swing Trade (Médio prazo).
Para Position Trade (Holders) é indicado utilizar os gráficos Semanal (W) e Diário (D), para Swing trade utilizar os gráficos 4H e 2H.
Não é aconselhável utilizar este indicador com tempos gráficos menores que 2hs pois os níveis de ruídos nas informação são muito altos.
Foi inserido no indicador uma função de alerta e para ativar esta função, você precisará configurá-la no seu Tradingview.
Este alerta irá indicar os provaveis pontos de entrada e saída do ativo.
====================================================================================================
** English Version
====================================================================================================
█ SETUP applied to Indicator
The setup is based on the average 8, 21 and 56 of the weekly chart (taught on youtube channel: Augusto Backes)
Price above the average 8 on the weekly, indicates that the market is UP trend, below the average 8 on the weekly that the market is DOWN trend
RSI greater than 60% the market is UP trend
RSI greater than 40% and lower 60% the market is in ACCUMULATION
RSI less than 40% the market DOWN trend
The weekly average 8 is represented in GREEN (Upward Trend) and RED (Downward Trend).
The weekly average 21 is represented in LIGHT ORANGE
The weekly average 56 is represented in LIGHT PURPLE
The crossing of weekly averages 8 and 21 is represented with a GREEN (HIGH trend) and RED (LOW trend) cross - this signal is disabled on the graph but you can enable it by clicking on the graph setup
█ FUNCTION USE
(1) Average 8, 21 and 56 on Weekly - show the average 8, 21, 56 weekly on graphic (Average 8 in color red and green, 21 - light orange, 56 light purple)
(2) Crossing of averages 8 and 21 Weekly - is not active but you can activate
(3) Calculation of RSI
(4) barcolor() - mark the candles with the green color (High market) and red color (Dow market)
(5) alertcondition() - you can active this alert on Tadingview
█ BUY AND SELL POINTS - likely points
The indication of the BUY position is shown by a green arrow pointing upwards and the sell position by a red arrow pointing downwards. Buy and sell indications are obtained from the divergence in the market trend.
█ THANK TO
PineCoders for everything they do, all the tools and help they provide, and their involvement in making a better community. All PineCoders, Pine Pros and Pine Wizards, people who share their work and knowledge because of it and helping others, I am so happy and so grateful.
█ NOTE
This indicator is not a buy and sell recommendation, it indicates the most likely buy and sell points. Every purchase and sale decision is your responsibility
*****************************************************************************************************
** Versão em Português
*****************************************************************************************************
█ SETUP aplicado no Indicador
O setup está baseado na média 8, 21, e 56 do gráfico semanal
Preço acima da média 8 no semanal indica que o mercado esta em tendência de ALTA, abaixo da média 8 no semanal que o mercado está em tendência de BAIXA
RSI maior que 60% o mercado está em ALTA
RSI maior que 40% e menor 60% o mercado está em ACUMULAÇÃO
RSI menor que 40% o mercado está em BAIXA
A média 8 semanal está representadas nas cores VERDE (Tendência de Alta) e VERMELHA (Tendência de Baixa).
A média 21 semanal está representada na cor laranja claro
A média 56 semanal está representada na cor roxa claro
O cruzamento das médias 8 e 21 semanal esta representado com uma cruz VERDE (Tendência de ALTA) e VERMELHA (Tendência de BAIXA) - este sinal esta desativado no gráfico mas você pode ativá-lo clicando no setup do gráfico
█ FUNÇÕES UTILIZADAS
(1) Média 8, 21 e 56 no Semanal - mostra a média 8, 21, e 56 no gráfico
(2) Cruzamento das médias 8 e 21 Semanal - não está ativo mas você pode ativá-lo
(3) Cálculo do RSI
(4) barcolor() - marca a vela (Candle) com a cor verde (Mercado em Alta) e a cor vermelha (Mercado em Baixa)
(5) alertcondition () - você pode ativar o alerta no Tradingview
█ PONTOS DE COMPRA E VENDA - prováveis pontos
A indicação da posição de COMPRA é apresentada por uma seta na cor verde apontada para cima e a posição de VENDA por uma seta na cor vermelha apontada para baixo. As indicações de compra e venda são obtidas a partir da divergência na tendência do mercado.
█ OBRIGADO PARA
PineCoders por tudo o que fazem, todas as ferramentas e ajuda que fornecem, e seu envolvimento em fazer uma comunidade melhor. Todos os PineCoders, Pine Pros e Pine Wizards, pessoas que compartilham seu trabalho e conhecimento por causa dele e ajudando os outros, estou muito feliz e muito grato.
█ NOTA
Este indicador não é uma recomendação de compra e venda ele indica os pontos mais prováveis de compra e venda. Toda decisão de compra e venda é de sua responsabilidade
Rational Root TimelineThis script is based on RationalRoot's spiral btc chart. Since I dont know how to make spirals in pinescript I just flattened it out into a readable chart. All this shows is the log price for btc over a 4 year timeframe. I found it interesting how well things line up with this idea. The white circle just shows the current day price location. You need to be on the Daily timeframe to view this correctly.
Bitcoin Risk Indicator (Daily)This indicator calculates the risk of buying and selling BTC, if the risk is reaching the upper boundaries of 0.8 to 1 then BTC is either getting close to a market cycle top or is far over extended.
If BTC is below 0.4 then this inidicates the least amount of Risk to buy BTC.
Pi Cycle Bitcoin High/LowThe theory that a Pi Cycle Top might exist in the Bitcoin price action isn't new, but recently I found someone who had done the math on developing a Pi Cycle Low indicator, also using the crosses of moving averages.
The Pi Cycle Top uses the 2x350 Daily MA and the 111 Daily MA
The Pi Cycle Bottom uses the 0.745x471 Daily MA and the 150 Daily EMA
Note: a Signal of "top" doesn't necessarily mean "THE top" of a Bull Run - in 2013 there were two Top Signals, but in 2017 there was just one. There has been one in 2021, but on-chain analysis and macro TA is pointing to there possibly being another one in 2021 or early 2022. Regardless, combining the two indicators (Top and Bottom) means the MAs that converge first will likely give good indication of which will cross first in the next few years.
There is as much of a chance of two "bottom" indications occurring in a single bear market, as nearly happened in the Liquidity Crisis in March 2020.
Complete MA DivisionThis indicator simply divides two moving averages and calculates the slope of the resulting curve to show when an asset's momentum is slowing down. The original idea was in a recent youtube video by Ben Cowen . His indicator didn't show the complete history of the moving average, so I wanted to try a little trick to get the moving averages at the beginning of time even when using a large moving average period. I accomplished this by counting the number off current bars using the cum() function. After the count is hit, the period will be constant.
Changing the curve smoothing will smooth the actual curve. Both moving average periods should be divisible by the curve smoothing.
Changing the slope smoothness will dictate when the slope is starting to slow down. Keep this high to break through the noise.
Start of Red = Good time to sell
Start of Green = Good time to buy
There is a weird issue with the smoothness of the line so just keep your moving averages divisible by the curve smoothing. I couldn't figure that issue out yet.
Multiple Anchored VWAP [Morty]The Anchored VWAP (aVWAP) indicator ties VWAP calculations to a specific price bar chosen by the trader. Anchored VWAP allows you to specify the price bar where calculations begin, making it easy to see whether the bulls or bears have been in charge since a very specific point in time. The starting price bar that is chosen generally marks a shift in market psychology, such as a significant high or low, earnings, news, or other announcements. The Anchored VWAP line is charted using price and volume data from that significant event onward.
This indicator plots up to 4 aVWAP lines in the chart.
Features:
- plot up to 4 aVWAP lines
- custom start date of aVWAP
- custom line color
- optional label of starting price bar
- optional custom resolution
----------------------------------------------------
锚定VWAP(aVWAP)指标将VWAP的计算与交易者选择的特定价格柱联系起来。锚定VWAP允许你指定计算开始的价格柱,使你很容易看到自一个非常具体的时间点以来,是牛市还是熊市在起作用。所选择的起始价格条通常标志着市场心理的转变,如一个重要的高点或低点、收益、新闻或其他公告。锚定VWAP线是使用从该重大事件开始的价格和成交量数据绘制的。
该指标在图表中最多绘制了4条aVWAP线。
特色:
- 绘制多达4条aVWAP线
- 自定义aVWAP的开始日期
- 自定义线的颜色
- 可选的起始价格条的标签
- 可选的自定义分辨率
Current to BTC [Morty]This indicator helps you find strong bull altcoin, it shows the ratio of the current symbol to BTC.
Donchian Channels help to identify trends.
Alts Bull coins:
When BTC goes sideway, they pump first.
Alts Bear coins:
When BTC goes sideway, they move sideway.
When BTC goes down, they go down harder.
{Gunzo} Stock to Flow (Gold, Silver, Dollar, Bitcoin)This indicator displays the Stock to Flow (S2F) ratio for popular commodities (Gold, Silver, Dollar, Euro, Bitcoin, Ethereum) in order to
compare them and determine which ones could be a good Store of Value (SoV).
OVERVIEW :
Stock to Flow is a popular indicator used to predict commodities scarcity. It evaluates the total stock of a commodity against the total amount that can be produced during a year. This model supposes that if scarcity is increasing, the price is going to increase.
This model has been used over the last years on Bitcoin to determine if the asset was undervalued or overvalued, and even make prediction models on the future price.
This script is going to focus on the Stock to Flow ratio (total stock/amount produced) to compare the following assets over time :
Mining resources (mined) for Gold and Silver
Cryptos assets (mined) for Bitcoin and Ethereum
FIAT currencies (banknotes printed) for Dollar and Euro
CALCULATION :
The calculation of the Stock to Flow ratio evaluates the total stock of a commodity produced against the production made for a specific year. The data is calculated on a yearly basis, then interpolated to get monthly or daily values.
DATA ORIGIN :
The main information needed to calculate the Stock to Flow ratio is the "yearly production" of a commodity. I tried to retrieve that information from the most reliable sources :
for Gold from research on www.gold.org
for Silver from research on www.silverinstitute.org
for Ethereum from research on etherscan.io
for Bitcoin from data source "QUANDL:BCHAIN/TOTBC" from www.quandl.com
for Dollar from research on www.federalreserve.gov
for Euro from research on www.ecb.europa.eu
SETTINGS :
Smoothing for interpolated data : Smoothing factor for assets that are calculated yearly and then interpolated (Gold, Silver, Dollar, Euro, and Ethereum)
Smoothing for non interpolated data : Smoothing factor for assets that are calculated daily and not interpolated (Bitcoin)
Display asset names : Display assets names in a colored rectangle on the right side of the chart
Display asset values : Display assets Stock to Flow ratio in a colored rectangle on the right side of the chart
Display key events for assets : Display important events for the assets at the bottom of the chart using the same color as the assets lines (for example Orange diamond is a Bitcoin halving). Please refer to the script code for the details of all events.
USAGE :
This script can be used on any asset available on TradingView as the data used is either static or external.
However I recommend using it the Gold asset from currency.com as the depth of the chart will be bigger (since 1980s).
It is recommended to used this script on the monthly timeframe as the chart data is calculated yearly and then interpolated.
Premium Rolling APY CalculatorThis script can see the rolling APY of future premiums calculated based on the remain days to expire date.
By default you can see the rolling APY for FTX BTC0924, and APY for BTC1231. You can also change the symbol from chart settings to whatever you need and still calculate in the same way.
PI_GRM Bitcoin Golden Ratio Multipier [wozdux]Golden Ratio Multiplier
Formula GRM=MA350(BTC USD) * (1.6;2;3;5;8;13;21)
The multiplier examines medium-and long-term time cycles.
For this, a multiple of 350 MA is used to determine the areas of potential resistance.
Additionally, fibo levels from the main line.
version 2021 year modification
3x EMA fast, 3 x MA slow + BB + PsarThis is a trend system which combines multiple fast EMA + mulitple slower SMA together with bollinger band channel and PSAR.
For entry rules the ones that I use are:
Long
We are inside BB channel, psar is ascending, and our close is above all moving averages or below all EMA'S + 1 SMA
WE can exit either when our close is below all EMA's or when PSAR is descending or when we hit upper/lower BB levels
Short
We are inside BB channel, psar is descnending, and our close is below all moving averages or below all EMA's + 1 SMA
WE can exit either when our close is above all EMA's or when PSAR is ascending or when we hit upper/lower BB levels
If you have any questions, let me know
Aggregated Volume Colored (Bitcoin, ETH, Altcoins, everything)BITSTAMP:BTCUSD
This indicator aggregates trading volume data of up to 10 symbols and can display the individual data by color.
It is useful for assets which are traded on multiple exchanges, like cryptocurrencies, commodities, forex and derivatives showing you what is happening across the market and on the individual exchanges to give you beter insights.
You can change the symbols from which the indicator gathers data in the settings under inputs, just like the colors, and you can add a moving average.
By default trading volume is aggregated from the following symbols:
Binance, BTC /USDT
Binance, BTC /BUSD
Bingbon, BTC /USD
Huobi, BTC /USDT
OkeX, BTC /USDT
Coinbase, BTC /USD
Bitfinex, BTC /USD
Gemini, BTC /USD
Kraken, XBT/USD
Bitstamp, BTC /USD
[BCT] Can BTC be predicted or is it purely random?Variance Ratio**This indicator can be applied to the ticker of your choice (not just BTC)**
Markets are said to be "efficient". An efficient market is by definition unpredictable - no matter the amount of ML, computation, or indicators thrown at it. In particular, in an efficient market, TA will not be of help.
An illustration of efficient markets is the WSJ's longstanding monkey vs. human contest:Blindfolded Monkey Beats Humans With Stock Picks, granted there are several flaws to it.
BTC is a relatively new market. New markets are typically highly inefficient (easier to make money) and become more and more efficient over time (harder to make money). How much more efficient is BTC becoming?
We apply the Variance Ratio method and apply it to BTC.
BACKGROUND ON THE VARIANCE RATIO METHOD
Based on 1988 MacKinlay's seminal paper "Stock Market Prices do not Follow a Random Walk", the idea is to exploit a phenomenon called "variance scaling".
For those keen on looking into the math, the short version of it is under the assumption of iid (random walk) we have the following:
H0: Var(Sum(returns over K bars))=Sum(Var(returns over 1 bar))=k*Var(return over 1 bar)
We look to reject or not H0 depending on the observations.
In this script, we compare the variance of the (log) returns for the chart selected between:
(1) The (average) variance over k bars (call this Vk)
(2) The (average) variance over 1 bar (call this V1)
H0 simply says that Vk=k*V1 if the stock follows a random walk.
We compute the Variance Ratio VR(k)=Variance(returns over k bar)/(Sum(Var(returns over 1 bar)))-1
We then compute the associated Z-score which we chart out for a configurable k number of bars.
HOW TO INTERPRET THE CHART
The line drawn is the Z-Score for VR(k). It represents the number of standard deviations of VR(k) from 0 - the further out, the less random.
- If the line is close / hovers around 0, the ticker appears to follow a random walk (i.e. may not be predictable)
- If the line is consistently > 2 or <-2, the ticker likely does not follow a random walk (i.e. may have predictable features)
- If the line is positive, it means that the Variance on the k bars is larger than the variance on 1 bar (more variance on longer timeframes)
- If the line is negative, it means that the Variance on the k bars is smaller than the variance on 1 bar (more variance on smaller timeframes)
USE CASES
- Identify timeframes where you won't be able to make money
- Identify whether a stock cannot be predicted (forget about TA, indicators etc. -- a random walk is not predictable)
- Identify whether a stock is becoming less and less predictable (Z-score amplitude will decrease over time)
FEATURES
- select the number of K bar to compare vs. 1 bar (default = 16) - ideally a power of 2 but any other number will work. The chart is based off this selection
- select the lookback period for the analysis (500 bars by default)
- select the source to analyze (default = close, but you may select other inputs to calculate the returns from)
- results form the statistical tests on different K's in the table on the right/bottom side of the chart (H0 rejected = not random walk; H0 not rejected = it essentially looks rather random and we can't conclude that it's not a random walk)
COMMENTARY ON BTC
- It appears BTC's absolute value of the ZScore on the Variance Ratio is declining year after year - corroborating an increasingly efficient market as new participants join.
- However, we can still detect a fair amount of potential inefficiency using this simple test.
As usual, this is not investment advice. DYOR.
With love,
🐵BCT🐵
Tether DataCONCEPT
A toolkit with a bunch of different metrics for the widely used stablecoin called tether (USDT).
It's very easy to use, just select in the settings what data you want to look at.
FEATURES
Value index.
The "index" setting shows a volume weighted index of different exchanges to give the most accurate average USDT/USD price.
Market cap.
Very straight forward. This shows you the current tether market cap.
Market cap changes.
This gives you a better visualization of increases (or sometimes decreases) in the tether market cap.
Dominance
This shows tether dominance in the market, same concept as bitcoin dominance.
It compares the USDT mcap to the total crypto mcap and then shows the dominance percentage wise.
It's considered bearish when USDT dominance goes up because it means people want to get out of coins and flee to something more stable.
BTC buying power.
This compares the tether market cap and compares it to the bitcoin market cap to give you an idea of how much BTC buying power has in theory.
The higher this ratio the more bitcoin could be bought with all the tether available.
You'll notice that this often looks very similar to the dominance metric.
Exchanges.
The tether price of multiple exchanges.
In the settings you can select which ones you want the indicator to show.
TRADING
I can't tell you exactly how useful this indicator is for trading, I don't have strong opinions on it.
Some people think a high tether price and dominance is bearish.
Some think the market cap increasing (because of new prints) is bullish.
The buying power metric can give you an idea of how much dry powder there is in the market.
The exchanges metric shows you where you can get the cheapest USDT...
Just some ideas.
This indicator is free so if you add it to your favourites you can start using it immediately (it's possible that you have to refresh Tradingview before it actually works).
Source code is visible for learning purposes.
Cheers.