Convert a small indicator from pine script to mq4

MQL4 Convertir

Spécifications

Hi, I need to convert this indicator written in pine script to mq4. Alerts should be added when the price touches the trendline 
and the ability to change the ATR period and set how many past trendlines can be displayed.
It can be done? 
Thank you.
Corrado


//@version=5

indicator("Trendlines with Breaks", "Trendlines with Breaks", overlay = true)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input.int(14, 'Swing Detection Lookback')
mult = input.float(1., 'Slope', minval = 0, step = .1)
calcMethod = input.string('Atr', 'Slope Calculation Method', options = ['Atr','Stdev','Linreg'])
backpaint = input(true, tooltip = 'Backpainting offset displayed elements in the past. Disable backpainting to see real time information returned by the indicator.')

//Style
upCss = input.color(color.teal, 'Up Trendline Color', group = 'Style')
dnCss = input.color(color.red, 'Down Trendline Color', group = 'Style')
showExt = input(true, 'Show Extended Lines')

//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
var upper = 0.
var lower = 0.
var slope_ph = 0.
var slope_pl = 0.

var offset = backpaint ? length : 0

n = bar_index
src = close

ph = ta.pivothigh(length, length)
pl = ta.pivotlow(length, length)

//Slope Calculation Method
slope = switch calcMethod
    'Atr'    => ta.atr(length) / length * mult
    'Stdev'  => ta.stdev(src,length) / length * mult
    'Linreg' => math.abs(ta.sma(src * n, length) - ta.sma(src, length) * ta.sma(n, length)) / ta.variance(n, length) / 2 * mult

//Get slopes and calculate trendlines
slope_ph := ph ? slope : slope_ph
slope_pl := pl ? slope : slope_pl

upper := ph ? ph : upper - slope_ph
lower := pl ? pl : lower + slope_pl

var upos = 0
var dnos = 0
upos := ph ? 0 : close > upper - slope_ph * length ? 1 : upos
dnos := pl ? 0 : close < lower + slope_pl * length ? 1 : dnos

//-----------------------------------------------------------------------------}
//Extended Lines
//-----------------------------------------------------------------------------{
var uptl  = line.new(na,na,na,na, color = upCss, style = line.style_dashed, extend = extend.right)
var dntl  = line.new(na,na,na,na, color = dnCss, style = line.style_dashed, extend = extend.right)

if ph and showExt
    uptl.set_xy1(n-offset, backpaint ? ph : upper - slope_ph * length)
    uptl.set_xy2(n-offset+1, backpaint ? ph - slope : upper - slope_ph * (length+1))

if pl and showExt
    dntl.set_xy1(n-offset, backpaint ? pl : lower + slope_pl * length)
    dntl.set_xy2(n-offset+1, backpaint ? pl + slope : lower + slope_pl * (length+1))

//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
plot(backpaint ? upper : upper - slope_ph * length, 'Upper', color = ph ? na : upCss, offset = -offset)
plot(backpaint ? lower : lower + slope_pl * length, 'Lower', color = pl ? na : dnCss, offset = -offset)

//Breakouts
plotshape(upos > upos[1] ? low : na, "Upper Break"
  , shape.labelup
  , location.absolute
  , upCss
  , text = "B"
  , textcolor = color.white
  , size = size.tiny)

plotshape(dnos > dnos[1] ? high : na, "Lower Break"
  , shape.labeldown
  , location.absolute
  , dnCss
  , text = "B"
  , textcolor = color.white
  , size = size.tiny)

//-----------------------------------------------------------------------------}
//Alerts
//-----------------------------------------------------------------------------{
alertcondition(upos > upos[1], 'Upward Breakout', 'Price broke the down-trendline upward')
alertcondition(dnos > dnos[1], 'Downward Breakout', 'Price broke the up-trendline downward')

//-----------------------------------------------------------------------------}

Répondu

1
Développeur 1
Évaluation
(250)
Projets
460
26%
Arbitrage
140
20% / 59%
En retard
100
22%
Travail
2
Développeur 2
Évaluation
(266)
Projets
598
35%
Arbitrage
64
20% / 58%
En retard
147
25%
Gratuit
Publié : 1 article, 22 codes
3
Développeur 3
Évaluation
(538)
Projets
814
62%
Arbitrage
33
27% / 45%
En retard
23
3%
Gratuit
Publié : 1 code
4
Développeur 4
Évaluation
(209)
Projets
220
75%
Arbitrage
0
En retard
0
Gratuit
5
Développeur 5
Évaluation
(4)
Projets
3
33%
Arbitrage
1
0% / 100%
En retard
0
Gratuit
6
Développeur 6
Évaluation
(12)
Projets
17
47%
Arbitrage
2
50% / 50%
En retard
0
Gratuit
7
Développeur 7
Évaluation
(4)
Projets
3
0%
Arbitrage
3
33% / 67%
En retard
1
33%
Gratuit
8
Développeur 8
Évaluation
(322)
Projets
499
67%
Arbitrage
5
40% / 0%
En retard
4
1%
Gratuit
Publié : 8 codes
9
Développeur 9
Évaluation
(574)
Projets
945
47%
Arbitrage
309
58% / 27%
En retard
125
13%
Gratuit
10
Développeur 10
Évaluation
(132)
Projets
178
39%
Arbitrage
4
25% / 50%
En retard
14
8%
Gratuit

Informations sur le projet

Budget
30 - 50 USD