Change from tradingview to Mt5

MQL5 Indicators

Specification

Request someone to change a tradingview script to mt5 code 


//@version=4

study("Renko Chart", overlay=true, max_bars_back = 4900)

mode =input(title = "Method", defval = 'ATR', options=['Traditional', 'ATR'])

modevalue = input(title ="[ATR] Atr Period", defval = 14, minval = 1)

boxsize = input(title ="[Traditional] Brick Size", defval = 10.0, minval = 0.000000000000001)

source =input(defval = "hl", title = "Source", options=['close', 'hl'])

showstyle =input(title = "Chart Style As", defval = 'Area', options=['Candle', 'Area', 'Dont Show'])

breakoutcolor = input(defval = 'Blue/Red', title = "Color Theme", options =['Green/Red', 'Yellow/Blue', 'White/Yellow', 'Orange/Blue', 'Lime/Red', 'Blue/Red'])

changebarcol = input(true, title = "Change Bar Colors")


//calc atr val

conv_atr(valu)=>

    a = 0

    num = syminfo.mintick

    s = valu

    if na(s)

        s := syminfo.mintick

    if num < 1

        for i = 1 to 20

            num := num * 10

            if num > 1

                break

            a := a +1

    for x = 1 to a 

        s := s * 10

    s := round(s)

    for x = 1 to a

        s := s / 10

    s := s < syminfo.mintick  ? syminfo.mintick : s

    s


//ATR box size calculation

atrboxsize = conv_atr(atr(modevalue))



float box = na

box := na(box[1]) ? mode == 'ATR' ? atrboxsize : boxsize : box[1] 


reversal = 2

top = 0.0, bottom = 0.0

trend = 0

trend := barstate.isfirst ? 0 : nz(trend[1])

currentprice = 0.0

currentprice := source == 'close' ? close : trend == 1 ? high : low

float beginprice = na

beginprice := barstate.isfirst ? floor(open / box) * box : nz(beginprice[1])

iopenprice = 0.0

icloseprice = 0.0


if trend == 0 and box * reversal <= abs(beginprice - currentprice)

    if beginprice > currentprice

        numcell = floor(abs(beginprice - currentprice) / box)

        iopenprice := beginprice

        icloseprice := beginprice - numcell * box

        trend := -1

    if beginprice < currentprice

        numcell = floor(abs(beginprice - currentprice) / box)

        iopenprice := beginprice

        icloseprice := beginprice + numcell * box

        trend := 1


if trend == -1

    nok = true

    if beginprice > currentprice and box <= abs(beginprice - currentprice)

        numcell = floor(abs(beginprice - currentprice) / box)

        icloseprice := beginprice - numcell * box

        trend := -1

        beginprice := icloseprice

        nok := false

    else

        iopenprice := iopenprice == 0 ? nz(iopenprice[1]) : iopenprice

        icloseprice := icloseprice == 0 ? nz(icloseprice[1]) : icloseprice

    

    tempcurrentprice = source == 'close' ? close : high

    if beginprice < tempcurrentprice and box * reversal <= abs(beginprice - tempcurrentprice) and nok //new column

        numcell = floor(abs(beginprice - tempcurrentprice) / box)

        iopenprice := beginprice + box

        icloseprice := beginprice + numcell * box

        trend := 1

        beginprice := icloseprice

    else

        iopenprice := iopenprice == 0 ? nz(iopenprice[1]) : iopenprice

        icloseprice := icloseprice == 0 ? nz(icloseprice[1]) : icloseprice

else        

    if trend == 1

        nok = true

        if beginprice < currentprice and box <= abs(beginprice - currentprice)

            numcell = floor(abs(beginprice - currentprice) / box)

            icloseprice := beginprice + numcell * box

            trend := 1

            beginprice := icloseprice

            nok := false

        else

            iopenprice := iopenprice == 0 ? nz(iopenprice[1]) : iopenprice

            icloseprice := icloseprice == 0 ? nz(icloseprice[1]) : icloseprice

    

        tempcurrentprice = source == 'close' ? close : low

        if beginprice > tempcurrentprice and box * reversal <= abs(beginprice - tempcurrentprice) and nok //new column

            numcell = floor(abs(beginprice - tempcurrentprice) / box)

            iopenprice := beginprice - box

            icloseprice := beginprice - numcell * box

            trend := -1

            beginprice := icloseprice

        else

            iopenprice := iopenprice == 0 ? nz(iopenprice[1]) : iopenprice

            icloseprice := icloseprice == 0 ? nz(icloseprice[1]) : icloseprice    


//if icloseprice changed then recalculate box size

box := change(icloseprice) ?  mode == 'ATR' ? atrboxsize :  boxsize : box


upcolor = breakoutcolor == 'Green/Red' ? color.green :  breakoutcolor == 'White/Yellow' ? color.white : breakoutcolor == 'Lime/Red' ? color.lime : breakoutcolor == 'Blue/Red' ? color.blue : breakoutcolor == 'Yellow/Blue' ? color.yellow : color.orange

downcolor = breakoutcolor == 'Yellow/Blue' or breakoutcolor == 'Orange/Blue' ? color.blue : breakoutcolor == 'Green/Red' or breakoutcolor == 'Lime/Red' or breakoutcolor == 'Blue/Red'? color.red : color.yellow


oprice = 

   trend == 1 ? nz(trend[1]) == 1 ? nz(icloseprice[1]) - nz(box[1]) : nz(icloseprice[1]) + nz(box[1]) : 

   trend == -1 ? nz(trend[1]) == -1 ? nz(icloseprice[1]) + nz(box[1]) : nz(icloseprice[1]) - nz(box[1]) :

   nz(icloseprice[1]) 

oprice := oprice < 0 ? 0 : oprice


openline = plot(showstyle == 'Area' and  oprice > 0? oprice : na, title = "Renko Open", color = oprice < 0 or oprice[1] < 0 ? na : color.gray, editable = false)

closeline = plot(showstyle == 'Area' and icloseprice > 0 ? icloseprice : na, title = "Renko Close", color = icloseprice <= 0 or icloseprice[1] <= 0 ? na : color.gray, editable = false)

fill(openline, closeline, color = oprice <= 0 and icloseprice <=0 ? na : trend == 1 ? upcolor : downcolor, transp = 70, editable = false)

plotcandle(showstyle == 'Candle' ? oprice : na, showstyle == 'Candle' ? max(oprice, icloseprice) : na, showstyle == 'Candle' ? min(oprice , icloseprice) : na, showstyle == 'Candle'? icloseprice : na, title='Renko Candles', color = trend == 1 ? upcolor : downcolor, editable = false)


barcolor(changebarcol ? trend == 1 ? upcolor : downcolor : na, editable = false)


//keep last close/open price

float lasticloseprice = na

lasticloseprice := change(icloseprice) ? icloseprice[1] : nz(lasticloseprice[1])


// keep old columns

float chigh = na

float clow = na

ctrend = 0

chigh := change(trend) ? max(iopenprice[1], icloseprice[1]) : na

clow := change(trend) ? min(iopenprice[1], icloseprice[1]) : na

ctrend := change(trend) ? trend[1] : na


// ============== breakout strategy ============== added by user request

Length = input(title = "Length for Breakout", type = input.integer, minval = 1, defval = 1)

showbreakout = input(title = "Show Breakout Trend", defval = true)


f_Brickhigh()=>

    _ret = false

    if trend ==  1

        _l = floor((icloseprice - iopenprice) / box) - 1 

        _ret := true

        if _l < Length

            for x = 0 to 3000

                if na(trend[x+1])

                    _ret := false

                    break

                if trend[x] != trend[x+1]

                    if trend[x+1] == 1

                        if icloseprice[x+1] >= icloseprice

                            _ret := false

                            break

                        _l := _l + (floor((icloseprice[x+1] - iopenprice[x+1]) / box[x+1]))

                        

                    if trend[x+1] == -1

                        start = icloseprice[x+1] + box[x+1]

                        forlen = floor((iopenprice[x+1] - icloseprice[x+1]) / box) - 1

                        for i = 0 to forlen

                            if start < icloseprice

                                _l := _l + 1

                            start := start + box[x+1]

                    if _l >= Length

                        _ret := true

                        break

    _ret


f_Bricklow()=>

    _ret = false

    if trend == -1

        _l = floor((iopenprice - icloseprice) / box) - 1 

        _ret := true

        if _l < Length

            for x = 0 to 3000

                if na(trend[x+1])

                    _ret := false

                    break

                if trend[x] != trend[x+1]

                    if trend[x+1] == -1

                        if icloseprice[x+1] <= icloseprice

                            _ret := false

                            break

                        _l := _l + (floor((iopenprice[x+1] - icloseprice[x+1]) / box[x+1]))

                        

                    if trend[x+1] == 1

                        start = icloseprice[x+1] - box[x+1]

                        forlen = floor((icloseprice[x+1] - iopenprice[x+1]) / box) - 1

                        for i = 0 to forlen

                            if start > icloseprice

                                _l := _l + 1

                            start := start - box[x+1]

                    if _l >= Length

                        _ret := true

                        break

    _ret



Brickhigh = f_Brickhigh()

Bricklow = f_Bricklow()


switch = 0

setA = 0

setB = 0


if Brickhigh and switch[1] == 0

    switch := 1

    setA := 1

    setB := 0

    setB

else

    if Bricklow and switch[1] == 1

        switch := 0

        setA := 0

        setB := 1

        setB

    else

        switch := nz(switch[1], 0)

        setA := 0

        setB := 0

        setB


botrend = 0

botrend := setA == 1 ? 1 : setB == 1 ? -1 : nz(botrend[1])


boline = showbreakout ? botrend == 1 ? trend == 1 ? icloseprice : oprice :  trend == 1 ? oprice : icloseprice : na

       

plot(boline, title = "Renko breakout", color = showbreakout ? botrend == 1 ? color.lime : botrend == -1 ? color.red : na : na, linewidth = 3, editable = false, transp = 0)

alertcondition(setA == 1, title='Breakout Uptrend started', message='Breakout Uptrend started')

alertcondition(setB == 1, title='Breakout Downtrend started', message='Breakout Downtrend started')


//============= enf of breakout strategy ===================


// Trend

showtrend = input(true, title="Show Trend")

showtrhold = input(true, title="Show Threshold")

tremalen = input(defval = 34, title="Trend EMA Length", minval = 1)

barcountwhip = input(defval = 3, title="Wait # Bars for Reversal", minval = 0)

thsreversal = input(defval = 3.0, title="Trend Threshold", minval = 0, step = 0.1)

thsreversal2 = input(defval = 1.5, title="Trend Threshold for Reversal", minval = 0, step = 0.1)


trcnt1 = 0

trcnt1 := change(icloseprice) ? 1 : nz(trcnt1[1]) + 1

trcnt1 := trcnt1 > 4000 ? 4000 : trcnt1

countch = 0

countch := change(icloseprice) ? nz(countch[1]) + 1 : nz(countch[1])

trch = false

trch := change(trend) and change(icloseprice) ? true : change(trend)==0 and change(icloseprice) ? false : nz(trch,false)


mysma(ser, len) =>

    sum = ser

    nn = 1

    if len > 1

        for i = 0 to 4000

            if nz(ser[i]) ==0 or nz(ser[i+1]) ==0

                break

            if ser[i] != nz(ser[i+1])

                nn := nn + 1

                sum := sum + nz(ser[i+1])

                if nn == len

                    break

    _ret = nn == len ? sum / len : na


myema(ser, len, trcnt, obox)=>

    float em = na

    if countch <= len 

        em := mysma(ser, len)

    if countch > len and not na(ser[trcnt]) and ser != nz(ser[trcnt])

        float alpha = 2 / (len + 1)

        bb = ser > nz(ser[trcnt]) ? 1 : -1

        kats = trch ? reversal : 1

        st = nz(ser[trcnt]) + bb * obox * kats

        em := alpha * st + (1 - alpha) * nz(em[trcnt]) // for the first one

        st := st + bb * obox

        for x = 0 to 4000

            if st > ser and bb > 0 or st < ser and bb < 0

                break

            em := alpha * st + (1 - alpha) * nz(em) // for other boxes

            st := st + bb * obox

    em := na(em) ? em[1] : em


float tema = na

float obox = na

