Vol Crush

Candy?

What brings on a mean reversion? A volatility crush.

The reversion’s target is the snapshot of the far end of the 9-day EMA Band.

A typical mean reversion plays out in 48-56 hours.

Say from 14:00 on the 5th of November to 17:00 on the 7th of November.

This unraveling of the oversold (or overbought) condition is likely going to get triggered by a volatility compression divergence.

The light green verticals are volatility compression anchors, if the market makes a lower low but is unable to compress the losing side’s settlement volatility further (1H close off the bottom), a line gets plotted. If the return beyond the 8 EMO happens within 2 hours, the divergence is yellow (not enough separation), if it takes longer, the divergence is gray.

Therefore, on the above image, you can say that a gray divergence was second-guessed by a yellow divergence before the next gray divergence was fortified by another, wider gray divergence with a slight, 5-pip undercut as the final nail in the reversal’s coffin. That’s what Vax is for.

If you want to become a good trader, take mean reversion to heart, as they are the most “protected” move. Imagine the volume you could put on knowing the duration and the target.

I did make a plot for the 30-minute to have highlights at a glance, tell me if this is a buy the dip or sell the rip market, and to top it off, I named the 5-closes outside the 30-BB condition as Hype, and that’s when volatility can turn on itself (flip) with a high likelihood.


///2.5 hours outside at upper band  
if (High[i]-Low[i]>160*Point && 
Close[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+4) && Close[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3) && 
Close[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2) && Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) &&  
Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)  
){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]+80*Point, Time[i], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrCrimson); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,10);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}


///reversal at upper band  
if (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
((High[i+2]>High[i+3] && High[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-30*Point) || High[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2))
 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i)-10*Point
 && Low[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4)
 //&& High[i+2]>High[i+3]
 ){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i+2]+80*Point, Time[i+1], Close[i+2]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrCrimson); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}

///Reinforcement at upper band  
if (i>0 && iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
High[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2) && Low[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1)){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]-80*Point, Time[i+1], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrDarkGreen); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}


///2.5 hours outside at lower band  
if (High[i]-Low[i]>160*Point && 
Close[i+4]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4) && Close[i+3]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) && 
Close[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1) &&  
Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)  
){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]-80*Point, Time[i], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrDarkGreen); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,10);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}


///reversal at lower band  
if (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && High[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) &&  Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i)
&& High[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)
&& Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i+2]-80*Point, Time[i+1], Close[i+2]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}

///reinforcement at lower band  
if (i>0 && iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && High[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) && High[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]>Close[i+1]){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]+80*Point, Time[i+1], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrCrimson); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}  

I was thinking of leading up with a brownie point to Shapiro when he says that first, the behavior has to change. Then suggest that someone should tell him about Bollinger Bands, and then conclude that he still has time, and who knows, he may also come up with the 30-minute 30-sample being the answer.

Or maybe I should just wish everyone a good weekend.