Re: Already Converted TradingView Indicators to MT4 Indicators

202
I put it in other thread. If anyone has this indicator converted will be great. It is called Boom Hunter pro. They say that maybe it is the greatest indicator ever.
https://www.tradingview.com/script/coMN ... unter-Pro/

There are a lot of videos, and all of them, they tell that it is impressive.




Happy christmas to everyone!!!
Attachments
These users thanked the author hache for the post (total 3):
Chickenspicy, Jedidiah, Banzai

Re: Already Converted TradingView Indicators to MT4 Indicators

203
hi mr.tools/Jimmy & Kvak
Wish you a merry Christmas

i find a good indi and code below .. this box indicator and forcast prediction will helps the trend . possible to convert this or similiar have in mt4!!, please share

/

Code: Select all

/@version=4
study("The Echo Forecast [LUX]","ECHO [LuxAlgo]",overlay=true,max_bars_back=1000,max_lines_count=200)
length = input(50,'Evaluation Window',minval=0,maxval=200)
fcast  = input(50,'Forecast Window',minval=1,maxval=200)

fmode  = input('Similarity','Forecast Mode',options=['Similarity','Dissimilarity'])
cmode  = input('Cumulative','Forecast Construction',options=['Cumulative','Mean','Linreg'])
src    = input(close)

