Air Guitar = bottoming. Not just for an ABC correction up, but a new impulse structure.

The analog.

The present. If you look closely enough, there is a red line on both charts. That’s the 9-day EMA, the divider between bear and bull.
GLD+ (upper line of the box) is 5-pips shy of the 3-day ATR measured from the consolidation mean.
The plot.
///black arrow up @120
if (royal[ArrayMaximum(royal,24,i)]>0 && royal[ArrayMaximum(royal,6,i)]<=0 && iFractals(symbol,0,MODE_LOWER,i) && Low[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)+80*Point && Low[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)){
ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-30*Point);
ObjectSetText("Cigar"+IntegerToString(i), CharToStr(233), 56, "Wingdings", Black);
///Aero Brick
j=i+2;
while (j<i+6){
if (iFractals(symbol,0,MODE_LOW,j) && Low[j]<(iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,j)+80*Point) && Low[j]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,j)) break;
j++;
}
if (j<i+6) {
ObjectCreate("KAROLYI"+IntegerToString(i), OBJ_RECTANGLE, 1, Time[i+1], 22, Time[i], 0);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_COLOR,clrPurple);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_WIDTH,4);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_BACK,0);
ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],75);
ObjectSetText("DOG"+IntegerToString(i),"POC+/GLD+ Test", 26, "Impact", clrPurple);
mode[i]=1;
}
Next, there would be several tests of the S-30 (30-min). (Make or break, and if no go there, look for the second brick soap box, which also prints below the 30-sample BB.)
Here, you can see how the bear compression remained deeper in the shed (dog house) than the bull compression, and the 3 arrows are where they converged, but the bears never came out on top.
