Questions des débutants MQL5 MT5 MetaTrader 5 - page 1473

 
Alexander Sevastyanov #:

Je pense que les chances de remboursement d'un quelconque montant dans ce cas sont quasiment nulles.
Tout le monde ici a déjà répondu très correctement.

Mais il vaut mieux essayer.

Alexander, je vous remercie pour votre aide. Je vous souhaite beaucoup de succès dans la programmation et le commerce. Tous mes vœux de réussite vous accompagnent.
 
Valeriy Yastremskiy #:

Avant de faire quoi que ce soit avec votre argent, effectuez au moins un minimum de vérifications.

De même.

En espérant que ce ne soit pas un crédit... Il faut absolument aller voir la police.

Merci à tous pour vos conseils pratiques et votre aide. Modérateurs, veuillez me pardonner d'avoir enfreint les règles du forum. Je suis un nouveau venu et je ne savais pas qu'il était interdit de parler des courtiers. Je vais lire attentivement les règles et m'engager à ne pas les enfreindre. Merci encore à tous ceux qui ont répondu à mon appel et bonne chance.
 

J'ai essayé de faire un analogue du commentaire, mais les lettres étaient plus grandes.

En général, cela a fonctionné, les lettres sont maintenant lisibles.

Mais à cause de mon ignorance de la POO, mon commentaire n'affecte pas très bien le travail de l'ordinateur,

Quelque temps après avoir lancé l'Expert Advisor avec un commentaire sur plusieurs graphiques, quelque chose de grave se produit, allant jusqu'à l'effacement de l'écran et le redémarrage du serveur))))).

Dans le terminal se trouve un tas de ces enregistrements.

MQL5  VirtualAlloc failed in large allocator, size=101104
MemoryException 101142 bytes not available, 0 heapmin result

Aidez ceux qui savent comment faire, pour que la mémoire ne fuie pas.

Le fichier de commentaires du plug-in ressemble à ceci :

#include <Canvas\Canvas.mqh>
void Comm(string txt, color clr = clrYellow, int FontSize = 20, string Font = "Consolas", int flag = FW_BOLD)
  {
   CCanvas canvas;

   int shift = 0;
   if(ChartGetInteger(0, CHART_SHOW_ONE_CLICK))
      shift = 60;
   canvas.Erase(0x00FFFFFF);
   canvas.FontNameSet(Font);
   canvas.FontFlagsSet(flag);
   canvas.FontSizeSet(FontSize);

   int width = 0, height = 0;
   string result[];
   int size = StringSplit(txt, StringGetCharacter("\n", 0), result);
   height = (int)(FontSize * 1.8 * size);

   for(int i = 0; i < size; i++)
     {
      int w = canvas.TextWidth(result[i]);
      if(width < w)
         width = w;
     }

   canvas.CreateBitmapLabel(0, 0, "Comment", 5, 20 + shift, width, height, COLOR_FORMAT_ARGB_NORMALIZE);
   for(int i = 0; i < size; i++)
      canvas.TextOut(0, (int)(FontSize * 0.8 * i), result[i], ColorToARGB(clr, 255));

   canvas.Update(true);
  }

Exemple d'utilisation :

#include <Comm.mqh>
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol, tick);
   if(tick.ask != 0 && tick.bid != 0)
      Comm(StringFormat("ask = %.5f\nbid = %.5f\ntime = %s", tick.ask, tick.bid, TimeToString(tick.time, TIME_DATE | TIME_SECONDS)));
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(0, "Comment");
   ChartRedraw();
  }
//+------------------------------------------------------------------+


Il est clair que je fais quelque chose de mal avec la classe CCanvas, mais je ne comprends pas ce qui ne va pas.

Dossiers :
Comm.mq5  2 kb
Comm.mqh  2 kb
 
Aleksandr Slavskii #:

J'ai essayé de faire un analogue du commentaire, mais les lettres étaient plus grandes.

Les lettres sont maintenant lisibles.

Mais comme je ne connais pas la POO, mon commentaire n'affecte pas très bien le travail de l'ordinateur,

Quelque temps après avoir lancé l'Expert Advisor avec un commentaire sur plusieurs graphiques, quelque chose de grave se produit, jusqu'à l'effacement de l'écran et le redémarrage du serveur))))))

Dans le terminal, il y a un tas d'enregistrements de ce type.

Aidez ceux qui savent comment faire, pour que la mémoire ne fuie pas.

Le fichier de commentaires ci-joint ressemble à ceci :

Exemple d'utilisation comme ceci :


Il est clair que je fais quelque chose de mal avec la classe CCanvas, mais je ne comprends pas ce qui ne va pas.

Si vous êtes intéressé par le code sans la bibliothèque CCanvas, mais avec l'objet OBJ_BITMAP_LABEL, regardez mon code ...

