Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1636

 
Alexey Viktorov #:
Es war genau das Gegenteil der Fall. In OnDeInit() hatte der Expert Advisor keine Zeit, alle Objekte in der Schleife zu löschen. Es wurde hier im Forum diskutiert. Die Lösung ist eindeutig, alles per Präfix zu löschen...

Ist die Vorsilbe nicht ohne einen Zyklus?

 
Valeriy Yastremskiy #:

Ist die Vorsilbe nicht ohne einen Zyklus?

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );
ObjectsDeleteAll - Графические объекты - Справочник MQL4
ObjectsDeleteAll - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectsDeleteAll - Графические объекты - Справочник MQL4
 
Alexey Viktorov #:

Oh, Mann... Es ist wie in alten Zeiten, weißt du?

Ja, das mache ich auch. Als gute Faustregel gilt: Entfernen Sie nichts Überflüssiges, sondern nur Ihre eigenen Daten)

 
Alexey Viktorov #:
Es war genau das Gegenteil der Fall. In OnDeInit() hatte der Expert Advisor keine Zeit, alle Objekte in der Schleife zu löschen. Dies wurde hier im Forum bereits diskutiert. Die Lösung ist eindeutig: alles mit Präfix löschen...

Genau das Gegenteil war der Fall:ObjectsDeleteAll hatte keine Zeit, alles zu löschen, weil es von deinit unterbrochen wurde.)

während eine einfache Schleife alles löscht - das Terminal wartet auf das Programm.


ps.ObjectsDeleteAll ist die gleiche Schleife, die sich nicht von der benutzerdefinierten Schleife unterscheidet.

 
Wie kann man mit einer Datei im mql5-Programm arbeiten, ohne die Datei auf die Festplatte zu schreiben, sondern nur im RAM zu arbeiten, um die Geschwindigkeit zu erhöhen. Ich möchte Daten aus einem mql5-Programm in ein Programm auf meinem Computer übertragen.
 
pribludilsa #:
Wie man mit einer Datei im mql5-Programm arbeitet, ohne die Datei auf die Festplatte zu schreiben, sondern nur im RAM zu arbeiten, um die Geschwindigkeit zu erhöhen. Ich möchte Daten aus einem mql5-Programm in ein Programm auf meinem Computer übertragen.

Ohne auf die Festplatte zu schreiben , können Sie BD SQLite ausprobieren, aber ich habe das noch nicht gemacht und bin nicht sehr zuversichtlich, dass es gelingt. Im Allgemeinen müssen Sie experimentieren.

 
Alexey Viktorov #:

Ohne auf die Festplatte zu schreiben , können Sie BD SQLite ausprobieren, aber ich habe das noch nicht gemacht und bin nicht sehr zuversichtlich, dass es gelingt. Im Allgemeinen müssen Sie experimentieren.

Danke.
 
Valeriy Yastremskiy #:

Es ist besser, den Grund zu geben, über die Verschiebung, gut gemacht, ich wollte zu schreiben)

Damit habe ich gerechnet - entweder wird die Person über den Grund nachdenken wollen, oder jemand anderes wird es der Person beim zweiten (dritten, fünften) Mal sagen - es ist leichter zu verstehen (vor allem, wenn die Person es verstehen will, Interesse zeigt)

 
Artyom Trishkin #:

Der Zyklus für die Löschung muss umgekehrt werden:

und dies gilt nicht nur für das Löschen von grafischen Objekten, sondern generell für das Löschen von Objekten in den Terminallisten.

Liegt es daran, dass Objekte systematisch in einem Array gespeichert werden?

Wenn Sie jede Gruppe von Objekten separat durch einen Zyklus (Pfeilabwärts und Pfeilaufwärts) löschen, werden sie korrekt aus dem Diagramm gelöscht.

for(ushort i=0; i < n_arrow_down ; i++) {
      Print("ObjectName ",ObjectName(i),", i-down = ",i);
      ObjectDelete("ArrowDown"+IntegerToString(i, 4, '0'));
    }
    for(ushort i=0; i < n_arrow_up ; i++) {
      Print("ObjectName ",ObjectName(i),", i-up = ",i);
      ObjectDelete("ArrowUp"+IntegerToString(i, 4, '0'));
    }
Das Ergebnis der Zyklen ist dasselbe wie im ersten Fall:
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 21
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 20
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 19
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0020, i-up = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0018, i-up = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0016, i-up = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0014, i-up = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0012, i-up = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0010, i-up = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0008, i-up = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0006, i-up = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0004, i-up = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0002, i-up = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0000, i-up = 0
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0017, i-down = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0015, i-down = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0013, i-down = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0011, i-down = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0009, i-down = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0007, i-down = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0005, i-down = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0003, i-down = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0001, i-down = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0018, i-down = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0016, i-down = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0014, i-down = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0012, i-down = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0010, i-down = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0008, i-down = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0006, i-down = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0004, i-down = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0002, i-down = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0000, i-down = 0
 
MakarFX #:
Warum müssen Sie durch eine Schleife löschen?
Ich wusste nicht, dass es ein ObjectsDeleteAll gibt, und jetzt möchte ich der Sache auf den Grund gehen.