Erreurs, bugs, questions - page 99

 
Renat:

Non.

Si vous avez créé une variable int i ;, pourquoi ne l'avez-vous pas initialisée ? En fait, vous avez vous-même dit "Je ne me soucie pas de ce que contient cette variable" et vous vous êtes retrouvé avec des déchets à l'intérieur.

La méthode correcte est int i=0 ;

Oui, c'est vrai - vous pouvez créer de telles variables à l'intérieur d'un bloc.
C'est une habitude. Auparavant (dans MQL4), int i ; et int i=0 ; fonctionnaient de la même manière. Eh....
 
Renat:
Veuillez poster un morceau de code dans le servisdesk où cette situation se produit.

Je l'ai affiché en entier (code), (lorsque cette ligne avec ce caractère "&" complètement déclarer une erreur, et si vous supprimez ce caractère de la chaîne complètement, tout fonctionne ... Ou au moins la moitié de la chaîne pour le commentaire alors cela fonctionnera avec ce caractère MAIS !!! La longueur de la chaîne de 159 caractères. Qu'est-ce que c'est alors ????) et essayer de le déclarer sur Windows 7 64 bit (c'est important) parce que l'erreur se produit précisément sur elle, bien qu'avant ce Bild 306 j'ai 15 constructions tout a fonctionné bien, sur 305 - j'ai travaillé avec ce code une semaine sur cette version de Windows tout était bien.



Cela fait deux jours que j'écris au Service Desk et je n'arrive à rien faire...

P/S. Ils m'ont déjà informé qu'ils y travaillent... (via ServiceDesk).


Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
 

Devis le jeudi de 00:00 à 24:00. Vendredi 00:00 - ~22:45 .

Comment puis-je recevoir ces informations ?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

void OnTick()
  {
//---
//Print(TimeCurrent());      
datetime a,b;
SymbolInfoSessionTrade(Symbol(),FRIDAY,0,a,b);
Print(a,"-",b);
  }

Retourne "2010.08.17 15:44:31 heure (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00".

Qu'est-ce que le session_index, // numéro de session, comment connaître ce numéro ?

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );
 
gumgum:

Devis le jeudi de 00:00 à 24:00. Vendredi 00:00 - ~22:45 .

Comment puis-je recevoir ces informations ?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Retourne "2010.08.17 15:44:31 heure (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00".

Qu'est-ce que le session_index, // numéro de session, comment connaître ce numéro ?

Voir l'article Limites et contrôles dans les EA
 


2010.08.17 17:35:37 time (EURUSD,H1) Lundi : session index=0 start=00:00 finish=23:59:59

2010.08.17 17:34:58 time (EURUSD,H1) Vendredi : session index=0 start=00:00 finish=23:59:59

session_index est toujours zéro

Je ne comprends toujours pas pourquoi l'indice de session !?

for(int i=0;i<=1000;i++)
{
datetime a,b;
if(!SymbolInfoSessionTrade(Symbol(),FRIDAY,i,a,b)){}else{Print(a," - ",b);}
}

En dehors de 0, c'est toujours faux.

 

Dédié aux développeurs ...

Vous auriez au moins prévenu si vous donniez une opportunité qui, en principe, n'était pas possible auparavant.

J'ai perdu vingt-quatre heures à essayer d'attraper ce bug.

double            nd(double v)
{if(DIGITS=EMPTY_VALUE)DigitMinLots();// ставлю  if(DIGITS==EMPTY_VALUE) даёт расчёт с ошибкой
return(NormalizeDouble(v,DIGITS));
};

Ne me dites pas que c'est bon. Bien sûr que je le sais, mais j'ai perdu 24 heures juste parce que je suis habitué au fait qu'avec ce...

if(DIGITS=EMPTY_VALUE)

J'ai l'habitude que le compilateur me donne une erreur.

 
Urain:

Dédié aux développeurs ...

Vous auriez au moins prévenu si vous donniez une opportunité qui, en principe, n'était pas possible auparavant.

J'ai perdu vingt-quatre heures à essayer d'attraper ce bug.

Ne me dites pas que c'est bon. Bien sûr que je le sais, mais j'ai perdu 24 heures juste parce que je suis habitué au fait qu'avec ce...

J'ai l'habitude que le compilateur me donne une erreur.

Il n'y a pas d'erreur. La prochaine mise à jour donnera un avertissement indiquant que l'expression n'est pas logique.
 
mql5:
Il n'y a pas d'erreur. Dans la prochaine mise à jour, il y aura un avertissement indiquant que l'expression n'est pas logique.
Maintenant vous parlez, il n'y a pas d'erreur moi-même.
 

Existe-t-il une terminaison forcée de la fonction OnTester()?

ou pourquoi l'historique des transactions avant la fonction personnalisée existe et renvoie zéro après :

double OnTester()
  {
   int HTD=-1;
   Custom_func();
   if(HistorySelect(0,TimeCurrent()))HTD=HistoryDealsTotal();   
   return(HTD);
  }

Quelles sont les fonctions qui ne fonctionnent pas dans le testeur ?

comment le testeur (pendant l'optimisation) peut-il signaler à l'extérieur que quelque chose ne va pas (impression d'alertes, rien ne fonctionne) ?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Je ne comprends pas, sur ma vie.

Pourquoi : ce n'est pas fini à 24 heures un vendredi.

Ou quoi ?

Et pourquoi session_index++ ; si session_index=1 est déjà faux :

//+------------------------------------------------------------------+
//|  Вывести информацию о котировочных сессиях                       |
//+------------------------------------------------------------------+
void PrintInfoForQuoteSessions(string symbol,ENUM_DAY_OF_WEEK day)
  {
//--- начало и конец сессии
   datetime start,finish;
   uint session_index=0;
   bool session_exist=true;

//--- пройдемся по всем сессиям за этот день
   while(session_exist)
     {
      //--- проверим наличие котировочной сессии с номером session_index
      session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);

      //--- если такая сессия есть
      if(session_exist)
        {
         //--- выведем день недели, номер сессии и время начала и окончания
         Print(DayToString(day),": session index=",session_index,"  start=",
               TimeToString(start,TIME_MINUTES),"    finish=",TimeToString(finish-1,TIME_MINUTES|TIME_SECONDS));
        }
      //--- увеличим счетчик сессий
      session_index++;
     }
  }