Support – Resistance

This is a program on your own section – well, almost.

 RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
j2=1;
   while (j2<100 ){
    j=j2+2; 
      if (DML[j]==EMPTY_VALUE && RSI2[j2]<RSI2[j2+1] && RSI2[j2-1]>RSI2[j2] && RSI2[j2]<32) 
         while (j<j2+26){
               if (DML[j]!=EMPTY_VALUE && RSI2[j2]>RSI2[j] && Low[j2]<=Low[j]+40*Point && RSI2[j2]<RSI2[j2+1]  && RSI2[j2-1]>RSI2[j2] ) break;
      j++;}
    if (DML[j]!=EMPTY_VALUE && RSI2[j2]>RSI2[j] && Low[j2]<=Low[j]+40*Point && RSI2[j2]<RSI2[j2+1]  && RSI2[j2-1]>RSI2[j2]) break;
     j2++;}  


if (j2<100 && DML[j]!=EMPTY_VALUE && Low[j2]<=Low[j]+40*Point ) {LowFractalTime_2=iTime(NULL, 0,j2);    LowFractalTime_1=iTime(NULL, 0,j);    }





 if (j<100 && j<j2+26)   {
 
 if(j2-4>=0){
            ObjectCreate(0,"TRIAGE"+j,OBJ_TRIANGLE,0,Time[j],Low[j],Time[j],iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,j2-1)),Time[j2-4],(iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,j2-1))+Low[j])/2);
            ObjectSetInteger(0,"TRIAGE"+j,OBJPROP_COLOR,clrGray);  ObjectSetInteger(0,"TRIAGE"+j,OBJPROP_WIDTH,2); ObjectSetInteger(0,"TRIAGE"+j,OBJPROP_BACK,1); 
             ObjectCreate("ANGLi"+j, OBJ_TEXT, 0, Time[j2],  ((iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,j2-1))+Low[j])/2)+28*Point);  
             ObjectSetText("ANGLi"+j, "Sup->"+NormalizeDouble((iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,j2-1))+Low[j])/2,4), 22, "Arial Black",  Black);  
 }
   
      ObjectDelete(0,"cNNN3_2");
     ObjectCreate(0,"cNNN3_2",OBJ_TREND,2,LowFractalTime_1,RSI2[j],LowFractalTime_2,RSI2[j2]);
    ObjectSetInteger(0,"cNNN3_2",OBJPROP_RAY_RIGHT,false);
    if (stoch2[j]<20 && stoch2[j2-1]<20 && RSI2[j2]>23)  ObjectSet("cNNN3_2",OBJPROP_COLOR,clrRed);
      else   ObjectSet("cNNN3_2",OBJPROP_COLOR,indicator_color1);
         ObjectSet("cNNN3_2",OBJPROP_WIDTH,8); 
         ObjectSet("cNNN3_2",OBJPROP_BACK,1); }
 



i2=1;
   while (i2<100 ){
    i=i2+2; 
      if (UML[i]==EMPTY_VALUE && RSI2[i2]>RSI2[i2+1] && RSI2[i2-1]<RSI2[i2] && RSI2[i2]>70) 
         while (i<i2+26){
               if (UML[i]!=EMPTY_VALUE && RSI2[i2]<RSI2[i] && High[i2]>=High[i]-40*Point && RSI2[i2]>RSI2[i2+1]  && RSI2[i2-1]<RSI2[i2] ) break;
      i++;}
    if (UML[i]!=EMPTY_VALUE && RSI2[i2]<RSI2[i] && High[i2]>=High[i]-40*Point && RSI2[i2]>RSI2[i2+1]  && RSI2[i2-1]<RSI2[i2]) break;
     i2++;}  


if (i2<100 && UML[i]!=EMPTY_VALUE && High[i2]>=High[i]-40*Point ) {UpFractalTime_2=iTime(NULL, 0,i2);    UpFractalTime_1=iTime(NULL, 0,i);    }


 if (i<100 && i<i2+26)   {
 
  if(i2-4>=0){
            ObjectCreate(0,"TRIAGE"+i,OBJ_TRIANGLE,0,Time[i],High[i],Time[i],iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i2)),Time[i2-4],(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i2))+High[i])/2);
            ObjectSetInteger(0,"TRIAGE"+i,OBJPROP_COLOR,clrGray);  ObjectSetInteger(0,"TRIAGE"+i,OBJPROP_WIDTH,2); ObjectSetInteger(0,"TRIAGE"+i,OBJPROP_BACK,1); 
             ObjectCreate("ANGL"+i, OBJ_TEXT, 0, Time[i2],  ((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i2))+High[i])/2)+88*Point);  
             ObjectSetText("ANGL"+i, "Res->"+NormalizeDouble((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i2))+High[i])/2,4), 22, "Arial Black",  Black);  
 }
 
 ObjectDelete(0,"ccNN3_2");
     ObjectCreate(0,"ccNN3_2",OBJ_TREND,2,UpFractalTime_1,RSI2[i],UpFractalTime_2,RSI2[i2]);
    ObjectSetInteger(0,"ccNN3_2",OBJPROP_RAY_RIGHT,false);
    if (stoch2[i]>75 && stoch2[i2]>75 && RSI2[i2]<77)  ObjectSet("ccNN3_2",OBJPROP_COLOR,clrGreen);
     else    ObjectSet("ccNN3_2",OBJPROP_COLOR,indicator_color1);
         ObjectSet("ccNN3_2",OBJPROP_WIDTH,8); 
         ObjectSet("ccNN3_2",OBJPROP_BACK,1); }


int keepj2=j2+4;
int keepi2=i2+4; 
White ticker-tocker: support and resistance levels
As for the thin white line, it is c0[i]=(c11[i+7]+c22[i+7])/2