Macdulio Classics: MFI

Didn’t I just teach you about Wave 4 absorption?

What was it that the next 4H print wasn’t able to do following the wave 5’s volaility outburst? (Think Hard!)

What comes after the divergent leg? Volatility whip that would take out the last daily swing high.

EmPuhE where Wave 3’s end was the Measuring Leg and the Wave 5 Divergent Leg made a Push & Echo divergence.

Anyways, my MFI plots the range over the given timeframe with 10 pips allowance for turn until hiting the limit.

I personally believe that the 14-sample is best fit for the 30 nin and the 4H.

////MFI by Macdulio
#property copyright   "MFI by Macdulio, (c) 2021"
#property link        "http://www.forexfore.blog"
#property description "MFI by Macdulio"
#property strict

#property indicator_separate_window
//separate_window
#property indicator_minimum    -50
#property indicator_maximum    50
#property indicator_buffers    3
#property indicator_level1 0
#property indicator_levelcolor clrYellow
#property indicator_levelstyle STYLE_DOT
#property indicator_levelwidth 1
extern int indicator_window = 1;
extern int lookback = 200;
extern bool plot_ellipses=false;

string symbol = Symbol();
double RSI2[],Cumulative[], VWAP[], VWAPP[], VWAPN[], Cumvol[];

//---- buffers
double MFI[],MFINEG[], MFIAVG[], AVG[];

int init()
  {
   SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,5,Green);
   SetIndexBuffer(1,MFI);
   
    SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,5,Crimson);
   SetIndexBuffer(2,MFINEG);
   
      SetIndexBuffer(0,MFIAVG);
   SetIndexStyle(0,DRAW_LINE,EMPTY,3,clrBlack); 

      SetIndexBuffer(3,VWAPN);
   SetIndexStyle(3,DRAW_LINE,4,3,clrDeepPink); 
    
         SetIndexBuffer(4,VWAPP);
   SetIndexStyle(4,DRAW_LINE,4,3,clrTeal); 
   
      SetIndexBuffer(5,AVG);
   SetIndexStyle(5,DRAW_LINE,4,3,Black); 

   return(0);  
}
  

