once rr=1
mb=average[20](typicalprice)
k=48
n=(k*2)-4
p=(n/2)-1
h1=DPO[n](high)
moyh=high-h1
hi=(moyh-moyh[1]+(high[p])/n)*n
hi=(round(hi*100))/100
l1=dpo[n](low)
moyl=low-l1
lo=(moyl-moyl[1]+(low[p])/n)*n
lo=(round(lo*100))/100
clo1=dpo[n](close)
moyc=close-clo1
clot=(moyc-moyc[1]+(close[p])/n)*n
clot=(round(clot*100))/100
cond1=(high>high[1] and high>high[2])
cond2=(cond1 and high>hi[46]) and (barindex>bari or rr=-1)
if cond1 and cond2 then
flagg=1
targeth=high
targetl=lo[46]
else
flagg=0
signa=mb
endif
for zz=0 to 45
if clot[45-zz]<targetl and hi[45-zz]<=targeth and flagg=1 then
signa=high+(averagetruerange[20](close))*.5
rr=1
bari=barindex+zz+2
break
elsif hi[45-zz]>targeth then
signa=mb
break
endif
next
condi=(low<low[1] and low<low[2]) and low<lo[46] and (barindex>bar or rr=1)
if condi then
fflag=1
target1=low
target2=hi[46]
else
fflag=0
siigna=mb
endif
for kk=0 to 45
if clot[45-kk]>target2 and lo[45-kk]>=target1 and fflag=1 then
siigna=low-(averagetruerange[20](close))*.5
rr=-1
bar=barindex+kk+2
break
elsif lo[45-kk]<target1 then
siigna=mb
break
endif
next
if barindex < 100 then
signa=undefined
siigna=undefined
endif
golong = (siigna < mb)
goshort = (signa > mb)*-1
return golong as "LONG",goshort as "SHORT",0