Fehler, Irrtümer, Fragen - Seite 2233

 
A100:

Und Sie können nicht entfernen - denn es ist der Code des EA oder wollen Sie verstehen, Tausende von Zeilen von anderen Menschen Code ist irrelevant - die nur eine Zeitverzögerung führt?

Führen Sie die Aufgabe aus, die ich Ihnen oben gestellt habe, und berichten Sie der Öffentlichkeit über die Ergebnisse.

Warum sollte ich den falschen Code wiederholen???? Warum sollte ich eine unbekannte .ex-Datei verwenden wollen????

Wenn ein Fehler beim Öffnen einer Datei mit den Flags FILE_SHARE_READ|FILE_SHARE_WRITE auftritt, seien Sie so nett und reproduzieren Sie diese Probleme ohne künstlich erzeugte Fehler.

 
Alexey Viktorov:

Warum sollte ich einen fehlerhaften Code wiederholen wollen???? Warum sollte ich eine unbekannte .eh-Datei an???? koppeln wollen?

Wenn ein Fehler beim Öffnen einer Datei mit FILE_SHARE_READ|FILE_SHARE_WRITE-Flags auftritt, reproduzieren Sie diese Probleme bitte ohne künstlich erzeugte Fehler.

Wie kommen Sie darauf, dass der Code falsch ist?

Ich kann jede Form von Fehlerbericht verwenden, und die .ex-Datei ist nicht für Sie, sondern für Entwickler. Wenn Sie mit einer einfachen Reproduktion des Fehlers helfen wollen, können Sie meinen Rat befolgen, wenn Sie nicht helfen wollen, belästigen Sie andere nicht mit leeren, wütenden Posts

 
A100:

Wie kommen Sie darauf, dass der Code falsch ist?

Die Art und Weise, wie ich den Fehler melden kann, ist die, wie ich es tue. Ich habe die .ex-Datei nicht für Sie geschrieben, sondern für Entwickler. Wenn Sie mit einer einfachen Reproduktion des Fehlers helfen wollen, können Sie meinen Rat nutzen, wenn Sie nicht helfen wollen, belästigen Sie andere nicht mit leeren, wütenden Beiträgen

Ihre Beiträge sind eher bösartig. Mein Anliegen

Forum zum Thema Handel, automatische Handelssysteme und Strategietester

Wanzen, Wanzen, Fragen

Alexey Viktorov, 2018.07.23 14:16

Seltsam, dass das nicht hilft. Ich konnte nur 5004 ohne das FILE_SHARE_WRITE-Flag erhalten

Die Datei im Write Advisor wird bei OnInit geöffnet und erst bei OnDeinit geschlossen. Gleichzeitig wird die Datei im Leseberater ohne Probleme gelesen und gedruckt.

Es wäre gut zu klären, wie Sie die Datei schreiben, um Ihre Aktionen genauer zu wiederholen.


Das war nicht an Sie gerichtet, aber Sie haben Beiträge von vor zwei Jahren reingeschoben, die die Entwickler meiner Meinung nach aufgrund eines künstlich erzeugten Fehlers nicht beachtet haben.

Und ich wiederhole: Warum sollte ich einen künstlich erzeugten Fehler reproduzieren???????????

 
Alexey Viktorov:

Und noch einmal: Warum sollte ich einen künstlich erzeugten Fehler reproduzieren???????????

Erklären Sie, was ein künstlich erzeugter Fehler ist? Ich verstehe diese Formulierung nicht
 
TheXpert:

Versuchen Sie, nachdem Sie eine Datei zum Schreiben geöffnet haben (Teil 1 des Codes), diese mit dem Windows-Viewer zu betrachten. Dann wird zumindest klar, welcher Handle das Problem ist.

Wenn sie sich öffnet - die zweite, wenn nicht - die erste.

Windows wird die erste Datei öffnen. Ich sehe auf Systemebene, dass die Flags read, write und share_read gesetzt sind. Öffnet man jedoch dieselbe Datei im Terminal, um sie zu lesen, erhält man 5004. Der erste Expert Advisor schreibt in die Datei, d.h. sie wird nicht nur zum Spaß mit einigen Flags geöffnet.

Wenn ich Zeit habe, werde ich versuchen, ein Skript zur Demonstration zu erstellen. Aber der Tatsache nach zu urteilen, dass dies nicht das erste Mal ist, dass ich darüber geschrieben habe, und es keine Entwicklungen im Zusammenhang mit Dateien im Code gibt, ist die Krümmung vorhanden.

PS. Wer hat vielleicht schon in SD geschrieben? Wie lauten die Antworten?

 
A100:
Streng genommen wird der Fehler durch den gleichzeitigen Aufruf vonFileOpen( filename ) von verschiedenen Expert Advisors verursacht (Flags spielen keine Rolle)
das Flag FILE_SHARE_READ bedeutet eigentlich nicht-exklusiven Lesezugriff, zumindest im winapi-Original
 
Stanislav Korotky:

Windows öffnet die erste Datei.

Der zweite Handle will trotz des Kennzeichens exklusiven Lesezugriff oder anderen nicht autorisierten Zugriff.
 
A100:
Erklären Sie, was ein künstlich erzeugter Fehler ist? Ich verstehe diese Formulierung nicht.

Es gibt keinen Subtext in dem, was ich sage. Sie müssen wissen, was Kunstleder ist. Beziehen Sie sich auf dieses Verständnis.

Code ohne zusätzliche Manipulation mit Schablonen und anderen Tamburinen anzeigen, der den Fehler ERR_CANNOT_OPEN_FILE mit FILE_SHARE_READ|FILE_SHARE_WRITE-Flags zurückgibt

Wenn der Fehler ohne Tamburine nicht reproduziert wird, bedeutet dies, dass der Fehler während der Tamburine verursacht wurde...

Ich wiederhole die Reihenfolge der Aktionen:

EA 1:

In OnInit wird eine Binärdatei zum Schreiben geöffnet.

Jede Minute wird die Öffnung des aktuellen Taktes in die Datei geschrieben.

Die Datei wird NUR bei OnDeinit geschlossen.

Expertenratgeber 2:

Jede Minute wird diese Binärdatei geöffnet.

Liest den letzten Eintrag und druckt ihn aus.

Schließt die Datei.

Und das wiederholt sich jede Minute.


Es treten keine Fehler beim Öffnen von Dateien auf.

 

Bei diesem einfachen Skript, das zuerst mit "writing = true" und dann in einem anderen Diagramm mit "writing = false" ausgeführt wird, erhalte ich einen Fehler.

#property script_show_inputs

input bool writing = false;

int OnStart()
{
  int handle = FileOpen("xyz.foo", FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?FILE_WRITE:0));
  if(handle == INVALID_HANDLE)
  {
    Print("FileOpen failed: ", GetLastError());
    return INIT_FAILED;
  }
  
  if(writing) FileWriteInteger(handle, 0);
  
  Print("handle=", handle);
  
  while(!IsStopped())
  {
    Sleep(1000);
  }

  Print("Closing");
  FileClose(handle);

  return 0;
}
 
Andrey Khatimlianskii:

Soweit ich mich erinnere, wird eine Zeitspanne festgelegt, nach der der Preis als hoffnungslos veraltet gilt. Mit anderen Worten: Wenn sie sich seit 3 Minuten nicht verändert hat, können Sie sie nicht öffnen.

Ich habe ein Testskript für diesen Fall geschrieben. NoPrice wurde 64 Sekunden nach dem letzten Tick gefangen. Vielleicht ist eine einminütige Auszeit tatsächlich sinnvoll. Ich werde ein wenig recherchieren müssen...