int start()
{ 
ArrayResize(RSI2, Bars);   
ArrayInitialize(RSI2, 0); 
ArrayResize(Cumulative, Bars);   
ArrayInitialize(Cumulative, 0); 
ArrayResize(Cumvol, Bars);   
ArrayInitialize(Cumvol, 0);
ArrayResize(MFI, Bars);   
ArrayInitialize(MFI, EMPTY_VALUE); 
ArrayResize(MFINEG, Bars);   
ArrayInitialize(MFINEG, EMPTY_VALUE); 
ArrayResize(MFIAVG, Bars);   
ArrayInitialize(MFIAVG, EMPTY_VALUE); 
ArrayResize(VWAP, Bars);   
ArrayInitialize(VWAP, 0);
ArrayResize(VWAPP, Bars);   
ArrayInitialize(VWAPP, EMPTY_VALUE);
ArrayResize(AVG, Bars);   
ArrayInitialize(AVG, EMPTY_VALUE);
ArrayResize(VWAPN, Bars);   
ArrayInitialize(VWAPN, EMPTY_VALUE);

   
int    i,j,k;
 
for(i=Bars-60; i>=0; i--){
  RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
   if (i<=lookback){
    for (j=i; j<i+14; j++) 
      Cumulative[i]=Cumulative[i]+Volume[j]*((High[j]+Low[j]+Close[j])/3);
       Cumulative[i]=Cumulative[i]/14;
       Cumvol[i]=Cumvol[i]+Volume[j];
  }
}

for (i = lookback; i >=0; i--) {
  MFI[i]=iMFI(symbol,0,14,i)-50;
  if (MFI[i]<0) MFINEG[i]=MFI[i];
  VWAP[i]=(Cumulative[i]/Cumvol[i]*50-75); 
  if (VWAP[i]<VWAP[i+1]) VWAPN[i]=VWAP[i];
  if (VWAP[i]>VWAP[i+1]) VWAPP[i]=VWAP[i];
  if (i<lookback-5){
      AVG[i]=((MFI[i]+MFI[i+1]+MFI[i+3]+MFI[i+4]+MFI[i+5])/5);
      MFIAVG[i]=((MFI[i]+MFI[i+1])/2);
  }
}



deletetxt1("Cinnamon");
deletetxt1("Cinnabon");
deletetxt1("REVERGENCE");
deletetxt1("Ditty");


for (i = lookback-2 ; i >0; i--) {
   if (MFI[i]<MFI[i+1] && MFI[i+1]<MFI[i+2] && MFI[i]>0 && MFI[i-1]>0 && MFI[i-1]>MFI[i] && i>0){
   
      if (i<56) ObjectCreate("Cinnamon"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+1], High[i+1]+100*Point, Time[0], High[i+1]+150*Point);
      else  ObjectCreate("Cinnamon"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+1], High[i+1]+100*Point, Time[i-1], High[i+1]+150*Point);
          
           if (Close[0]>High[i+1]+50*Point) ObjectSetInteger(0,"Cinnamon"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen);
      else if (Close[0]<High[i+1]+200*Point) ObjectSetInteger(0,"Cinnamon"+IntegerToString(i),OBJPROP_COLOR,clrTomato);
       else   ObjectSetInteger(0,"Cinnamon"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
          ObjectSet("Cinnamon"+IntegerToString(i),OBJPROP_BACK,1);
          ObjectSet("Cinnamon"+IntegerToString(i),OBJPROP_WIDTH,1);
          
          if (Period()==1440 && i<56){
               ObjectCreate("CinnamonXY"+IntegerToString(i), OBJ_TEXT, 0, Time[0], High[i+1]+450*Point); 
                     ObjectSetText("CinnamonXY"+IntegerToString(i), "          +-100!", 22, "Arial Black", clrMagenta);
               }
          
          
       j=i-1;
         while(j>0){
         if (High[j]>High[i-1] && High[j]>High[i+1]+125*Point && High[j]<High[i+1]+360*Point && Low[j]<High[i+1]+125*Point) break;
         j--;
        }
         if (j>0 && Period()==1440) {
                      ObjectCreate("Cinnabon"+IntegerToString(j), OBJ_TEXT, 0, Time[j+1], High[j]+60*Point); 
                     ObjectSetText("Cinnabon"+IntegerToString(j), "BuyStop:"+DoubleToStr(NormalizeDouble(High[j]+80*Point,4),4), 12, "Impact", clrNavy);
                     
                     ObjectCreate("Cinnabonn"+IntegerToString(j), OBJ_TEXT, indicator_window, Time[j], 98); 
                     ObjectSetText("Cinnabonn"+IntegerToString(j), "R2MA", 12, "Impact", clrBlue);
         } 
         
                k=j-1;
         while(k>0){
         if (High[k]>High[j]+50*Point && High[k-1]<High[k] && High[k]<High[k]-160*Point && Low[k]<High[j]) break;
         k--;
        }
         if (k>0 && Period()==1440) {
                      ObjectCreate("Cinnabon"+IntegerToString(k), OBJ_TEXT, 0, Time[k+1], High[k]+150*Point); 
                     ObjectSetText("Cinnabon"+IntegerToString(k), "BuyStop:"+DoubleToStr(NormalizeDouble(High[k]+80*Point,4),4), 12, "Impact", clrBlue);
                     
                     ObjectCreate("Cinnabonn"+IntegerToString(j), OBJ_TEXT, indicator_window, Time[j], 98); 
                     ObjectSetText("Cinnabonn"+IntegerToString(j), "R2MA", 12, "Impact", clrBlue);
         }    
         
          
   }
    if (MFI[i]>MFI[i+1] && MFI[i+1]>MFI[i+2] && MFI[i]<0 && MFI[i-1]<0 && MFI[i-1]<MFI[i] && i>0){
   
      if (i<56) ObjectCreate("Cinnamon"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+1], Low[i+1]-100*Point, Time[0], Low[i+1]-150*Point);
      else  ObjectCreate("Cinnamon"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+1], Low[i+1]-100*Point, Time[i-1], Low[i+1]-150*Point);
      if (Close[0]>Low[i+1]-50*Point) ObjectSetInteger(0,"Cinnamon"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen);
      else if (Close[0]<Low[i+1]-200*Point) ObjectSetInteger(0,"Cinnamon"+IntegerToString(i),OBJPROP_COLOR,clrTomato);
          else ObjectSetInteger(0,"Cinnamon"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
          ObjectSet("Cinnamon"+IntegerToString(i),OBJPROP_BACK,1);
          ObjectSet("Cinnamon"+IntegerToString(i),OBJPROP_WIDTH,1);
          
           if (Period()==1440 && i<56){
               ObjectCreate("CinnamonXY"+IntegerToString(i), OBJ_TEXT, 0, Time[0], Low[i+1]+250*Point); 
                     ObjectSetText("CinnamonXY"+IntegerToString(i), "          +-100!", 22, "Arial Black", clrMagenta);
               }
          
          
             j=i-1;
         while(j>0){
         if (Low[j]<Low[i-1] && Low[j]<Low[i+1]-125*Point && Low[j]>Low[i+1]-360*Point && High[j]>Low[i+1]-125*Point) break;
         j--;
        }
         if (j>0 && Period()==1440) {
                      ObjectCreate("Cinnabon"+IntegerToString(j), OBJ_TEXT, 0, Time[j+1], Low[j]-50*Point); 
                     ObjectSetText("Cinnabon"+IntegerToString(j), "SellStop:"+DoubleToStr(NormalizeDouble(Low[j]-80*Point,4),4), 12, "Impact", clrNavy);
                     
                     ObjectCreate("Cinnabonn"+IntegerToString(j), OBJ_TEXT, indicator_window, Time[j], 98); 
                     ObjectSetText("Cinnabonn"+IntegerToString(j), "R2MA", 12, "Impact", clrBlue);
         }   
         
             k=j-1;
         while(k>0){
         if (Low[k]<Low[j]-50*Point && Low[k-1]>Low[k] && Low[k]>Low[j]-160*Point && High[k]>Low[j]) break;
         k--;
        }
         if (k>0 && Period()==1440) {
                      ObjectCreate("Cinnabon"+IntegerToString(k), OBJ_TEXT, 0, Time[k+1], Low[k]-150*Point); 
                     ObjectSetText("Cinnabon"+IntegerToString(k), "SellStop:"+DoubleToStr(NormalizeDouble(Low[k]-80*Point,4),4), 12, "Impact", clrBlue);
                     
                     ObjectCreate("Cinnabonn"+IntegerToString(j), OBJ_TEXT, indicator_window, Time[j], 98); 
                     ObjectSetText("Cinnabonn"+IntegerToString(j), "R2MA", 12, "Impact", clrBlue);
         }   
         
   } 
   
   if (Period()==1440 && iStochastic(symbol,0,18,3,3,MODE_SMA,0,MODE_MAIN,i)<4.9 && iStochastic(symbol,0,18,3,3,MODE_SMA,0,MODE_MAIN,i+1)>4.9){
        ObjectCreate("Cinnaboner"+IntegerToString(i), OBJ_TEXT, indicator_window, Time[i], 50); 
                     ObjectSetText("Cinnaboner"+IntegerToString(i), "EVAL 4 DIVG / COLOR", 12, "Impact", clrPurple);
   }
   
   
}   


