I’ll show you something neat. Remember the circled menu item?

Below was the inspiration for enlisting it.

This much about fractals, a 30-minute chart, and a 30-sample BB.
Next thing – 60 sample stochastic on the hourly. Highlights for the last 4-percentile.

if (i>0 && stoch60[i]<4)
{
ObjectCreate("DOTS"+i,OBJ_TEXT, 1, Time[i+1],(ExtATRBuffer2[i])+25);
ObjectSetText("DOTS"+i, DoubleToStr(NormalizeDouble(stoch60[i],1),1), 16, "Impact", clrDarkGreen);
}
if (i>0 && stoch60[i]>96)
{
ObjectCreate("DOTS"+i,OBJ_TEXT, 1, Time[i+1],(ExtATRBuffer2[i])-15);
ObjectSetText("DOTS"+i, DoubleToStr(NormalizeDouble(stoch60[i],1),1), 16, "Impact", clrCrimson);
}
It does not always prompt an immediate reaction, but the countermove also holds predictive value.
For instance, a shallow pullback to the E-30 is a great continuation entry.

Otherwise, I have a couple of examples with an 86-pip counter move first.

This is a tough call with the Bulls and the Bears converging, being neck & neck.
The Bull / Bear strength plotter I came up with yesterday. Not sure how it would be useful, but I felt the need for it.

if (ExtATRBuffer<30) bulls=(100-ExtATRBuffer+20)/30*25;
else if (ExtATRBuffer>=30 && ExtATRBuffer<47) bulls=(100-ExtATRBuffer+26)/17*9+25;
else if (ExtATRBuffer>=47 && ExtATRBuffer<135) bulls=(100-ExtATRBuffer+36)/88*41+25;
if (ExtATRBuffer2<30) bears=(100-ExtATRBuffer2+20)/30*25;
else if (ExtATRBuffer2>=30 && ExtATRBuffer2<47) bears=(100-ExtATRBuffer2+26)/17*9+25;
else if (ExtATRBuffer2>=47 && ExtATRBuffer2<135) bears=(100-ExtATRBuffer2+36)/88*41+25;
ObjectCreate("LEVELOPE"+29,OBJ_LABEL,3, 0,0);
ObjectSet("LEVELOPE"+29,OBJPROP_CORNER,3);
ObjectSet("LEVELOPE"+29,OBJPROP_XDISTANCE,0);
ObjectSet("LEVELOPE"+29,OBJPROP_YDISTANCE,60);
if (bulls>bears) ObjectSet("LEVELOPE"+29,OBJPROP_COLOR,clrGreen);
else ObjectSet("LEVELOPE"+29,OBJPROP_COLOR,clrCrimson);
if (Period()==60) ObjectSetText("LEVELOPE"+29," ",24,"Arial Black");
else ObjectSetText("LEVELOPE"+29,"Bulls: "+DoubleToStr(NormalizeDouble(bulls,1),1)+"%",24,"Arial Black");
ObjectCreate("LEVELOPE"+30,OBJ_LABEL,3, 0,0);
ObjectSet("LEVELOPE"+30,OBJPROP_CORNER,3);
ObjectSet("LEVELOPE"+30,OBJPROP_XDISTANCE,0);
ObjectSet("LEVELOPE"+30,OBJPROP_YDISTANCE,90);
if (bulls>bears) ObjectSet("LEVELOPE"+30,OBJPROP_COLOR,clrGreen);
else ObjectSet("LEVELOPE"+30,OBJPROP_COLOR,clrCrimson);
if (Period()==60) ObjectSetText("LEVELOPE"+30," ",24,"Arial Black");
else ObjectSetText("LEVELOPE"+30,"Bears: "+DoubleToStr(NormalizeDouble(bears,1),1)+"%",24,"Arial Black");