ClosingLots
ClosingLots
  • www.mql5.com
Индикатор информер.
 
Alexey Viktorov #:

Si vous êtes intéressé par un code sans la bibliothèque CCanvas mais avec l'objet OBJ_BITMAP_LABEL, regardez mon code ...

Merci, c'est une bonne solution, je l'aime bien.


Mais, "un samouraï n ' a pas de but , seulement un chemin ", la solution de comment faire un commentaire est moins importante pour moi que de trouver quelle est mon erreur dans l'utilisation de la classe.

 
Aleksandr Slavskii #:

Merci, belle solution, j'ai bien aimé.


Mais, "un samouraï n' a pas de but , seulement un chemin ", je me soucie moins de savoir comment faire un commentaire que de savoir quelle a été mon erreur dans l'utilisation de la classe.

Combien, dans combien de BitmapLabel sont créés ? (Ctrl+B --> Tous).

 
Artyom Trishkin #:

Combien, en quelle quantité un BitmapLabel est-il créé ? (Ctrl+B --> Tous).

Sur un graphique, un objet.

Et comment peut-il y en avoir plus d'un ? Le nom de tous les objets créés est le même - "Commentaire".


J'ai oublié d'écrire.

Le problème apparaît sur un serveur super pauvre avec un seul cœur et 1 Go de mémoire. Et pas immédiatement, mais après un certain temps.

Mais je pense que si tout était normal dans le code, il n'y aurait pas de problème. Il y a quelque chose qui encombre la mémoire vive, je ne comprends pas ce que c'est.

Pourquoi est-il important que je le sache ?

Vous pouvez acheter de la capacité de serveur, vous pouvez acheter de la mémoire, vous pouvez mettre à niveau sans fin, mais cela ne rendra pas mon code correct.

 
Aleksandr Slavskii #:

Un seul tableau, un seul objet.

Comment peut-il y en avoir plusieurs ? Le nom de tous les objets créés est le même : "Commentaire".


J'ai oublié d'écrire.

Le problème apparaît sur un serveur très pauvre avec un seul cœur et 1 Go de mémoire. Et pas immédiatement, mais après un certain temps.

Mais je pense que si tout était normal dans le code, il n'y aurait pas de problème. Il y a quelque chose qui encombre la mémoire vive, je ne comprends pas ce que c'est.

Pourquoi est-il important que je comprenne ?

Vous pouvez acheter plus de capacité de serveur, vous pouvez acheter plus de mémoire, vous pouvez faire des mises à jour sans fin, mais cela ne rendra pas mon code correct.

Qu'y a-t-il dans le journal lorsqu'un Expert Advisor est supprimé du graphique ? En général, il vous indique les objets qui fuient, ce qui vous donne une direction de recherche.

 
Artyom Trishkin #:

Quel est le contenu du journal lorsque l'EA est supprimé du graphique ? En général, il vous indique les objets qui fuient, ce qui vous donne une direction de recherche.

J'ai supprimé les journaux. Mais pas de problème, cela ne prendra pas longtemps pour le refaire. Maintenant je vais démarrer l'Expert Advisor sur le serveur, dans la matinée (peut-être plus tôt) il y aura des logs.

Mais pour autant que je me souvienne, je n'ai pas pu y trouver d'indication sur l'endroit où la mémoire fuit.

Et l'Expert Advisor n'est pas supprimé du graphique, il est très probable qu'il redémarre simplement le serveur, car il n'y a pas d'enregistrement de la fermeture du terminal dans les journaux. Mais ce n'est pas certain.

 
Aleksandr Slavskii #:

J'ai supprimé les journaux. Mais pas de problème, cela ne prendra pas longtemps pour le refaire. Je vais démarrer l'Expert Advisor sur le serveur maintenant, j'aurai les logs dans la matinée (peut-être plus tôt).

Mais pour autant que je me souvienne, je n'ai pas pu y trouver d'indication sur l'endroit où la mémoire fuit.

Et l'Expert Advisor n'est pas supprimé du graphique, il est très probable qu'il redémarre simplement le serveur, car il n'y a pas d'enregistrement de fermeture de terminal dans les journaux. Mais ce n'est pas certain.

Vous n'avez pas compris le sens de ma question. Vous n'avez pas besoin d'attendre le serveur lorsqu'il manque de mémoire et qu'il explose.

S'il y a une fuite d'objets dans le code, recompilez-le sur votre ordinateur local lorsque le conseiller expert est en cours d'exécution - un message indiquant le nombre et le type d'objets ayant fait l'objet d'une fuite devrait s'afficher dans les journaux. Vous pouvez également l'exécuter sur un graphique et le supprimer immédiatement - un message concernant la fuite devrait également s'afficher, s'il y en a une, bien sûr.