Problem: Multiple Trades at brokerX - page 3

 

Simpler code and multicurrency new bar control...

//----------------------- COMPRUEBA ENTRADA por nueva barra o no estar operando ----------------
bool confirmEntrada(string simb= NULL, ENUM_TIMEFRAMES marcoTmp= PERIOD_CURRENT, bool ctrlOpera= true)
{
   bool operando= PositionSelect(simb),
        resp= !operando;
   datetime tmpPos= 0, tmpVela= 0; 
   int interv= 0;
   if(ctrlOpera)
   {
      if(operando)
      {
         tmpPos= horaApertPosicion(simb);
         tmpVela= iTime(simb, marcoTmp, 0);   				//opening hours candle zero (today)
         interv= tmpVela-tmpPos;
         if(interv>0) resp= nuevaVelaMD(simb, arParesFX, marcoTmp);	//"arParesFX" = array containing the names of peers who work the EA.
      }									//for example {"EURUSD", "GBPUSD", "USDJPY"}
   }
   else resp= nuevaVelaMD(simb, arParesFX, marcoTmp);
   return(resp);
}

//------------------------------------- NUEVA VELA MULTIDIVISA -------------------------------------
bool nuevaVelaMD(string simb, string &arrayPares[], ENUM_TIMEFRAMES marcoTmp= PERIOD_CURRENT)
{
        static datetime arrayHoraNV[];
        static bool primVez= _Si;
        datetime horaVela= iTime(simb, marcoTmp, 0);
        bool esNueva= _No;
        int nPares, codS= buscaCadArray(simb, arrayPares);
        if(primVez)			//If this is the first time you initialize arrays
        {
           nPares= ArraySize(arrayPares);
           ArrayResize(arrayHoraNV, nPares);
           ArrayInitialize(arrayHoraNV, 0);     
           primVez= _No;
        }
        esNueva= arrayHoraNV[codS]!=horaVela;
        if (esNueva) arrayHoraNV[codS]= horaVela;
        return(esNueva); 
}
Reason: