A technical call.
What is supposed to happen upon the guest appearance of a laser beam?
You’re supposed to scale through the E9, the S20 and the E44 – and perhaps get a little extended time. Of course it does not always work out that way. 3 exceptions on one image:

# 1 – Price got to the second line, but had such a strong rejection that the same day closed back in the embedded oversold on the 18 sample stoch.
# 2 – Price went overtly oversold (prints below 4.4), the lift fizzled out at the first line & fell back.
# 3 – Pro volume completely took away the prospect of getting beyond the first MA.
/// 3-sample low with stoch reading below 4.5 or 9.5 to 18
if (
i>0 &&
(
!(
c77[i+1] &&
Low[i+1]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+1)))
&& iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i-1))<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i-1))
&& iLow(symbol,0,i)==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i-1))
&& (st18[i]<4.5 || (st18[i]>9.5 && st18[i]<21.5) || (st18[i+1]>9.5 && st18[i+1]<18.5))
&& Low[i]-Low[i+1]<430*Point
&& (Low[i]-Low[i+2]<430*Point || Low[i]-Low[i+2]>1000*Point)
&& (High[i]>High[i+1]-80*Point || (Open[i]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i)+50*Point && Close[i]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i) ) )
&& Open[i]<Close[i]
&& High[i]<iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i)
&& High[i]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_MAIN,i)-290*Point
&& (MathAbs(iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_MAIN,i)-iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i))>380*Point || High[i]>High[i+1] )
&& Low[i+1]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+1)-700*Point
&& Low[i+2]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+2)-700*Point
){
The score is currently 0, but that is at once 100 more than -100.



def ZZG = reference ZigZagHighLow(price, price, reversalAmount, 0, 1, 0);
def ZZG2 = if showonlytoday and !IsNaN(close(period = "DAY")[-12]) then Double.NaN else reference ZigZagHighLow(price, price, reversalAmount, 0, 1, 0);
def zzSave = if !IsNaN(ZZG) then price else GetValue(zzSave, 1);
def chg = (price / GetValue(zzSave, 1) - 1) * 100;
def isUp = chg >= 0;
for(shift=600; shift>=0; shift--)
{
curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);
curlow=Low[curlowpos];
curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);
curhigh=High[curhighpos];
//------------------------------------------------
if( curlow>=lastlow ) { lastlow=curlow; }
else
{
if( lasthighpos>curlowpos )
{
zzL[curlowpos]=curlow;
///*
min=100000; pos=lasthighpos;
for(i=lasthighpos; i>=curlowpos; i--)
{
if (zzL[i]==0.0) continue;
if (zzL[i]<min) { min=zzL[i]; pos=i; }
zz[i]=0.0;
}
zz[pos]=min;
zzval[pos]=min;
//*/
}
lastlowpos=curlowpos;
lastlow=curlow;
}
//--- high
if( curhigh<=lasthigh ) { lasthigh=curhigh;}
else
{
if( lastlowpos>curhighpos )
{
zzH[curhighpos]=curhigh;
///*
max=-100000; pos=lastlowpos;
for(i=lastlowpos; i>=curhighpos; i--)
{
if (zzH[i]==0.0) continue;
if (zzH[i]>max) { max=zzH[i]; pos=i; }
zz[i]=0.0;
zzval[i]=zzval[i+1];
}
zz[pos]=max;
zzval[pos]=max;
//*/
}
lasthighpos=curhighpos;
lasthigh=curhigh;
}
//----------------------------------------------------------------------
}