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
(236)
Projects
310
69%
Arbitration
12
42% / 25%
Overdue
11
4%
Free
Published: 16 codes
2
Developer 2
Rating
(316)
Projects
480
66%
Arbitration
5
40% / 0%
Overdue
4
1%
Working
Published: 8 codes
3
Developer 3
Rating
(149)
Projects
220
80%
Arbitration
18
33% / 44%
Overdue
10
5%
Working
Published: 24 articles, 1882 codes
4
Developer 4
Rating
(281)
Projects
455
39%
Arbitration
93
43% / 18%
Overdue
73
16%
Busy
Published: 2 codes
5
Developer 5
Rating
(7)
Projects
8
50%
Arbitration
0
Overdue
0
Free
Published: 1 code
6
Developer 6
Rating
(564)
Projects
933
47%
Arbitration
303
59% / 25%
Overdue
125
13%
Loaded
Similar orders
Hello, Hope you are doing well. I need urgent help with a project, and if done successfully, there will be long-term work available. Requirements: Accurate POC Calculation: Identify the POC (Point of Control) as the price level with the highest traded volume within a selected session or time range. Allow users to select volume source: trade volume, tick count, or bid/ask volume. Correct Value Area Calculation (68%)
Very important note \ You must provide a working prototype that can be tested for 3 days before choosing you as a developer or giving you the project to ensure that you fully understand the terms of work (so that no type of disagreement occurs) \ It does not redraw itself \ It hangs on the M1 time frame \ Its signals appear exactly with the beginning of the candle (not late)
Hello to all, I'm looking for a coder that has a great attention to details and is able to code me and EA that works on anytime frame chart.. For example H4 chart, currencies, indices, stocks, or commodities using a fast MA (e.g. 20) crossing a slow MA (e.g. 120) as its core signal, with optional confirmation filters (RSI levels and H4 candle breakouts). It must be fully configurable with MA periods, ATR settings
I need a modification of the standard Donchian indicator that is already included in the MT5 terminal (I can provide you with the source code; alternatively it can be found in the Data Folder at MQL5\Indicators\Free Indicators). I want it to draw a cross and a box (a horizontal line and a vertical line at the point of candle close, as well as a box around the crossing point [see image "Example 1" attached]; thickness
I have a purchased MT4 custom indicator (Rapid Trend.ex4) located in the Market folder: MQL4 > Indicators > Market > Rapid Trend.ex4 I want to create a new custom indicator ( iCustomRapidTrend.ex4 ) that: Uses the original Rapid Trend indicator via iCustom with path input: Market\\Rapid Trend.ex4 Adjusts the width and size of the lines and arrows (Green/Red lines: width 2; Up-arrow Blue and Down-arrow Magenta: size
LOT SIZE WITH MULTIPLIER WHEN INITIAL TRADE ENTERED WHEN PARABOLIC REVERSES IT SHOULD NOT CLOSE OPEN ENTRY AND DO HEDGING AS FOLLOWS: PARABOLIC BUY MOVING AVERAGE BUY OPEN TRADE BUY 0.01 WHEN PARABOLIC REVERSE AGAIN ENTER SAME LOT & HEDGE THE POSITION 0.01 SELL WHEN AGAIN PARABOLIC BUY ENTER IF MULTIPLIER IS 2 THEN 0.02 BUY AGAIN PARABOLIC SELL 0.02 AS SO ON.. AS BELOW EXAMPLE.. First Buy: 0.01 Reverse → Sell: 0.01
Project Name: Automatic Trend Channel and Bounce Detection Indicator Platform: TradingView (Pine Script v6) or lastest version Project Description: I want an indicator that automatically detects trend channels and bounce signals without manual drawing. It must: Identify swing highs and swing lows using pivot logic (for example, 5 candles left and 5 candles right), Draw a dynamic channel based on these swing points
Dashboard panel for indicator + Fiboanacci + Bullish candle + Bearish candle + Candle highier high + Candle highier low + Candle Lower high + Candle Lower low + Strong signal candle + PO3 + Session + examples
Hello Developer,please I would like to update my indicators to start showing up on my mt4 chart,as is not currently showing up. I only want to update the indicators,it doesn't require unlocking. Thanks Innocent ✍️ Contact me(inbox me) if you can do the work
📜 HostGhost EA Final Job Invite – For MQL5.com 📋 Project Title: Finalize & Polish HostGhost Dynamic Trader EA (80% Completed) 🌟 Project Description: Hello Developers, I am seeking an experienced and detail-oriented MQL5 programmer to finalize and polish a nearly completed EA called HostGhost . 80% of the EA's architecture is already built — structured, modular, well-commented, and elegantly laid out. Your role

Project information

Budget
30+ USD
VAT (21%): 6.3 USD
Total: 36.3 USD
For the developer
27 USD
Deadline
from 1 to 4 day(s)