Veuillez donner plus de liberté pour gérer les fenêtres du graphique - page 6

 
barabashkakvn:
Et comment faire fonctionner "Crosshair" dans un objet graphique - je veux dire, quand on passe la souris sur un objet graphique, les données OHLC sont affichées dans la barre d'état ?
Je n'ai pas essayé de le faire. Peut-être est-ce possible avec ces fonctions :ChartXYToTimePrice() et ChartTimePriceToXY().
 
tol64:
Je n'ai pas essayé de le faire. Peut-être est-ce possible avec ces fonctions :ChartXYToTimePrice() et ChartTimePriceToXY().
C'est possible, il semble, seulement il n'y a pas d'accès à la ligne d'état. Je veux une imitation complète de "Crosshair" sur l'objet graphique, pour fonctionner comme sur un graphique normal - avec l'affichage dans la barre d'état.
 
barabashkakvn:
C'est possible, je pense, sauf qu'il n'y a pas d'accès à la barre d'état. Je voudrais une imitation complète de "Crosshair" sur l'objet graphique, afin qu'il fonctionne comme un graphique normal - avec affichage dans la barre d'état.

Les objets graphiques doivent ensuite être développés davantage. Je suis favorable à ce qu'il y ait autant de possibilités que possible, tant pour les objets graphiques que pour les fenêtres graphiques. Je ne vois aucune raison d'être contre, juste pour le plaisir d'être contre. ;)

Une bonne chose serait de collecter tous les cas où certaines ou d'autres fonctionnalités sont nécessaires concernant cette question, et de les présenter dans le premier post de l'enquête. Le scrutin devrait être illimité dans le temps. Sinon, ils sont souvent oubliés et peu de gens les voient parce qu'ils ne consultent pas souvent le forum.

 
Je vous suggère de mettre ici, dès maintenant, tous les cas où vous avez besoin d'une sorte de fenêtre ou de fonction graphique. Discutons-en. Je pense que nous pouvons faire un sondage long, et ensuite nous pouvons déplacer ce fil entier vers le sondage.
 

Quoi qu'il en soit, voici un semi-remplacement des contrôles de la fenêtre graphique :

 

Lorsque le curseur se déplace sur un graphique normal, la barre d'état affiche les valeurs OHLC, mais lorsque le curseur se déplace sur un objet graphique, les valeurs OHLC ne sont pas traduites dans la barre d'état. Comme MQL ne donne pas accès à la barre d'état, nous devons trouver une barre d'état de remplacement pour l'objet graphique.

Pour l'instant, je pense aux étiquettes de texte OBJ_LABEL.

 
barabashkakvn:

Lorsque le curseur se déplace sur un graphique normal, la barre d'état affiche les valeurs OHLC, mais lorsque le curseur se déplace sur un objet graphique, les valeurs OHLC ne sont pas traduites dans la barre d'état. Comme MQL ne donne pas accès à la barre d'état, nous devons trouver une barre d'état de remplacement pour l'objet graphique.

Jusqu'à présent, les étiquettes de texte OBJ_LABEL me viennent à l'esprit.

Notre support technique a répondu qu'il ne sera pas possible de transmettre les valeurs OHLC des barres d'objets OBJ_CHART à la barre d'état. Nous devrons donc mettre en place notre propre barre d'état :

Sa propre barre d'état

 

Avec le placement de la barre d'état (sous la forme de OBJ_BITMAP_LABEL), une erreur s'est produite : l'objet est rendu en laissant une barre d'un pixel en dessous.

Paramètres de OBJ_BITMAP_LABEL :

x=0,                      // координата по оси X
y=0,                      // координата по оси Y
CORNER_LEFT_UPPER,        // угол графика для привязки
ANCHOR_LEFT_UPPER,        // способ привязки

C'est-à-dire que l'étiquette graphique de l'objet est dessinée au bas du graphique et que le centre de coordonnées se trouve dans le coin inférieur gauche du graphique.

En fait, l'objet étiquette graphique n'est pas dessiné par des coordonnées (0;0) mais par des coordonnées (0;1) avec ces paramètres.

Voici une image montrant une barre de 1 pixel :

Rendu incorrect de OBJ_BITMAP_LABEL

Dossiers :
 

Un modèle avec une fenêtre supplémentaire est appliqué à l'objet graphique et la fenêtre supplémentaire est redimensionnée. Après la fermeture et l'ouverture du terminal, l'objet graphique remet à zéro la hauteur de la fenêtre supplémentaire. Est-ce normal ?


P.S. J'ai joint un script de test.

Dossiers :
test_script.mq5  13 kb
 
barabashkakvn:

Un modèle avec une fenêtre supplémentaire est appliqué à l'objet graphique et la fenêtre supplémentaire est redimensionnée. Après la fermeture et l'ouverture du terminal, l'objet graphique remet à zéro la hauteur de la fenêtre supplémentaire. Est-ce normal ?

Lorsque le terminal est fermé, l'état des graphiques est sauvegardé dans les fichiers chr. Toutes les propriétés des objets graphiques destinés au contrôle du programme ne sont pas écrites, c'est normal.