Non riesco a limitare 1 solo ordine per simbolo :(

 

Ciao a tutti, sto diventando matto.... Ho prtovato tutto... ma non riesco a capire perché l'EA mi apre più posizioni contemporaneamente...

Vorrei che per ogni simbolo non ci fosse più di un ordine a mercato (a prescindere che sia BUY o SELL), invece me ne aopre di più, spesso 2 nello stesso identico momento.

Potete aiutarmi?


Il mio codice:


  //Magic numbers

    #define magic_1 99999904

  

  //Variabili globali

    int TF = 1;

    double LOT = 0.05;


    void OnTick() {  

   double close_1 = iClose("EURGBP", TF, 1);

    double open_2 = iOpen("EURGBP", TF, 2);

    double EMA21 = iMA("EURGBP", TF, 21, 0, MODE_EMA, PRICE_CLOSE, 0);

    int open_1B = 0, open_1S = 0;

   int total,ord,i;

   string symbol;

   total = OrdersTotal();

   for(i=0;i<total;i++)

   {

   OrderSelect(i,SELECT_BY_POS);

   if(OrderSymbol() == "EURGBP" && OrderMagicNumber() == magic_1) ord++;

   }

   if(ord>0) return;

    else

      {

        if(open_2 < EMA21 && close_1 > EMA21)

          {

            open_1B = OrderSend("EURGBP", OP_BUY, 0.01, Ask, 3, 0, 0, "BUY", magic_1, 0, Blue);

          }

        if(open_2 > EMA21 && close_1 < EMA21)

          {

            open_1S = OrderSend("EURGBP", OP_SELL, 0.01, Bid, 3, 0, 0, "SELL", magic_1, 0, Red);

          }

      }  

  }   

 

prova cosi dopo aver chiamato la funzione buy metti un piccolo wait time cosi nello stesso tick non avvengono piu operazioni

datetime lastopen;


bool CheckWaitTime()
{
    if(TimeCurrent()-5000 > lastopen)
    {
        return true;
    }
    else
    {
        return false;
    }
}
Motivazione: