Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 410

 
Trader7777:
Eine weitere Frage: Der Tester zeigt den Fehler 138 (ERR_REQUOTE) an, was bedeutet das?
Das bedeutet, dass es im Prüfgerät keine Rückfragen gibt. Das bedeutet, dass ein Fehler im Handelsauftrag vorliegt. Höchstwahrscheinlich versuchen Sie, den Markt als anhängigen Markt zu eröffnen.
 
artmedia70:
Das bedeutet, dass es im Prüfgerät keine Rückfragen gibt. Dies bedeutet, dass ein Fehler im Handelsauftrag vorliegt. Höchstwahrscheinlich versuchen Sie, eine Marktorder als schwebende Order zu eröffnen.

Nein, es gibt keine ausstehenden Aufträge. Was ist eine Rückfrage?
 
Trader7777:
Nein, es gibt keine ausstehenden Aufträge. Was ist eine Rückfrage?
Dies ist der Fall, wenn sich der Kurs bei dem Versuch, eine Marktposition zu eröffnen, über den zulässigen Slippage-Wert hinaus bewegt. Der Tester zeigt dies nicht an, was bedeutet, dass wir versuchen, eine Position nicht zu Bid oder Ask zu eröffnen, sondern zu einem unbekannten Preis.
 

Guten Tag, ich habe eine Frage zum Schreiben von Daten in Dateien.

Können Sie mir bitte sagen, warum im Modus FILE_READ|FILE_WRITE, wenn ich versuche, in eine Datei zu schreiben, die alte Datei überschrieben wird, aber nicht angehängt wird?

Beachten Sie, dass nicht eine neue leere Datei geöffnet und gefüllt wird (wie im FILE_WRITE-Modus), sondern sie überschrieben wird - d.h. wenn während des letzten sowjetischen Laufs weniger zu schreibende Ereignisse auftraten als während des vorletzten, würden die Reste des vorletzten Laufs am Ende der Datei hängen.

file_log = "expert_" + magic_number + "_log.csv";
handle_log = FileOpen(file_log, FILE_CSV|FILE_READ|FILE_WRITE, ',');
if(handle_log < 0)  {
  Alert("Ошибка при открытии файла ", file_log, "Возможно, файл занят другим приложением.");
  PlaySound("alarm.wav");
}
else  {
  if(FileWrite(handle_log, "time", "ticket", "type", "openprice", "stoploss", "takeprofit", "lot", "closeprice", "effect_points", "деньги советника") < 0  ||    // это заголовки
      FileWrite(handle_log, TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS), "Советник открыт с параметром delta=", delta) < 0)  {   // для отраж-я возмож. изм-я параметра при рестарте
    Alert( "Ошибка записи в файл ", file_log, " ошибка-", GetLastError() );
    PlaySound("alarm.wav");
  }
}

Die Datei wird geöffnet und der erste Datensatz (siehe oben) wird in init erstellt. Zu Beginn werden die Arbeitsdatensätze entsprechend den Ereignissen der Reihe nach in die Datei aufgenommen. Die Datei wird bei Deinit geschlossen.

 
yan720:

Guten Tag, ich habe eine Frage zum Schreiben von Daten in Dateien.

Bitte sagen Sie mir, warum im Modus FILE_READ|FILE_WRITE beim Versuch, in eine Datei zu schreiben, die alte Datei überschrieben, aber nicht an sie angehängt wird?

Beachten Sie, dass nicht eine neue leere Datei geöffnet und gefüllt wird (wie im FILE_WRITE-Modus), sondern sie überschrieben wird - d.h. wenn während des letzten sowjetischen Laufs weniger zu schreibende Ereignisse auftraten als während des vorletzten, würden die Reste des vorletzten Laufs am Ende der Datei hängen.

Die Datei wird geöffnet und der erste Datensatz (siehe oben) wird in init erstellt. Zu Beginn werden die Arbeitsdatensätze entsprechend den Ereignissen der Reihe nach in die Datei aufgenommen. Die Datei wird bei Deinit geschlossen.

Wenn ich mich nicht irre, sollte es in der Funktion zum Öffnen von Dateien nur zwei Optionen geben, aber Sie haben drei: "FILE_CSV|FILE_READ|FILE_WRITE".

Sie haben keine Funktion zum Schließen der Datei, so dass die Daten nicht gespeichert werden.

Und am Ende können Sie einen Datensatz-Cursor hinzufügen, um beim Hinzufügen eines neuen Datensatzes bis zum Ende zu gehen

 
yan720:

Guten Tag, ich habe eine Frage zum Schreiben von Daten in Dateien.

Können Sie mir bitte sagen, warum im Modus FILE_READ|FILE_WRITE, wenn ich versuche, in eine Datei zu schreiben, die alte Datei überschrieben wird, aber nicht angehängt wird?

Beachten Sie, dass nicht eine neue leere Datei geöffnet und gefüllt wird (wie im FILE_WRITE-Modus), sondern sie überschrieben wird - d.h. wenn während des letzten sowjetischen Laufs weniger zu schreibende Ereignisse auftraten als während des vorletzten, würden die Reste des vorletzten Laufs am Ende der Datei hängen.

Die Datei wird geöffnet und der erste Datensatz (siehe oben) wird in init erstellt. Zu Beginn werden die Arbeitsdatensätze entsprechend den Ereignissen der Reihe nach in die Datei aufgenommen. Die Datei wird bei Deinit geschlossen.


Haben Sie versucht, zum Schreiben an das Ende der Datei zu gehen?
 
Vinin:

Haben Sie versucht, bis zum Ende der Datei zu gehen, um sie zu schreiben?

Hmmm... Das macht Sinn... :) Ich danke Ihnen.

Aber wie...? Das habe ich in der Beschreibung der Dateifunktionen der Sprache nicht gesehen. Lesen Sie alles, was Sie darin haben, durch while(!FileIsEnding(handle_log)) oder gibt es einen "direkteren" Weg?

 
yan720:

Hmmm... Das macht Sinn... :) Danke.

Wie...? In der Beschreibung der Dateifunktionen der Sprache habe ich nichts dergleichen gefunden. Lesen Sie alles darin über while(!FileIsEnding(handle_log)) oder gibt es einen "direkteren" Weg?


FileSeek()
 
Vinin:

FileSeek()

Ich danke Ihnen.
 
yan720:

Hmmm... Das macht Sinn... :) Ich danke Ihnen.

Aber wie...? Das habe ich in der Beschreibung der Dateifunktionen der Sprache nicht gesehen. Gibt es einen "direkteren" Weg, um alles darin durch while(!FileIsEnding(handle_log)) zu lesen?


Na toll... Ich bin sicherlich froh, dass das Problem gelöst ist, aber aus irgendeinem Grund haben Sie nicht bemerkt, meine Nachricht, wo ich sagte, die gleiche Sache, mit etwas anderen Worten, und sofort über Defekte erzählt, außer zum Schließen der Datei, habe ich nicht sofort sehen, wo es passiert:)