Avoir le prix ouvert de la bougie à une heure précise. - page 4

 
Kane59:

Désolé, vraiment,

J'ai seulement ça mais c'est vrai que j'ai oublié "UpdateHSeSpeciales".


C'est appelé dans "init" quand le programme commence.

OK, j'ai testé cette fonction et elle semble fonctionner correctement.

Pour rendre la vie plus facile et un peu plus sûre, pourquoi ne pas faire ceci ....

extern string     Heures="09:00;15:00;19:00;23:00;";

datetime          HeureSH[];   // datetime NOT string


   if (HeureSH( iTime(Symbol(),PERIOD_H1,0),TIME_MINUTES) )  // pass datetime to HeureSH


//+------------------------------------------------------------------+
void UpdateHSeSpeciales()
   {
   string hour1 = "";
   int count1 = 0;
   for(int k = 0; k < StringLen(Heures); k++)
      {
      if(StringSubstr(Heures, k, 1) != ";")
         {
         hour1 = hour1 + StringSubstr(Heures, k, 1);
         }
      else
         {
         ArrayResize(HeureSH, ArraySize(HeureSH)+1);
         HeureSH[count1] = StrToTime(hour1);  //  convert string to datetime
         hour1 ="";
         count1 +=1;
         }   
      }
   }

bool HeureSH(datetime now1)  // parameter is a datetime
   {
   for(int k = 0; k < ArraySize(HeureSH); k++)
      {
      if(now1 == HeureSH[k])
         {
         return(true);
         }
      }
   
   return(false);
   }

Ainsi, au lieu de travailler avec des chaînes de caractères, vous travaillez avec des dates ?