Indicateur Questions diverses - page 11

 
Pouvez-vous voir mon exemple de code dans ce commentaire #99
 

Oh ok ce code.

ObjectCreate() a aussi besoin de l'ID du graphique :

bool  ObjectCreate(
   long         chart_id,      // chart identifier
   string       name,          // object name
   ENUM_OBJECT  type,          // object type
   sub_window   nwin,          // window index
   datetime     time1,         // time of the first anchor point
   double       price1,        // price of the first anchor point
   ...
   datetime     timeN=0,       // time of the N-th anchor point
   double       priceN=0,      // price of the N-th anchor point
   ...
   datetime     time30=0,      // time of the 30th anchor point
   double       price30=0      // price of the 30th anchor point
   );

comme premier paramètre.

int OnInit()
  {
   Print("Outside");

   ObjectCreate("Object Outside",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Object Outside",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Object Outside",OBJPROP_YDISTANCE,20);
   ObjectSetString(0,"Object Outside",OBJPROP_TEXT,"Outside");

   if(DayOfWeek()==5)
     {
      Print("Inside");

      ObjectCreate("Object Inside",OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,"Object Inside",OBJPROP_XDISTANCE,20);
      ObjectSetInteger(0,"Object Inside",OBJPROP_YDISTANCE,40);
      ObjectSetString(0,"Object Inside",OBJPROP_TEXT,"Inside");
     }
  }

Mais vous commencez par le nom de l'objet.

Vous pouvez également spécifier un coin de base/un point d'ancrage.

Veuillez consulter : https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_label

//+------------------------------------------------------------------+
//| Create a text label                                              |
//+------------------------------------------------------------------+
bool LabelCreate(const long              chart_ID=0,               // chart's ID
                 const string            name="Label",             // label name
                 const int               sub_window=0,             // subwindow index
                 const int               x=0,                      // X coordinate
                 const int               y=0,                      // Y coordinate
                 const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // chart corner for anchoring
                 const string            text="Label",             // text
                 const string            font="Arial",             // font
                 const int               font_size=10,             // font size
                 const color             clr=clrRed,               // color
                 const double            angle=0.0,                // text slope
                 const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // anchor type
                 const bool              back=false,               // in the background
                 const bool              selection=false,          // highlight to move
                 const bool              hidden=true,              // hidden in the object list
                 const long              z_order=0)                // priority for mouse click
  {
//--- reset the error value
   ResetLastError();
//--- create a text label
   if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
     {
      Print(__FUNCTION__,
            ": failed to create text label! Error code = ",GetLastError());
      return(false);
     }
//--- set label coordinates
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- set the chart's corner, relative to which point coordinates are defined
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- set the text
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- set text font
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- set font size
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- set the slope angle of the text
   ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
//--- set anchor type
   ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
//--- set color
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- display in the foreground (false) or background (true)
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- enable (true) or disable (false) the mode of moving the label by mouse
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- hide (true) or display (false) graphical object name in the object list
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- set the priority for receiving the event of a mouse click in the chart
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- successful execution
   return(true);
  }
//+------------------------------------------------------------------+

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_LABEL
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_LABEL
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Object Types / OBJ_LABEL - Reference on algorithmic/automated trading language for MetaTrader 5
 

Je suis juste inquiet de ne pas avoir pu expliquer mon problème et je veux demander si vous l'avez essayé, s'il vous plaît ? Alors vous pourrez savoir quel est mon problème avec ce code.

J'ai juste essayé comme ceci - 1. j'ai ajouté mon fichier d'exemple au graphique puis j'ai fermé MT4. 2. Ouvrir MT4 - alors je ne vois pas mon objet Inside Label.

C'est ce que j'essaie de faire pour trouver une solution à mon problème : / /.


Peut-être que je serai sûr lundi.

( quand je pense que c'est si facile, je passe beaucoup de temps pour ces choses faciles - quand je pense que c'est si difficile, je les ai fait si facilement... - Presque tout ce que je veux faire. d'abord j'essaie de lire la documentation... )

 

