using the standard CCI on mt5 what do i get this error

 
i have noticed that my first version for this code was working well, now it calls it as if its a custom indicator that i not on mql5 ,could this be a conflict that i already have a cci custom indicator, while i using a standard, I plugged the EA to trade on one pair and it was allowed and still working very well, on the other pairs its rejecting the EA to work Attached is the final code ,it is still in development will add filters money management and break even etc.Another issue i have noticed is that it disappears on the chart 
//+------------------------------------------------------------------+
//|                                                Dragon trades.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                 Amos Tsopotsa +27712458869       |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "2.00"
#resource "\\Indicators\\cci.ex5"
#include <Trade\Trade.mqh> CTrade trade;
#include <Trade\PositionInfo.mqh> CPositionInfo position;
enum profit_Mode
  {
   Currency,//Currency
   Points//Points
  };
enum currency_profit
  {
   Dollar, //Dollar
   Cent //Cent
  };
enum trade_type
  {
   buy, //Buy Only
   sell,//Sell Only
   both//Both
  };
  
enum ENUM_DIR
{
   Dir0, // Buy&Sell
   Dir1, // Only buy
   Dir2  // Only sell
};
  
//profit_Mode Profits;
input ENUM_DIR        Direction            = 0;
input ulong           Magic_Number         = 12345;
input int             inpCciPeriod         = 2;
input bool            Aggressive_Mode      = false; 
input int             Max_Trades           = 2;
input int             StopLoss             = 1000;
input int             TakeProfit           = 1000; 
input double          Lot_Size             = 0.01;
input profit_Mode     Profit_Mode          = 1;
input currency_profit Currency_Profit      = 0;
input int             Dollar_Profit        = 20;
input int             Dollar_Loss          = 5;
input int             Cent_Profit          = 100;
input int             Cent_Loss            = 20;

int handle;
double ccio[],ccih[],ccil[],ccic[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  handle = iCustom(_Symbol,PERIOD_CURRENT,"::Indicators\\Cci.ex5",inpCciPeriod);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
double Ask, Bid, sls, tps; 
string firstTradeComment = "FT";
datetime candleTime, curentTime[];
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- 
   trade.SetExpertMagicNumber(Magic_Number);
   
   Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
   
   CopyTime(_Symbol,PERIOD_CURRENT,0,10,curentTime);
   ArraySetAsSeries(curentTime,true);
   
   CopyBuffer(handle,0,0,10,ccio);
   CopyBuffer(handle,1,0,10,ccih);
   CopyBuffer(handle,2,0,10,ccil);
   CopyBuffer(handle,3,0,10,ccic);
   
   ArraySetAsSeries(ccio,true);
   ArraySetAsSeries(ccih,true);
   ArraySetAsSeries(ccil,true);
   ArraySetAsSeries(ccic,true); 
   
      tradeFunc();
      if(Aggressive_Mode == true)
        {
         Aggressive_Mode_Func();
        }    
     
   for(int i=0;i<PositionsTotal();i++)
     {
      if(position.SelectByIndex(i))
        {
         //trade.PositionClose(position.Ticket());
        }
     }
      
   closeByDollar(); 
  }