obox := change(icloseprice) != 0 ? nz(box[1]) : nz(obox[1])

tmp = myema(icloseprice, tremalen, trcnt1, obox)

tema := icloseprice - floor((icloseprice - tmp) / obox) * obox


Upt = tema - thsreversal * box

Upt := Upt > icloseprice - reversal * box ? icloseprice - reversal * box : Upt

Dnt = tema + thsreversal * box

Dnt := Dnt < icloseprice + reversal * box ? icloseprice + reversal * box : Dnt


float TrendUp = na, float TrendDown = na

waitit = 0

waitit := nz(waitit[1])

mtrend = 0

mtrend := nz(mtrend[1],1)

TrendUp  := change(icloseprice) and waitit == 0 ? icloseprice[1] > TrendUp[1] ? max(Upt, TrendUp[1]) : Upt : nz(TrendUp[1])

TrendUp := mtrend == 1 and change(TrendUp) < 0 ? nz(TrendUp[1]) : TrendUp

TrendDown:= change(icloseprice) and waitit == 0  ? icloseprice[1] < TrendDown[1] ? min(Dnt, TrendDown[1]) : Dnt : TrendDown[1]

TrendDown := mtrend == -1 and change(TrendDown) > 0 ? nz(TrendDown[1]) : TrendDown


mtrend := waitit == 0 ? icloseprice > TrendDown[1] ? 1 : icloseprice < TrendUp[1]? -1 : mtrend : mtrend


if change(mtrend) != 0 and waitit == 0 and nz(waitit[2]) == 0

    waitit := 1

else

    waitit := waitit != 0 ? waitit + 1 : waitit


if waitit > 0

    mtrend := nz(mtrend[1])


if waitit > barcountwhip

    if mtrend == 1

        if icloseprice >= TrendUp + thsreversal2 * box

            waitit := 0

        if icloseprice <= TrendUp - thsreversal2 * box

            waitit := 0

            mtrend := -1

            TrendDown:= icloseprice[1] < TrendDown[1] ? min(Dnt, TrendDown[1]) : Dnt

    else

        if icloseprice <= TrendDown - thsreversal2 * box

            waitit := 0

        if icloseprice >= TrendDown + thsreversal2 * box

            waitit := 0

            mtrend := 1

            TrendUp  := icloseprice[1] > TrendUp[1] ? max(Upt, TrendUp[1]) : Upt


Tsl = mtrend==1 ? TrendUp : TrendDown

Tsl2 = mtrend==1 ? TrendUp + thsreversal * box: TrendDown - thsreversal * box

Tsl2 := (mtrend==1 and Tsl2 > icloseprice) or (mtrend==-1 and Tsl2 < icloseprice)? icloseprice : Tsl2 

Tsl2 :=Tsl2 < 0 ? 0 : Tsl2


trendcol = mtrend == 1 and nz(mtrend[1]) == 1 ? waitit == 0 ? color.green : color.silver : mtrend == -1 and nz(mtrend[1]) == -1 ? waitit == 0 ? color.red : color.silver : na


trendline = plot(Tsl, linewidth = 3, color = showtrend and Tsl !=0 and nz(Tsl[1]) !=0 ? trendcol : na, transp = 0, editable = false)

trcol = showtrend and showtrhold and mtrend == nz(mtrend[1]) and Tsl !=0 and nz(Tsl[1]) !=0 ? waitit == 0 ? mtrend == 1 ? color.new(color.lime, 80) : color.new(color.red, 80) : color.new(color.yellow, 80) : color.new(color.white, 100)

trcol1 = showtrend and showtrhold and Tsl !=0 and nz(Tsl[1]) !=0 ? color.new(color.gray, 30) : color.new(color.white, 100)

trline = plot(Tsl2, linewidth = 1, style = plot.style_circles, color = na, editable = false)

fill(trendline, trline, color =trcol, editable = false)


// trend reversal threshold line

plot(waitit > barcountwhip? mtrend == 1 ? TrendUp - thsreversal2 * box : TrendDown + thsreversal2 * box : na, color = waitit > barcountwhip ? color.maroon : na, style = plot.style_circles, editable = false)