double breakup=1000;
double breakdown = 0;

/////REVERGENCEs up
for(i=lookback; i>=0; i--){
   if (iFractals(symbol,0,MODE_LOWER,i)){
      j=i+3;
     while (j<i+36){
         if (iFractals(symbol,0,MODE_LOWER,j) && Low[j]>Low[i] && MFI[j]<MFI[i] && !(High[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)) && !(High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1))) break;
      j++;   
     } 
     if (j<i+36 && iFractals(symbol,0,MODE_LOWER,j) && Low[j]>Low[i] && MFI[j]<MFI[i]){ 
         
        //   ObjectDelete("REVERGENCEs"+IntegerToString(j)); 
         //               ObjectCreate(0,"REVERGENCEs"+IntegerToString(j),OBJ_TREND,indicator_window,Time[j],MFI[j],Time[i],MFI[i]);
          //              ObjectSetInteger(0,"REVERGENCEs"+IntegerToString(j),OBJPROP_RAY_RIGHT,false);
          //              ObjectSet("REVERGENCEs"+IntegerToString(j),OBJPROP_COLOR,clrLimeGreen);
           //             ObjectSet("REVERGENCEs"+IntegerToString(j),OBJPROP_WIDTH,2); 
           //             ObjectSet("REVERGENCEs"+IntegerToString(j),OBJPROP_BACK,1);
                        
                      if (RSI2[i]<35){
                      
          ObjectCreate("Dittyyy"+IntegerToString(i),OBJ_VLINE,indicator_window, Time[i], 0);
         ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_COLOR,clrYellow );
           ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_WIDTH,7);
           ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_BACK,1); 
                      
                          ObjectCreate("Dittyy"+IntegerToString(i),OBJ_VLINE,indicator_window, Time[i], 0);
         ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen );
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_WIDTH,3);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_BACK,1);  
           
           }
           
           breakdown = Low[i]-80*Point;
           if (Period()==1440){ breakdown = Low[i]-460*Point;
                  
                     ObjectCreate("Cinnabonn"+IntegerToString(i), OBJ_TEXT, indicator_window, Time[i], 98); 
                     ObjectSetText("Cinnabonn"+IntegerToString(i), "R2MA", 12, "Impact", clrBlue);
                  }
                  
           deletetxt1("Davidson");
           
           ObjectCreate("Davidson", OBJ_TEXT, 0, Time[i], Low[i]+10*Point); 
     ObjectSetText("Davidson", CharToStr(120), 38, "Wingdings", clrOrange);
           
                        }
                 
      
   
   }  

}

