Indicateur, besoin de conseils sur l'auto-contrôle de la DISTANCE entre les textes (MT-4) - page 2

 
Il n'existe pas de bonne solution à ce problème dans MT4. Une option est d'utiliser ATR avec une période de 100 barres (et un décalage de 1), la seconde option est d'écrire une fonction qui renvoie des points en fonction de l'intervalle de temps.
 
Dmitry Fedoseev:
Il n'existe pas de bonne solution à ce problème dans MT4. Une option est d'utiliser ATR avec une période de 100 barres (et un décalage de 1), l'autre option est d'écrire une fonction qui renvoie des points en fonction du cadre temporel.

À mon avis, un canevas est une solution universelle absolument multiplateforme qui offre de grandes possibilités par rapport aux objets graphiques.

 

Pourquoi signer tout en mots ?
Cela surchargerait la perception - beaucoup de texte sur le graphique.

Je ferais des icônes de caractères différents pour chaque motif (et je sélectionnerais un code de caractère dans les paramètres).

 
C'est vrai, l'ordre sur le graphique est important. Mais il faut le faire rapidement, sans se laisser emporter par les fioritures, et en dirigeant vos énergies là où vous le souhaitez.
 

comment le faire sans toile, mais selon les mêmes principes :

1. Vous aurez besoin de la hauteur actuelle de la fenêtre du graphique en pixels pour déterminer l'indentation actuelle : ChartGetInteger avec la propriété CHART_HEIGHT_IN_PIXELS

2. pour déterminer le début du dessin du graphique : ChartTimePriceToXY

3. comment déterminer la zone du graphique que nous voyons maintenant ? ChartGetInteger avec les propriétés CHART_VISIBLE_BARS et CHART_FIRST_VISIBLE_BAR

4. Tout se passe dans OnChartEvent. Nous dessinons des objets comme OBJ_LABEL.

En fait, cela me rappelle un vieux grief (dont le mien) à propos d'un texte à plusieurs lignes... eh, si seulement...

 
Igor Zakharov:

comment le faire sans toile, mais selon les mêmes principes :

1. Vous aurez besoin de la hauteur actuelle de la fenêtre du graphique en pixels pour déterminer l'indentation actuelle : ChartGetInteger avec la propriété CHART_HEIGHT_IN_PIXELS

2. pour déterminer le début du dessin du graphique : ChartTimePriceToXY

3. comment déterminer la zone du graphique que nous voyons maintenant ? ChartGetInteger avec les propriétés CHART_VISIBLE_BARS et CHART_FIRST_VISIBLE_BAR.

4. Tout se passe dans OnChartEvent. Nous dessinons des objets comme OBJ_LABEL.

En fait, cela me rappelle un vieux grief (dont le mien) à propos d'un texte à plusieurs lignes... eh, si seulement...

Est-ce que Canvas ressemble à un monstre ? Et il faut donc créer un Frankenstein...
Un commentaire multiligne est fait en une seule fois.
 
Artyom Trishkin:
Le commentaire multi-lignes est fait en une seule fois.

commentaire ? c'est celui qui se trouve dans le coin supérieur gauche? comment aide-t-il l'auteur du sujet ?

ou voulez-vous dire un moyen d'afficher un texte multiligne lié au prix/à l'heure ? je ne me souviens pas d'un tel objet dans foursquare. pouvez-vous m'apprendre ?

Je ne comprends pas la partie sur les kanvas et le monstre...

Au fait, voici un exemple sur toile par Nikolay, presque exactement ce dont l'auteur a besoin, avec des modifications minimales :

https://www.mql5.com/ru/forum/329224#comment_14363671

 
Igor Zakharov:

comment le faire sans toile, mais selon les mêmes principes :

1. Vous aurez besoin de la hauteur actuelle de la fenêtre du graphique en pixels pour déterminer l'indentation actuelle : ChartGetInteger avec la propriété CHART_HEIGHT_IN_PIXELS

2. pour déterminer le début du dessin du graphique : ChartTimePriceToXY

3. comment déterminer la zone du graphique que nous voyons maintenant ? ChartGetInteger avec les propriétés CHART_VISIBLE_BARS et CHART_FIRST_VISIBLE_BAR

4. Tout se passe dans OnChartEvent. Nous dessinons des objets comme OBJ_LABEL.

En fait, cela me rappelle un vieux grief (dont le mien) à propos d'un texte à plusieurs lignes... eh, si seulement...

Il est préférable d'écrire une fonction qui renvoie la distance en prix, mais qui correspond à un nombre donné de pixels. Ensuite, dans l'événement OnChartEvent, nous devons parcourir la partie visible du graphique et ajuster les distances aux étiquettes de texte. Avec cette approche, le nombre de modifications est minimal et la différence entre l'indicateur et l'indicateur ordinaire est également minimale.

 
Artyom Trishkin:

À mon avis, kanvas est une solution universelle absolument multiplateforme, qui offre d'énormes possibilités par rapport aux objets graphiques.

Non. Personne n'en a besoin, sauf une petite poignée de passionnés. Et la plupart des gens en ont besoin pour que tout soit simple, direct et compréhensible.

 
Dmitry Fedoseev:

Non. Personne n'en a besoin, sauf une petite poignée de passionnés. Et la plupart des gens veulent que ce soit simple, direct et facile à comprendre.

Il est plus facile et plus clair d'écrire/dessiner tout ce qui est inventable-mouvementable-ajustable sur la toile avec un objet graphique. L'objectif est simple. Mais leur ratio est un désordre. Mais kanvas est aussi un objet, mais un objet par bougie - il suffit de créer une toile et d'y dessiner tout ce dont on a besoin. Vous n'avez pas à réfléchir à la manière de conserver l'interligne lorsque vous modifiez la période et l'échelle verticale du graphique.