Erreurs, bugs, questions - page 2533

 
Влад:

Merci pour la réponse, cela fonctionne maintenant. Mais le clignotement est le même chaotique, enregistré comment il se produit. Et j'ai remplacé la suppression par le changement de la couleur de l'étiquette en noir.


Vous pouvez voir que cela dépend de la tique. Ce code doit être effectué dans OnTimer(), et non dans OnTick().

Et vous n'avez pas besoin de le colorer en noir - les objets ont une propriété de visibilité(OBJPROP_TIMEFRAMES) - vous devez juste gérer sa visibilité.

Les valeurs des délais, auxquels l'objet doit être visible, sont fixées par un ensemble de drapeaux. Dans votre cas, vous devez définir 0(OBJ_NO_PERIODS) - l'objet n'est visible nulle part, et OBJ_ALL_PERIODS - visible partout. Et n'oubliez pas de mettre à jour le graphique avec ChartRedraw() après que la valeur de la propriété ait changé.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Комбинация флагов видимости объекта определяет таймфреймы графика, на которых объект отображаем. Для установки/получения значения свойства OBJPROP_TIMEFRAMES можно использовать функции ObjectSetInteger()/ObjectGetInteger...
 
Влад:

Merci pour la réponse, cela fonctionne maintenant. Mais le clignotement est le même chaotique, enregistré comment il se produit. Et j'ai remplacé la suppression en changeant la couleur de l'étiquette en noir.

Je ne pense pas que vous ayez encore beaucoup à perdre, essayez d'utiliser le code de mon script, il fonctionne, il est plus court.

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict

#include <ChartObjects\ChartObjectsTxtControls.mqh>
CChartObjectLabel Label;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Label.Create(0,"tst",0,0,50);
   Label.Description("Hello word!");
   Label.FontSize(14);
   bool show=true;
   while(!IsStopped())
     {
      color col=show ? clrRed : clrNONE;
      Label.Color(col);
      show=!show;
      ChartRedraw();
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+

c'est dans le dossier script !

 
Igor Makanu:

Je ne pense pas que vous ayez encore beaucoup à perdre, essayez d'utiliser le code de mon script, il fonctionne, il est plus court.

C'est dans le dossier SRIFT !

Igor, je comprends que c'est écrit en MQL5 et j'ai Metatrader 4 malheureusement.

 
Влад:

Igor, je comprends que c'est écrit en MQL5, et j'ai Metatrader 4 malheureusement.

c'est MQL4... aurait pu l'essayer déjà ))))

 
Oh, mec, c'est vrai.) Merci beaucoup, Igor ! Désolé pour l'impudence, mais est-il possible d'utiliser un indicateur au lieu d'un script ? J'ai copié l'essentiel du modèle d'indicateur et l'ai compilé normalement. Je l'ai copié dans le modèle d'indicateur, il se compile bien mais quand je le colle sur le graphique, le terminal se bloque.
 
Veuillez nous indiquer si vous savez comment obtenir un résultat d'optimisation avant dans un conseiller expert MQL5 en cours de test ? Cette question a été publiée dans ce fil. Peut-être y aura-t-il une réponse ici.
 
Влад:
Oh, mec, c'est vrai.) Je m'excuse pour l'impudence, mais est-il possible d'utiliser un indicateur au lieu d'un script ? J'ai copié l'essentiel du modèle d'indicateur et tout se passe bien lorsque je change de TF. Je l'ai copié dans le modèle d'indicateur et il se compile bien, mais lorsque je le colle dans le graphique, le terminal se bloque.
Dossiers :
Blink.mq4  3 kb
 
Igor Makanu:

Merci beaucoup ! )

 

Pour les administrateurs du site :

Je n'ai pas trouvé où, j'écris ici.

Je dois modifier les coordonnées du vendeur dans le profil.

comment faire ?

J'ai écrit un message il y a longtemps dans l'espace vendeur, mais il n'y a pas de réponse.

Peut-être y a-t-il un autre moyen ?


 
Alexey Navoykov:
L'inline est une relique, à mon avis. Le compilateur inline tout très bien de lui-même, il n'y a donc pas besoin de surcharger le code. Et dans MQL ce spécificateur n'est rien du tout, ajouté seulement pour la compatibilité (je ne sais pas pour quoi, si on pouvait déclarer une telle macro par soi-même).
Et qui peut garantir que le compilateur a intégré 100500 appels de la fonction GetTo() dans une boucle, si l'appel est précédé de if(quelque chose) et que ce quelque chose est faux une fois en cinq ans ?
Je trouve plus facile d'écrire en ligne que de regarder le code du désassembleur pour le vérifier.