/////continuation REVERGENCE up
for(i=lookback; i>=0; i--){
   if (iFractals(symbol,0,MODE_LOWER,i)){
      j=i+3;
     while (j<i+36){
         if (iFractals(symbol,0,MODE_LOWER,j) && Low[j]<Low[i] && MFI[j]>MFI[i] && !(High[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)) && !(High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1))         ) break;

      j++;   
     } 
     if (j<i+36 && iFractals(symbol,0,MODE_LOWER,j) && Low[j]<Low[i] && MFI[j]>MFI[i]){ 
        
           //  ObjectDelete("REVERGENCEr"+IntegerToString(j)); 
           //             ObjectCreate(0,"REVERGENCEr"+IntegerToString(j),OBJ_TREND,indicator_window,Time[j],MFI[j],Time[i],MFI[i]);
           //             ObjectSetInteger(0,"REVERGENCEr"+IntegerToString(j),OBJPROP_RAY_RIGHT,false);
           //             ObjectSet("REVERGENCEr"+IntegerToString(j),OBJPROP_COLOR,clrNavy);
           //             ObjectSet("REVERGENCEr"+IntegerToString(j),OBJPROP_WIDTH,2); 
           //             ObjectSet("REVERGENCEr"+IntegerToString(j),OBJPROP_BACK,1);
      
         if (RSI2[i]<15){
         
         
                          ObjectCreate("Dittyy"+IntegerToString(i),OBJ_VLINE,indicator_window, Time[i], 0);
                                 ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen );
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_WIDTH,3);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_BACK,1); 
            }
    }
   }  

}


