& how to play it.
///qualifier
if (ExtATRBuffer[i]<-80) q[i]=-1;
if (ExtATRBuffer2[i]>80) q[i]=1;
The unqualified market is a forest-free market. There is no 80+ pips 200-sample depth in either direction ~ no volatility choke on either side.
A qualified market has 14 out of 16 30-minute readings beyond absolute 80 (pips), an unqualified market has not (the default).
ObjectSetText(“Libec”+6, “Unqualified Market”, 41, “Arial Black”, Gray);
if (q[0]+q[1]+q[2]+q[3]+q[4]+q[5]+q[6]+q[7]+q[8]+q[9]+q[10]+q[11]+q[12]+q[13]+q[14]+q[15]>13) ObjectSetText(“Libec”+6, “Qualified Bull”, 41, “Arial Black”, LimeGreen);
else if (q[0]+q[1]+q[2]+q[3]+q[4]+q[5]+q[6]+q[7]+q[8]+q[9]+q[10]+q[11]+q[12]+q[13]+q[14]+q[15]<-13) ObjectSetText(“Libec”+6, “Qualified Bear”, 41, “Arial Black”, DeepPink);
This is a neutral market (no volatility edge), but of course there was a vector before the stall, and in the end a continuation coming out of this temporary balance is still more likely than an opposing vector.

The play is to fade. What? The first fade is F2++ to F3-, but from the second trade on it would become easy to do so on any platform: fade te first hourly close outside the 30-sample BB and target the opposite end of the BB.

If this was the first trade, F2++ would mean 1.0949 and F3- would mean 1.0967. The plus and the minus both worth 5 pips each.
Axel S – a rather old routine can be used here as well.
The hourly “Mean” is E-32 HL2 (yellow). The 28-pip displacements I call the “safety” lines. The 59-pip one I don’t think I have named at all.

The idea behind the 0.28 vs 2.8 is that these are codes I can use to auto target these lines (at market crops outside).
///// Crop 0.28 long (E32+28Pips)
if( OrderType()==OP_BUY && (OrderStopLoss()==0.28 || OrderTakeProfit()==2.8) && OrderMagicNumber()!=50 && OrderMagicNumber()!=51 && OrderMagicNumber()!=52 && OrderMagicNumber()!=53 && OrderMagicNumber()!=54 && OrderProfit()>0 &&
Close[0]>iMA(NULL,60,32,0,MODE_EMA, PRICE_MEDIAN,0)+280*Point && Bid>OrderOpenPrice()+.50*Point && OrderProfit()+OrderSwap()+OrderCommission()>0)
{OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
Print("Cropper Closed LONG @ "+MarketInfo(OrderSymbol(), MODE_BID)+" for ", OrderProfit());}
///// Crop 2.8 short (E32-28Pips)
if( OrderType()==OP_SELL && (OrderStopLoss()==2.8 || OrderTakeProfit()==0.28) && OrderMagicNumber()!=50 && OrderMagicNumber()!=51 && OrderMagicNumber()!=52 && OrderMagicNumber()!=53 && OrderMagicNumber()!=54 && OrderProfit()>0 &&
Close[0]<iMA(NULL,60,32,0,MODE_EMA, PRICE_MEDIAN,0)-280*Point && Ask<OrderOpenPrice()-.50*Point && OrderProfit()+OrderSwap()+OrderCommission()>0)
{OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
Print("Cropper Closed SHORT @ "+MarketInfo(OrderSymbol(), MODE_ASK)+" for ", OrderProfit());}
///// Crop 5.9 short (E32-59Pips)
if( OrderType()==OP_SELL && (OrderStopLoss()==5.9 || OrderTakeProfit()==0.59) && OrderMagicNumber()!=50 && OrderMagicNumber()!=51 && OrderMagicNumber()!=52 && OrderMagicNumber()!=53 && OrderMagicNumber()!=54 && OrderProfit()>0 &&
Close[0]<iMA(NULL,60,32,0,MODE_EMA, PRICE_MEDIAN,0)-590*Point && Ask<OrderOpenPrice()-.50*Point && OrderProfit()+OrderSwap()+OrderCommission()>0)
{OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
Print("Cropper Closed SHORT @ "+MarketInfo(OrderSymbol(), MODE_ASK)+" for ", OrderProfit());}

Future pop – I would put 3 likes on this one if I could.
Future, love, Faraday
Brutha, heaven can bait.