Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1913

 
Alekseu Fedotov #:

Je ne vois pas l'erreur ici.

if(TimeFrame != PERIOD_CURRENT)

même chose

if(TimeFrame != 0)
 
Alekseu Fedotov #:

Je ne vois pas d'erreur ici.

PERIOD_CURRENT est 0 - la constante magique.

Il devrait être _Period (la période du graphique actuel) au moins et il est toujours différent de 0.

 
Alekseu Fedotov #:

Je ne vois pas d'erreur ici.

Lorsque ce morceau de code est pris, il y a également un paramètre d'entrée

sinput ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Период

Par conséquent, nous obtenons la condition si 0 n'est pas égal à 0.

Mais si nous remplaçons PERIOD_CURRENT par toute autre période dans le paramètre d'entrée, la condition sera maintenue quelle que soit la période du graphique. Quel est donc l'intérêt de cette condition ?

 
Alexey Viktorov #:

Lorsque ce morceau de code est pris, il y a aussi un paramètre d'entrée

Corrélativement, on obtient la condition si 0 n'est pas égal à 0

Mais si nous remplaçons PERIOD_CURRENT par toute autre période dans le paramètre d'entrée, la condition sera maintenue quelle que soit la période du graphique. Quel est donc l'intérêt de cette condition ?

Cela n'a de sens qu'une seule fois, afin que la fonction ChartSetSymbolPeriod() ne vous dérange pas trop ;

 
Alekseu Fedotov #:

Il s'agit d'un seul point, afin que la fonction ChartSetSymbolPeriod() ne soit pas tirée inutilement ;

En principe, oui. Mais la question portait sur la présence d'erreurs, pas sur l'opportunité de cette condition...

 

Bonjour, chers développeurs !

Je suis confronté à la nécessité de regrouper les commandes pour travailler avec chaque groupe séparément (fermeture, complément, etc.). Je pense que la tâche n'est pas trop difficile, mais je n'ai aucune idée de la façon de la résoudre. J'ai une idée très floue, c'est tout. Personne n'a été confronté à un tel problème ? Le regroupement peut se faire de n'importe quelle manière( terminal devariables globales, commentaires, etc.). Je vous serais reconnaissant de toute aide.

 
AMarkov ( terminal devariables globales, commentaires, etc.). Je vous serais reconnaissant de toute aide.

Pourquoi tu ne veux pas utiliser Magik ? Parce qu'il peut y avoir plus d'un magicien dans un EA...

 
Magik
Alexey Viktorov #:

Pourquoi un magicien ne convient-il pas ? Après tout, il peut y avoir plus d'un magicien dans un conseiller...

Magik convient également. Je suppose que toutes ces options auront presque le même algorithme. Donc, ça n'a pas d'importance. L'essentiel est de trouver la solution).

 
AMarkov #:
Magik

Magik convient également. Je suppose que toutes ces options auront presque le même algorithme. Donc, c'est la même chose. L'essentiel est de trouver une solution).

Bien sûr, la solution est la même. Déterminer le critère d'appartenance de l'ordre à tel ou tel groupe et l'identifier en fonction de ce critère...
 
Alexey Viktorov #:
Bien sûr, la solution est la même. Vous définissez le critère selon lequel l'ordre appartient à tel ou tel groupe et vous l'identifiez en fonction de ce critère...

Merci de votre participation. L'énoncé de mission est clair pour moi. Je suis coincé avec l'implémentation...

J'ai essayé avec les commentaires. Jusqu'au deuxième groupe, il numérote correctement. Au troisième, il en retourne un pour le commentaire, bien que le premier groupe soit encore sur le marché. L'idée n'est pas de multiplier les numéros, mais de prendre ceux qui sont vacants. J'espère l'avoir expliqué clairement).

for(int a=1 ; a<10 ; a++)

{

commentaire=" ;

for(int i=0 ; i<OrdersTotal() ; i++)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)

{

//Print(OrderComment() ;

si(OrderComment()==IntegerToString(a)) continue ;

sinon

{

commentaire=IntegerToString(a) ;

pause ;

}

}

}

}

if(comment!="") break ;

}

if(CountOfBuy(magic)<1 && CountOfSell(magic)<1) comment="1" ;