Un bug dans la fonction OrderSend() ? - page 4

 
hoz:
Eh bien, oui, je le fais en mode visuel et regarde... Et ce qu'il peut ne pas montrer correctement ? Après tout, si vous roulez le TS sur heures ou sur H4 sur démo, il peut passer l'hiver quelques années :) ..... :) C'est une déception.

Eh bien, le visualiseur semble montrer, mais peut manquer quelque chose, en général, vous ne pouvez pas faire confiance ou pas pour tous les algorithmes qu'il peint avec précision une image de ce qui se passe, il est préférable d'observer en parallèle sur la démo, le graal n'est pas né en un jour ...

P.S. J'écris toutes mes idées principalement pour H1 mais c'est plus rapide sur la démo que de résoudre les énigmes des testeurs ...

 
hoz:

Déjà fait. J'ai aussi augmenté un peu la variable d'indentation et voilà..... Je suppose que ce n'est pas toujours possible de le dire à l'œil.

Je me demande quel est l'effet de la globalisation de la variable lastBarTime, en dehors des performances ? Son type est statique, ce qui signifie que la variable conserve sa valeur pendant toute la durée du programme...

Il y a encore une chose intéressante. Si j'utilise encore la baguette dans diverses fonctions, était-il juste que je la déclare d'emblée au départ ? Ou bien il n'est pas très raisonnable d'obtenir des valeurs à chaque tic, en raison de la consommation de ressources ?


Unevariable locale est une variable déclarée dans une fonction. La portée des variables locales est le corps de la fonction, dans laquelle cette variable est déclarée. Une variable locale peut être initialisée par une constante ou une expression, correspondant à son type.

Une variable globale est une variable déclarée en dehors de toutes les fonctions. La portée des variables globales est l'ensemble du programme. Une variable globale n'est pas localisée à un quelconque niveau. Une variable globale ne peut être initialisée que par une constante correspondant à son type (mais pas par une expression). Les variables globales sont initialisées une fois avant l'exécution des fonctions spéciales.

Si le contrôle d'un programme se trouve à l'intérieur d'une fonction, les valeurs des variables locales déclarées dans une autre fonction ne sont pas disponibles. La valeur de toute variable globale est disponible à partir de toute fonction spéciale et utilisateur.

 
C'est plus simple que ça. Le statique ne fonctionne pas dans MQL4.
 
tara:
C'est plus simple que ça. Le statique ne fonctionne pas dans MQL4.

Il y a combien de temps ?
 
Désolé, ça ne marche pas du tout. Du C du début :(
 
tara:
Désolé, ça ne marche pas du tout. Du C du début :(
D'autres programmeurs peuvent-ils le confirmer ? Un seul vote ne suffira pas.
 
tara:
C'est plus simple que ça. Le statique ne fonctionne pas dans MQL4.
Combien de codes écrits par des professionnels j'ai vu, et leur statique est souvent présente. Mais vous avez dit que ça ne marche pas. Que dois-je croire maintenant ? :(
 
hoz:
Combien de codes ai-je vu écrits par des professionnels, et ils sont souvent statiques. Et vous dites que ça ne marche pas. Qui doit croire maintenant ? :(
Vous ne pouvez faire confiance à personne.
 
tara:
Désolé, ça ne marche pas du tout. Du C du début :(

Personnellement, je n'ai jamais rencontré un statik qui ne fonctionnait pas.

voici un exemple d'expert, vous voulez le vérifier sur un graphique :

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   static int cc=20;
   Print("cc = ",cc);
   cc++;
   
   return(0);
  }
 

Le statique fonctionne à 100%. Voici le test :

int start()
  {
   static int i=0;
   while(i<3) {Print("K=",test());i++;}
   return(0);
  }
int test()
 {
  static int k=0;
  k++;
  return(k);
 }

Et les résultats :

Statique