Fehler, Irrtümer, Fragen - Seite 477

 
stringo:

In Ihrem Fall müssen Sie dynamische Arrays verwenden

Danke! Es funktioniert.

 

Korrigieren Sie, wenn nicht schwierig, den Fehler im Prüfgerät.

EAs werden blind, wenn sie einen Tick verarbeiten. Es ist nicht möglich, die Informationen über ein Symbol während der Tick-Verarbeitung zu aktualisieren.

Im normalen Handel geschieht dies nicht und alle Daten werden aktualisiert.

https://www.mql5.com/ru/forum/4270/page2#comment_87059

Ohne diese Korrektur ist es unmöglich, Handelsfehler korrekt zu verarbeiten.

RefreshRates() внутри OnTick()
RefreshRates() внутри OnTick()
  • www.mql5.com
Если это невозможно, то как проще всего реализовать обработку ошибок торговых операций с проверкой котировок на обновление?
 

Wenn bei der Optimierung alle Abschlüsse im Plus sind, ist die xml-Berichtsdatei schief.

... Bitte korrigieren Sie dies.

 

Entweder verstehe ich etwas nicht, oder Sie haben vergessen, die Funktion FileClear()

Soweit ich weiß, muss man eine Datei 1 schließen, 2 löschen und 3 öffnen, um sie zu löschen. - Das ist sehr unangenehm.

 
vyv:

Entweder verstehe ich etwas nicht, oder Sie haben vergessen, die Funktion FileClear()

Soweit ich weiß, muss man eine Datei 1 schließen, 2 löschen und 3 öffnen, um sie zu löschen. - Das ist sehr unangenehm.

Warum müssen Sie eine Datei löschen? Sie setzen den Dateizeiger auf 0 und beginnen mit dem Schreiben.
 
stringo:
Warum die Datei löschen? Setzen Sie den Dateizeiger auf 0 und beginnen Sie mit dem Schreiben.
Wenn die Datei 5 Zeilen enthält. Ich möchte stattdessen 3 schreiben. Ich setze den Zeiger an den Anfang der Datei und schreibe 3.... Und hinter ihnen sind 2 weitere... Es gibt also 5 Zeilen in der Datei statt 3 - Schild...
 
vyv:
Wenn die Datei 5 Zeilen enthält. Ich möchte sie mit 3 überschreiben. Ich setze den Zeiger an den Anfang der Datei und schreibe 3.... Und hinter ihnen sind noch 2 weitere... Es gibt also 5 statt 3 Zeilen in der Datei - ein Schild...

Öffnen Sie eine Datei mit dem Nur-Schreib-Flag FILE_WRITE und schreiben Sie, was Sie wollen. Alles, was davor liegt, wird gelöscht.

Es gibt einige Besonderheiten bei der Arbeit mit Lese- und Schreibflags:

  • Wenn FILE_READ angegeben ist, wird versucht, eine bereits existierende Datei zu öffnen. Existiert die Datei nicht, kann sie nicht geöffnet werden, eine neue Datei wird nicht erstellt.
  • Wenn FILE_READ|FILE_WRITE - wird eine neue Datei erstellt, wenn es keine Datei mit diesem Namen gibt.
  • Wenn FILE_WRITE - wird die Datei mit der Größe Null neu erstellt.
 

Es sieht so aus, als ob die Funktion FileChangeSize benötigt wird

 
Die WinAPI hat die Funktion SetEndOfFile
 
stringo:

Die Funktion FileChangeSize scheint benötigt zu werden

Und sie haben auch die Funktionen zum Umbenennen von Dateien und Ordnern vergessen.

// OK, ich stimme zu, man kann mit FileMove(...) umbenennen, aber für Ordner brauchen wir auch ein Analogon. :)