Conversion of Delta Volume
Forums › ProRealTime English forum › ProBuilder support › Conversion of Delta Volume
- This topic has 8 replies, 4 voices, and was last updated 2 years ago by ullle73.
-
-
06/29/2022 at 12:16 PM #196370
Can anyone help converting the code below ? Thanks
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © LonesomeTheBlue//@version=4
study(“Cumulative Delta Volume”, “CDV”)
linestyle = input(defval = ‘Candle’, title = “Style”, options = [‘Candle’, ‘Line’])
hacandle = input(defval = true, title = “Heikin Ashi Candles?”)
showma1 = input(defval = false, title = “SMA 1”, inline = “ma1”)
ma1len = input(defval = 50, title = “”, minval = 1, inline = “ma1”)
ma1col = input(defval = color.lime, title = “”, inline = “ma1”)
showma2 = input(defval = false, title = “SMA 2”, inline = “ma2”)
ma2len = input(defval = 200, title = “”, minval = 1, inline = “ma2”)
ma2col = input(defval = color.red, title = “”, inline = “ma2”)
showema1 = input(defval = false, title = “EMA 1”, inline = “ema1”)
ema1len = input(defval = 50, title = “”, minval = 1, inline = “ema1”)
ema1col = input(defval = color.lime, title = “”, inline = “ema1”)
showema2 = input(defval = false, title = “EMA 2”, inline = “ema2”)
ema2len = input(defval = 200, title = “”, minval = 1, inline = “ema2”)
ema2col = input(defval = color.red, title = “”, inline = “ema2”)
colorup = input(defval = color.lime, title = “Body”, inline = “bcol”)
colordown = input(defval = color.red, title = “”, inline = “bcol”)
bcolup = input(defval = #74e05e, title = “Border”, inline = “bocol”)
bcoldown = input(defval = #ffad7d, title = “”, inline = “bocol”)
wcolup = input(defval = #b5b5b8, title = “Wicks”, inline = “wcol”)
wcoldown = input(defval = #b5b5b8, title = “”, inline = “wcol”)tw = high – max(open, close)
bw = min(open, close) – low
body = abs(close – open)_rate(cond) =>
ret = 0.5 * (tw + bw + (cond ? 2 * body : 0)) / (tw + bw + body)
ret := nz(ret) == 0 ? 0.5 : ret
retdeltaup = volume * _rate(open <= close)
deltadown = volume * _rate(open > close)
delta = close >= open ? deltaup : -deltadown
cumdelta = cum(delta)
float ctl = na
float o = na
float h = na
float l = na
float c = na
if linestyle == ‘Candle’
o := cumdelta[1]
h := max(cumdelta, cumdelta[1])
l := min(cumdelta, cumdelta[1])
c := cumdelta
ctl
else
ctl := cumdeltaplot(ctl, title = “CDV Line”, color = color.blue, linewidth = 2)
float haclose = na
float haopen = na
float hahigh = na
float halow = na
haclose := (o + h + l + c) / 4
haopen := na(haopen[1]) ? (o + c) / 2 : (haopen[1] + haclose[1]) / 2
hahigh := max(h, max(haopen, haclose))
halow := min(l, min(haopen, haclose))c_ = hacandle ? haclose : c
o_ = hacandle ? haopen : o
h_ = hacandle ? hahigh : h
l_ = hacandle ? halow : lplotcandle(o_, h_, l_, c_, title=’CDV Candles’, color = o_ <= c_ ? colorup : colordown, bordercolor = o_ <= c_ ? bcolup : bcoldown, wickcolor = o_ <= c_ ? bcolup : bcoldown)
plot(showma1 and linestyle == “Candle” ? sma(c_, ma1len) : na, title = “SMA 1”, color = ma1col)
plot(showma2 and linestyle == “Candle” ? sma(c_, ma2len) : na, title = “SMA 2”, color = ma2col)
plot(showema1 and linestyle == “Candle” ? ema(c_, ema1len) : na, title = “EMA 1”, color = ema1col)
plot(showema2 and linestyle == “Candle” ? ema(c_, ema2len) : na, title = “EMA 2”, color = ema2col)06/29/2022 at 12:52 PM #196372if it’s too long, can you please convert only the following part? Thanks a lot!
_rate(cond) =>
ret = 0.5 * (tw + bw + (cond ? 2 * body : 0)) / (tw + bw + body)
ret := nz(ret) == 0 ? 0.5 : ret
retdeltaup = volume * _rate(open <= close)
deltadown = volume * _rate(open > close)
delta = close >= open ? deltaup : -deltadown
cumdelta = cum(delta)
float ctl = na
float o = na
float h = na
float l = na
float c = na
if linestyle == ‘Candle’
o := cumdelta[1]
h := max(cumdelta, cumdelta[1])
l := min(cumdelta, cumdelta[1])
c := cumdelta
ctl
else
ctl := cumdeltaplot(ctl, title = “CDV Line”, color = color.blue, linewidth = 2)
06/29/2022 at 3:02 PM #19637706/29/2022 at 3:05 PM #19637807/06/2022 at 1:02 PM #196884Pretty close, without the HH candles:
var
ctl,
o, h , l, c, tw,
body, rateup, ratedown, ku, kd, bw, k2,
deltaup, deltadown, cumdelta, deltaa: float;begin
tw := high – f_max(open, close) ;
bw := f_min(open, close) – low ;
body := abs(close – open) ;if open <= close then ku := 2*body
else ku:=0;
rateup := 0.5 * (tw + bw + ku) / (tw + bw + body) ;
if rateup = 0 then rateup := 0.5
else rateup:=rateup;if open > close then kd := 2*body
else kd:=0;
ratedown := 0.5 * (tw + bw + kd) / (tw + bw + body) ;
if ratedown = 0 then ratedown:= 0.5 else ratedown:=ratedown;deltaup := quantity * rateup ;
deltadown := quantity * ratedown ;
if close >= open then deltaa := deltaup
else deltaa := -deltadown;
cumdelta := cum(deltaa);
ctl := F_Smoother( cumdelta);plot(ctl);
end07/06/2022 at 2:46 PM #196892Here is a code translated from different versions you shared in the thread for the Cumulative Volume Delta:
12345678910111213141516171819202122tw = high - max(open, close)bw = min(open, close) - lowbody = abs(close - open)if open<=close thendeltaup = 0.5 * (tw + bw + (2 * body)) / (tw + bw + body)endifif open > close thendeltadown = 0.5 * (tw + bw + (2 * body)) / (tw + bw + body)endifif close >= open thendelta= deltaupelsedelta= -deltadownendifcumdelta = cumsum(delta)drawcandle(cumdelta[1],max(cumdelta, cumdelta[1]),min(cumdelta, cumdelta[1]),cumdelta)return07/06/2022 at 3:08 PM #196897Sorry there was no volumes in the previous version, correct one is below:
123456789101112131415161718192021222324tw = high - max(open, close)bw = min(open, close) - lowbody = abs(close - open)if volume thenif open<=close thendeltaup = volume*(0.5 * (tw + bw + (2 * body)) / (tw + bw + body))endifif open > close thendeltadown = volume*(0.5 * (tw + bw + (2 * body)) / (tw + bw + body))endifendifif close >= open thendelta= deltaupelsedelta= -deltadownendifcumdelta = cumsum(delta)drawcandle(cumdelta[1],max(cumdelta, cumdelta[1]),min(cumdelta, cumdelta[1]),cumdelta)return1 user thanked author for this post.
07/10/2022 at 8:59 PM #19708707/10/2022 at 9:00 PM #197088 -
AuthorPosts
Find exclusive trading pro-tools on