Convert a tradingview indicator to MQL5

MQL5 Indicators

Specification

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; min-height: 14.0px}

Hello

I have a simple Tradingview indicator and the source code is available.
So what I need now is you to convert the tradingview  indicator to MT5  flawlessly.

Like always source code will be delivered at the end

This is the link to the source code .
The indicator have 10 differents moving average ['SMA', 'EMA', 'WMA', 'DEMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF', 'HULL'], I only need the MT5 default MA

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic

//created by: @Anil_Ozeksi
//developer: ANIL ÖZEKŞİ
//author: @kivancozbilgic

indicator('HIGH AND LOW Optimized Trend Tracker', 'HL OTT', overlay=true)
length = input.int(2, 'OTT Period', minval=1)
percent = input.float(0.6, 'OTT Optimization Coeff', step=0.1, minval=0)
hllength = input.int(10, 'Highest and Lowest Length', minval=1)
src = ta.highest(high, hllength)
srcl = ta.lowest(low, hllength)
highlighting = input(title='Highlighter On/Off ?', defval=true)
mav = input.string(title='Moving Average Type', defval='VAR', options=['SMA', 'EMA', 'WMA', 'DEMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF', 'HULL'])
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = math.sum(vud1, 9)
    vDD = math.sum(vdd1, 9)
    vCMO = nz((vUD - vDD) / (vUD + vDD))
    VAR = 0.0
    VAR := nz(valpha * math.abs(vCMO) * src) + (1 - valpha * math.abs(vCMO)) * nz(VAR[1])
    VAR
VAR = Var_Func(src, length)
DEMA = 2 * ta.ema(src, length) - ta.ema(ta.ema(src, length), length)
Wwma_Func(src, length) =>
    wwalpha = 1 / length
    WWMA = 0.0
    WWMA := wwalpha * src + (1 - wwalpha) * nz(WWMA[1])
    WWMA
WWMA = Wwma_Func(src, length)
Zlema_Func(src, length) =>
    zxLag = length / 2 == math.round(length / 2) ? length / 2 : (length - 1) / 2
    zxEMAData = src + src - src[zxLag]
    ZLEMA = ta.ema(zxEMAData, length)
    ZLEMA
ZLEMA = Zlema_Func(src, length)
Tsf_Func(src, length) =>
    lrc = ta.linreg(src, length, 0)
    lrc1 = ta.linreg(src, length, 1)
    lrs = lrc - lrc1
    TSF = ta.linreg(src, length, 0) + lrs
    TSF
TSF = Tsf_Func(src, length)
HMA = ta.wma(2 * ta.wma(src, length / 2) - ta.wma(src, length), math.round(math.sqrt(length)))
Var_Funcl(srcl, length) =>
    valphal = 2 / (length + 1)
    vud1l = srcl > srcl[1] ? srcl - srcl[1] : 0
    vdd1l = srcl < srcl[1] ? srcl[1] - srcl : 0
    vUDl = math.sum(vud1l, 9)
    vDDl = math.sum(vdd1l, 9)
    vCMOl = nz((vUDl - vDDl) / (vUDl + vDDl))
    VARl = 0.0
    VARl := nz(valphal * math.abs(vCMOl) * srcl) + (1 - valphal * math.abs(vCMOl)) * nz(VARl[1])
    VARl
VARl = Var_Funcl(srcl, length)
DEMAl = 2 * ta.ema(srcl, length) - ta.ema(ta.ema(srcl, length), length)
Wwma_Funcl(srcl, length) =>
    wwalphal = 1 / length
    WWMAl = 0.0
    WWMAl := wwalphal * srcl + (1 - wwalphal) * nz(WWMAl[1])
    WWMAl
WWMAl = Wwma_Funcl(srcl, length)
Zlema_Funcl(srcl, length) =>
    zxLagl = length / 2 == math.round(length / 2) ? length / 2 : (length - 1) / 2
    zxEMADatal = srcl + srcl - srcl[zxLagl]
    ZLEMAl = ta.ema(zxEMADatal, length)
    ZLEMAl