//////REVERGENCE down
for(i=lookback; i>=0; i--){
   if (iFractals(symbol,0,MODE_UPPER,i)){
      j=i+3;
     while (j<i+36){
         if (iFractals(symbol,0,MODE_UPPER,j) && High[j]<High[i] && MFI[j]>MFI[i] && !(High[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)) && !(High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1))) break;
      j++;   
     } 
     if (j<i+36 && iFractals(symbol,0,MODE_UPPER,j) && High[j]<High[i] && MFI[j]>MFI[i] && !(High[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)) && !(High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1))){ 
         
         //    ObjectDelete("REVERGENCEZ"+IntegerToString(j)); 
         //               ObjectCreate(0,"REVERGENCEZ"+IntegerToString(j),OBJ_TREND,indicator_window,Time[j],MFI[j],Time[i],MFI[i]);
         //               ObjectSetInteger(0,"REVERGENCEZ"+IntegerToString(j),OBJPROP_RAY_RIGHT,false);
         //               ObjectSet("REVERGENCEZ"+IntegerToString(j),OBJPROP_COLOR,clrPink);
         //               ObjectSet("REVERGENCEZ"+IntegerToString(j),OBJPROP_WIDTH,2); 
         //               ObjectSet("REVERGENCEZ"+IntegerToString(j),OBJPROP_BACK,1);
                        
                        
                        
          ObjectCreate("Dittyyy"+IntegerToString(i),OBJ_VLINE,indicator_window, Time[i], 0);
         ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_COLOR,clrYellow );
           ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_WIDTH,7);
           ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Dittyyy"+IntegerToString(i),OBJPROP_BACK,1); 
                        
                          ObjectCreate("Dittyy"+IntegerToString(i),OBJ_VLINE,indicator_window, Time[i], 0);
         ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_COLOR,clrRed);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_WIDTH,3);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_BACK,1);
            
         breakup = High[i]+80*Point;
          if (Period()==1440){ breakup = High[i]+460*Point;
         
          ObjectCreate("Cinnabonn"+IntegerToString(i), OBJ_TEXT, indicator_window, Time[i], 98); 
                     ObjectSetText("Cinnabonn"+IntegerToString(i), "R2MA", 12, "Impact", clrBlue);}
         
                deletetxt1("Davidoff");
           
           ObjectCreate("Davidoff", OBJ_TEXT, 0, Time[i], High[i]+90*Point); 
     ObjectSetText("Davidoff", CharToStr(120), 38, "Wingdings", clrOrange);
      
      }
   
   }  

}

//////continuation REVERGENCE down
for(i=lookback; i>=0; i--){
   if (iFractals(symbol,0,MODE_UPPER,i)){
      j=i+3;
     while (j<i+36){
         if (iFractals(symbol,0,MODE_UPPER,j) && High[j]>High[i] && MFI[j]<MFI[i] && !(High[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)) && !(High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1))) break;
      j++;   
     } 
     if (j<i+36 && iFractals(symbol,0,MODE_UPPER,j) && High[j]>High[i] && MFI[j]<MFI[i] && !(High[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)) && !(High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1))){ 
         
          //   ObjectDelete("REVERGENCEZ"+IntegerToString(j)); 
          //              ObjectCreate(0,"REVERGENCEZ"+IntegerToString(j),OBJ_TREND,indicator_window,Time[j],MFI[j],Time[i],MFI[i]);
          //              ObjectSetInteger(0,"REVERGENCEZ"+IntegerToString(j),OBJPROP_RAY_RIGHT,false);
          //              ObjectSet("REVERGENCEZ"+IntegerToString(j),OBJPROP_COLOR,clrYellow);
          //              ObjectSet("REVERGENCEZ"+IntegerToString(j),OBJPROP_WIDTH,2); 
          //              ObjectSet("REVERGENCEZ"+IntegerToString(j),OBJPROP_BACK,1);
      
         if (RSI2[i]>75){
                          ObjectCreate("Dittyy"+IntegerToString(i),OBJ_VLINE,indicator_window, Time[i], 0);
         ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_COLOR,clrRed );
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_WIDTH,3);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Dittyy"+IntegerToString(i),OBJPROP_BACK,1);  }
      }
   
   }  

}


