Erreurs, bugs, questions - page 2975

 

Le commentaire produit des longueurs complètement différentes (visuellement) pour exactement la même longueur.

Commentaire

Code :

void OnStart() {
  string str[5], res="";
  StringInit(str[0], 50, 'a');
  StringInit(str[1], 50, 'X');
  StringInit(str[2], 50, '=');
  StringInit(str[3], 50, ' ');
  StringInit(str[4], 50, ':');
  for (int i = 0; i < 5; i++) 
    res += str[i] + "\n";
  Comment(res);
}

Comment sortir des lignes avecCommentaire pour qu'elles soient visuellement de la même longueur ? Par exemple, je veux éditer un tableau de trois colonnes de sorte que les colonnes soient exactement verticales.

 
Mihail Matkovskij:

Le commentaire produit des longueurs complètement différentes (visuellement) pour exactement la même longueur.

Code :

Comment sortir des lignes avecCommentaire pour qu'elles soient visuellement de la même longueur ? Par exemple, je veux éditer un tableau à trois colonnes de manière à ce que les colonnes soient espacées verticalement de manière égale.

police monosyllabique

 
Valeriy Yastremskiy:

police monosyllabique

Seulement, malheureusement, la police de caractères pour le commentaire ne change pas. Il utilise la police système, sans option. Je l'ai découvert plus tard sur le forum. Nous devrons donc nous contenter d'étiquettes.

 
Mihail Matkovskij:

Seulement, malheureusement, la police de caractères pour le commentaire ne change pas.

Vous pouvez changer la police du système, mais oui, il vaut mieux en faire une soi-même.

 
Mihail Matkovskij:

Le commentaire produit des longueurs complètement différentes (visuellement) pour exactement la même longueur.

Code :

Comment sortir des lignes avecCommentaire pour qu'elles soient visuellement de la même longueur ? Par exemple, je veux éditer un tableau à trois colonnes de manière à ce que les colonnes soient espacées verticalement de manière égale.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Indicateurs : Lots de fermeture

Alexey Viktorov, 2019.03.08 17:58

L'indicateur est presque entièrement réécrit. Son code peut maintenant être utilisé comme exemple pour travailler avec OBJ_BITMAP_LABEL et les ressources.

Bien sûr, ce ne sont pas des dessins animés utilisant iCanvas Nikolai Semko, mais c'est mieux que d'utiliser le simple OBJ_LABEL


 
Alexey Viktorov:

Cet indicateur a le même principe que le canva. Il fonctionne également sur la base de OBJ_BITMAP_LABEL. Et j'ai quelques développements sur la base de la toile. Mais cette méthode nécessite un rafraîchissement constant des ressources, ce qui n'est pas très bon pour les performances de l'application, si le texte est souvent affiché. Et j'ai une application très gourmande en ressources. Mais il dépense des ressources pour une charge utile. Ainsi, la variante label me semble la plus économique en termes de consommation de ressources CPU.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Mihail Matkovskij:

Seulement, malheureusement, la police de caractères pour le commentaire ne change pas. Il utilise la police système, sans option. Je l'ai découvert plus tard sur le forum. Nous devrons donc nous contenter d'étiquettes.

Si vous n'êtes pas dégoûté par les Bibles des autres, vous pouvez utiliser cet exemple :
 
Nikolai Semko:
Si vous n'êtes pas dégoûté par les bibelots des autres, vous pouvez utiliser cet exemple :

Merci ! Les indicateurs d'iCanvas sont impressionnants. Mais c'est toujours le même Canvas avec tous les inconvénients ci-dessus.

 
Mihail Matkovskij:

Merci ! Les indicateurs d'iCanvas sont impressionnants. Mais c'est toujours le même Canvas avec tous les inconvénients ci-dessus.

De quels inconvénients parlez-vous ?
Sur l'intensité des ressources ?
C'était une déclaration trompeuse.
Lescommentaires consomment tout autant de ressources.
Il faut 1 à 3 millisecondes pour générer et afficher un canevas avec du texte sur l'ensemble de la fenêtre.
Dans MT5, l'édition du commentaire prend un peu plus de temps. Si vous devez mettre à jour les informations textuelles 30 fois par seconde, vous ne verrez toujours pas les freins.

 
Nikolai Semko:
De quel inconvénient parlez-vous ?
Sur l'intensité des ressources ?
C'était une déclaration trompeuse.
Le commentaire consomme tout autant de ressources.
Il faut 1 à 3 millisecondes pour générer et afficher un canevas avec du texte pour toute la fenêtre.
Dans MT5, l'édition du commentaire prend un peu plus de temps. Si vous mettez à jour des informations textuelles 30 fois par seconde, vous ne verrez aucun décalage.

Je n'ai pas cherché à savoir en détail pourquoi Kanvas pouvait être lent, mais je pense que c'est pour la même raison... Les pixels du tableau ne peuvent pas être modifiés de manière sélective et recevoir une commande de redécoupage. Vous apportez d'abord des modifications au tableau, puis vous devez ResourceCreate. Ce dernier copie les pixels un par un, puis, de la même manière, les affiche un par un, avant de mettre à jour le graphique (ChartRedraw). Combien d'opérations inutiles... Cela permettra en tout cas de tuer la charge du processeur lorsqu'il est occupé à traiter des données utiles. Alors que les étiquettes prennent au moins moins de pixels (et donc une sortie plus rapide). Et puis, leur mécanisme de sortie est entièrement dans le graphique (pas besoin de passer un tableau). Bien que je ne sois pasentièrement sûr de leur algorithme, je pense qu'ils sont plus rapides. J'avais l'habitude de faire un panneau de sortie de texte basé sur un canevas. En testant visuellement le conseiller expert avec un tel panneau dans le testeur, je n'ai pas été très impressionné par le résultat. En plus de la charge propre à l'EA, le redécoupage du panneau était plutôt gênant. Le panneau est constamment mis à jour(ResourceCreate -ChartRedraw) à chaque tick. Alors que je n'ai pas remarqué de tels ralentissements avec les étiquettes.