plot(change(mtrend) > 0 and showtrend or change(mtrend) < 0 and showtrend ? Tsl : na, linewidth = 6, color = change(mtrend) > 0 and showtrend ? color.green : color.red, style = plot.style_circles, editable = false)


alertcondition(change(mtrend) > 0, title='Main Trend is Up', message='Main Trend is Up')

alertcondition(change(mtrend) < 0, title='Main Trend is Down', message='Main Trend is Down')

alertcondition(change(trend) > 0, title='Renko Trend is Up', message='Renko Trend is Up')

alertcondition(change(trend) < 0, title='Renko Trend is Down', message='Renko Trend is Down')



Responded

1
Developer 1
Rating
(412)
Projects
543
75%
Arbitration
9
44% / 0%
Overdue
24
4%
Free
2
Developer 2
Rating
(1)
Projects
2
0%
Arbitration
0
Overdue
0
Free
3
Developer 3
Rating
(851)
Projects
1460
72%
Arbitration
122
29% / 48%
Overdue
356
24%
Working
Published: 3 articles
Similar orders
I am currently using the attached Arbitrage MACD indicator. However, there are no signal alerts associated with this indicator. I would like to receive notifications on my android device the bar after a blue long arrow appears and the bar after a red short arrow appears. This is the current code: //+------------+-----------------------------------------------------+ //| v.22.04.07 | ArrZZx2.mq4 |
: Hello, I am looking for an experienced MQL4 developer to create a custom Binary Options Trading Bot for MetaTrader 4 (MT4). The bot needs to automate trades based on clear conditions and must have a reliable integration feature. I would like the bot to work smoothly with Telegram so that it can either receive signals from a channel/group or send instant trade notifications directly to my Telegram. The code should
SETJEO'S GOLD EA 30 - 200 USD
double GetTodayProfit() { double profit = 0; datetime today = StringToTime(TimeToString(TimeCurrent(), TIME_DATE)); HistorySelect(today, TimeCurrent()); for(int i = HistoryDealsTotal() - 1; i >= 0; i--) { ulong ticket = HistoryDealGetTicket(i); if(HistoryDealGetString(ticket, DEAL_SYMBOL) == _Symbol) { profit += HistoryDealGetDouble(ticket, DEAL_PROFIT); } } return profit; }
مطلوب موشر مع ربطه علي بوت تداول قوي جدا مختبر ومجرب مع التاكيد علي نسبه النجاح يتم انشاءه علي جميع الموشرات في الفوركس الذهب والبتكوين والus100 مع شرح للستراتيجية ونتايج اختيار اذا كان مجرب
I am looking for a developer to create an Expert Advisor (EA) for MetaTrader 5. Requirements: Trade XAUUSD (Gold) Automatically open and close trades Include Stop Loss and Take Profit settings Adjustable lot size and risk percentage Work on MT5 Allow me to change settings from the EA inputs Include backtesting support Source code preferred
I have build a trading view indicator which monitors trades. The strategy is based on OB, it buys and sells bullish and bearish OB. Also valid re enters on the retest of orderblocks only if TP is hit the first time. I’m looking for someone to develop me a EA which works on the same logic and buys and sells of the same logic as my Indicator. I currently have my indicator firing signals into a telegram channel so I
I need an expert advisor for fast excursion of trades. So that I can up my skills, I need it to have a good balance and need you to at least to price the the bot below $50
احتاج استراتيجية مع تحويله لمؤشر وفي المستقبل لربورت تداول مع وقف خسارة متحرك يعمل علي mt5وعمل علي مناطق دخول ىخروج يعمل علي الناسداك والعمل علي تقويتها باقصى نسبه نجاح بنسبه ٩٥ بالميه
Hello, I'm interested in a quote to convert my manual trading strategy into an automated strategy for NinjaTrader. Please note, I would like the quote based on the work and not my available budget; therefore, I entered $5 for the budget. Additionally, I would appreciate knowing how long it would take to build/test. I would prefer to have it sooner rather than later but selected 7 days not knowing how long it takes to
Indicator 75+ USD
This is a privet job so I'm just filling this up with words so that I can actually open the job so main stuff has already been discussed before and you know what needs fo be done

Project information

Budget
50+ USD
Deadline
from 1 day(s)