Diabolicus

BTC Volume Index 1.1 beta [Dia]

Indicator calculates total volume across multiple bitcoin exchanges. The influence of each exchange can be adjusted seperately.
0 fee exchanges default to 50%
0 fee futures default to 10%
Define custom lookback periods for price breakout detection.
Look for low-volume price reversals in those candles immediately following high volume peaks. The lower the volume and the greater the open/close price difference of that 2nd candle is compared to the previous one, the higher the likelihood of a local top/bottom being in.

Note:
Bar highlighting is still experimental, future versions will include better filtering options.
Use for confirmation only, not as standalone trading system.
Script open-source

Nello spirito di condivisione promosso da TradingView, l'autore (al quale vanno i nostri ringraziamenti) ha deciso di pubblicare questo script in modalità open-source, così che chiunque possa comprenderlo e testarlo. Puoi utilizzarlo gratuitamente, ma il riutilizzo del codice è subordinato al rispetto del Regolamento. Per aggiungerlo al grafico, mettilo tra i preferiti.

Declinazione di responsabilità

Le informazioni ed i contenuti pubblicati non costituiscono in alcun modo una sollecitazione ad investire o ad operare nei mercati finanziari. Non sono inoltre fornite o supportate da TradingView. Maggiori dettagli nelle Condizioni d'uso.

Vuoi usare questo script sui tuoi grafici?
study(title="BTC Volume Index 1.1 [Dia]", shorttitle="BTCVx_Dia", overlay=false)
//
// 150911 v1.0 
// calculate total volume across exchanges, influence of exchanges weighted individually
// 0 fee exchanges default to 50%
// 0 fee futures default to 10%
// 150915 v1.1
// define custom long / short lookback periods to identify peak buy / sell activity
// light green / red = above average volume & price above / below short lookback period
// dark green / red =  above average volume & price above / below long lookback period
// look for price reversals following high volume peaks
//
slow_ma = input(100,title="Volume Slow SMA")
fast_ma = input(3,title="Volume Fast EMA")
long_lb = input(10,title="Long Lookback Period")
short_lb = input(5,title="Short Lookback Period")
lb = input(true,title="Highlight High Volume Peaks?")
s_okcs = input(defval=0.5,minval=0,maxval=1,step=0.1, title="Include OKCoin USD Spot?")
s_okc1 = input(defval=0.1,minval=0,maxval=1,step=0.1, title="Include OKCoin USD 1W Future?")
s_okc2 = input(defval=0.1,minval=0,maxval=1,step=0.1, title="Include OKCoin USD 2W Future?")
s_okc3 = input(defval=0.1,minval=0,maxval=1,step=0.1, title="Include OKCoin USD 3M Future?")
s_okccs = input(defval=0.5,minval=0,maxval=1,step=0.1, title="Include OKCoin CNY Spot?")
s_btcchina = input(defval=0.5,minval=0,maxval=1,step=0.1, title="Include BTCCHina CNY?")
s_huobi = input(defval=0.5,minval=0,maxval=1,step=0.1, title="Include Huobi CNY?")
s_stamp = input(defval=1,minval=0,maxval=1,step=0.1, title="Include Bitstamp USD?")
s_bfx = input(defval=1,minval=0,maxval=1,step=0.1, title="Include Bitfinex USD?")
s_btce = input(defval=1,minval=0,maxval=1,step=0.1, title="Include BTC-E USD?")
s_btcee = input(defval=1,minval=0,maxval=1,step=0.1, title="Include BTC-E EUR?")
s_kraken = input(defval=1,minval=0,maxval=1,step=0.1, title="Include Kraken EUR?")

sym_v(s)=>security(s,period,volume)
sym_h(s)=>security(s,period,high)
sym_l(s)=>security(s,period,low)

// Exchange pairs must be normalized to USD, so multiply by EURUSD or divide by USDCNH respectively
okc_sv = sym_v("OKCOIN:BTCUSD")
okc_1v = sym_v("OKCOIN:BTCUSD1W")
okc_2v = sym_v("OKCOIN:BTCUSD2W")
okc_3v = sym_v("OKCOIN:BTCUSD3M")
okcc_sv = sym_v("OKCOIN:BTCCNY")
btcchina_sv = sym_v("BTCCHINA:BTCCNY")
huobi_sv = sym_v("HUOBI:BTCCNY")
stamp_sv = sym_v("BITSTAMP:BTCUSD")
bfx_sv = sym_v("BITFINEX:BTCUSD")
btce_sv = sym_v("BTCE:BTCUSD")
btcee_sv = sym_v("BTCE:BTCEUR")
kraken_sv = sym_v("KRAKEN:XBTEUR")