deletetxt1("LOPEZ");
if (plot_ellipses){
for(i=180; i>=0; i--){
   if (High[i]>breakdown && Low[i]<breakdown && Close[i]>breakup){
          ObjectCreate("LOPEZ"+IntegerToString(i), OBJ_ELLIPSE, 0, Time[i], High[i], Time[i+1], Low[i]);
        ObjectSetInteger(0,"LOPEZ"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
        ObjectSetDouble(0,"LOPEZ"+IntegerToString(i),OBJPROP_SCALE,.05);
        ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_WIDTH,8);
         ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_BACK,0);
   }


   if (High[i]>breakdown && Low[i]<breakdown && Close[i]<breakup){
          ObjectCreate("LOPEZ"+IntegerToString(i), OBJ_ELLIPSE, 0, Time[i], High[i], Time[i+1], Low[i]);
        ObjectSetInteger(0,"LOPEZ"+IntegerToString(i),OBJPROP_COLOR,clrPink);
        ObjectSetDouble(0,"LOPEZ"+IntegerToString(i),OBJPROP_SCALE,.05);
        ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_WIDTH,8);
         ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_BACK,0);
   }
   
      if (High[i]>breakup && Low[i]<breakup && Close[i]>breakup){
          ObjectCreate("LOPEZ"+IntegerToString(i), OBJ_ELLIPSE, 0, Time[i], High[i], Time[i+1], Low[i]);
        ObjectSetInteger(0,"LOPEZ"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
        ObjectSetDouble(0,"LOPEZ"+IntegerToString(i),OBJPROP_SCALE,.05);
        ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_WIDTH,8);
         ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_BACK,0);
   }
      if (High[i]>breakup && Low[i]<breakup && Close[i]<breakup){
          ObjectCreate("LOPEZ"+IntegerToString(i), OBJ_ELLIPSE, 0, Time[i], High[i], Time[i+1], Low[i]);
        ObjectSetInteger(0,"LOPEZ"+IntegerToString(i),OBJPROP_COLOR,clrPink);
        ObjectSetDouble(0,"LOPEZ"+IntegerToString(i),OBJPROP_SCALE,.05);
        ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_WIDTH,8);
         ObjectSet("LOPEZ"+IntegerToString(i),OBJPROP_BACK,0);
   }

}
}
deletetxt1("ENVELOPE");


 ObjectCreate("ENVELOPE"+6,OBJ_LABEL,indicator_window, 0,0);
  ObjectSet("ENVELOPE"+6,OBJPROP_CORNER,1);
    ObjectSet("ENVELOPE"+6,OBJPROP_XDISTANCE,0);
  ObjectSet("ENVELOPE"+6,OBJPROP_YDISTANCE,20);
  ObjectSet("ENVELOPE"+6,OBJPROP_COLOR,clrPurple); 
  ObjectSetText("ENVELOPE"+6,"M. UPPER>"+NormalizeDouble(breakup,4),9,"Arial Black");


ObjectCreate("ENVELOPE"+9,OBJ_LABEL,indicator_window, 0,0);
  ObjectSet("ENVELOPE"+9,OBJPROP_CORNER,3);
    ObjectSet("ENVELOPE"+9,OBJPROP_XDISTANCE,0);
  ObjectSet("ENVELOPE"+9,OBJPROP_YDISTANCE,20);
  ObjectSet("ENVELOPE"+9,OBJPROP_COLOR,clrPurple); 
  ObjectSetText("ENVELOPE"+9,"M. LOWER>"+NormalizeDouble(breakdown,4),9,"Arial Black");


ObjectCreate("ENVELOPE"+3,OBJ_LABEL,2, 0,0);
  ObjectSet("ENVELOPE"+3,OBJPROP_CORNER,3);
    ObjectSet("ENVELOPE"+3,OBJPROP_XDISTANCE,0);
  ObjectSet("ENVELOPE"+3,OBJPROP_YDISTANCE,20);
  ObjectSet("ENVELOPE"+3,OBJPROP_COLOR,clrYellow); 
  ObjectSetText("ENVELOPE"+3,"ENTRY @ MORATORIUM LINE",9,"Arial Black");