fcast_col   = input(#2157f3,'Forecast Style',inline='fcast_style',group='Style')
fcast_style = input('· · ·','',options=['──','- - -','· · ·'],inline='fcast_style',group='Style')

show_area   = input(true,'Show Area',inline='areas',group='Style')
fcast_area  = input(color.new(#ff5d00,50),'',inline='areas',group='Style')
corr_area   = input(color.new(#0cb51a,50),'',inline='areas',group='Style')
eval_area   = input(color.new(color.gray,50),'',inline='areas',group='Style')
//----
var lines = array.new_line(0)
if barstate.isfirst
    for i = 0 to fcast-1
        array.push(lines,line.new(na,na,na,na))
//----
n = bar_index
d = change(src)

top = highest(src,length+fcast*2)
btm = lowest(src,length+fcast*2)

if barstate.islast
    float val = na
    k = 0
    A = array.new_float(0)
    X = array.new_int(0)
    for i = 0 to fcast*2+length
        array.push(A,src[i])
        if cmode == 'Linreg'
            array.push(X,n[i])
    
    a = array.slice(A,0,fcast-1)
    for i = 0 to length-1
        b = array.slice(A,fcast+i,fcast*2+i-1)
        r = array.covariance(a,b)/(array.stdev(a)*array.stdev(b))
        if fmode == 'Similarity'
            val := r >= nz(val,r) ? r : val
        else
            val := r <= nz(val,r) ? r : val
        k := val == r ? i : k
    
    prev = src
    current = src
    
    for i = 0 to fcast-1
        e = d[fcast+k+(fcast-i-1)]
        if cmode == 'Mean'
            current := array.avg(a) + e
        else if cmode == 'Linreg'
            a = array.slice(A,0,fcast)
            x = array.slice(X,0,fcast)
            alpha = array.covariance(a,x)/array.variance(x)
            beta = array.avg(a) - alpha*array.avg(x)
            current := alpha*(n+i+1) + beta + e
        else
            current += e
        
        l = array.get(lines,i)
        line.set_xy1(l,n+i,prev)
        line.set_xy2(l,n+i+1,current)
        line.set_color(l,fcast_col)
        
        if fcast_style == '- - -'
            line.set_style(l,line.style_dashed)
        else if fcast_style == '· · ·'
            line.set_style(l,line.style_dotted)
        
        prev := current

    if show_area    
        box.delete(box.new(n-length-fcast*2+1,top,n-fcast+1,btm,
          border_color=na,
          bgcolor=eval_area)[1])
        box.delete(box.new(n-fcast+1,top,n,btm,
          border_color=na,
          bgcolor=fcast_area)[1])
        box.delete(box.new(n-k-fcast*2+1,btm,n-k-fcast,top,
          border_color=na,
          bgcolor=corr_area)[1]) 
Attachments
These users thanked the author sal for the post (total 2):
hache, Jedidiah
"There is NO GOD higher than TRUTH" - Mahatma Gandhi

Re: Already Converted TradingView Indicators to MT4 Indicators

204
sal wrote: Sun Dec 25, 2022 3:55 pm hi mr.tools/Jimmy & Kvak
Wish you a merry Christmas

i find a good indi and code below .. this box indicator and forcast prediction will helps the trend . possible to convert this or similiar have in mt4!!, please share

/

Code: Select all

/@version=4
study("The Echo Forecast [LUX]","ECHO [LuxAlgo]",overlay=true,max_bars_back=1000,max_lines_count=200)
length = input(50,'Evaluation Window',minval=0,maxval=200)
fcast  = input(50,'Forecast Window',minval=1,maxval=200)

fmode  = input('Similarity','Forecast Mode',options=['Similarity','Dissimilarity'])
cmode  = input('Cumulative','Forecast Construction',options=['Cumulative','Mean','Linreg'])
src    = input(close)

fcast_col   = input(#2157f3,'Forecast Style',inline='fcast_style',group='Style')
fcast_style = input('· · ·','',options=['──','- - -','· · ·'],inline='fcast_style',group='Style')

show_area   = input(true,'Show Area',inline='areas',group='Style')
fcast_area  = input(color.new(#ff5d00,50),'',inline='areas',group='Style')
corr_area   = input(color.new(#0cb51a,50),'',inline='areas',group='Style')
eval_area   = input(color.new(color.gray,50),'',inline='areas',group='Style')
//----
var lines = array.new_line(0)
if barstate.isfirst
    for i = 0 to fcast-1
        array.push(lines,line.new(na,na,na,na))
//----
n = bar_index
d = change(src)

top = highest(src,length+fcast*2)
btm = lowest(src,length+fcast*2)

if barstate.islast
    float val = na
    k = 0
    A = array.new_float(0)
    X = array.new_int(0)
    for i = 0 to fcast*2+length
        array.push(A,src[i])
        if cmode == 'Linreg'
            array.push(X,n[i])
    
    a = array.slice(A,0,fcast-1)
    for i = 0 to length-1
        b = array.slice(A,fcast+i,fcast*2+i-1)
        r = array.covariance(a,b)/(array.stdev(a)*array.stdev(b))
        if fmode == 'Similarity'
            val := r >= nz(val,r) ? r : val
        else
            val := r <= nz(val,r) ? r : val
        k := val == r ? i : k
    
    prev = src
    current = src
    
    for i = 0 to fcast-1
        e = d[fcast+k+(fcast-i-1)]
        if cmode == 'Mean'
            current := array.avg(a) + e
        else if cmode == 'Linreg'
            a = array.slice(A,0,fcast)
            x = array.slice(X,0,fcast)
            alpha = array.covariance(a,x)/array.variance(x)
            beta = array.avg(a) - alpha*array.avg(x)
            current := alpha*(n+i+1) + beta + e
        else
            current += e
        
        l = array.get(lines,i)
        line.set_xy1(l,n+i,prev)
        line.set_xy2(l,n+i+1,current)
        line.set_color(l,fcast_col)
        
        if fcast_style == '- - -'
            line.set_style(l,line.style_dashed)
        else if fcast_style == '· · ·'
            line.set_style(l,line.style_dotted)
        
        prev := current

    if show_area    
        box.delete(box.new(n-length-fcast*2+1,top,n-fcast+1,btm,
          border_color=na,
          bgcolor=eval_area)[1])
        box.delete(box.new(n-fcast+1,top,n,btm,
          border_color=na,
          bgcolor=fcast_area)[1])
        box.delete(box.new(n-k-fcast*2+1,btm,n-k-fcast,top,
          border_color=na,
          bgcolor=corr_area)[1]) 
Image
This seems a very interesting indicator too. Here you have a video of how to use it:
These users thanked the author hache for the post (total 3):
sal, RodrigoRT7, Jedidiah


Re: Already Converted TradingView Indicators to MT4 Indicators

206


This indicator uses a simple time series forecasting method derived from the similarity between recent prices and similar/dissimilar historical prices. We named this method "ECHO".

This method originally assumes that future prices can be estimated from a historical series of observations that are most similar to the most recent price variations. This similarity is quantified using the correlation coefficient . Such an assumption can prove to be relatively effective with the forecasting of a periodic time series. We later introduced the ability to select dissimilar series of observations for further experimentation.

This forecasting technique is closely inspired by the analogue method introduced by Lorenz for the prediction of atmospheric data.

1. Settings

Evaluation Window: Window size used for finding historical observations similar/dissimilar to recent observations. The total evaluation window is equal to "Forecast Window" + "Evaluation Window"
Forecast Window: Determines the forecasting horizon.
Forecast Mode: Determines whether to choose historical series similar or dissimilar to the recent price observations.
Forecast Construction: Determines how the forecast is constructed. See "Usage" below.
Src: Source input of the forecast

Other style settings are self-explanatory.

2. Usage

This tool can be used to forecast future trends but also to indicate which historical variations have the highest degree of similarity/dissimilarity between the observations in the orange zone.

The forecasting window determines the prices segment (in orange) to be used as a reference for the search of the most similar/dissimilar historical price segment (in green) within the gray area.
Most forecasting techniques highly benefit from a detrended series. Due to the nature of this method, we highly recommend applying it to a detrended and periodic series.
You can see above the method is applied on a smooth periodic oscillator and a momentum oscillator. The construction of the forecast is made from the price changes obtained in the green area, denoted as w(t). Using the "Cumulative" options we construct the forecast from the cumulative sum of w(t). Finally, we add the most recent price value to this cumulated series.
Using the "Mean" options will add the series w(t) with the mean of the prices within the orange segment.


Finally the "Linreg" will add the series w(t) to an extrapolated linear regression fit to the prices within the orange segment.
Attachments
Be patient therefore, brethren, until the coming of the Lord. Behold, the husbandman waiteth for the precious fruit of the earth: patiently bearing till he receive the early and latter rain.
Behold, we account them blessed who have endured. You have heard of the patience of Job, and you have seen the end of the Lord, that the Lord is merciful and compassionate.

Re: Already Converted TradingView Indicators to MT4 Indicators

207
https://tw.tradingview.com/script/Y8v4W ... mment-form

Not sure if interested in converting it to MT4?
Be patient therefore, brethren, until the coming of the Lord. Behold, the husbandman waiteth for the precious fruit of the earth: patiently bearing till he receive the early and latter rain.
Behold, we account them blessed who have endured. You have heard of the patience of Job, and you have seen the end of the Lord, that the Lord is merciful and compassionate.

Re: Already Converted TradingView Indicators to MT4 Indicators

208
hache wrote: Tue Dec 27, 2022 7:52 am This seems a very interesting indicator too. Here you have a video of how to use it:
Hahaha, it turns out that a friend has already posted it.
These users thanked the author Jedidiah for the post:
hache
Be patient therefore, brethren, until the coming of the Lord. Behold, the husbandman waiteth for the precious fruit of the earth: patiently bearing till he receive the early and latter rain.
Behold, we account them blessed who have endured. You have heard of the patience of Job, and you have seen the end of the Lord, that the Lord is merciful and compassionate.

Re: Already Converted TradingView Indicators to MT4 Indicators

210
If anyone is interested this would be really good for order block analysis
A higher lower
Or lower high after an imbalance, golden

Code: Select all

// © Lai_Thanh_Trung

//@version=5
indicator(shorttitle='Bagang Pivot Zones', title='Bagang Pivot Zones | Supply & Demand, Support & Resistance', overlay=true)

// functions
get(arr, index) =>
    index < array.size(arr) ? array.get(arr, index) : na

busted(highs, lows, times, bounces) =>
    array.shift(highs)
    array.shift(lows)
    array.shift(times)
    array.shift(bounces) or true

bounced(bounces) =>
    status = array.get(bounces, 0)
    array.set(bounces, 0, true)
    status

// A. CORE
ceiling = math.max(high, close[1], open[1])
floor = math.min(low, close[1], open[1])

buying = close >= open and high != low
selling = close <= open and low != high

green = close > open and close > close[1]
red = close < open and close < close[1]

gapup = open > close[1]
gapdown = open < close[1]

higher = high > high[1]
lower = low < low[1]

bullish = green and higher
bearish = red and lower

// notable price actions
bullishEngulf = selling[1] and (gapdown or lower) and bullish and close > open[1]
bearishEngulf = buying[1] and (gapup or higher) and bearish and close < open[1]

breakHigh = (selling[2] or selling[1]) and buying and close > ceiling[1]
breakLow = (buying[2] or buying[1]) and selling and close < floor[1]

whiteSoldiers = bearish[3] and buying[2] and bullish[1] and bullish and close > high[3]
blackCrows = bullish[3] and selling[2] and bearish[1] and bearish and close < low[3]

// pivot setups
soaring = bullishEngulf or breakHigh or whiteSoldiers
tumbling = bearishEngulf or breakLow or blackCrows

reversal = switch
    whiteSoldiers => not soaring[1] and not soaring[2]
    blackCrows => not tumbling[1] and not tumbling[2]
    breakHigh => not soaring[1] and (bearish[1] or bearish[2])
    breakLow => not tumbling[1] and (bullish[1] or bullish[2])

continuation = switch
    breakHigh => bullish[2] and close > high[2] and not bearish[1]
    breakLow => bearish[2] and close < low[2] and not bullish[1]

engulfing = (bullishEngulf or bearishEngulf) and (higher[1] or lower[1])

// B. PIVOT ZONES
var buyzoneHigh = array.new_float(0)
var buyzoneLow = array.new_float(0)
var buyzoneTime = array.new_int(0)
var bounceUp = array.new_bool(0)

var sellzoneHigh = array.new_float(0)
var sellzoneLow = array.new_float(0)
var sellzoneTime = array.new_int(0)
var bounceDown = array.new_bool(0)

// 1. Broken Pivot Zones
brokenHigh = while get(sellzoneHigh, 0) < high
    busted(sellzoneHigh, sellzoneLow, sellzoneTime, bounceDown)

brokenLow = while get(buyzoneLow, 0) > low
    busted(buyzoneHigh, buyzoneLow, buyzoneTime, bounceUp)

// 2. Distribution/Accumulation Bar and Pivot Bar
upturn = soaring and (reversal or continuation or engulfing)
downturn = tumbling and (reversal or continuation or engulfing)

dacbar = switch
    upturn => whiteSoldiers ? 3 : (breakHigh and selling[2] ? 2 : 1)
    downturn => blackCrows ? 3 : (breakLow and buying[2] ? 2 : 1)

pivotbar = switch
    upturn => whiteSoldiers ? 2 : (green[1] ? 1 : 0)
    downturn => blackCrows ? 2 : (red[1] ? 1 : 0)

// 3. Pivot Zone Values
pzHigh = float(na)
pzLow = float(na)

switch
    upturn =>
        // low at wick
        pzLow := math.min(low[dacbar], low[pivotbar], low[1], low)
        // high at wick or open
        pzHigh := switch
            close[pivotbar] > high[dacbar] => high[dacbar]
            open[pivotbar] > open[dacbar] => open[pivotbar]
            => open[dacbar]

    downturn =>
        // high at wick
        pzHigh := math.max(high[dacbar], high[pivotbar], high[1], high)
        // low at wick or open
        pzLow := switch
            close[pivotbar] < low[dacbar] => low[dacbar]
            open[pivotbar] < open[dacbar] => open[pivotbar]
            => open[dacbar]

// 4. Overlapping Pivot Zones
overlap = switch
    upturn => get(buyzoneHigh, 0) >= pzLow
    downturn => get(sellzoneLow, 0) <= pzHigh

replace = switch
    overlap and upturn => bounced(bounceUp)
    overlap and downturn => bounced(bounceDown)

// remove replaced zone or adjust overlapped zone
switch
    replace and upturn => busted(buyzoneHigh, buyzoneLow, buyzoneTime, bounceUp)
    replace and downturn => busted(sellzoneHigh, sellzoneLow, sellzoneTime, bounceDown)
    overlap and upturn => array.set(buyzoneHigh, 0, pzLow)
    overlap and downturn => array.set(sellzoneLow, 0, pzHigh)

// 5. Pivot Zones Queue
switch
    upturn =>
        array.unshift(buyzoneHigh, pzHigh)
        array.unshift(buyzoneLow, pzLow)
        array.unshift(buyzoneTime, time[dacbar])
        array.unshift(bounceUp, false)

    downturn =>
        array.unshift(sellzoneHigh, pzHigh)
        array.unshift(sellzoneLow, pzLow)
        array.unshift(sellzoneTime, time[dacbar])
        array.unshift(bounceDown, false)

// 6. Pivot Zones Markup
maxbox(redraw) => redraw ? 22 : na

newbox(bg) =>
    box.new(0, 0, 0, 0, xloc=xloc.bar_time, border_color=na, bgcolor=bg, extend=extend.right)

render(boxes, index, highs, lows, times) =>
    ibox = get(boxes, index)
    top = get(highs, index)
    bottom = get(lows, index)
    left = get(times, index)
    overlapped = if index > 0
        lastbox = index - 1
        top == get(lows, lastbox) or bottom == get(highs, lastbox)
    box.set_lefttop(ibox, left, overlapped ? na : top)
    box.set_rightbottom(ibox, time, overlapped ? na : bottom)

var supply = input.color(#F2364512, 'Supply Zones')
var demand = input.color(#08998112, 'Demand Zones')

var buyBox = array.new_box(0)
var sellBox = array.new_box(0)

for i = 0 to maxbox(na(close[1]))
    array.push(buyBox, newbox(demand))
    array.push(sellBox, newbox(supply))

for i = 0 to maxbox(upturn or brokenLow)
    render(buyBox, i, buyzoneHigh, buyzoneLow, buyzoneTime)

for i = 0 to maxbox(downturn or brokenHigh)
    render(sellBox, i, sellzoneHigh, sellzoneLow, sellzoneTime)

// C. ALERTS
if brokenHigh
    alert('Breakout', alert.freq_once_per_bar)

if brokenLow
    alert('Breakdown', alert.freq_once_per_bar)

if upturn or downturn
    setup = switch
        whiteSoldiers => 'White Soldiers'
        blackCrows => 'Black Crows'
        breakHigh => bullishEngulf ? 'Engulf & Break High' : 'Break High'
        breakLow => bearishEngulf ? 'Engulf & Break Low' : 'Break Low'
        bullishEngulf => 'Bullish Engulf'
        bearishEngulf => 'Bearish Engulf'
    occurence = replace ? 'Replace' : (overlap ? 'Bounce' : 'Fresh')
    message = setup + ' (' + occurence + ')'
    alert(message, alert.freq_once_per_bar_close)
Attachments
These users thanked the author Chickenspicy for the post (total 2):
RodrigoRT7, Knight
0 + 0 = 0
Infinite / Infinite = 1
1 way to Heaven & it matters


Who is online

Users browsing this forum: IBM oBot [Bot], rudiarius, specialkey, Steam1, Telegram [Bot] and 84 guests