3 things I wasn’t paying attention to before.
#1 When the total regime change happened at the top, the entire consolidation took place below the 16 EMA. So it is not enough to be on the other side of the 80 line, it must be high-basing to turn.

This therefore did not qualify.

The current problem with the reversal is that the volatility is rising.

The third important clue was the failure to the leg 3 (which resulted in having to rename it as a 2B) was again too much volatility. Believe it or not, a steep 2-day incline is not productive.

See those red diagonal lines? They are steep 2-day inclines that I call liquidity breaks. All of them have resulted a lower low, and only two of them had a re-visit/beat by 5 and 11 pips namely.
Two days and 100+ pips and the rally is spent.
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j))-Low[i]>1000*Point && iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j))<iMA(symbol,0,9,0,MODE_EMA,PRICE_HIGH,iHighest(symbol,0,MODE_HIGH,2,j))+600*Point) ObjectSet("Liquidityx"+i,OBJPROP_COLOR,clrRed);
ObjectSet("Liquidityx"+i,OBJPROP_WIDTH,9);
ObjectSet("Liquidityx"+i,OBJPROP_BACK,1);
Other than that, the “3” did not register on my RSI2 scale which would make it equal to the one at the top. Strong divergence.

Album #48 came out today
F3 plots

if (High[i]>iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)+FMax*2.2*10*Point
&& High[i]>High[i+1]+33*Point && Close[i]<High[i]-60*Point &&
High[i]-Low[i]>900*Point && Low[i]>L80N[i+1]
){
ObjectCreate("Bod"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], High[i]+330*Point);
if (i>1 && High[i]>High[i+1] && (High[i-1]>High[i] || High[i-2]>High[i]) && Low[i]>L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact", Green);
else if (i>2 && High[i]>High[i+1] && High[i-3]>High[i] && Low[i]>L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact", Green);
else ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact", White);
if (iRSI(symbol,0,2,PRICE_MEDIAN,i)<88.4) ObjectSetText("Bod"+DoubleToStr(i), "F3", 34, "Impact", White); }
if (Low[i]<iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)-FMax*2.4*10*Point
&& Low[i]<Low[i+1]-33*Point && (Close[i]>Low[i]+210*Point || (i>0 && Low[i-1]>Low[i])) &&
High[i]-Low[i]>430*Point && High[i]<L80N[i+1]
){
ObjectCreate("Bod"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]-330*Point);
if (i>1 && Low[i]<Low[i+1] && (Low[i-1]<Low[i] || Low[i-2]<Low[i]) && High[i]<L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact", Red);
else if (i>2 && Low[i]<Low[i+1] && Low[i-3]<Low[i] && High[i]<L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact", Red);
else ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact", White);
if (iRSI(symbol,0,2,PRICE_MEDIAN,i)>8.5 && Low[i]<iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)-FMax*2.4*10*Point) ObjectSetText("Bod"+DoubleToStr(i), "F3", 34, "Impact", White);
}