Questions des débutants MQL5 MT5 MetaTrader 5 - page 1074

 
Artyom Trishkin:

Et vous imprimez les valeurs numériques des drapeaux. L'indicateur total doit contenir toutes les valeurs des indicateurs souhaités. Et que représente OBJ_PERIOD_H3-1 ? Si c'est la somme de tous les drapeaux qui le précèdent, alors oui, mais sinon, il y a un bug quelque part.

Nah... L'autre jour, je discutais des drapeaux dans un fil de discussion et j'expérimentais des lignes comme celle-ci

Print("summa_flag = ", 1 | 2 | 4);

le total est de 7

а

Print("summa_flag = ", 1 | 2 | 3);

il ne donne que 3.


Ajouté :

Regardez, le drapeau 4... la somme qui précède est 3.

drapeau 16... la somme avant qu'elle ne soit égale à 15.

Et ainsi de suite.

 
Alexey Viktorov:

Nah... Je discutais des drapeaux dans un fil l'autre jour et j'expérimentais des lignes comme celle-ci

le total est de 7

а

ne donne que 3

Naturellement. C'est juste là.

Chaque drapeau successif a, doit avoir une valeur double de celle du précédent.

Et en entrant 3 au lieu de 4, vous avez dupliqué les deux premiers drapeaux : 1 et 2.
 
Alexey Viktorov:
Bien sûr qu'elle l'est. Juste une petite ligne. Il faut juste déterminer quel est le TF le plus ancien dans la liste des drapeaux.

Ça marche pour nous ! Une excellente solution !

 
Anzhela Sityaeva:

Ça marche pour nous ! Excellente solution !

C'est seulement si vous voulez que tout soit visible AVANT l'échéance la plus élevée. Dès que vous voudrez supprimer l'un de ces éléments avant le plus ancien, cela ne fonctionnera pas avec un tel design.

ZS, je suis désolé, c'est "vous", "nous", "notre majesté" ?

 
Artyom Trishkin:

C'est seulement si vous voulez que tout soit visible AVANT la période la plus ancienne. Dès que l'on veut supprimer l'un de ceux qui sont avant le plus ancien, rien ne fonctionnera avec une telle construction.

Artem, tout va s'arranger.

Par exemple, vous devez afficher tous les inférieurs, sauf M15...

Alors ça le sera.

ObjectSetInteger(ch_id, name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H3-1-OBJ_PERIOD_M15);
 
Alexey Viktorov:

Artem, tout va s'arranger.

Par exemple, vous devez afficher tous les inférieurs, sauf M15...

Ce serait...

Donc... ce que je veux dire c'est...

Continuez - et montrez ce qui se passe si vous avez besoin d'afficher tous les hauts jusqu'à et y compris W1 et un bas...

 
Artyom Trishkin:

ZS, je suis désolé, c'est "vous", "nous", "notre majesté" ?

OUI. Nous sommes deux.))

 
Alexey Viktorov:

OUI. Nous sommes deux, après tout.))

Vous confondez votre deuxième "nous" - vous avez montré une méthode qui ne fonctionne que dans une seule situation - uniquement lorsque vous devez TOUT afficher : de, et à..., et pas plus.

Et puis il y a une perte de flexibilité, et encore une fois vous devez énumérer, mais déjà des drapeaux inutiles.

 
Artyom Trishkin:

C'est seulement si vous voulez que tout soit visible AVANT la période la plus ancienne. Si l'on veut supprimer tous ces éléments avant le plus ancien, rien ne fonctionnera avec un tel design.

ZS, je suis désolé, est-ce que "vous", "nous" est notre majesté ?

Non, bien sûr, c'est juste que je ne suis pas le seul ici, et que la plupart des communications sont sur moi... Les partenaires ne sont pas fans des salons de discussion etc....

 
Artyom Trishkin:

Donc... ce que je veux dire c'est...

Continuez - et montrez ce qui se passe si nous devons afficher tous les hauts jusqu'à et y compris W1 et un bas...

Clarifiez. Je ne comprends pas bien.

Artem, j'ai traité les drapeaux selon votre suggestion. Et je les ai tous recalculés non seulement par logiciel, mais aussi sur une calculatrice. Je vous assure que tout va fonctionner. Vous devez juste comprendre combien vous devez soustraire de chaque drapeau pour ne laisser que les drapeaux que vous voulez.

Faites le calcul : combien faut-il soustraire de 32 pour obtenir la somme des drapeaux 1|2|8 ?

En fait, l'indicateur 32 lui-même ne contient aucun des indicateurs énumérés. Mais si on lui soustrait 1, la somme des drapeaux est 1|2|4|8|16 = 31.

Donc, si nous avons le drapeau 32 qui n'est pas nécessaire, soustrayez-lui 1 et soustrayez la somme de 4|16 de 31 et nous n'aurons que 1|2|8.