Conversion of Delta Volume

Forums ProRealTime English forum ProBuilder support Conversion of Delta Volume

Viewing 9 posts - 1 through 9 (of 9 total)
  • #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
    ret

    deltaup = 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 := cumdelta

    plot(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 : l

    plotcandle(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)

    #196372

    if 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
    ret

    deltaup = 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 := cumdelta

    plot(ctl, title = “CDV Line”, color = color.blue, linewidth = 2)

    #196377

    Please post screenshots of how it looks, it fastened the comprehension of the code and its translation.

    1 user thanked author for this post.
    #196378

    Please see image below. Thanks

     

    #196884

    Pretty 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);
    end

    #196892

    Here is a code translated from different versions you shared in the thread for the Cumulative Volume Delta:

     

    #196897

    Sorry there was no volumes in the previous version, correct one is below:

     

    1 user thanked author for this post.
    #197087

    nicholas, is it possible to add to this indicator divergence from pice and delta? see pic 🙂

    thanks

    #197088

    weird, i did attach the picture, but it did not upload, anyway, here it is again:

Viewing 9 posts - 1 through 9 (of 9 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login