Help with VIDYA and DARVAS box

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #177135 quote
    njjstocksnjjstocks
    Participant
    New

    Hi All,

    I’m new to prorealtime and am hoping for someone who can help me translate the following pine script into an indicator that works in PRT

    Many thanks

    NJ

    //@version=4

    study(“VIDYA”, overlay=true)
    src = input(ohlc4, title=”Source”)
    pds = input(6,”Length”)
    fixCMO = input(title=”Fixed CMO Length (9)?”, type=input.bool, defval=false)
    select = input(title=”Calculation Method: CMO/StDev?”, type=input.bool, defval=true)
    boxp = input(5, “Box Length”)

    // Calculate VIDYA
    alpha = 2/(pds+1)

    momm = change(src)
    f1(m) => m >= 0.0 ? m : 0.0
    f2(m) => m >= 0.0 ? 0.0 : -m
    m1 = f1(momm)
    m2 = f2(momm)
    sm1 = fixCMO ? sum(m1, 9) : sum(m1, pds)
    sm2 = fixCMO ? sum(m2, 9) : sum(m2, pds)
    percent(nom, div) => 100 * nom / div
    chandeMO = nz(percent(sm1-sm2, sm1+sm2))
    k= select ? abs(chandeMO)/100 : stdev(src,pds)
    VIDYA=0.0
    VIDYA:= nz(alpha*k*src)+(1-alpha*k)*nz(VIDYA[1])
    col12 = VIDYA > VIDYA[1]
    col32 = VIDYA < VIDYA[1]
    color2 = col12 ? #001AE1 : col32 ? color.red : color.blue
    plot(VIDYA,”VAR”,color2,2)

    alertcondition(cross(VIDYA,VIDYA[1]), title=”Color ALARM!”, message=”VIDYA has changed color!”)

     

    //Calculate Darvas boxex

    LL = lowest(low, boxp)
    k1 = highest(high, boxp)
    k2 = highest(high, boxp – 1)
    k3 = highest(high, boxp – 2)

    NH = valuewhen(high > k1[1], high, 0)
    box1 = k3 < k2
    TopBox = valuewhen(barssince(high > k1[1]) == boxp – 2 and box1, NH, 0)
    BottomBox = valuewhen(barssince(high > k1[1]) == boxp – 2 and box1, LL, 0)

     

    draw_box(left, top, right, bottom) =>
    color = close > top ? color.green : close < bottom ? color.red : color.yellow
    box = box.new(left, top, right, bottom)
    box.set_border_color(box, color)
    box.set_bgcolor(box, color.rgb(color.r(color), color.g(color), color.b(color), 95))
    box

    var Left = 0

    if TopBox == 0 or TopBox != TopBox[1] or BottomBox != BottomBox[1]
    Left := bar_index
    else
    Left := Left[1]

    if TopBox != TopBox[1] or BottomBox != BottomBox[1] or barstate.islast
    draw_box(Left[1], TopBox[1], barstate.islast ? bar_index : bar_index[1], BottomBox[1])

    alertcondition(close > TopBox, “Darvas box break to the upside”, “Darvas box break to the upside”)
    alertcondition(close < BottomBox, “Darvas box break to the downside”, “Darvas box break to the downside”)

    // plot 44 moving average
    len1 = input(44, minval=1, title=”SMA #1″)
    src1 = input(close, title=”SMA Source #1″)
    out1 = sma(src1, len1)
    plot(out1, title=”SMA #1″)

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Help with VIDYA and DARVAS box


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
njjstocks @njjstocks Participant
Summary

This topic contains 1 voice and has 0 replies.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 09/09/2021
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...