DTR vs ATR and RVOL Percentage Screener or Indicator

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #196730 quote
    JohnTradeJohnTrade
    Participant
    New

    Hello ,

    I am tyring to see if it’s possible have a screener to see the percentage of ATR done for the day (14 periods) and RVOL done for the day (10 periods).

    This would give us an idea how much more juice left in the trade from a per point perspective and how much volume is there to achive that objective.

    Here is the link https://www.tradingview.com/script/JmoFByTz-DTR-vs-ATR-w-RVol/

    //@version=4
    // © ssksubam
    // Relative Volume in Percentage (%) label

    study(“DTR vs ATR”, “DTR vs ATR”, true, scale = scale.none)

    var string GP1 = “Input Data”
    atrLen = input(defval=14, title=”ATR Length”, type=input.integer, group = GP1)
    atrSmooth = input(title=”Smoothing Type”, type=input.string, defval=”RMA”, options=[“EMA”, “RMA”, “SMA”, “WMA”], group = GP1)
    vol_len = input(title=”Relative Volume Length”, defval=20, group = GP1)

    var string GP2 = “Display”
    txt_sizeopt = input(title=”Text Size”, defval=”auto”, inline = “10”, options = [“auto”, “tiny”, “small”, “normal”, “large”, “huge”], group = GP2)
    txt_size = (txt_sizeopt == “auto”) ? size.auto : (txt_sizeopt == “tiny”) ? size.tiny : (txt_sizeopt == “small”) ? size.small : (txt_sizeopt == “normal”) ? size.normal : (txt_sizeopt == “large”) ? size.large : size.huge
    string i_tableYpos = input(“top”, “Panel position”, inline = “11”, options = [“top”, “middle”, “bottom”], group = GP2)
    string i_tableXpos = input(“right”, “”, inline = “11”, options = [“left”, “center”, “right”], group = GP2)
    show_header = input(true, title=”Show Table Header”, type=input.bool, inline = “12”, group = GP2)
    color header_color = input(#ba68c8, “”, inline = “12”, group = GP2)

    var table dtrDisplay = table.new(i_tableYpos + “_” + i_tableXpos, 2, 2, border_width = 1, border_color=color.white)

    Round( _val, _decimals) =>
    // Rounds _val to _decimals places.
    _p = pow(10,_decimals)
    round(abs(_val)*_p)/_p*sign(_val)

    format_text(str) =>
    str + “\n”

    t = tickerid(syminfo.prefix, syminfo.ticker)

    f_AvgTrueRange() =>
    float result = 0
    if (atrSmooth == “EMA”)
    result := ema(tr, atrLen)
    if (atrSmooth == “RMA”)
    result := rma(tr, atrLen)
    if (atrSmooth == “SMA”)
    result := sma(tr, atrLen)
    if (atrSmooth == “WMA”)
    result := wma(tr, atrLen)
    result

    timeFrame = timeframe.isweekly ? “W” : timeframe.ismonthly ? “M” : “D”

    avg_atr = security(t, timeFrame, f_AvgTrueRange(), lookahead = barmerge.lookahead_on)
    daily_atr = security(t, timeFrame, high) – security(t, timeFrame, low)
    dtrpct = round((daily_atr / avg_atr ) * 100)

    today_vol = security(t, timeFrame, volume)
    yday_vol = security(t, timeFrame, volume[1])
    avg_vol = security(t, timeFrame, sma(yday_vol, vol_len))
    volpct = round((today_vol / avg_vol ) * 100)

    final_atr = format_text(tostring(Round(daily_atr,2)) + ” vs ” + tostring(Round(avg_atr,2)) + ” => ” + tostring(dtrpct) +”%”)
    final_rvol = format_text(tostring(volpct) +”%”)

    color_atr = (dtrpct <= 70) ? color.new(color.green, 0) : ((dtrpct >= 90) ) ? color.new(color.red, 0) : color.new(color.orange, 5)

    if barstate.islast
    // We only populate the table on the last bar.
    if (show_header == true)
    table.cell(dtrDisplay, 0, 0, timeFrame+”TR vs ATR”, bgcolor = header_color, text_size=txt_size)
    table.cell(dtrDisplay, 1, 0, “RVol”, bgcolor = header_color, text_size=txt_size)
    table.cell(dtrDisplay, 0, 1, final_atr, bgcolor=color_atr, text_size=txt_size)
    table.cell(dtrDisplay, 1, 1, final_rvol, bgcolor=color_atr, text_size=txt_size)
    else
    table.cell(dtrDisplay, 0, 0, final_atr, bgcolor=color_atr, text_size=txt_size)
    table.cell(dtrDisplay, 1, 0, final_rvol, bgcolor=color_atr, text_size=txt_size)

    showbarLine = input(false, title=”Show Selected Bar RVol Line”)
    bar_today_vol = volume
    bar_avg_vol = sma((volume[1]), vol_len)
    bar_volpct = round((bar_today_vol / bar_avg_vol ) * 100)
    plot(bar_volpct, color=showbarLine ? color.red : na, linewidth=1, title=”Each Bar RVol”)

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

DTR vs ATR and RVOL Percentage Screener or Indicator


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
JohnTrade @johntrade Participant
Summary

This topic contains 1 voice and has 0 replies.

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