İş Gereklilikleri
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')
//-----------------------------------------------------------------------------}
Yanıtlandı
1
Derecelendirme
Projeler
460
26%
Arabuluculuk
140
20%
/
59%
Süresi dolmuş
100
22%
Çalışıyor
2
Derecelendirme
Projeler
598
35%
Arabuluculuk
64
20%
/
58%
Süresi dolmuş
147
25%
Serbest
Yayınlandı: 1 makale, 22 kod
3
Derecelendirme
Projeler
814
62%
Arabuluculuk
33
27%
/
45%
Süresi dolmuş
23
3%
Serbest
Yayınlandı: 1 kod
4
Derecelendirme
Projeler
220
75%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
5
Derecelendirme
Projeler
3
33%
Arabuluculuk
1
0%
/
100%
Süresi dolmuş
0
Serbest
6
Derecelendirme
Projeler
17
47%
Arabuluculuk
2
50%
/
50%
Süresi dolmuş
0
Serbest
7
Derecelendirme
Projeler
3
0%
Arabuluculuk
3
33%
/
67%
Süresi dolmuş
1
33%
Serbest
8
Derecelendirme
Projeler
499
67%
Arabuluculuk
5
40%
/
0%
Süresi dolmuş
4
1%
Serbest
Yayınlandı: 8 kod
9
Derecelendirme
Projeler
945
47%
Arabuluculuk
309
58%
/
27%
Süresi dolmuş
125
13%
Serbest
10
Derecelendirme
Projeler
178
39%
Arabuluculuk
4
25%
/
50%
Süresi dolmuş
14
8%
Serbest
Proje bilgisi
Bütçe
30 - 50 USD