2-M-0-2-M

The next step after plotting the strength of a leg is recognising a reversal pattern.

2 means that the leg has made it beyond the dark gray line, but not the thin yellow.

M is a back test (short for Match), it can fall short or beat, but typically by not more than 6 pips.

0 is now clarified as a comeback inside the orange line (12 EMA on the hourly).

The white plots accordingly, are tie-offs. Apparently, you want to see 2 of these as a common denominator.
Channel[i]=(iMA(symbol,0,8,0,MODE_EMA,PRICE_MEDIAN,i)+iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i))/2;


////M-tie off Downside
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,3,i))==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i)) && Close[i]>Channel[i] && Close[i+1]<Channel[i+1] && High[i+2]<Channel[i+2] && High[i+3]<Channel[i+3]){
ObjectCreate( “Banalist”+IntegerToString(i), OBJ_TREND, 0, Time[iLowest(symbol,0,MODE_LOW,3,i)], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,3,i)) , Time[i], High[i]);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_COLOR, clrWhite);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_WIDTH, 8 );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_STYLE, 0 );
}


////M-tie off Upside
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,3,i))>=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i))-20*Point && Low[i]<Channel[i] && Close[i]<Channel[i]+40*Point && Close[i+1]>Channel[i+1] && Low[i+2]>Channel[i+2] && Low[i+3]>Channel[i+3]){
ObjectCreate( “Banalist”+IntegerToString(i), OBJ_TREND, 0, Time[iHighest(symbol,0,MODE_HIGH,3,i)], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,3,i)) , Time[i], Low[i]);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_COLOR, clrWhite);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_WIDTH, 8 );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_STYLE, 0 );
}

Before proceeding, see how you could have fared with this trending move by going long after the first green box print and closing after the first orange one.

140 pips, not bad.

Now, the 30-minute filters would be a bit different. The 44-EMA is the choice here.

It may not pick the same exact places every time, but the rule of thumb is still to have 2.

Channel[i]=iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i);

 ////44-tie off Downside     
  if (
  iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i))<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,10,i)) && 
  Close[i]>Channel[i] && Close[i+1]<Channel[i+1] && Close[i+2]<Channel[i+2]  && Close[i+3]<Channel[i+3] && Close[i+4]<Channel[i+4] && Close[i+5]<Channel[i+5]){  
         ObjectCreate( "Canalist"+IntegerToString(i), OBJ_TREND, 0,  Time[iLowest(symbol,0,MODE_LOW,8,i)], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i)) , Time[i], High[i]);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_COLOR, clrLime);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_WIDTH, 18 );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_STYLE, 0 ); 
  }


  ////44-tie off Upside     
  if (
   iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i))>=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i))-20*Point && 
  Close[i]<Channel[i] && Close[i+1]>Channel[i+1] && Close[i+2]>Channel[i+2]  && Close[i+3]>Channel[i+3] && Close[i+4]>Channel[i+4] && Close[i+5]>Channel[i+5]){  
         ObjectCreate( "Canalist"+IntegerToString(i), OBJ_TREND, 0,  Time[iHighest(symbol,0,MODE_HIGH,6,i)], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i)) , Time[i], Low[i]);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_COLOR, clrTomato);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_WIDTH, 18 );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_STYLE, 0 ); 
  }