Convert a Trading view indicator Q-Trend to pro real time strategy

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #259391 quote
    betsonbetson
    Participant
    Senior

    Can someone please convert Q-Trend indicator from trading view to pro real time to automate strategy

    Only need STRONG BUY and STRONG SELL SIGNALS

    The code is

    ******

    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

    // © tarasenko_


    //@version=5

    indicator(“Q-Trend”, overlay = 1) 



    // Inputs

    src = input(close, “Source”, group = “Main settings”)

    p = input.int(200, “Trend period”, group = “Main settings”, tooltip = “Changes STRONG signals’ sensitivity.”, minval = 1)

    atr_p = input.int(14, “ATR Period”, group = “Main settings”, minval = 1)

    mult = input.float(1.0, “ATR Multiplier”, step = 0.1, group = “Main settings”, tooltip = “Changes sensitivity: higher period = higher sensitivty.”)

    mode = input.string(“Type A”, “Signal mode”, options = [“Type A”, “Type B”], group = “Mode”)

    use_ema_smoother = input.string(“No”, “Smooth source with EMA?”, options = [“Yes”, “No”], group = “Source”)

    src_ema_period = input(3, “EMA Smoother period”, group = “Source”)

    color_bars = input(true, “Color bars?”, group = “Addons”)

    show_tl = input(true, “Show trend line?”, group = “Addons”)

    signals_view = input.string(“All”, “Signals to show”, options = [“All”, “Buy/Sell”, “Strong”, “None”], group = “Signal’s Addon”)

    signals_shape = input.string(“Labels”, “Signal’s shape”, options = [“Labels”, “Arrows”], group = “Signal’s Addon”)

    buy_col = input(color.green, “Buy colour”, group = “Signal’s Addon”, inline = “BS”)

    sell_col = input(color.red, “Sell colour”, group = “Signal’s Addon”, inline = “BS”)





    // Calculations

    src := use_ema_smoother == “Yes” ? ta.ema(src, src_ema_period) : src // Source;


    h = ta.highest(src, p) // Highest of src p-bars back;

    l = ta.lowest(src, p) // Lowest of src p-bars back.

    d = h – l


    ls = “” // Tracker of last signal


    m = (h + l) / 2 // Initial trend line;

    m := bar_index > p ? m[1] : m


    atr = ta.atr(atr_p)[1] // ATR;

    epsilon = mult * atr // Epsilon is a mathematical variable used in many different theorems in order to simplify work with mathematical object. Here it used as sensitivity measure.


    change_up = (mode == “Type B” ? ta.cross(src, m + epsilon) : ta.crossover(src, m + epsilon)) or src > m + epsilon // If price breaks trend line + epsilon (so called higher band), then it is time to update the value of a trend line;

    change_down = (mode == “Type B” ? ta.cross(src, m – epsilon) : ta.crossunder(src, m – epsilon)) or src < m – epsilon // If price breaks trend line – epsilon (so called higher band), then it is time to update the value of a trend line.

    sb = open < l + d / 8 and open >= l

    ss = open > h – d / 8 and open <= h

    strong_buy = sb or sb[1] or sb[2] or sb[3] or sb[4]

    strong_sell = ss or ss[1] or ss[2] or ss[3] or ss[4]


    m := (change_up or change_down) and m != m[1] ? m : change_up ? m + epsilon : change_down ? m – epsilon : nz(m[1], m) // Updating the trend line.


    ls := change_up ? “B” : change_down ? “S” : ls[1] // Last signal. Helps avoid multiple labels in a row with the same signal;

    colour = ls == “B” ? buy_col : sell_col // Colour of the trend line.

    buy_shape  = signals_shape == “Labels” ? shape.labelup   : shape.triangleup

    sell_shape = signals_shape == “Labels” ? shape.labeldown  : shape.triangledown





    // Plottings

    plot(show_tl ? m : na, “trend line”, colour, 3) // Plotting the trend line.


    // Signals with label shape

    plotshape(signals_shape == “Labels” and (signals_view == “All” or signals_view == “Buy/Sell”) and change_up and ls[1] != “B” and not strong_buy, “Buy signal”    , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = “BUY”, textcolor = color.white)   // Plotting the BUY signal;

    plotshape(signals_shape == “Labels” and (signals_view == “All” or signals_view == “Buy/Sell”) and change_down and ls[1] != “S” and not strong_sell, “Sell signal”  , color = colour, style = sell_shape, size = size.normal, text = “SELL”, textcolor = color.white)                  // Plotting the SELL signal.

    plotshape(signals_shape == “Labels” and (signals_view == “All” or signals_view == “Strong”) and change_up and ls[1] != “B” and strong_buy, “Strong Buy signal”   , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = “STRONG”, textcolor = color.white)  // Plotting the STRONG BUY signal;

    plotshape(signals_shape == “Labels” and (signals_view == “All” or signals_view == “Strong”) and change_down and ls[1] != “S” and strong_sell, “Strong Sell signal” , color = colour, style = sell_shape, size = size.normal, text = “STRONG”, textcolor = color.white)                 // Plotting the STRONG SELL signal.


    // Signal with arrow shape

    plotshape(signals_shape == “Arrows” and (signals_view == “All” or signals_view == “Buy/Sell”) and change_up and ls[1] != “B” and not strong_buy, “Buy signal”    , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny) // Plotting the BUY signal;

    plotshape(signals_shape == “Arrows” and (signals_view == “All” or signals_view == “Buy/Sell”) and change_down and ls[1] != “S” and not strong_sell, “Sell signal”  , color = colour, style = sell_shape, size = size.tiny)                // Plotting the SELL signal.

    plotshape(signals_shape == “Arrows” and (signals_view == “All” or signals_view == “Strong”) and change_up and ls[1] != “B” and strong_buy, “Strong Buy signal”   , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny) // Plotting the STRONG BUY signal;

    plotshape(signals_shape == “Arrows” and (signals_view == “All” or signals_view == “Strong”) and change_down and ls[1] != “S” and strong_sell, “Strong Sell signal” , color = colour, style = sell_shape, size = size.tiny)                // Plotting the STRONG SELL signal.


    barcolor(color_bars ? colour : na) // Bar coloring



    // Alerts

    alertcondition(change_up and ls[1] != “B”, “Q-Trend BUY”, “Q-Trend BUY signal were given.”) // Buy alert.

    alertcondition(change_down and ls[1] != “S”, “Q-Trend SELL”, “Q-Trend SELL signal were given.”) // Sell alert.

    alertcondition((change_up and ls[1] != “B”) or (change_down and ls[1] != “S”), “Q-Trend Signal”, “Q-Trend gave you a signal!”)

    alertcondition(change_up and ls[1] != “B” and strong_buy, “Strong BUY signal”, “Q-Trend gave a Strong Buy signal!”)

    alertcondition(change_down and ls[1] != “S” and strong_sell, “Strong SELL signal”, “Q-Trend gave a Strong Sell signal!”)

    #259392 quote
    NicolasNicolas
    Keymaster
    Legend

    The Q-Trend indicator is already available here in the library: https://www.prorealcode.com/prorealtime-indicators/q-trend/

    However, to get the signals from the trend change, modify the last line with:

    RETURN m style(line,3) coloured(r,g,0), changeup as "buy signal", changedown as "sell signal"
    


    Iván González thanked this post
Viewing 2 posts - 1 through 2 (of 2 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

TradingView to ProRealTime Translation Center

New Reply
Author
author-avatar
betson @betson Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by NicolasNicolas
6 months ago.

Topic Details
Forum: TradingView to ProRealTime Translation Center Forum
Started: 03/24/2026
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...