[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 192

 

NewBar() est appelé ; mais si vous regardez assez longtemps, vous n'empirerez pas les choses pour vous :)

 

newbar https://book.mql4.com/ru/variables/arrays

Conceptuellement, ce n'est pas différent.

void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }

 
splxgf:

newbar https://book.mql4.com/ru/variables/arrays

Conceptuellement, ce n'est pas différent.


Pas sur le plan conceptuel, mais cela ne fonctionnera pas - désolé.
 
Sur l'indicateur ADX on écrit beaucoup, mais il y a une fonctionnalité que je voudrais prendre en compte, ici en bref.....Et vous pouvez colorer les barres selon cet algorithme : si la valeur actuelle de l'ADX est supérieure à l'ADX précédent et que + (ligne de plus) est au-dessus de la ligne de moins, la barre est peinte en vert, mais si la valeur actuelle de l'ADX est inférieure à la valeur précédente, la barre est peinte en gris (alors peu importe où se trouve la ligne de plus), et enfin si la valeur actuelle de l'ADX est supérieure à l'ADX précédent et que - (ligne de moins) est au-dessus de la ligne de plus, la barre est peinte en rouge. Ou, si je voulais changer la valeur ADX, je pourrais simplement la définir à une valeur au-dessus de laquelle les flèches ne seront pas dessinées.
 
splxgf:
double OpenBar=0; 
 
int start()
   {
    //Проверка на начало нового бара
    if (OpenBar==Time[0]) return; else OpenBar=Time[0];
   }

Je ne jouerais pas avec une variable de type double ici ! Vous avez besoin de plus de mémoire ! ;)))

Et lorsque la conversion du type int en type cible double se produit, je comprends qu'il n'y aura pas de chiffres supplémentaires après le point décimal ? Je n'ai personnellement pas rencontré de tels cas. Mais ça vaut la peine de demander.


tara:

Conceptuellement - rien, mais ça ne marchera pas, désolé.
Quel code ne fonctionnera pas et pourquoi ?
 

Celle que vous avez citée manque certaines des barres.

 
tara:

Celle que vous avez citée manque certaines des barres.


Proposez votre propre variante et expliquez pourquoi elle est meilleure. Pour l'instant, ce ne sont que des mots.
 

1. Il manquera une partie des barres, car le résultat de la comparaison double==int dépend de la valeur int particulière qui a été précédemment placée dans double. C'est exactement ce qui se passe ici : le temps (int) est écrit en double - pour tous les nombres qui ne sont pas des degrés de deux, il y a une perte de précision, ce qui donne double3 != int3, bien que double4 == int4.

2. Je comprends qu'il s'agit simplement d'une erreur technique de quelqu'un, propagée ensuite à plusieurs reprises. En fait, vous devriez simplement corriger le type OpenBar en datetime ou int. Mais - le sommeil de l'esprit engendre des monstres : il est plus facile de répéter le code de quelqu'un d'autre et de fermer les yeux :)

3. Solution incorrecte en termes d'allocation de mémoire : une variable locale statique est suffisante ici, une variable globale supplémentaire est inutile - déchets logiciels, même si c'est une broutille :(

 
tara:

1. Il manquera une partie des barres, car le résultat de la comparaison double==int dépend de la valeur int particulière qui a été précédemment placée dans double. C'est exactement ce qui se passe ici : le temps (int) est écrit en double - pour tous les nombres qui ne sont pas des degrés de deux, il y a une perte de précision, ce qui donne double3 != int3, bien que double4 == int4.

2. Je comprends qu'il s'agit simplement d'une erreur technique de quelqu'un, propagée ensuite à plusieurs reprises. En fait, vous devriez simplement fixer le type d'OpenBar sur le double. Mais le sommeil de la raison engendre les bêtes : il est plus facile de répéter le code de quelqu'un d'autre et de fermer les yeux :)

3. Solution incorrecte en termes d'allocation de mémoire : une variable locale statique est suffisante ici, une variable globale supplémentaire est inutile - programme nul, bien que ce soit une broutille :(


Il y a encore du code à citer. Je suis juste fatigué de répéter la même chose cinq pages plus loin. D'autant plus que la bonne solution est facile à trouver par le biais d'une recherche.
 

Bonjour à tous !

Question sur les EA. En examinant un grand nombre d'EA, je veux comprendre comment les transactions sont effectuées automatiquement. Je pense avoir tout réglé correctement, j'autorise l'EA à négocier, je comprends l'idée, mais il n'y a pas de négociations pour une raison quelconque. Peut-être s'applique-t-il à un certain symbole ? Ou un calendrier ? Comment puis-je le savoir ?