Une question pour les connaisseurs de MQL - page 5

 
Rita:

ObjectCreate(name, OBJ_TRIANGLE, WindowFind(WindowExpertName(), Time[-1],vertex1_price,

Temps[-5],vertex2_price,

Temps[-7],vertex3_price, ) ;

//--------------------------------------------------------------------------------------------------------------------------

J'ai défini les coordonnées des nœuds du triangle en fonction du temps (par exemple, en fonction de l'heure d'ouverture des barres du futur). Le reste n'est pas très clair pour moi. Ce n'est pas le prix qui est affiché sur l'échelle de la fenêtre de l'indicateur. C'est la gradation des valeurs des indicateurs.

J'ai besoin de "mettre" un triangle avec des sommets fixés de manière rigide, quel que soit le prix.

Et de préférence, il doit être fixé de manière rigide dans le coin droit (ou inférieur).

Et je ne comprends pas comment définir les coordonnées de ses sommets - le long de l'axe vertical de l'échelle de l'indicateur :


.... ... Pas de réponse des experts...

Apparemment, je dois tenir compte du fait qu'il est impossible de dessiner le triangle dans la fenêtre de l'indicateur en utilisant MQL.
 
Rita:
Apparemment, nous devons tenir compte du fait qu'il est impossible de dessiner un triangle dans la fenêtre de l'indicateur en utilisant MQL.
Quelle était la tâche initiale ?
 

La tâche initiale est la suivante.

On m'a dit de faire ça. Si les lignes de prix des instruments de l'indicateur sur la barre zéro convergent,

c'est-à-dire abs. sur(Symbole1[0]-Symbole2[0]) < ( Symbole1[1] - Symbole2[1])

alors le triangle doit être dessiné avec l'angle droit - voir Fig.

Si les lignes divergent, alors le point est à gauche.

J'ai noté les conditions. Mais je n'arrive pas à dessiner le triangle...

 

Le prix doit être fixé dans les unités de l'indicateur et l'heure comme d'habitude.

Mais il sera toujours attaché au graphique, et non à l'écran.

S'il est difficile de comprendre quelles coordonnées de prix doivent être fixées, l'algorithme est le suivant :

Si l'indicateur est auto-échelonné, nous définissons le nombre de barres dans la fenêtre, calculons le minimum et le maximum des valeurs de l'indicateur dans cet intervalle et les utilisons comme points de base.

Si l'indicateur est à échelle fixe, les coordonnées sont définies par des constantes.

 
Rita:

Le temps est un tableau, il n'a pas d'éléments négatifs.

L'heure future peut être définie comme suit : Time[0]+X*Period()*60.

Verticalement, les valeurs de l'échelle de l'indicateur sont définies.

 

Je vois. Merci à tous.

Il est plus facile d'écrire en mots - "convergence ou divergence" - que de s'embêter avec un triangle ... -

 
Rita:

.... ... Aucune réponse des experts...

Apparemment, je dois tenir compte du fait qu'il est impossible de dessiner un triangle dans la fenêtre de l'indicateur en utilisant MQL.


Peut-être que les flèches sont meilleures

ObjectCreate("DevIM0", OBJ_ARROW, window, Time[0]+5500, 0) ;
ObjectSet("DevIM0", OBJPROP_ARROWCODE, 232) ;
ObjectSet("DevIM0", OBJPROP_WIDTH, 4) ;

 

mettre une étiquette dans le coin en police Wingdings 2 et ne pas s'en soucier...

 
Merci. Vous pouvez aussi essayer les flèches.
 
Rita:
Merci. On pourrait aussi essayer les flèches.


ObjectCreate("DevIM0", OBJ_TRIANGLE, window, Time[0]+5500, 0,Time[0]+8500, 30,Time[0]+8500, -1*30) ;

Le Triangle n'est pas mal non plus.