//@version=5
indicator("support and resistance on multi timeframe with trends [parsimaj]
" ,shorttitle="Sup&Res&Trends", overlay = true , max_bars_back = 1000 ,
max_lines_count = 500)
psin_syuv = [Link](true , "show trend lines?" , group = "settings" )
ssoi_eib = [Link]("" , "choose higher time frame" , group = "sup & res")
aldj_asd = [Link](15, minval=1, title="Pivot Length Left Hand Side (current)" ,
group = "current time frame sup & res")
aau_fpa = [Link](20, minval=1, title="Pivot Length Left Hand Side (HTF)" , group
= "higher time frame sup & res")
asdm_qdpo = [Link](low , "pivot low source" , group = "Trend 1 pivots")
asdm_qdpo2 = [Link](low , "pivot low source2" , group = "Trend 2 piovots")
dko_adj = [Link](10, minval=1, title="Pivot Length Right Hand Side (current)",
group = "current time frame sup & res")
soef = [Link](title="Lower time frame line width " , defval=5, group = "sup &
res")
anfl_sfjd = [Link](high , "pivot high source" , group = "Trend 1 pivots")
dapn_dwen = [Link](15, minval=1, title="Pivot Length Right Hand Side (HTF)",
group = "higher time frame sup & res")
sdnt_sadm = [Link](true , "show sup & res ?" , group = "settings" , inline =
"ptu")
anfl_sfjd2 = [Link](high , "pivot high source2" , group = "Trend 2 piovots")
rowb_sqpf = input(20 , "left bars for pivot" , group = "Trend 1 pivots")
weo_sef = [Link](2 , "number of current TF pivots" , group = "settings" , minval
= 2 , inline = "ptu")
htf1_soef = [Link](title="Higher time frame line width " , defval=18, group =
"sup & res")
rowb_sqpf2 = input(10 , "left bars for pivot2" , group = "Trend 2 piovots")
qurn_asmd = rowb_sqpf
afns_fkep = input(15 , "right bars for pivot" , group = "Trend 1 pivots")
afns_fkep2 = input(10 , "right bars for pivot2" , group = "Trend 2 piovots")
fsdn_scan = [Link](2 , "number of higher TF pivots" , group = "settings" ,
minval = 2 , inline = "fspon")
qurn_asmd2 = rowb_sqpf2
sow_dow2 = afns_fkep2
weu_seib = [Link](5 , "number of pivots" , minval = 0 , maxval = 10 )
sow_dow = afns_fkep
find_pivot_low_function(wte_wqe, qfpn_Asej , eqmw , weu_seib) =>
var wote_nfd = array.new_float( weu_seib )
var dfnl_sdef = array.new_int( weu_seib )
sfin= nz([Link](wte_wqe , qfpn_Asej , eqmw))
if not na([Link](wte_wqe , qfpn_Asej , eqmw))
[Link](wote_nfd ,sfin)
[Link](dfnl_sdef ,bar_index[eqmw] )
[[Link](dfnl_sdef , 1) , [Link](wote_nfd , 1) , [Link](dfnl_sdef ,
0) , [Link](wote_nfd , 0) ]
[wpyr_cxm , rpwn_xbvc ,
cxlv_shfe , xkcn_egso]= find_pivot_low_function(asdm_qdpo, rowb_sqpf ,
afns_fkep ,weu_seib)
[wpyr_cxm2 , rpwn_xbvc2 ,
cxlv_shfe2 , xkcn_egso2]= find_pivot_low_function(asdm_qdpo2, rowb_sqpf2 ,
afns_fkep2 ,weu_seib)
find_pivot_high_function(vskb_seog, qfpn_Asej , eqmw , weu_seib) =>
var pvtm_zoem = array.new_float( weu_seib )
var avxc_rpsd = array.new_int( weu_seib )
dpag= nz([Link](vskb_seog , qfpn_Asej , eqmw))
if not na([Link](vskb_seog , qfpn_Asej , eqmw))
[Link](pvtm_zoem ,dpag)
[Link](avxc_rpsd ,bar_index[eqmw] )
[[Link](avxc_rpsd , 1) , [Link](pvtm_zoem , 1) , [Link](avxc_rpsd , 0)
, [Link](pvtm_zoem , 0) ]
[vpan_ekfn , vamv_sdrj ,
svpn_masb , svdp_qrhp ]= find_pivot_high_function(anfl_sfjd, qurn_asmd ,
sow_dow ,weu_seib)
[vpan_ekfn2 , vamv_sdrj2 ,
svpn_masb2 , svdp_qrhp2 ]= find_pivot_high_function(anfl_sfjd2, qurn_asmd2 ,
sow_dow2 ,weu_seib)
aspfn= svpn_masb - vpan_ekfn
plotshape(not na([Link](high , qurn_asmd , sow_dow)) ? close : na ,"" ,
[Link] , [Link] , [Link](229, 255, 82) , -sow_dow , size=
[Link])
plotshape(not na([Link](low , rowb_sqpf , afns_fkep)) ? close : na , "" ,
[Link] , [Link] , [Link](211, 0, 230) , -afns_fkep , size=
[Link])
var line avpb_epsf = na
var line vsln_epvi = na
var line afke_epnv = na
var line qmvz_flkd = na
var line avpb_epsf2 = na
var line vsln_epvi2 = na
if psin_syuv
[Link](avpb_epsf)
[Link](vsln_epvi)
avpb_epsf := [Link](vpan_ekfn , vamv_sdrj , svpn_masb , svdp_qrhp , extend =
[Link] , color = [Link](249, 82, 255) , width = 3 )
vsln_epvi := [Link](wpyr_cxm , rpwn_xbvc , cxlv_shfe , xkcn_egso ,extend =
[Link], color = [Link](15, 76, 241) , width = 3)
[Link](afke_epnv)
[Link](qmvz_flkd)
[Link](avpb_epsf2)
[Link](vsln_epvi2)
avpb_epsf2 := [Link](vpan_ekfn2 , vamv_sdrj2 , svpn_masb2 ,
svdp_qrhp2 ,extend = [Link] , color = [Link](239, 144, 144) , width = 1 ,
style = line.style_dashed )
vsln_epvi2 := [Link](wpyr_cxm2 , rpwn_xbvc2 , cxlv_shfe2 , xkcn_egso2 ,
extend = [Link], color = [Link](185, 220, 203) , width = 1, style =
line.style_dashed)
if svdp_qrhp >= vamv_sdrj and xkcn_egso >= rpwn_xbvc
[Link](afke_epnv)
[Link](qmvz_flkd)
[Link](avpb_epsf)
[Link](vsln_epvi)
qmvz_flkd := [Link](wpyr_cxm , rpwn_xbvc , cxlv_shfe , xkcn_egso , extend
= [Link], color = [Link](230, 176, 0) , width = 5)
if svdp_qrhp <= vamv_sdrj and xkcn_egso <= rpwn_xbvc
[Link](afke_epnv)
[Link](qmvz_flkd)
[Link](avpb_epsf)
[Link](vsln_epvi)
afke_epnv := [Link](vpan_ekfn , vamv_sdrj , svpn_masb , svdp_qrhp ,
extend = [Link] , color = [Link](236, 42, 236, 70) , width = 5 )
vqpb_Sdva = [Link]
pivot_line_function(weu_seib , vvmf_igsf , qpfb_Sfg)=>
var wote_nfd = array.new_float( weu_seib , 0.0 )
var zvbd_eotx = array.new_int( weu_seib , 0 )
var pvtm_zoem = array.new_float( weu_seib , 0.0 )
var pbnr_adiov = array.new_int( weu_seib , 0 )
vzfk_vkcv = [Link](high, vvmf_igsf, qpfb_Sfg)
vewp_enab = [Link](low , vvmf_igsf, qpfb_Sfg)
not_nz_vzfk_vkcv =nz( vzfk_vkcv)
not_nz_vewp_enab =nz( vewp_enab)
vzfk_vkcvs = fixnan(vzfk_vkcv)
vewp_enabs = fixnan(vewp_enab)
sofib = not na(vzfk_vkcv)
spnbf = not na(vewp_enab)
if spnbf
[Link](wote_nfd ,not_nz_vewp_enab )
[Link](zvbd_eotx ,time[qpfb_Sfg] )
if sofib
[Link](pvtm_zoem ,not_nz_vzfk_vkcv )
[Link](pbnr_adiov ,time[qpfb_Sfg] )
fsobfs = [Link](wote_nfd , 0)
sfpnb = [Link](wote_nfd , 1)
sdFdn = [Link](zvbd_eotx , 0)
nDkG = [Link](zvbd_eotx , 1)
sFtHJ = [Link](pvtm_zoem , 0)
fsPEjf = [Link](pvtm_zoem , 1)
eipvn_sj = [Link](pbnr_adiov , 0)
sdbp_eFzs = [Link](pbnr_adiov , 1)
if spnbf
if sdFdn - nDkG < sdFdn - eipvn_sj
if fsobfs <= sfpnb
[Link](wote_nfd , 1)
[Link](zvbd_eotx , 1)
else
[Link](wote_nfd , 0)
[Link](zvbd_eotx , 0)
if [Link](wote_nfd) > weu_seib
[Link](wote_nfd)
if [Link](zvbd_eotx) > weu_seib
[Link](zvbd_eotx)
if sofib
if eipvn_sj - sdbp_eFzs < eipvn_sj - sdFdn
if sFtHJ >= fsPEjf
[Link](pvtm_zoem , 1)
[Link](pbnr_adiov , 1)
else
[Link](pvtm_zoem , 0)
[Link](pbnr_adiov , 0)
if [Link](pvtm_zoem) > weu_seib
[Link](pvtm_zoem)
if [Link](pbnr_adiov) > weu_seib
[Link](pbnr_adiov)
[wote_nfd , zvbd_eotx , pvtm_zoem , pbnr_adiov , vzfk_vkcvs , vewp_enabs,
vzfk_vkcv , vewp_enab]
[wote_nfd , zvbd_eotx , pvtm_zoem , pbnr_adiov ,
vzfk_vkcvs , vewp_enabs, vzfk_vkcv , vewp_enab] = pivot_line_function(weo_sef ,
aldj_asd , dko_adj)
[htf_wote_nfd , htf_zvbd_eotx , htf_pvtm_zoem , htf_pbnr_adiov ,
htf_vzfk_vkcvs , htf_vewp_enabs, htf_vzfk_vkcv , htf_vewp_enab] =
[Link]([Link] ,ssoi_eib, pivot_line_function(fsdn_scan,
aau_fpa , dapn_dwen))
var line wprib_abDs = na
var line sdpb_ebQW = na
var line WEe_snS = na
var line peU_snDK = na
var Geo_Snhd = [Link]<line>(weo_sef , [Link](0 , 1 , 2 , 3))
var eowb_wndS = [Link]<line>(weo_sef , [Link](0 , 1 , 2 , 3))
var dsalb_adaG = [Link]<line>(fsdn_scan , [Link](0 , 1 , 2 , 3))
var sda_sdn_s = [Link]<line>(fsdn_scan , [Link](0 , 1 , 2 , 3))
if not na (vewp_enab) or not na (vzfk_vkcv)
if sdnt_sadm
nvpW_ncS = [Link]
if [Link](nvpW_ncS) > weo_sef -1
for i = 0 to [Link](nvpW_ncS) - 1
[Link]([Link](nvpW_ncS, i))
for i = 0 to weo_sef - 1
[Link]([Link](Geo_Snhd , i))
sdpb_ebQW := [Link](x1=[Link](zvbd_eotx , i),
y1=[Link](wote_nfd , i),
x2=time, y2=[Link](wote_nfd , i),
extend=vqpb_Sdva,
color= [Link], width=soef , xloc =
xloc.bar_time)
[Link](Geo_Snhd , sdpb_ebQW)
if [Link](Geo_Snhd) > weo_sef
[Link](Geo_Snhd)
for i = 0 to weo_sef - 1
[Link]([Link](eowb_wndS , i))
wprib_abDs := [Link](x1=[Link](pbnr_adiov , i),
y1=[Link](pvtm_zoem , i),
x2=time, y2=[Link](pvtm_zoem , i),
extend=vqpb_Sdva,
color= [Link], width=soef , xloc =
xloc.bar_time)
[Link](eowb_wndS , wprib_abDs)
if [Link](eowb_wndS) > weo_sef
[Link](eowb_wndS)
if sdnt_sadm
if [Link](dsalb_adaG) > 0
for i = 0 to fsdn_scan - 1
[Link]([Link](dsalb_adaG , i))
peU_snDK := [Link](x1=[Link](htf_zvbd_eotx , i),
y1=[Link](htf_wote_nfd , i),
x2=time, y2=[Link](htf_wote_nfd ,
i), extend=vqpb_Sdva,
color= [Link], width= htf1_soef ,
xloc = xloc.bar_time)
[Link](dsalb_adaG , peU_snDK)
if [Link](dsalb_adaG) > fsdn_scan
[Link](dsalb_adaG)
if [Link](sda_sdn_s) > 0
for i = 0 to fsdn_scan - 1
[Link]([Link](sda_sdn_s , i))
WEe_snS := [Link](x1=[Link](htf_pbnr_adiov , i),
y1=[Link](htf_pvtm_zoem , i),
x2=time, y2=[Link](htf_pvtm_zoem ,
i), extend=vqpb_Sdva,
color= [Link], width= htf1_soef ,
xloc = xloc.bar_time)
[Link](sda_sdn_s , WEe_snS)
if [Link](sda_sdn_s) > fsdn_scan
[Link](sda_sdn_s)
if sdnt_sadm
for i in Geo_Snhd
line.set_color(i , close > line.get_y1(i) ? [Link](0, 230, 119, 51) :
[Link](255, 82, 82, 51))
for i in eowb_wndS
line.set_color(i , close > line.get_y1(i) ? [Link](0, 230, 119, 50) :
[Link](255, 82, 82, 51))
if sdnt_sadm
for i in dsalb_adaG
line.set_color(i , close > line.get_y1(i) ? [Link](0, 230, 119, 74) :
[Link](255, 82, 82, 74))
for i in sda_sdn_s
line.set_color(i , close > line.get_y1(i) ? [Link](0, 230, 119, 79) :
[Link](255, 82, 82, 74))