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
(296)
Projects
475
40%
Arbitration
105
40% / 24%
Overdue
80
17%
Loaded
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
Título: Necesito ayuda para usar MetaTrader 4 build 1443 para que funcione mi robot Descripción: Estoy buscando un desarrollador o experto en MetaTrader 4 que pueda ayudarme a utilizar la versión antigua de MT4 build 1443, ya que mi robot de trading solo funciona correctamente en esa versión. Actualmente cuando instalo MetaTrader 4 se actualiza automáticamente a versiones más nuevas (1457 / 1460), y mi robot deja de
hello, please take a moment to review my project. It is for Quanttower. it is very detailed in the instructions. Thank you, Just let me know if you can do it and the whats the cost and timeframe
Indicator buy sell 30 - 225 USD
Looking for a buy and sell indicator Arrows should be placed at closing of candle for confirmation and then not disappear or repaint. I am looking for a serious devleper who doesn't play games waste time and knows what he's doing so I can build a long-time professional relationship with him. I would only be willing to put the deposite down after I know it doesn't repaint because many developers pulled me to
project details : BUILD Custom Pine Script Indicator + Strategy from Logic Spec (NOT a code copy job) I need a Pine Script developer to BUILD a custom indicator and strategy FROM SCRATCH based on a logic specification I will provide. This is not a copy/modify job — if you can only work with source code, this is not for you. WHAT I NEED BUILT: 1. VALID HIGH/LOW DETECTION - Identify swing highs and lows using price
XAU/USD Alert Bot MT4 30 - 120 USD
Project Summary: Create an alert-only MT4 EA for XAU/USD (5-minute chart) that detects a specific sequence of price action events and sends push notifications and optional sound/Telegram alerts when all conditions are met. ⸻ 1. Inputs / Settings • Enable/Disable Alerts → Boolean (true/false) • FVG minimum width (pips) → Default 2 • Order Block maximum width (pips) → Default 30 • Optional time filter → Default
I need a MetaTrader 5 Expert Advisor (EA) for Forex trading. Account size: $1000 Requirements: 1. The EA should work only on Forex pairs. 2. Automatic Buy and Sell trades. 3. Lot size starting from 0.04. 4. Stop Loss and Take Profit settings. 5. Only one trade at a time. 6. Works on pairs like EURUSD, GBPUSD, USDJPY etc. 7. Risk management suitable for a $1000 account. 8. Easy settings for lot size, SL, TP and risk
Hi, I need a custom MT5 indicator based on a multi-timeframe fractal break reversal. 1️⃣ The indicator should use two timeframes: Higher Timeframe (HTF) Lower Timeframe (LTF) (Timeframes should be adjustable in inputs, e.g., HTF = H1 and LTF = M5) 2️⃣ Use standard fractals to detect fractal highs and fractal lows. 3️⃣ Primary signal (HTF): When a Lower High fractal is formed and price breaks that Lower High in one
I’ve been following your profile and I'm interested in your expertise with the ATAS API and C# development. I have a clear technical scope for a high-performance M1 indicator focused on Binary Options and Scalping. ​The core logic is based on institutional Order Flow convergence: ​Stacked Imbalances: 300% ratio with a minimum of 3 consecutive levels. ​Delta/Price Divergence: Filtering for market exhaustion (New Highs
can you help me with editing the existing ATR Trailing Stop Indicator to include a logic to include additional script, where my ninZaRenko bars when it closes above OR below the dynamic stop line, I will be out of trade. Please remember, in this Indicator, now when the price touches the stop line, I am stopped out .. . I want to edit the script, in lieu of the price touch, I like to update this logic to when the bar
APARTE DE PASAR EL CÓDIGO A MT5 QUIERO QUE CONTENGA TODOS LOS DATOS NECESARIOS PARA QUE ESTE NUEVO CÓDIGO SE PUEDA USAR EN LA FÁBRICACIÓN DE UN ROBOT, NO SE MUCHO DE ESTO PERO INVESTIGUE QUE DEBE LEER BUFFERS Y OTRAS COSAS

Project information

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