deletetxt1("HINE");

     ObjectCreate( "HINE", OBJ_HLINE, 0, Time[0], NormalizeDouble(breakup,4));
               ObjectSet("HINE", OBJPROP_COLOR, clrYellow );
               ObjectSet("HINE", OBJPROP_WIDTH, 3 );
               ObjectSet("HINE", OBJPROP_STYLE, 4 );

ObjectCreate( "HINED", OBJ_HLINE, 0, Time[0], NormalizeDouble(breakdown,4));
               ObjectSet("HINED", OBJPROP_COLOR, clrYellow );
               ObjectSet("HINED", OBJPROP_WIDTH, 3 );
               ObjectSet("HINED", OBJPROP_STYLE, 4 );



deletetxt1("Harley");

for(i=lookback; i>0; i--){

////Captain America
   if (Period()==60 && High[i]>High[i+1] && High[i]>High[i-1] && i>0 && High[i]-380*Point<iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,i+4)) && High[i]>iMA(symbol,60,207,0,MODE_EMA, PRICE_LOW,i) && High[i]-250*Point>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,i+4))
  //&& RSI2[i]<84
   && (RSI2[i+4]<15 || RSI2[i+4]>16)
   && Close[i]<iMA(NULL,0,44,0,MODE_EMA, PRICE_MEDIAN,i)+490*Point && i>1 && High[i-2]<High[i]
   )
   {
     ObjectCreate("Harley"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], High[i]+100*Point); 
     ObjectSetText("Harley"+DoubleToStr(i), CharToStr(181), 68, "Wingdings", clrCrimson);
     ObjectSet("Harley"+DoubleToStr(i),OBJPROP_BACK,1);
   }

 if (Period()==60 && Low[i]<Low[i+1] && Low[i]<Low[i-1] && i>0 && Low[i]+380*Point>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i+4)) 
     //&& High[i]>iMA(symbol,60,207,0,MODE_EMA, PRICE_LOW,i) 
     && Low[i]+250*Point<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i+4)) && i>1 && Low[i-2]>Low[i])
   {
     ObjectCreate("Harleys"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]+100*Point); 
     ObjectSetText("Harleys"+DoubleToStr(i), CharToStr(181), 68, "Wingdings", clrYellow);
     ObjectSet("Harleys"+DoubleToStr(i),OBJPROP_BACK,1);
   }   


   if (Period()==60 && Low[i]<Low[i+1] && Low[i]<Low[i-1] && i>0 && Low[i]+380*Point>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i+4)) && Low[i]<iMA(symbol,60,207,0,MODE_EMA, PRICE_HIGH,i) && Low[i]+250*Point<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i+4))
      && Close[i]>iMA(NULL,0,44,0,MODE_EMA, PRICE_MEDIAN,i)-490*Point && i>1 && Low[i-2]>Low[i]
   )
   {
     ObjectCreate("Harley"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]+100*Point); 
     ObjectSetText("Harley"+DoubleToStr(i), CharToStr(181), 68, "Wingdings", clrDarkGreen);
     ObjectSet("Harley"+DoubleToStr(i),OBJPROP_BACK,1);
   }

      
   
   }

if (Period()==1440){   
ObjectCreate("CinnamonXYZ", OBJ_TEXT, 1, Time[0], 50); 
                     ObjectSetText("CinnamonXYZ", "                         10-16 Rejection", 15, "Arial Black", clrOrange);
ObjectCreate("CinnamonXY", OBJ_TEXT, 1, Time[0], 50); 
                     ObjectSetText("CinnamonXY", "                        10-16 Rejection", 15, "Arial Black", clrMagenta);

}


// WindowRedraw();
   return(0);
  }
//+------------------------------------------------------------------+
   void deletetxt1(string text){
   for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
      string   on = ObjectName(iObj);
      if(StringFind(on, text) == 0)  ObjectDelete(on);
}  }