[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 97

 
Ensuite, affichez les lignes que vous avez ajoutées et quelques anciennes lignes de chaque côté.
 
MikeM:
Ensuite, affichez les lignes que vous avez ajoutées et quelques anciennes lignes de chaque côté.

Vous devez être psychique.
 

Cette ligne est ajoutée dans deux espaces précédemment vides

si (Var_Stop==3)stopsell = opensell+Stop_Pips*Point ;

+ cette ligne a également été ajoutée aux deux espaces précédemment vides.

si (Var_Stop==3)stopbuy = openbuy-Stop_Pips*Point ;

Tout s'est bien compilé avant l'insertion. Après l'insertion Type d'erreur

 
Vinin:

Vous devez être un médium.
Cela signifie-t-il que la cause de ce type d'erreur ne peut être déterminée à la source ?
Si ce n'est pas le cas, je ne comprends pas l'intérêt de la remarque.
 
MikeM:
Cela signifie-t-il que la cause de ce type d'erreur ne peut être déterminée à la source ?
Si ce n'est pas le cas, je ne comprends pas l'intérêt de la remarque.

Vous pouvez regarder l'ensemble du code, et les journaux vous aideront. On ne peut rien dire à partir de deux lignes
 
Vinin, bonjour, s'il y a une explication, j'aimerais la lire.
 
locol91:
Vinin, bonjour, s'il y a une explication, j'aimerais la lire.

Pas beaucoup d'informations
 
Montrer les lignes adjacentes et les lignes décrivant les variables utilisées
 
Oui. Il semble y avoir une limite au nombre total de variables. Je ne sais pas vraiment pourquoi cela s'est produit, mais après avoir fabriqué plusieurs pièces identiques en une seule fonction, l'erreur a cessé. Désolé pour le dérangement.
 

Kim a une fonction :

//+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
} 

J'ai deux questions :

1. Pourquoi traduit-il d'abord l'heure en une chaîne, puis la chaîne en une heure ?

2. Pourquoi cette condition dans la fonction ?

  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

Parce que vérifier l'heure en dessous... Juste ici :

if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);

Et dans les paramètres des fonctions, les variables temporelles ne sont pas de type datetime, mais int pour une raison quelconque...