Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1164

 
Aleksey Vyazmikin:

Donc, vous voulez dessiner des niveaux et faire en sorte que le programme les trouve et lise le prix ?


Non, l'indicateur les dessinera en utilisant l'algorithmeClose[i+1]>Open[i+1] && Close[i+2]<Open[i+2]...Close[i+1]<Open[i+1] && Close[i+2]>Open[i+2].

Je ne peux pas trouver les prix de ces niveaux, donc quand ces formations (lignes) sont cassées, l'indicateur dessine une icône par exemple

 

Close[i+1]>Open[i+1] && Close[i+2]<Open[i+2] dans cette formation je dois obtenir le prix du minimumi+2

Close[i+1]<Open[i+1] && Close[i+2]>Open[i+2]dans cette formation je dois obtenir le prix dumaximumi+2

ensuite, lorsqu'il a cassé le haut/moyen, l'indicateur devrait dessiner une icône par exemple. je vois le breakout vers le haut commeClose[i+1]>Prix maximum (i+2) de la formation

Close[i+1]<Open[i+1] && Close[i+2]>Open[i+2]

 
Lankaster:

Close[i+1]>Open[i+1] && Close[i+2]<Open[i+2] dans cette formation je dois obtenir le prix du minimumi+2

Close[i+1]<Open[i+1] && Close[i+2]>Open[i+2]dans cette formation je dois obtenir le prix dumaximumi+2

ensuite, lorsqu'il a cassé le haut/moyen, l'indicateur devrait dessiner une icône par exemple. je vois le breakout vers le haut commeClose[i+1]>Prix maximum (i+2) de la formation

Close[i+1]<Open[i+1] && Close[i+2]>Open[i+2].


Je ne l'ai pas essayé de cette façon :

High[iHighest(Symbol(),Period(),2,i)] ; - maximum de i à i+2

Low[iLowest(Symbol(),Period(),2,i)] ; - minimum commençant de i à i+2

 
Vitalii Ananev:

Je ne l'ai pas essayé de cette façon :

High[iHighest(Symbol(),Period(),2,i)] ; - maximum commençant de i à i+2

Low[iLowest(Symbol(),Period(),2,i)] ; - minimum commençant de i à i+2


Si je ne me trompe pas, il recherchera les maxima et minima parmi 2 chandeliers, quelle que soit leur direction.

le maximum d'une bougie haussière de la première formation et le minimum d'une bougie baissière de la deuxième formation.

J'espère que c'est clair, ma tête est déjà en ébullition :)

 
Lankaster:

Non, l'indicateur utilisera l'algorithmeClose[i+1]>Open[i+1] && Close[i+2]<Open[i+2]...Close[i+1]<Open[i+1] && Close[i+2]>Open[i+2].

Je ne peux pas trouver les prix de ces niveaux, donc quand ces formations (lignes) sont cassées, l'indicateur dessine une icône par exemple

Hélas, je ne comprends toujours pas, mais cela ressemble à un canal Doncian - regardez dans la base de code...
 
Aleksey Vyazmikin:
Hélas, je ne comprends toujours pas, mais cela ressemble à un canal donchien - regardez dans la base de code...

Oui, vous avez raison cela ressemble à un canal donchien sur ce lien https://www.mql5.com/ru/code/10836 mais je ne comprends pas comment dessiner l'icône lorsque Close[i+1] ferme au-dessus du canal par exemple le 12 juin 2012 sur le graphique vous pouvez voir que l'indicateur a marqué le haut, mais à quoi ressemblera le code de ce croisement ? Close[i+1]>Canal donchien ? Mais comment ce Close[i+1] saura-t-il quelle valeur il croise ? Parce qu'entre ce maximum et le prix actuel il y a des sommets locaux que le canal a marqué et ces sommets ont leur propre valeur d'indicateur.

Канал Дончиана.
Канал Дончиана.
  • votes : 7
  • 2012.09.10
  • Лёха
  • www.mql5.com
Классический вариант индикатора со средней линией.
 
Lankaster:

Oui, vous avez raison cela ressemble à un canal donchien sur ce lien https://www.mql5.com/ru/code/10836 mais je ne comprends pas comment dessiner l'icône lorsque Close[i+1] ferme au-dessus du canal par exemple le 12 juin 2012 sur le graphique vous pouvez voir que l'indicateur a marqué un haut, mais à quoi ressemblera le code de ce croisement ? Close[i+1]>Canal donchien ? Mais comment ce Close[i+1] saura-t-il quelle valeur il franchit ?


Vous devez comparer le prix avec l'indicateur - fonction iCustom.

 
Aleksey Vyazmikin:

Vous devez effectuer une comparaison de prix avec un indicateur - fonction iCustom.


Je ne comprends pas comment faire cette comparaison. Peut-être serait-il plus facile de dessiner une ligne horizontale de maxima et de minima et de donner un nom à chaque ligne, puis, à l'aide d'ObjectGet, d'obtenir les prix de ces lignes ?

 
Lankaster:

Je ne comprends pas comment faire cette comparaison. Peut-être serait-il plus facile de tracer des lignes horizontales pour dessiner ces hauts et ces bas et de donner un nom à chaque ligne, puis d'obtenir les prix de ces lignes par ObjectGet ?


Regardez comment l'indicateur est configuré, il y aura peut-être d'autres idées...

L'idée est de trouver les points initiaux des croisements dans l'indicateur, de les rassembler dans un tableau et de les traduire hors de l'indicateur - ainsi, il sera moins consommateur de ressources si le calcul doit être effectué pour l'ensemble du graphique et pour accéder aux données plusieurs fois par barre, par exemple dans l'Expert Advisor.

 
Aleksey Vyazmikin:

Regardez comment l'indicateur est configuré, il y aura peut-être d'autres idées...

L'idée est de trouver les points de croisements primaires dans l'indicateur, de les rassembler dans un tableau graphique et de les traduire à partir de l'indicateur - cela consommera moins de ressources si le calcul doit être effectué sur l'ensemble du graphique et si je dois accéder aux données plusieurs fois par barre, par exemple dans l'Expert Advisor.


Merci, je vais essayer.

Raison: