Re: TradingView Indicators to MT4 Indicators

744
Freedom35FPS wrote: Fri Apr 10, 2026 10:38 am possible anyone could convert this to MT4/ MT5?
RodrigoRT7 wrote: Fri Apr 10, 2026 3:09 pm Good evening Freedom35FPS, this script is protected by the author.
Probability x 10 they said!! Ohh
These users thanked the author moey_dw for the post (total 3):
Cagliostro, Jimmy, RodrigoRT7
Official Forex-station GIF animator at your service 👨‍⚖️
The best divergence indicator in the world.

DownloadRe: TradingView Indicators to MT4 Indicators

745
ionone wrote: Tue Apr 07, 2026 11:40 pm Can someone who knows Pinescript or who can pass the indicator through some kind of "replay" mode tell me if this indicator repaints or is causal or not ? before I spend 20 hours converting it :)

https://www.tradingview.com/script/9Sgt ... end-Aslan/
thanks

Jef
With a lot of help from Claude and Gemini, I *believe* I have converted it, but would need some testing. On the subject of repainting, Claude gave me this response:

Repainting Analysis
Good news: this indicator does not repaint signals in the traditional sense, but there are important nuances to understand.
Why it doesn't classically repaint: Signals are generated using barstate.isconfirmed checks and confirmed bar logic. The getSupertrend_var function uses close[1], upper[1], and lower[1] — only referencing previous confirmed bar data for the trend flip logic. The topFlag/botFlag pivot detection similarly uses [1] lookbacks. So once a signal fires on a confirmed bar, it won't vanish retroactively.
However, there are two legitimate caveats:

Adaptive parameter drift causes visual history changes. The adaptive engine continuously adjusts adaptive_multiplier, adaptive_atr_period, etc. The signal engine always uses these adapted values, so on a live chart the bands themselves will look slightly different tomorrow than they do today on historical bars — because the parameters have changed. The lockATRBands setting mitigates the visual band shifting but not the signal engine's internal parameters.
The indicator explicitly acknowledges this via the "Lock Envelope to Base" toggle — which confirms that without it, the plotted bands will "look jumpy" as parameters drift. This is a form of soft repainting on the visual layer.

Bottom line: Signal arrows won't disappear or move once confirmed, but the adaptive parameter system means the indicator's "view of the past" changes over time as it learns. For backtesting purposes, treat historical results with caution.
These users thanked the author rogerha for the post (total 2):
ionone, kvak

Re: TradingView Indicators to MT4 Indicators

746
rogerha wrote: Sat Apr 11, 2026 12:47 am With a lot of help from Claude and Gemini, I *believe* I have converted it, but would need some testing. On the subject of repainting, Claude gave me this response:

Repainting Analysis
Good news: this indicator does not repaint signals in the traditional sense, but there are important nuances to understand.
Why it doesn't classically repaint: Signals are generated using barstate.isconfirmed checks and confirmed bar logic. The getSupertrend_var function uses close[1], upper[1], and lower[1] — only referencing previous confirmed bar data for the trend flip logic. The topFlag/botFlag pivot detection similarly uses [1] lookbacks. So once a signal fires on a confirmed bar, it won't vanish retroactively.
However, there are two legitimate caveats:

Adaptive parameter drift causes visual history changes. The adaptive engine continuously adjusts adaptive_multiplier, adaptive_atr_period, etc. The signal engine always uses these adapted values, so on a live chart the bands themselves will look slightly different tomorrow than they do today on historical bars — because the parameters have changed. The lockATRBands setting mitigates the visual band shifting but not the signal engine's internal parameters.
The indicator explicitly acknowledges this via the "Lock Envelope to Base" toggle — which confirms that without it, the plotted bands will "look jumpy" as parameters drift. This is a form of soft repainting on the visual layer.

Bottom line: Signal arrows won't disappear or move once confirmed, but the adaptive parameter system means the indicator's "view of the past" changes over time as it learns. For backtesting purposes, treat historical results with caution.
good effort but it displays only a handful of arrows, not all the way to Bars()
Scalping the Century TimeFrame since 1999

Re: TradingView Indicators to MT4 Indicators

750
Can this indicator be converted to MT4?

Code: Select all


// 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!")