//calculate total volume
total_v =(okc_sv*s_okcs+okc_1v*s_okc1+okc_2v*s_okc2+okc_3v*s_okc3+okcc_sv*s_okccs+btcchina_sv*s_btcchina+huobi_sv*s_huobi+stamp_sv*s_stamp+bfx_sv*s_bfx+btce_sv*s_btce+btcee_sv*s_btcee+kraken_sv*s_kraken)

okc_sh = sym_h("OKCOIN:BTCUSD")
okc_1h = sym_h("OKCOIN:BTCUSD1W")
okc_2h = sym_h("OKCOIN:BTCUSD2W")
okc_3h = sym_h("OKCOIN:BTCUSD3M")
okcc_sh = sym_h("OKCOIN:BTCCNY")
btcchina_sh = sym_h("BTCCHINA:BTCCNY")
huobi_sh = sym_h("HUOBI:BTCCNY")
stamp_sh = sym_h("BITSTAMP:BTCUSD")
bfx_sh = sym_h("BITFINEX:BTCUSD")
btce_sh = sym_h("BTCE:BTCUSD")
btcee_sh = sym_h("BTCE:BTCEUR")
kraken_sh = sym_h("KRAKEN:XBTEUR")

//calculate mean high
mean_h =(okc_sh*s_okcs+okc_1h*s_okc1+okc_2h*s_okc2+okc_3h*s_okc3+okcc_sh*s_okccs+btcchina_sh*s_btcchina+huobi_sh*s_huobi+stamp_sh*s_stamp+bfx_sh*s_bfx+btce_sh*s_btce+btcee_sh*s_btcee+kraken_sh*s_kraken)

okc_sl = sym_l("OKCOIN:BTCUSD")
okc_1l = sym_l("OKCOIN:BTCUSD1W")
okc_2l = sym_l("OKCOIN:BTCUSD2W")
okc_3l = sym_l("OKCOIN:BTCUSD3M")
okcc_sl = sym_l("OKCOIN:BTCCNY")
btcchina_sl = sym_l("BTCCHINA:BTCCNY")
huobi_sl = sym_l("HUOBI:BTCCNY")
stamp_sl = sym_l("BITSTAMP:BTCUSD")
bfx_sl = sym_l("BITFINEX:BTCUSD")
btce_sl = sym_l("BTCE:BTCUSD")
btcee_sl = sym_l("BTCE:BTCEUR")
kraken_sl = sym_l("KRAKEN:XBTEUR")

//calculate mean low
mean_l =(okc_sl*s_okcs+okc_1l*s_okc1+okc_2l*s_okc2+okc_3l*s_okc3+okcc_sl*s_okccs+btcchina_sl*s_btcchina+huobi_sl*s_huobi+stamp_sl*s_stamp+bfx_sl*s_bfx+btce_sl*s_btce+btcee_sl*s_btcee+kraken_sl*s_kraken)

// logic
range = mean_h-mean_l
long_lb_h = highest(mean_h[1],long_lb)
long_lb_l = lowest(mean_l[1],long_lb)
long_highpercent = mean_h > long_lb_h ? lb*(mean_h-long_lb_h)/range : 0
long_lowpercent  = mean_l < long_lb_l ? lb*(long_lb_l-mean_l)/range : 0
short_lb_h = highest(mean_h[1],short_lb)
short_lb_l = lowest(mean_l[1],short_lb)
short_highpercent = mean_h > short_lb_h ? lb*(mean_h-short_lb_h)/range : 0
short_lowpercent  = mean_l < short_lb_l ? lb*(short_lb_l-mean_l)/range : 0

// plot values
total_vol = plot(total_v,color=#FFAA22,style=columns,transp=20)
short_low_vol  = plot(-total_v*short_lowpercent,color=#FF4444,style=columns,transp=20)
short_high_vol = plot(total_v*short_highpercent,color=#44FF44,style=columns,transp=20)
long_low_vol  = plot(-total_v*long_lowpercent,color=red,style=columns,transp=20)
long_high_vol = plot(total_v*long_highpercent,color=green,style=columns,transp=20)
barcolor=barcolor(total_v*long_highpercent > sma(total_v,slow_ma) ? green : total_v*long_lowpercent > sma(total_v,slow_ma) ? red : na)
total_vol_fast_ma = plot(ema(total_v,fast_ma),color=#FF0000,linewidth=1,style=area,transp=90)
total_vol_slow_ma = plot(sma(total_v,slow_ma),color=#0000AA,linewidth=1)