Indikator Verschiedene Fragen - Seite 11

 
Können Sie meinen Beispielcode in diesem Kommentar #99 sehen
 

Oh ok, dieser Code.

ObjectCreate() benötigt auch die Diagramm-ID:

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
   );

Als ersten Parameter.

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");
     }
  }

Aber Sie beginnen mit dem Objektnamen.

Sie können auch eine Basisecke/einen Ankerpunkt angeben.

Siehe dazu: 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
 

Ich bin nur besorgt, dass ich mein Problem nicht erklären konnte, dass ich fragen möchte, haben Sie es versucht, bitte? Dann können Sie wissen, was ist mein Problem mit diesem Code.

Ich habe es so versucht: 1. ich habe meine Beispieldatei zum Chart hinzugefügt und dann MT4 geschlossen. 2. Öffnen Sie MT4 - dann sehe ich mein Inside Label Objekt nicht.

Das ist, was ich versuche, eine Lösung für mein Problem zu finden: /


Vielleicht werde ich am Montag sicher sein.

( wenn ich denke, dass dies so einfach ist, verbringe ich viel Zeit für diese einfachen Dinge - wenn ich denke, dass dies so schwer ist, dass ich sie so leicht gemacht habe... - Fast alles, was ich tun möchte. zuerst versuche ich, die Dokumentation zu lesen... )

 

Ich habe es ausprobiert und es werden zwei Objekte angezeigt.

//+------------------------------------------------------------------+
//| 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);
  }
//+------------------------------------------------------------------+


 

Super!

Sehen Sie sich bitte meinen Screenshot an.

es gibt ein Problem

Vielen Dank für Ihre Zeit, Mr. Marco

 

Es macht mir nichts aus, dass ein Teil des Codes zu einem anderen Ergebnis im Indikator führt : /
Ich versuche diesen Teil des Codes in meiner Indikator-Datei.

(Ich habe beschlossen, dass ich einige Codes in Indikator-Dateien schreiben werde, nur nicht in meiner Trade Panel-Datei. )


2. Mal bearbeitet

Ich benutze bereits Ihre Methode - jetzt funktioniert es ohne Probleme, ich hoffe, es wird funktionieren.

Vielen Dank Mr. Marco


#Nicht Montag - Geschlossen
 

#Auffrischen - Öffnen

Sobald ich mein dieses Problem zu lösen - mein Indikator funktioniert gut in meinem Haupt MT4-Plattform - aber ich benutze 2. MT4-Plattform, die mein Indikator muss aktualisieren, wenn ich MT4-Plattform starten.
Ich habe keine Ahnung, woher das Problem kommt... dass ich etwas genau über das fragen.

F: Kann mir jemand etwas über diese merkwürdige Situation sagen, bitte?

Vielen Dank im Voraus.

 

Sie meinen, Sie beobachten unterschiedliches Verhalten zwischen zwei Plattformen?

Handelt es sich um den gleichen Build?

 
Marco vd Heijden:

Sie meinen, Sie beobachten ein unterschiedliches Verhalten zwischen zwei Plattformen?

Sind sie derselbe Build?

Ja, absolut unterschiedliches Verhalten...

Auch ja beide 1065 Build

 

Vielleicht habe ich herausgefunden, woher diese seltsamen Probleme kommen...

Was ist das Geheimnis der Ladevorlage?
Es gibt mystische Dinge, die mich überhaupt zerstören... das ist wirklich wirklich macht mich wütend auf alle... - Ich habe bereits riesige Dinge für meine EA's und Indikatoren, die ich nie verbrachte eine Menge Zeit, wie ich bin verbringen einige kleinere Probleme...

Und wie? Ganz einfach!

Nachdem ich beschlossen hatte, dass ich einige Skripte nicht in meine EA-Dateien einfügen sollte, sah ich mich ständig mit kleineren Problemen konfrontiert, für die ich keine Lösung in SEO finden konnte. (Tatsächlich finde ich manchmal leicht eine Lösung für meine großen EA-Probleme auf SEO - aber diese kleineren Probleme. )

---

Ich habe diesen einfachen Code in meine Beispielindikator-Datei eingefügt.

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

Wenn ich versuche, diese Beispieldatei in meinen Chart zu laden. Es funktioniert nicht richtig, bis ich TimeFrame ändern.
( es ist möglich, dass ich heute schon müde bin )
(auch ich weiß, ich kann dieses Problem lösen, wenn ich diesen Code in OnCalculate(...) - aber ich muss nur diesen Code in OnInit() setzen)

Bitte, ich brauche einfach eine genauere Erklärung für dieses Problem. Ich brauche es wirklich, weil einige meiner Indikatoren die gleichen irrelevanten Probleme haben. (dass, wenn ich dies in meinem EA-Dateien setzen wird es richtig funktionieren)

Vielen Dank im Voraus.
Ich wünsche Ihnen ein schönes Wochenende.