//+------------------------------------------------------------------+
//|                                        Dadas_PTECZ_Indicator.mq4 |
//|                                                            Dadas |
//|                                              fx-nvatc.comeze.com |
//+------------------------------------------------------------------+
#property copyright "Dadas"
#property link      "fx-nvatc.comeze.com"

#property indicator_chart_window

//PTECZ_Candle section:
extern bool Show_PTECZ_Candle = true;
extern ENUM_TIMEFRAMES   PTECZ_Candle_Tf  = 0;
extern int   PTECZ_Candle_BarsBack = 999;
extern color PTECZ_Candle_ArrowColor = OrangeRed;
int PTECZ_Candle_ArrowOffset = 1;

int   PTECZ_Candle_ArrowCode = 115;
int PTECZ_Candle_Arrow;
double PTECZ_Candle_price;
//----

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
// PTECZ_Candle section:

   PTECZ_Candle_Arrow = PTECZ_Candle_BarsBack;

  for(int PTECZ_Candle_i = 1 ; PTECZ_Candle_i < PTECZ_Candle_Arrow ; PTECZ_Candle_i++)
  {
      PTECZ_Candle_CreateArrow("PTECZ_Candle = "+PTECZ_Candle_i ,PTECZ_Candle_ArrowColor,PTECZ_Candle_ArrowCode);
  }
//----

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
 
 //PTECZ_Candle section:
  PTECZ_Candle_Arrow = PTECZ_Candle_BarsBack;
  for(int PTECZ_Candle_i = 1 ; PTECZ_Candle_i < Bars ; PTECZ_Candle_i++)
  {
     ObjectDelete("PTECZ_Candle = "+PTECZ_Candle_i); 
  }  
 //---- 

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {   
  
 // PTECZ_Candle section:
if(Show_PTECZ_Candle==true)
  {
    PTECZ_Candle_Arrow = PTECZ_Candle_BarsBack;
  
  if(PTECZ_Candle_IsNewBar())
   {
   
     for(int PTECZ_Candle_i = 1 ; PTECZ_Candle_i < PTECZ_Candle_Arrow ; PTECZ_Candle_i++)
     {

//----      
 if(iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i)>iLow(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)&&
    iLow(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)>iLow(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+2)&&
    (iLow(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+2)>iLow(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3)||
    (iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+2)>iOpen(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3)&&
    iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3)<iOpen(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3))) )
 {
if(iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)>=iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i)&&iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i)>=iOpen(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)) 
   { 
  // if(PTECZ_Candle_Tf==Period())
   {   
      PTECZ_Candle_price = Low[PTECZ_Candle_i]-PTECZ_Candle_ArrowOffset*Point ;
      PTECZ_Candle_SetArrow("PTECZ_Candle = "+PTECZ_Candle_i ,PTECZ_Candle_price,Time[PTECZ_Candle_i]); 
      ObjectSet("PTECZ_Candle = "+PTECZ_Candle_i,OBJPROP_ANCHOR,ANCHOR_TOP); 
      ObjectSet("PTECZ_Candle = "+PTECZ_Candle_i,OBJPROP_COLOR,PTECZ_Candle_ArrowColor);

    }
    }
    } 
 //----     
 //---- 
  if(iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i)<iHigh(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)&&
     iHigh(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)<iHigh(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+2)&&
     (iHigh(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+2)<iHigh(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3)||
     (iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+2)<iOpen(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3)&&
     iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3)>iOpen(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+3))) )
 {
if(iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)<=iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i)&&iClose(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i)<=iOpen(NULL,PTECZ_Candle_Tf,PTECZ_Candle_i+1)) 
   {
    //  if(PTECZ_Candle_Tf==Period())
   { 
       PTECZ_Candle_price = High[PTECZ_Candle_i]-PTECZ_Candle_ArrowOffset*Point ; 
      PTECZ_Candle_SetArrow("PTECZ_Candle = "+PTECZ_Candle_i ,PTECZ_Candle_price,Time[PTECZ_Candle_i]); 
      ObjectSet("PTECZ_Candle = "+PTECZ_Candle_i,OBJPROP_ANCHOR,ANCHOR_BOTTOM);
      ObjectSet("PTECZ_Candle = "+PTECZ_Candle_i,OBJPROP_COLOR,PTECZ_Candle_ArrowColor);
    }
    }
   } 
 //----     
     }   
   }
   }
 //----
 
   return(0);
  }

//+------------------------------------------------------------------+
// PTECZ_Candle section:
//+------------------------------------------------------------------+
void PTECZ_Candle_CreateArrow(string PTECZ_Candle_name,color PTECZ_Candle_c,int PTECZ_Candle_code)
{
    ObjectCreate(PTECZ_Candle_name ,OBJ_ARROW,0,0,0);
    ObjectSet(PTECZ_Candle_name, OBJPROP_ARROWCODE,PTECZ_Candle_code);
    ObjectSet(PTECZ_Candle_name ,OBJPROP_COLOR,PTECZ_Candle_c);
}
//+------------------------------------------------------------------+
void PTECZ_Candle_SetArrow(string PTECZ_Candle_name,double PTECZ_Candle_price,datetime PTECZ_Candle_time)
{
    ObjectSet(PTECZ_Candle_name, OBJPROP_PRICE1,PTECZ_Candle_price);
    ObjectSet(PTECZ_Candle_name, OBJPROP_TIME1,PTECZ_Candle_time);
}

//+------------------------------------------------------------------+

bool PTECZ_Candle_IsNewBar()
{ 
  static datetime PTECZ_Candle_prevTime1 = -1;
  
  if(PTECZ_Candle_prevTime1 != Time[6])
  { 
   PTECZ_Candle_prevTime1 = Time[6]; 
       
   return(true);  
  } 

  return(false); 
}
//+------------------------------------------------------------------+