ZLEMAl = Zlema_Funcl(srcl, length)
Tsf_Funcl(srcl, length) =>
    lrcl = ta.linreg(srcl, length, 0)
    lrc1l = ta.linreg(srcl, length, 1)
    lrsl = lrcl - lrc1l
    TSFl = ta.linreg(srcl, length, 0) + lrsl
    TSFl
TSFl = Tsf_Funcl(srcl, length)
HMAl = ta.wma(2 * ta.wma(srcl, length / 2) - ta.wma(srcl, length), math.round(math.sqrt(length)))

getMA(src, length) =>
    ma = 0.0
    if mav == 'SMA'
        ma := ta.sma(src, length)
        ma

    if mav == 'EMA'
        ma := ta.ema(src, length)
        ma

    if mav == 'WMA'
        ma := ta.wma(src, length)
        ma

    if mav == 'DEMA'
        ma := DEMA
        ma

    if mav == 'TMA'
        ma := ta.sma(ta.sma(src, math.ceil(length / 2)), math.floor(length / 2) + 1)
        ma

    if mav == 'VAR'
        ma := VAR
        ma

    if mav == 'WWMA'
        ma := WWMA
        ma

    if mav == 'ZLEMA'
        ma := ZLEMA
        ma

    if mav == 'TSF'
        ma := TSF
        ma

    if mav == 'HULL'
        ma := HMA
        ma
    ma


getMAl(srcl, length) =>
    mal = 0.0
    if mav == 'SMA'
        mal := ta.sma(srcl, length)
        mal

    if mav == 'EMA'
        mal := ta.ema(srcl, length)
        mal

    if mav == 'WMA'
        mal := ta.wma(srcl, length)
        mal

    if mav == 'DEMA'
        mal := DEMAl
        mal

    if mav == 'TMA'
        mal := ta.sma(ta.sma(srcl, math.ceil(length / 2)), math.floor(length / 2) + 1)
        mal

    if mav == 'VAR'
        mal := VARl
        mal

    if mav == 'WWMA'
        mal := WWMAl
        mal

    if mav == 'ZLEMA'
        mal := ZLEMAl
        mal

    if mav == 'TSF'
        mal := TSFl
        mal

    if mav == 'HULL'
        mal := HMAl
        mal
    mal