//+------------------------------------------------------------------+
//|Find trade                                                        |
//+------------------------------------------------------------------+
string tradeType;
bool findTrade(string comentToFind)
{
   bool yes = false;
   for (int i=0; i<PositionsTotal(); i++)
   {
      if (position.SelectByIndex(i))
      {
         if (position.Comment() == comentToFind) yes = true;
         tradeType = position.TypeDescription();
      }
   }
   return yes;
}
//+------------------------------------------------------------------+
//|Aggresive Mode                                                    |
//+------------------------------------------------------------------+
void Aggressive_Mode_Func()
  {
   double open[], close[];
   
   CopyClose(_Symbol,PERIOD_CURRENT,0,10,close);
   CopyOpen(_Symbol,PERIOD_CURRENT,0,10,open);
   
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(open,true);
   
   bool bull   = open[1] < close[1];
   bool bear   = open[1] > close[1];
   tps   = 0; tps = 0;
   
   //if(findTrade("Buy"+string(Magic_Number)) == true)
     {
      //if(tradeType == "buy")
        {
         if(bull && Direction != 2)
           {
            if(candleTime != curentTime[0])
              { 
               for(int d=0;d<Max_Trades;d++)
                 {
                  if(Profit_Mode == 1)
                    {
                     tps      = Ask + (TakeProfit*_Point);
                     sls      = Ask - (StopLoss*_Point);
                     trade.Buy(Lot_Size,NULL,0,sls,tps); 
                     candleTime = curentTime[0];
                    }
                  if(Profit_Mode == 0)
                    {
                     trade.Buy(Lot_Size,NULL,0,0,0); 
                     candleTime = curentTime[0];
                    }   
                 } 
              } 
           }
        } 
     }
   
  /// if(findTrade("Sell"+string(Magic_Number)) == true)
     {  
      //if(tradeType == "sell")
        {
         if(bear && Direction != 1)
           {
            if(candleTime != curentTime[0])
              {
               for(int c=0;c<Max_Trades;c++)
                 {
                  if(Profit_Mode == 1)
                    {
                     tps      = Bid - (TakeProfit*_Point);
                     sls      = Bid + (StopLoss*_Point);
                     trade.Sell(Lot_Size,_Symbol,0,sls,tps); 
                     candleTime = curentTime[0];   
                    }
                  if(Profit_Mode == 0)
                    {
                     trade.Sell(Lot_Size,_Symbol,0,0,0); 
                     candleTime = curentTime[0]; 
                    }   
                 } 
              } 
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|Dollar Profit Close                                               |
//+------------------------------------------------------------------+
void closeByDollar()
  {
   if(Profit_Mode == 0)
     {
      if(Currency_Profit == 0)
        {
         for(int i=0;i<PositionsTotal();i++)
           {
            if(position.SelectByIndex(i))
              {
               if(position.Magic() == Magic_Number && position.Symbol() == _Symbol)
                 {
                  if(position.Profit() >= Dollar_Profit)
                    {
                     trade.PositionClose(position.Ticket());
                    }
                  if(position.Profit() <= -Dollar_Loss)
                    {
                     trade.PositionClose(position.Ticket());
                    }   
                 } 
              }
           }
        }
      if(Currency_Profit == 1)
        {
         for(int c=0;c<PositionsTotal();c++)
           {
            if(position.SelectByIndex(c))
              {
               if(position.Magic() == Magic_Number && position.Symbol() == _Symbol)
                 {
                 // Alert(position.Profit());
                  if(position.Profit() >= ((double(1)/double(100))*Cent_Profit))
                    {
                     trade.PositionClose(position.Ticket());
                    }
                  if(position.Profit() <= -((double(1)/double(100))*Cent_Loss))
                    {
                     trade.PositionClose(position.Ticket());
                    }   
                 } 
              }
           }
        }
     }
  }
datetime firstsellTime, firstbuytime;
//+------------------------------------------------------------------+
//| Trade Function                                                   |
//+------------------------------------------------------------------+
void tradeFunc()
{
   bool buy = false, sell = true; 
   if(ccic[2] < 0 && ccic[1] > 0) buy  = true;
   if(ccic[2] > 0 && ccic[1] < 0) sell = true;
   
   if (buy && Direction != 2)
   {
      if (firstbuytime != curentTime[0])
      { 
         if (!findTrade("Buy"+string(Magic_Number)))
         {
            for (int d=0; d<Max_Trades; d++)
            {
               if (Profit_Mode == 1)
               {
                  tps = Ask + (TakeProfit*_Point);
                  sls = Ask - (StopLoss*_Point);
                  trade.Buy(Lot_Size,_Symbol,0,sls,tps,"Buy"+string(Magic_Number)); 
                  firstbuytime = curentTime[0];   
               }
               if (Profit_Mode == 0)
               {
                  trade.Buy(Lot_Size,_Symbol,0,0,0,"Buy"+string(Magic_Number)); 
                  firstbuytime = curentTime[0]; 
               }
            }      
         } 
      }
   }
   if (sell && Direction != 1)
   {
      if (firstsellTime != curentTime[0])
      {
         if (!findTrade("Sell"+string(Magic_Number)))
         {
            for (int c=0; c<Max_Trades; c++)
            {
               if (Profit_Mode == 1)
               {
                  tps = Bid - (TakeProfit*_Point);
                  sls = Bid + (StopLoss*_Point);
                  trade.Sell(Lot_Size,_Symbol,0,sls,tps,"Sell"+string(Magic_Number));
                  firstsellTime = curentTime[0];     
               }
               if (Profit_Mode == 0)
               {
                  trade.Sell(Lot_Size,_Symbol,0,0,0,"Sell"+string(Magic_Number));
                  firstsellTime = curentTime[0];  
               }
            }  
         } 
      }
   }
}
 

If you have coded you own cci don't name it cci but e.g. CCImy.mq5 - with this (simple) way you would not ran into a conflict of names.

And if the original is changed by MQ your version wouldn't be overwritten!

So always work on renamed copies!

Reason: