Erreurs, bugs, questions - page 2891

 
Roman:

Oui, mais avant la première itération, la variable j n'est pas encore initialisée, ce que jure le compilateur.

Si vous n'utilisez pas cette variable ou si vous placez l'affectation i=j dans le corps de la boucle, ce qui serait identique à l'exécution de la première option, il n'y aura pas d'avertissement. Le compilateur ne vérifie pas la logique de la boucle et la séquence d'exécution, il vérifie la syntaxe de haut en bas, je pense, je n'en suis pas sûr).

 
Il y a une erreur dans le service de recherche du site. Cette recherche ne donne pas ce résultat.
 

fxsaber:

Et dans d'autres situations.

Le fait d'appuyer sur "reply" au lieu de "reply" fait bouger le terminal - une grande innovation.

 
Erreur de compilation :
#define  MACRO(X)\ //Error: '\' - unexpected in macro definition
              X
 
TheXpert:

vous appuyez sur répondre à la place, vous téléchargez le terminal - une grande innovation.

C'est la même chose... Et avec la question pour laquelle j'ai failli me faire clouer ici (dans le même menu déroulant portefeuille et sujets non lus - juste des frères jumeaux), et avec la vôtre, et pourtant (je ne sais pas comment quelqu'un) j'accroche une telle ... "chose".

Que faire de cette inscription ? Nulle part un lien pour voir qui est demandé et pourquoi, non (peut-être que cela se trouve dans le portefeuille, mais je n'ai pas regardé là).

L'impression très persistante est que tous ces "merveilleux" changements apportés au site sont le fait d'une seule personne..... Et personnellement pour lui-même. Exactement comme il pense en avoir besoin pour lui-même. Et il se fiche complètement de notre opinion...

 
Сергей Таболин:

Que faire de cette inscription ?

Je ne sais pas, quand il y a des applications normales, ça disparaît.
 

LorsqueREASON_ACCOUNT est modifié, on s'attendait à recevoir le compte précédent et à terminer le travail avec lui, logiquement, mais non, si le compte a changé, nous recevons un nouveau numéro dans le deinit à REASON_ACCOUNT.

Logiquement, le programme devrait finir de travailler avec les données actuelles et envoyer les nouvelles données lors d'un nouvel appel et ne pas modifier les données au cours du processus...

 
Vladimir Pastushak:

LorsqueREASON_ACCOUNT est modifié, on s'attendait à recevoir le compte précédent et à terminer le travail avec lui, logiquement, mais non, si le compte a changé, nous recevons un nouveau numéro dans le deinit à REASON_ACCOUNT.

Le programme doit logiquement terminer le travail avec les données actuelles et transmettre les nouvelles données lors d'un nouvel appel, sans modifier les données au passage...

Voici un code démontrant le comportement incorrect

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print("Start ", (string)AccountInfoInteger(ACCOUNT_LOGIN));
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(reason == REASON_ACCOUNT)
      Print("Stop ", (string)AccountInfoInteger(ACCOUNT_LOGIN));
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+

Résultat

2020.10.28 17:23:05.725 Test (EURUSD,M1)        Stop 600....
2020.10.28 17:23:06.306 Test (EURUSD,M1)        Start 600....
2020.10.28 17:23:17.478 Test (EURUSD,M1)        Stop 535....
2020.10.28 17:23:18.156 Test (EURUSD,M1)        Start 535....
 
Vladimir Pastushak:

LorsqueREASON_ACCOUNT est modifié, on s'attendait à recevoir le compte précédent et à terminer le travail avec lui, logiquement, mais non, si le compte a changé, nous recevons un nouveau numéro dans le deinit à REASON_ACCOUNT.

Le programme devrait logiquement finir de travailler avec les données actuelles et envoyer les nouvelles données lors d'un nouvel appel, sans modifier les données en cours de route...

Il ne s'agit pas d'une erreur et le comportement ne sera donc pas modifié. Considérez cette particularité.

 
Question pour les développeurs.
S'il y a un indicateur qui a une fonction assez gourmande en ressources de calcul de visualisation sur le canevas, à chaque tick.
Et cet indicateur est utilisé dans EA via iCustom.


Question.

Est-ce que (via iCustom) il appelle les fonctions qui calculent le canva, même si le canva n'est pas affiché ?
Je soupçonne que c'est le cas.
Alors il est probablement logique de créer un mode spécial dans l'indicateur sans calculs graphiques spécifiquement pour l'utiliser via iCustom ?
Ou est-ce que iCustom démarre magiquement seulement les fonctions qui sont liées à la formation des tampons d'indicateurs et ignore les autres ?