Je l'ai essayé et il y a deux objets affichés.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
      Print("Outside");

   ObjectCreate(0,"Object Outside",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Object Outside",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Object Outside",OBJPROP_YDISTANCE,20);
   ObjectSetString(0,"Object Outside",OBJPROP_TEXT,"Outside");

   if(DayOfWeek()==5)
     {
      Print("Inside");

      ObjectCreate(0,"Object Inside",OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,"Object Inside",OBJPROP_XDISTANCE,20);
      ObjectSetInteger(0,"Object Inside",OBJPROP_YDISTANCE,40);
      ObjectSetString(0,"Object Inside",OBJPROP_TEXT,"Inside");
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+


 

Cool !

Regardez ma capture d'écran, s'il vous plaît.

il y a un problème

Merci beaucoup pour votre temps M. Marco

 

Je n'ai jamais fait attention à ce que cette partie du code me donne un résultat différent dans l'indicateur : /.
J'ai essayé cette partie du code dans mon fichier Indicateur.

( J'ai décidé d'écrire du code dans les fichiers d'indicateurs, mais pas dans mon fichier Trade Panel. )


2ème fois édité

J'ai déjà utilisé votre méthode - maintenant elle fonctionne sans aucun problème, j'espère qu'elle fonctionnera.

Merci beaucoup M. Marco


#Not Monday - Fermé
 

#Refresh - Ouvert

Une fois que j'ai résolu ce problème, mon indicateur fonctionne bien dans ma plateforme MT4 principale, mais j'utilise une deuxième plateforme MT4 et mon indicateur doit être rafraîchi lorsque je démarre la plateforme MT4.
Je n'ai aucune idée d'où vient ce problème... que je demande quelque chose exactement à ce sujet.

Q : Quelqu'un peut-il me renseigner sur cette situation bizarre, s'il vous plaît ?

Merci d'avance.

 

Vous voulez dire que vous observez un comportement différent entre deux plateformes ?

S'agit-il de la même version ?

 
Marco vd Heijden:

Vous voulez dire que vous êtes témoin d'un comportement différent entre deux plateformes ?

Sont-ils la même construction ?

Oui, le comportement est absolument différent...

Aussi oui les deux 1065 Build

 

J'ai peut-être trouvé d'où viennent ces problèmes bizarres...

Quel est le secret du modèle de chargement ?
Il y a des choses mystiques qui me détruisent... qui me mettent vraiment en colère... - J'ai déjà fait des choses énormes pour mes EA et mes indicateurs et je n'ai jamais passé beaucoup de temps comme je le fais pour quelques problèmes mineurs...

Comment ? C'est simple !

Après avoir décidé que je ne devais pas mettre certains scripts dans les fichiers de mon EA - alors je suis continuellement confronté à des problèmes mineurs que je ne peux pas trouver de solution dans SEO. (En fait, il m'arrive de trouver facilement des solutions à mes problèmes d'EA sur le SEO - mais il s'agit de problèmes mineurs. )

---

J'ai mis ce code simple dans mon fichier d'indicateur d'exemple.

int OnInit()
{
  Print( "This Year", Year() );
  return(INIT_SUCCEEDED);
}

Quand j'essaie de charger ce fichier d'exemple sur mon graphique. Il ne fonctionne pas correctement jusqu'à ce que je change de TimeFrame.
( c'est possible que je sois déjà fatigué aujourd'hui )
( aussi je sais que je peux résoudre ce problème si je mets ce code dans OnCalculate(...) - mais j'ai juste besoin de mettre ce code dans OnInit() )

S'il vous plaît, j'ai juste besoin d'une explication plus claire pour ce problème. J'en ai vraiment besoin, parce que plusieurs de mes indicateurs ont les mêmes problèmes non pertinents. ( que si je mets ceci dans les fichiers de mon EA, cela fonctionnera correctement )

Merci d'avance.
Je vous souhaite un bon week-end.