Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1286

 
Vladimir Karputov:

OnChartEvent wird ohnehin nur für das aktuelle Symbol ausgelöst - in diesem Fall macht es keinen Sinn, das Symbol zu erkennen: Es wird immer platziert.

Die zweite Möglichkeit ist, die Liste aller Diagramme zu umgehen - ObjectFind.

Können Sie mir in der Zwischenzeit sagen, um welche Art von Fehler es sich handelt?

2021.02.02 18:06:55.780 GDICache        pen creation error [87]
2021.02.02 18:06:56.251 GDICache        pen creation error [87]
2021.02.02 18:06:56.556 GDICache        pen creation error [87]
2021.02.02 18:06:56.677 GDICache        pen creation error [87]
2021.02.02 18:06:56.969 GDICache        pen creation error [87]

Ich habe den Grund herausgefunden. Trat während der Fehlersuche bei der Angabe von Zeileneigenschaften auf. Der Linienstil wurde als Wert belassen. Es ist nur seltsam, dass ich nirgendwo einen Hinweis auf diesen Fehler gefunden habe.

 
Aleksandr Prishenko:

Vorher hat es gut funktioniert. Ich hätte es mit kostenlosem Hosting versuchen sollen. Auf jeden Fall gab die methaquotes 15 Pfund ))))

Vielen Dank für die Antwort!

Migriert (bedauerte die 15), aber die Kontrollen sind ziemlich seltsam.

Migrator versteht den Indikator-Installationspfad von EA nicht, muss Charts bereinigen:

2021.02.02 19:57:39.442 Virtual Hosting 6215402: Prüfung auf Laden "C:\Users\Crucian\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\BBS_9.ex5::Indicators\Band Width1.ex5"

2021.02.02 19:57:39.442 Virtual Hosting 6215402: Programm kann nicht geladen werden


Migrator fordert sogar dazu auf, technische Indikatoren neu zu kompilieren )):

2021.02.02 19:44:12.708 Virtual Hosting 6215402: veraltete Version des importierten Moduls "ZigZag.ex5" sollte vor der Übertragung auf den Hosting-Server neu kompiliert werden



 
Guten Tag, habe viele Artikel darüber gesehen, wie man einen EA aus einem Indikator erstellt oder wie man Daten aus einem Indikator in einen EA bekommt. Und wie kann man das Gegenteil tun, wie kann man einen EA visualisieren, sagen wir, er hat eine Reihe von Daten berechnet, wie kann man sie auf einen benutzerdefinierten Indikator übertragen?
 
VANDER:
Guten Tag, habe viele Artikel darüber gesehen, wie man einen EA aus einem Indikator erstellt oder wie man Daten aus einem Indikator in einen EA bekommt. Und wie das Gegenteil zu tun, wie ein EA zu visualisieren, sagen wir, es hat ein Array von Daten berechnet, wie man es zu einem benutzerdefinierten Indikator übertragen?

Durch eine steckbare .mqh, in der alles gezählt wird und die EA nimmt von dort, und der Indikator...

 

Hallo! Wie kann ich die MT5-Plattform dazu bringen, die Linie im Indikator Gleitende Durchschnitte zu magnetisieren? Damit sich die Trendlinie deutlich abhebt und von der Indikatorlinie magnetisiert wird. In den Einstellungen der Plattform gibt es in den Charts einen Punkt "Magnetisierung", dort wird die Trendlinie auf den Eröffnungskurs gelegt. Gibt es eine solche Möglichkeit für einen gleitenden Durchschnitt und eine einfache Trendlinie?


 
leonerd:

Starten Sie den Debugger und setzen Sie einen Haltepunkt bei der Typvariablen. Ich zeichne ein Dreieck (Einfügen - Objekte - Formen - Dreieck) in das Diagramm. Drücken Sie auf Löschen, das Dreieck wird entfernt. Ich fange ein Ereignis, type in obigem Code ist immer 0. type_str, bzw. ist OBJ_VLINE (erster Wert in der Aufzählung).

Derselbe Code gibt OBJ_TRIANGLE als den korrekten Objekttyp zurück, wenn die Eigenschaften eines Grafikobjekts geändert oder gezogen werden.

Ausgabe. Beim Löschen eines grafischen Objekts kann der Objekttyp in OnChartEvent nicht ermittelt werden.

Es ist immer noch unklar, wie man den Typ eines gelöschten Objekts ermitteln kann. Der Objektname in OnChartEvent() ist korrekt, aber der Typ ist immer 0. Ist das oben beschriebene ein Fehler oder sollte es auf eine andere Weise gemacht werden?

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DELETE)
     {
      string object_name=sparam;
      ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(ChartID(),object_name,OBJPROP_TYPE); // object_type всегда VLINE
     }
  }
 
leonerd:

Es ist immer noch nicht klar, wie man den Typ des gelöschten Objekts herausfinden kann. Der Objektname in OnChartEvent() ist korrekt, aber der Typ ist immer 0. Ist das oben beschriebene ein Fehler oder sollte es anders gemacht werden?

ObjectType(sparam)
 
Vitaly Muzichenko:

Was ist die Funktion ObjectType()?

Es scheint ein Zweig über MQL5 zu sein.

Offensichtlich wurde es so konzipiert. Die anderen Parameter des gelöschten Objekts können nicht abgerufen werden. Er erhält nur den Namen. Koordinaten usw. sind alle Null. Gibt es eine Möglichkeit, sie beim Löschen eines grafischen Objekts abzurufen?

 
leonerd:

Was ist die Funktion ObjectType()?

Es scheint ein Zweig über MQL5 zu sein.

Offensichtlich wurde es so konzipiert. Die anderen Parameter des gelöschten Objekts können nicht abgerufen werden. Er erhält nur den Namen. Koordinaten usw. sind alle Null. Gibt es eine Möglichkeit, sie beim Löschen eines grafischen Objekts zu erhalten?

Ja, das habe ich in mql5 nicht erwartet, aber es gibt eine Analogie:

ObjectGetInteger(0,name,OBJPROP_TYPE)

Sie möchten die Parameter des Objekts zum Zeitpunkt des Löschens abrufen, d. h. nachdem es bereits verschwunden ist.

 
leonerd:

Was ist die Funktion ObjectType()?

Es scheint ein Zweig über MQL5 zu sein.

Offensichtlich wurde es so konzipiert. Die anderen Parameter des gelöschten Objekts können nicht abgerufen werden. Er erhält nur den Namen. Koordinaten usw. sind alle Null. Gibt es eine Möglichkeit, sie aus dem Ereignis des Löschens eines grafischen Objekts zu erhalten?

Wahrscheinlich gibt es eine solche Möglichkeit nicht und wird auch nicht erwartet. Immerhin existiert das Objekt bereits...

Ich sehe einen solchen Ausweg: Bei der Erstellung des Objekts, in einer Array-Struktur, um den Namen und alle erforderlichen Parameter zu schreiben, und bei der Entfernung, nach dem Lesen der erforderlichen Parameter aus der Array-Struktur zu entfernen Rekord über sie.

Grund der Beschwerde: