Now we’re really close to writing the definitions for trending markets.
First, we need to clarify the exit condition for a nuclear move.
As we saw earlier, the previous nuclear move ended with the beat of the second qualified divergence. It was around 26 pips extra, and then a volatility flip occurred.

The marker for a qualified divergence is the vertical white line. I have several conditions that would invalidate such a plot; for instance, if two are within 2 hours of each other, there’s also a Claw condition to scrap one.
The sell-off that’s been on for almost a week only now has printed its second qualified divergence. The holdback condition was mainly the two high-volatility moves on the downside (25-pip cap).

I had to eliminate the claw scrapping the white line. Sure, the question is how much of an undercut we get, but the filters are very well written.
/////green to green taper
if (volup[i]<volup[i+1] && volup[i+2]<=volup[i+1]
&& volup[i+3]<=volup[i+1]
&& volup[ArrayMaximum(volup,56,i+1)]>18
&& volup[i+1]>=voldn[ArrayMaximum(volup,4,i+1)]
&& ((volup[i+1]>9 && RSI2[i+1]>85) || volup[i+1]>=19)
&& volup[i+1]<33
&& volup[ArrayMaximum(volup,66,i+4)]>=volup[i+1]
&& volup[ArrayMaximum(volup,24,i+1)]>voldn[ArrayMaximum(voldn,24,i+1)]
&& voldn[i+1]<volup[i+1]
&& High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,30,i+1))
&& greentogreen[i+1]==0 && greentogreen[i+2]==0 && greentogreen[i+3]==0
){
ObjectCreate("Rocket"+IntegerToString(i),OBJ_TREND,indicator_window, Time[ArrayMaximum(volup,36,i+4)],volup[ArrayMaximum(volup,36,i+4)],Time[i+1],volup[i+1]);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_COLOR,clrMediumSpringGreen);
if (High[ArrayMaximum(volup,26,i+4)]>High[+1]) ObjectSet("Rocket"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_WIDTH,6);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_BACK,1);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_RAY_RIGHT,0);
if (Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1) && High[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)){
if (i<300) {ObjectCreate("PitusX"+IntegerToString(i),OBJ_VLINE,0, Time[i+1], 0);
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_COLOR, clrWhite );
greentogreen[i]=1;
ObjectCreate("SOGZx"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],55);
ObjectSetText("SOGZx"+IntegerToString(i),"+25="+DoubleToStr(NormalizeDouble(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,i))+250*Point,4),4), 26, "Impact", clrDimGray);
}
if ((tup[ArrayMaximum(tup,5,i+5)]>0 && tup[ArrayMaximum(tup,10,i+11)]<1 && ((volup[i+1]<14 && RSI2[i+1]>90)
|| RSI2[i+1]>95)) && High[i+1]<High[ArrayMaximum(volup,66,i+4)]
) { ObjectSet("PitusX"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink );
if (i<300){
ObjectCreate( "Banalisation"+IntegerToString(i), OBJ_HLINE, 0, Time[0], High[i+1]+270*Point);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisations"+IntegerToString(i), OBJ_HLINE, 0, Time[0], High[i+1]+530*Point);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisationz"+IntegerToString(i), OBJ_HLINE, 0, Time[0], High[i+1]+780*Point);
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_WIDTH, 6 );
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_STYLE, 1 );
}
}
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_WIDTH, 4 );
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_STYLE, 2 );
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_BACK, 1 );}
if (High[i]>High[i+1]+30*Point) {
ObjectCreate("SOGZ"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],35);
ObjectSetText("SOGZ"+IntegerToString(i),"BUY "+DoubleToStr(NormalizeDouble(High[i+1]-160*Point,4),4), 26, "Impact", clrDarkGreen);
}
tup[i]=1;
}
/////red to red taper
if (voldn[i]<voldn[i+1] && voldn[i+2]<=voldn[i+1]
&& voldn[i+3]<voldn[i+1]
&& voldn[i+1]>=voldn[ArrayMaximum(voldn,2,i+1)]
&& voldn[i+1]>11 && voldn[i+1]<=33
&& voldn[ArrayMaximum(voldn,31,i+4)]>=voldn[i+1]
&& voldn[i+1]>volup[i+1]
&& voldn[ArrayMaximum(voldn,8,i+4)]>volup[ArrayMaximum(volup,8,i+4)]
&& Low[i+1]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,30,i+1))
){
ObjectCreate("Rocket"+IntegerToString(i),OBJ_TREND,indicator_window, Time[ArrayMaximum(voldn,31,i+4)],voldn[ArrayMaximum(voldn,31,i+4)],Time[i+1],voldn[i+1]);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_COLOR,clrDeepPink);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_WIDTH,6);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_BACK,1);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_RAY_RIGHT,0);
if (Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
{
if (i<300)
{ ObjectCreate("PitusZ"+IntegerToString(i),OBJ_VLINE,0, Time[i+1], 0);
ObjectSet("PitusZ"+IntegerToString(i), OBJPROP_COLOR, clrWhite );
redtored[i]=1;
ObjectCreate("SOGZx"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],55);
ObjectSetText("SOGZx"+IntegerToString(i),"-25="+DoubleToStr(NormalizeDouble(iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i))-250*Point,4),4), 26, "Impact", clrDimGray);
if ((i>0 && voldn[i-1]>voldn[i]) || Low[i+1]>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,24,i+1))) {ObjectDelete("PitusZ"+IntegerToString(i));}
}
if (Close[ArrayMaximum(voldn,18,i+4)]<Close[i+1]) {ObjectSet("Rocket"+IntegerToString(i),OBJPROP_COLOR,clrThistle);
ObjectDelete("PitusZ"+IntegerToString(i));
}
if (i>0 && Low[i-1]<Low[i+1]){
ObjectCreate("SOGZi"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],35);
ObjectSetText("SOGZi"+IntegerToString(i),"Claw! ", 36, "Impact", clrMaroon);
// ObjectDelete("PitusZ"+IntegerToString(i));
}
if ((tdn[ArrayMaximum(tdn,5,i+5)]>0 && tdn[ArrayMaximum(tdn,10,i+11)]<1 && voldn[i+1]>15 && RSI2[i]<10) && Low[i+1]>Low[ArrayMaximum(voldn,19,i+4)]) { ObjectSet("PitusZ"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink );
if (i<300){
ObjectCreate( "Banalisation"+IntegerToString(i), OBJ_HLINE, 0, Time[0], Low[i+1]-270*Point);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisations"+IntegerToString(i), OBJ_HLINE, 0, Time[0], Low[i+1]-530*Point);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisationz"+IntegerToString(i), OBJ_HLINE, 0, Time[0], Low[i+1]-780*Point);
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_WIDTH, 6 );
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_STYLE, 1 );
}
}
ObjectSet("PitusZ"+IntegerToString(i), OBJPROP_WIDTH, 4 );
ObjectSet("PitusZ"+IntegerToString(i), OBJPROP_STYLE, 2 );
ObjectSet("PitusZ"+IntegerToString(i), OBJPROP_BACK, 1 );}
tdn[i]=1;
}
Some numbers to continue with. A trending market does not achieve a fluctuation-sized move within 12 hours in the counter-direction.
A fluctuation-size is 32pips*6/5 = 38.4 pips
In the First Principle routine, I have a white line plotted at 36 pips.
if (Close[i]>fifty[i] && Close[i+1]>fifty[i+1] ) {tsix[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,50,i))-360*Point; free[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,50,i))-430*Point;}
else {tsix[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,50,i))+360*Point; free[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,50,i))+430*Point;}
In the image below, I put the white arrow at the only challenge of the 36-pip line during this nuclear move down.

The two black ovals mark the roots of the two corrections we had, both of which managed a single 30-minute close beyond the E-44 HL2 (Aqua line).
So, the next thing to say about a trend is that it does not manage 2 consecutive closes back inside the E-44.
The last idea is related to tempo; I would call a market that cannot clear the E-16 (black line) out of 3 attempts a “Gear 3”, and the one that fails the E-44 (white line) twice a “Gear 2” – blue ovals below.

A bear market is simply one that prints multiple nuclear volatility flips within a week.
Someone said something about using cats to sell music.
I had this cover made by then.

But have been using animals extensively lately.

Also, Jackson’s name can still lure in people.