Re: MT4 Indicator requests and ideas
18521And how about making the indicator capable of working in crypto? Right now it doesnt work, only non currency that works is XAUUSD but it could work on BTCUSD or ETHUSD right?
Try hereNaughty 77 wrote: Thu May 11, 2023 3:42 am Dear Mr Tools
Would you kindly please consider adding a full set of the latest averages( g channel,deviation scaled etc) to this wonderful indicator,hoping it can be done to this particular indicator with the shift option already included.
Kind regards
Naughty 77
thanks!
Code: Select all
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("Trendlines with Breaks [LuxAlgo]",overlay=true)
length = input.int(14)
k = input.float(1.,'Slope',minval=0,step=.1)
method = input.string('Atr','Slope Calculation Method',
options=['Atr','Stdev','Linreg'])
show = input(false,'Show Only Confirmed Breakouts')
//----
upper = 0.,lower = 0.
slope_ph = 0.,slope_pl = 0.
src = close
n = bar_index
//----
ph = ta.pivothigh(length,length)
pl = ta.pivotlow(length,length)
slope = switch method
'Atr' => ta.atr(length)/length*k
'Stdev' => ta.stdev(src,length)/length*k
'Linreg' => math.abs(ta.sma(src*bar_index,length)-ta.sma(src,length)*ta.sma(bar_index,length))/ta.variance(n,length)/2*k
slope_ph := ph ? slope : slope_ph[1]
slope_pl := pl ? slope : slope_pl[1]
upper := ph ? ph : upper[1] - slope_ph
lower := pl ? pl : lower[1] + slope_pl
//----
single_upper = 0
single_lower = 0
single_upper := src[length] > upper ? 0 : ph ? 1 : single_upper[1]
single_lower := src[length] < lower ? 0 : pl ? 1 : single_lower[1]
upper_breakout = single_upper[1] and src[length] > upper and (show ? src > src[length] : 1)
lower_breakout = single_lower[1] and src[length] < lower and (show ? src < src[length] : 1)
plotshape(upper_breakout ? low[length] : na,"Upper Break",shape.labelup,location.absolute,#26a69a,-length,text="B",textcolor=color.white,size=size.tiny)
plotshape(lower_breakout ? high[length] : na,"Lower Break",shape.labeldown,location.absolute,#ef5350,-length,text="B",textcolor=color.white,size=size.tiny)
//----
var line up_l = na
var line dn_l = na
var label recent_up_break = na
var label recent_dn_break = na
if ph[1]
line.delete(up_l[1])
label.delete(recent_up_break[1])
up_l := line.new(n-length-1,ph[1],n-length,upper,color=#26a69a,
extend=extend.right,style=line.style_dashed)
if pl[1]
line.delete(dn_l[1])
label.delete(recent_dn_break[1])
dn_l := line.new(n-length-1,pl[1],n-length,lower,color=#ef5350,
extend=extend.right,style=line.style_dashed)
if ta.crossover(src,upper-slope_ph*length)
label.delete(recent_up_break[1])
recent_up_break := label.new(n,low,'B',color=#26a69a,
textcolor=color.white,style=label.style_label_up,size=size.small)
if ta.crossunder(src,lower+slope_pl*length)
label.delete(recent_dn_break[1])
recent_dn_break := label.new(n,high,'B',color=#ef5350,
textcolor=color.white,style=label.style_label_down,size=size.small)
//----
plot(upper,'Upper',color = ph ? na : #26a69a,offset=-length)
plot(lower,'Lower',color = pl ? na : #ef5350,offset=-length)
alertcondition(ta.crossover(src,upper-slope_ph*length),'Upper Breakout','Price broke upper trendline')
alertcondition(ta.crossunder(src,lower+slope_pl*length),'Lower Breakout','Price broke lower trendline')
I have taken a look at eurusd 1 minute on tradingview and i think by default it repaints. Maybe show only confirmed breakouts box should be selected.Gethsemane wrote: Thu May 11, 2023 5:45 pm Im using this indicator on tradingview for scalping, it works amazing, just make sure to take profit.
Would be awesome if this code works in mt4, im sure many could earn with this one.
i personally use it on 15m TF with a MACD and wait for candleclose before entering, let it run for 1-2 candles before take profit and have SL just above the trendline break = small losses (the few it incurs)
the code is open source thankfully, i just hope it is possible to convert it
Code: Select all
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © LuxAlgo //@version=5 indicator("Trendlines with Breaks [LuxAlgo]",overlay=true) length = input.int(14) k = input.float(1.,'Slope',minval=0,step=.1) method = input.string('Atr','Slope Calculation Method', options=['Atr','Stdev','Linreg']) show = input(false,'Show Only Confirmed Breakouts') //---- upper = 0.,lower = 0. slope_ph = 0.,slope_pl = 0. src = close n = bar_index //---- ph = ta.pivothigh(length,length) pl = ta.pivotlow(length,length) slope = switch method 'Atr' => ta.atr(length)/length*k 'Stdev' => ta.stdev(src,length)/length*k 'Linreg' => math.abs(ta.sma(src*bar_index,length)-ta.sma(src,length)*ta.sma(bar_index,length))/ta.variance(n,length)/2*k slope_ph := ph ? slope : slope_ph[1] slope_pl := pl ? slope : slope_pl[1] upper := ph ? ph : upper[1] - slope_ph lower := pl ? pl : lower[1] + slope_pl //---- single_upper = 0 single_lower = 0 single_upper := src[length] > upper ? 0 : ph ? 1 : single_upper[1] single_lower := src[length] < lower ? 0 : pl ? 1 : single_lower[1] upper_breakout = single_upper[1] and src[length] > upper and (show ? src > src[length] : 1) lower_breakout = single_lower[1] and src[length] < lower and (show ? src < src[length] : 1) plotshape(upper_breakout ? low[length] : na,"Upper Break",shape.labelup,location.absolute,#26a69a,-length,text="B",textcolor=color.white,size=size.tiny) plotshape(lower_breakout ? high[length] : na,"Lower Break",shape.labeldown,location.absolute,#ef5350,-length,text="B",textcolor=color.white,size=size.tiny) //---- var line up_l = na var line dn_l = na var label recent_up_break = na var label recent_dn_break = na if ph[1] line.delete(up_l[1]) label.delete(recent_up_break[1]) up_l := line.new(n-length-1,ph[1],n-length,upper,color=#26a69a, extend=extend.right,style=line.style_dashed) if pl[1] line.delete(dn_l[1]) label.delete(recent_dn_break[1]) dn_l := line.new(n-length-1,pl[1],n-length,lower,color=#ef5350, extend=extend.right,style=line.style_dashed) if ta.crossover(src,upper-slope_ph*length) label.delete(recent_up_break[1]) recent_up_break := label.new(n,low,'B',color=#26a69a, textcolor=color.white,style=label.style_label_up,size=size.small) if ta.crossunder(src,lower+slope_pl*length) label.delete(recent_dn_break[1]) recent_dn_break := label.new(n,high,'B',color=#ef5350, textcolor=color.white,style=label.style_label_down,size=size.small) //---- plot(upper,'Upper',color = ph ? na : #26a69a,offset=-length) plot(lower,'Lower',color = pl ? na : #ef5350,offset=-length) alertcondition(ta.crossover(src,upper-slope_ph*length),'Upper Breakout','Price broke upper trendline') alertcondition(ta.crossunder(src,lower+slope_pl*length),'Lower Breakout','Price broke lower trendline')
yeah only confirmed breakouts, ofcI have taken a look at eurusd 1 minute on tradingview and i think by default it repaints. Maybe show only confirmed breakouts box should be selected.
Still repaint with box checked? See the sell signal dissapear.
Yeah but thats not the point, sorry if it was misunderstood,Yes definitely repaint.
Users browsing this forum: Amazon [Bot], DotNetDotCom [Bot], IBM oBot [Bot], PaperLi [Bot], Ruby [Bot], vvFish, xard777 and 93 guests