Top & Bottom Finder
Top & Bottom Finder
me/eyops
//@version=5
Approximation1(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation1 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation2(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation2 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation3(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation3 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation4(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation4 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation5(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation5 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation6(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation6 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation7(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation7 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation8(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation8 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation9(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation9 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation10(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation10 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation11(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation11 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation12(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation12 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation13(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation13 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation14(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation14 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation15(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation15 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation16(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation16 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation17(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation17 = (l0 + 2*l1 + 2*l2 + l3)/6
Approximation18(a, b) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - b) * a+b * nz(l0[1])
l1 := -b*l0+nz(l0[1])+b*nz(l1[1])
l2 := -b*l1+nz(l1[1])+b*nz(l2[1])
l3 := -b*l2+nz(l2[1])+b*nz(l3[1])
Approximation18 = (l0 + 2*l1 + 2*l2 + l3)/6
bcolor = #008080
p_display = true
label_direction = true
w_adjust = input(1, 'Buy Limit/Take Profit Line Width')
//Indicator Parameters
liveprice = close
show_selllimitone = true
show_takeprofit = input(true, 'Show Take Profit')
show_marketorder = input(true, 'Show Market Order')
show_buylimit1 = input(true, 'Show Buy Limit 1')
show_buylimit2 = input(true, 'Show Buy Limit 2')
show_buylimit3 = input(true, 'Show Buy Limit 3')
blp1 = 1
blp2 = 1
blp3 = 0.77
blp4 = 0.55
blp5 = 0.27
bep1 = 0.906
bep2 = 0.807
bep3 = 0.712
bep4 = 0.624
//Buy Limits
if show_marketorder
bl2 = line.new(bar_index, long_bl2, bar_index + away + 100, long_bl2,
color=BLC, width=w_adjust)
line.delete(bl2[1])
if show_buylimit1
bl3 = line.new(bar_index, long_bl3, bar_index + away + 100, long_bl3,
color=BLC, width=w_adjust)
line.delete(bl3[1])
if show_buylimit2
bl4 = line.new(bar_index, long_bl4, bar_index + away + 100, long_bl4,
color=BLC, width=w_adjust)
line.delete(bl4[1])
if show_buylimit3
bl5 = line.new(bar_index, long_bl5, bar_index + away + 100, long_bl5,
color=BLC, width=w_adjust)
line.delete(bl5[1])
//Sell Limits
if show_takeprofit
lt = line.new(bar_index, long_tp, bar_index + away + 100, long_tp, color=TPC,
width=w_adjust)
line.delete(lt[1])
if barstate.islast
p1 = slp ? long_tp : blp4
p2 = slp ? long_bl1 : blp4
p3 = slp ? long_bl1 : blp4
p4 = slp ? long_bl2 : blp4
p5 = slp ? long_bl3 : blp4
p6 = slp ? long_bl4 : blp4
p7 = slp ? long_bl5 : blp4
if show_takeprofit
lbl1 = label.new(bar_index + away, long_tp, (p_display ? p1t : na) + ' -
TAKE PROFIT', style=updown, textcolor=color.white, color=#222426, size=size.normal,
textalign=text.align_right)
label.delete(lbl1[1])
//lbl2 = label.new(bar_index+away,long_bl1,(p_display ? p2t : na)+" - PRICE
" ,style=updown,textcolor=color.white,
color=#222426,size=size.large,textalign=text.align_left)
//label.delete(lbl2[1])
if show_marketorder
lbl3 = label.new(bar_index + away, long_bl2, (p_display ? p4t : na) + ' -
MARKET ORDER ', style=down, textcolor=color.white, color=#222426, size=size.normal,
textalign=text.align_right)
label.delete(lbl3[1])
if show_buylimit1
lbl4 = label.new(bar_index + away, long_bl3, (p_display ? p5t : na) + ' -
BUY LIMIT 1 ', style=down, textcolor=color.white, color=#222426, size=size.normal,
textalign=text.align_right)
label.delete(lbl4[1])
if show_buylimit2
lbl5 = label.new(bar_index + away, long_bl4, (p_display ? p6t : na) + ' -
BUY LIMIT 2 ', style=down, textcolor=color.white, color=#222426, size=size.normal,
textalign=text.align_right)
label.delete(lbl5[1])
if show_buylimit3
lbl6 = label.new(bar_index + away, long_bl5, (p_display ? p7t : na) + ' -
BUY LIMIT 3', style=down, textcolor=color.white, color=#222426, size=size.normal,
textalign=text.align_right)
label.delete(lbl6[1])
ValueOne=(2)
Input=input.int(10, title='Signal Strength')
lele(qual,len)=>
bindex = 0.0
sindex = 0.0
bindex :=nz(bindex[1],0)
sindex :=nz(sindex[1],0)
ret=0
if (close>close[4])
bindex:=bindex + 1
if(close<close[4])
sindex:=sindex + 1
if (bindex>qual) and (close<open) and high>= ta.highest(high,len)
bindex:=0
ret:=-1
if ((sindex>qual) and (close>open) and (low<= ta.lowest(low,len)))
sindex:=0
ret:=1
ret
major=lele(ValueOne,Input)
major_bearish_reversal = (major==-1?high:na)
major_bullish_reversal = (major==1?low:na)
//SIGNALS//
//ALERTS//