Bit Of Development

So I wasn’t allowing for a shape plot when the crossback is happening whilst the price is still below the band. I have to include these from now on, since this one took out yesterday’s high, but with a different color. Magenta would stand for a lower low / 2nd attempt is still coming.

On this image, there were 2 more lows, the last one 25 pips out.

The following was also in a pair, but the second low was 51 pips lower.

So yeah, a shot over the bow, but think lower still.

///shape long
   if ((ExtATRBuffer[i]<52 && ExtATRBuffer[i+1]>52 
   && ExtATRBuffer2[ArrayMinimum(ExtATRBuffer2,10,i)]>1.8
   && ExtATRBuffer[ArrayMaximum(ExtATRBuffer,10,i)]<64)
   
   || (((ExtATRBuffer[i]<42 && ExtATRBuffer[i+1]>42) || (ExtATRBuffer[i]<47 && ExtATRBuffer[i+1]>47)) 
   && Close[i+2]<iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) 
   && ((Close[i]>iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i)-50*Point && Close[i+3]<iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+3))
   || Close[i+1]>iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+1))
    ))
   {
      ObjectCreate("LINUS"+IntegerToString(i),OBJ_VLINE,2, Time[i], 0);
            ObjectSet("LINUS"+IntegerToString(i),OBJPROP_COLOR,clrPurple);
            ObjectSet("LINUS"+IntegerToString(i),OBJPROP_WIDTH,6);
            ObjectSet("LINUS"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
             ObjectSet("LINUS"+IntegerToString(i),OBJPROP_BACK,1);
             
             
                  if (Low[i]>iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i) && !((Low[i+1]<iMA(symbol,0,207,0,MODE_EMA,PRICE_LOW,i+1) && Close[i+1]>iMA(symbol,0,207,0,MODE_EMA,PRICE_LOW,i+1)) || (Low[i+2]<iMA(symbol,0,207,0,MODE_EMA,PRICE_LOW,i+2) && Close[i+2]>iMA(symbol,0,207,0,MODE_EMA,PRICE_LOW,i+2))))
             {ObjectSet("LINUS"+IntegerToString(i),OBJPROP_COLOR,clrGray);
               if (Low[i+1]-iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)>240*Point)
               {ObjectCreate("LINUSZZZ"+IntegerToString(i),OBJ_TEXT, 1, Time[i],15);
               ObjectSetText("LINUSZZZ"+IntegerToString(i),"Dip Below 8-24 pips=buy", 16, "Impact", clrGreen);}
             }
             if (((ExtATRBuffer[i]<42 && ExtATRBuffer[i+1]>42) ) && Close[i+2]<iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && Close[i+1]>iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+1))
             {ObjectSet("LINUS"+IntegerToString(i),OBJPROP_COLOR,clrGray);
               ObjectCreate("LINUSZZZ"+IntegerToString(i),OBJ_TEXT, 1, Time[i],15);
               ObjectSetText("LINUSZZZ"+IntegerToString(i),"Dip Below 8-24 pips=buy", 16, "Impact", clrGreen);
               if (Low[i+1]<iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)) ObjectSet("LINUS"+IntegerToString(i),OBJPROP_COLOR,clrBlue);
             }
 
    
   
      ObjectCreate("LINUSZ"+IntegerToString(i),OBJ_TEXT, 1, Time[i],85);
      ObjectSetText("LINUSZ"+IntegerToString(i),"Shape long!", 16, "Impact", clrGreen);
      
      ObjectCreate("LINUSZZ"+IntegerToString(i),OBJ_TEXT, 1, Time[i],35);
      ObjectSetText("LINUSZZ"+IntegerToString(i),"53/63/80=Break", 16, "Impact", clrGreen);
   

if (Close[i]>iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i)-50*Point && Close[i+3]<iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i+3)){ ObjectSet("LINUS"+IntegerToString(i),OBJPROP_COLOR,clrMagenta);
                 ObjectCreate("LINUSZZ"+IntegerToString(i),OBJ_TEXT, 1, Time[i],35);
                 ObjectSetText("LINUSZZ"+IntegerToString(i),"Lower low / 2nd attempt", 16, "Impact", clrMagenta);
            }     
           
   }