I’m not sure what you are going to be doing with all of this, but I decided to share; this is what I am currently preoccupied with.
Those orange triangles mark up stair-stepping breakout failures.

If I were screening for an apprentice, I would ask, What is 17 pips for the Euro?
The answer, of course, is that it is the size of one step. If someone said it meant about one-half of the Euro’s fluctuation size, I would probably pass them still.

When the RSI2 hits in the last 2%, you get the following values: 17 pips out is the next step. 22 pips out, strong fade, 27 pips out, a stair-step breakout is occurring. In the next 4 hours an adjustment can be made to the calculation’s base value, and there are MFI(7) filters applied.
///RSI2 steps up
if (i>0 && RSI2[i]>98 && RSI2[i-1]<98 && iMFI(symbol,0,7,i)>69){
j=i-1;
while (j>i-4 && j>0){
if (High[j]>High[i]) break;
j--;}
if (High[j]>High[i] && RSI2[j]<81) {
ObjectCreate("Talm"+IntegerToString(j), OBJ_TEXT, indicator_window+1, Time[j], 40);
ObjectSetText("Talm"+IntegerToString(j), "C:"+DoubleToStr(NormalizeDouble(High[j]+170*Point,4),4), 21, "Impact", Navy);
ObjectCreate("Talmi"+IntegerToString(j), OBJ_TEXT, indicator_window+1, Time[j], 60);
ObjectSetText("Talmi"+IntegerToString(j), "S:"+DoubleToStr(NormalizeDouble(High[j]+220*Point,4),4), 21, "Impact", Crimson);
ObjectCreate("Talmin"+IntegerToString(j), OBJ_TEXT, indicator_window+1, Time[j], 20);
ObjectSetText("Talmin"+IntegerToString(j), "Br:"+DoubleToStr(NormalizeDouble(High[j]+270*Point,4),4)+"->W3C", 21, "Impact", Black); }
else {
ObjectCreate("Talm"+IntegerToString(i), OBJ_TEXT, indicator_window+1, Time[i], 40);
ObjectSetText("Talm"+IntegerToString(i), "C:"+DoubleToStr(NormalizeDouble(High[i]+170*Point,4),4), 21, "Impact", Navy);
ObjectCreate("Talmi"+IntegerToString(i), OBJ_TEXT, indicator_window+1, Time[i], 60);
ObjectSetText("Talmi"+IntegerToString(i), "S:"+DoubleToStr(NormalizeDouble(High[i]+220*Point,4),4), 21, "Impact", Crimson);
ObjectCreate("Talmin"+IntegerToString(i), OBJ_TEXT, indicator_window+1, Time[i], 20);
ObjectSetText("Talmin"+IntegerToString(i), "Br:"+DoubleToStr(NormalizeDouble(High[i]+270*Point,4),4)+"->W3C", 21, "Impact", Black);
if (i>2 && RSI2[i-1]<69 && iMFI(symbol,0,7,i-1)<83 && Close[i-2]<Close[i-1]){
ObjectCreate("Talma"+IntegerToString(i), OBJ_TEXT, indicator_window+1, Time[i], 80);
ObjectSetText("Talma"+IntegerToString(i), "Sell4LL:"+DoubleToStr(NormalizeDouble(Close[i],4),4), 21, "Impact", Red);
}
}
}
///RSI2 steps down
if (i>0 && RSI2[i]<2 && RSI2[i-1]>2 && iMFI(symbol,0,7,i)<31){
j=i-1;
while (j>i-4 && j>0){
if (Low[j]<Low[i]) break;
j--;}
if (Low[j]<Low[i] ) {
ObjectCreate("Talm"+IntegerToString(j), OBJ_TEXT, indicator_window+2, Time[j], 60);
ObjectSetText("Talm"+IntegerToString(j), "C:"+DoubleToStr(NormalizeDouble(Low[j]-170*Point,4),4), 21, "Impact", Navy);
ObjectCreate("Talmi"+IntegerToString(j), OBJ_TEXT, indicator_window+2, Time[j], 40);
ObjectSetText("Talmi"+IntegerToString(j), "B:"+DoubleToStr(NormalizeDouble(Low[j]-220*Point,4),4), 21, "Impact", Green);
ObjectCreate("Talmin"+IntegerToString(j), OBJ_TEXT, indicator_window+2, Time[j], 20);
ObjectSetText("Talmin"+IntegerToString(j), "Br:"+DoubleToStr(NormalizeDouble(Low[j]-270*Point,4),4)+"->W3C", 21, "Impact", Black);}
else
{
ObjectCreate("Talm"+IntegerToString(i), OBJ_TEXT, indicator_window+2, Time[i], 60);
ObjectSetText("Talm"+IntegerToString(i), "C:"+DoubleToStr(NormalizeDouble(Low[i]-170*Point,4),4), 21, "Impact", Navy);
ObjectCreate("Talmi"+IntegerToString(i), OBJ_TEXT, indicator_window+2, Time[i], 40);
ObjectSetText("Talmi"+IntegerToString(i), "B:"+DoubleToStr(NormalizeDouble(Low[i]-220*Point,4),4), 21, "Impact", Green);
ObjectCreate("Talmin"+IntegerToString(i), OBJ_TEXT, indicator_window+2, Time[i], 20);
ObjectSetText("Talmin"+IntegerToString(i), "Br:"+DoubleToStr(NormalizeDouble(Low[i]-270*Point,4),4)+"->W3C", 21, "Impact", Black);
if (i>2 && RSI2[i-1]>31 && iMFI(symbol,0,7,i-1)>17 && Close[i-2]>Close[i-1]){
// ObjectCreate("Talma"+IntegerToString(i), OBJ_TEXT, indicator_window+2, Time[i], 20);
// ObjectSetText("Talma"+IntegerToString(i), "BUY4HH:"+DoubleToStr(NormalizeDouble(Close[i],4),4), 21, "Impact", LimeGreen);
}
}
}
Now, the blue rectangles are 4 small-bodied candles next to each other (<5 pips typically).
///5x4
if (MathAbs(Open[i+3]-Close[i+3])<50*Point && MathAbs(Open[i+2]-Close[i+2])<50*Point && MathAbs(Open[i+1]-Close[i+1])<58*Point && MathAbs(Open[i]-Close[i])<50*Point){
ObjectCreate("Ginner"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,3,i)), Time[i], iLow(symbol,0,iLowest(symbol,0,MODE_HIGH,3,i)));
ObjectSetInteger(0,"Ginner"+IntegerToString(i),OBJPROP_COLOR,clrBlue);
ObjectSet("Ginner"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("Ginner"+IntegerToString(i),OBJPROP_WIDTH,5);
}

I find it interesting that swing highs tend to print 56-58 pips (middle number) above the high of the box(es).

They also seem to result in a new low printed below the blue boxes by 10-15 pips.