MAvg = getMA(src, length)
fark = MAvg * percent * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir == 1 ? longStop : shortStop
HOTT = MAvg > MT ? MT * (200 + percent) / 200 : MT * (200 - percent) / 200
HOTTC = color.blue
MAvgl = getMAl(srcl, length)
farkl = MAvgl * percent * 0.01
longStopl = MAvgl - farkl
longStopPrevl = nz(longStopl[1], longStopl)
longStopl := MAvgl > longStopPrevl ? math.max(longStopl, longStopPrevl) : longStopl
shortStopl = MAvgl + farkl
shortStopPrevl = nz(shortStopl[1], shortStopl)
shortStopl := MAvgl < shortStopPrevl ? math.min(shortStopl, shortStopPrevl) : shortStopl
dirl = 1
dirl := nz(dirl[1], dirl)
dirl := dirl == -1 and MAvgl > shortStopPrevl ? 1 : dirl == 1 and MAvgl < longStopPrevl ? -1 : dirl
MTl = dirl == 1 ? longStopl : shortStopl
LOTT = MAvgl > MTl ? MTl * (200 + percent) / 200 : MTl * (200 - percent) / 200
LOTTC = color.red
HOTTLine = plot(nz(HOTT[2]), title='HOTT', color=color.new(HOTTC, 0), linewidth=2, style=plot.style_line)
LOTTLine = plot(nz(LOTT[2]), title='LOTT', color=color.new(LOTTC, 0), linewidth=2, style=plot.style_line)
FillColor = highlighting ? color.new(#9915FF, 80) : na
fill(HOTTLine, LOTTLine, title='Highligter', color=FillColor)
color1 = close > HOTT[2] ? #00FFFF : close < LOTT[2] ? #FF00FF : na
barcolor(color1)
alertcondition(ta.crossover(close, HOTT[2]), title='Price Crossover Alarm', message='PRICE OVER HOTT - BUY SIGNAL!')
alertcondition(ta.crossunder(close, LOTT[2]), title='Price Crossunder Alarm', message='PRICE UNDER LOTT - SELL SIGNAL!')

link: HIGH-and-LOW-Optimized-Trend-Tracker-HOTT-LOTT/

Responded

1
Developer 1
Rating
(278)
Projects
373
72%
Arbitration
19
32% / 47%
Overdue
14
4%
Free
Published: 14 codes
2
Developer 2
Rating
(322)
Projects
499
67%
Arbitration
5
40% / 0%
Overdue
4
1%
Free
Published: 8 codes
3
Developer 3
Rating
(152)
Projects
228
80%
Arbitration
22
27% / 50%
Overdue
11
5%
Free
Published: 24 articles, 1882 codes
4
Developer 4
Rating
(297)
Projects
476
40%
Arbitration
105
40% / 24%
Overdue
81
17%
Busy
Published: 2 codes
5
Developer 5
Rating
(7)
Projects
8
50%
Arbitration
0
Overdue
0
Free
Published: 1 code
6
Developer 6
Rating
(574)
Projects
945
47%
Arbitration
309
58% / 27%
Overdue
125
13%
Free
Similar orders
Hello i need some to teach me step my step in an idiot terms and I will be willing to learn more and I am ready to pay for it any amount please if anyone can put me though i will be happy thank look forward to anyone responses
I have discovered this indicator called RMA ADAPTIVE Ema. I am looking for a programmer that will create a dashboard and an indicator that will work in a similar way as the indicator in the picture attached below. Let's chat
Hello traders, I am currently looking for a professional and experienced trading coach/mentor and would like to connect with individuals who offer structured coaching services. Before proceeding, I would appreciate clarity on the following: Your primary trading strategy (scalping, intraday, swing, or long-term investing) Markets you specialize in (Forex, crypto, indices, stocks, etc.) Availability of verified track
Hello, I am looking for an experienced MQL5 developer to build a professional Buy/Sell indicator for MT5, specifically optimized for XAUUSD (Gold) on the M15 timeframe. The indicator must focus on high-quality signals with clean logic, not frequent signals. Main requirements: 1. True Non-Repainting - Signals must appear only after candle close. - No signal changes after the candle closes. 2. Signal Logic The
I am looking for a highly skilled and professional developer to create a custom Buy/Sell indicator for MT5. The indicator must be fully non-repainting on the chart and must include separate Buy and Sell buffers for possible future EA integration. What I need is not a noisy indicator that produces frequent random signals. I want the exact opposite: the indicator should be highly selective, with few but strong signals
Buy and sell indicator 30 - 200 USD
} Hello, I am looking for a highly skilled and professional developer to create a powerful custom trading indicator for MetaTrader. The indicator must display Buy and Sell signals directly on the chart in a clean and professional way (for example, dots or arrows). The signals must be non-repainting, meaning once a signal appears it must never change or disappear after the candle closes. I want the indicator to be
I need a highly accurate spike MT5 detector for boom and crash which can be used to catch big spikes. Demo versions will be required. The indicator should not repaint and have high win rate. It should work as shown in the links below https://vt.tiktok.com/ZSHgMePGh/ https://vt.tiktok.com/ZSHg6STkB/ https://vt.tiktok.com/ZSHg62YJ4/ https://vt.tiktok.com/ZSHgjoEML/
i have an existing indicator i built that i need help finishing. it is trend based and momentum based and need to be working flawlessly with a high win rate
I would like to request a programmer to help me with the programming of a dashboard. The indicator I have attached is an indicator that draws two horizontal lines on the high and low of the first hour candle of the day of every Thursday of the week. The two lines stretches through to Wednesday next week. From there, the dashboard must show above(Blue) if price is above the high/(upper horizontal line) of first hour
I am looking for an experienced MQL5 developer to complete the optimization and structural refinement of an existing MT5 Expert Advisor (source code ~2.5MB). Phase 1 (audit and baseline testing) has already been completed. The remaining work focuses on correcting core system behavior without changing the strategy. Key issues identified: • Scenario gate logic is not correctly structured at the entry decision level •

Project information

Budget
30+ USD
Deadline
from 1 to 4 day(s)