Fehler, Irrtümer, Fragen - Seite 2237
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Einige Zeichen haben ein Timeout, andere nicht. Wie erkenne ich das maximale Alter des Ticks, das von OrderSend noch wahrgenommen werden kann (kein [Kein Preis])?
Weiß der Teufel.
Das FILE_SHARE_WRITE-Flag scheint in dieser Kombination zu funktionieren, aber es stellt sich eine andere Frage: Was ist der Sinn dieses speziellen Schreibvorgangs? Wenn wir die Schreibtrennung aktivieren, sollte sie logischerweise zum Schreibkennzeichen hinzugefügt werden:
Das ist genau das, was ich versucht habe, und es gibt auch eine Fehlermeldung.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
MetaTrader 5 Handelsplattform für AMP Futures Kunden verfügbar
fxsaber, 2018.07.23 22:34
Beispiel, bei dem es unmöglich ist, eine Market Order auszuführen, selbst wenn Bid/Ask ein Vielfaches von TickSize ist
Hier ist der letzte Preis kein Vielfaches von TickSize und hat nichts mit Market Orders zu tun, aber OrderCheck ist trotzdem fehlerhaft und lässt keine Market Order zu.
Einige Zeichen haben ein Timeout, andere nicht. Wie erfahre ich das maximale Alter des Häkchens, das von OrderSend noch akzeptiert werden kann (kein [Kein Preis])?
Es kommt vor, dass der letzte Tick, der vor 16 Sekunden empfangen wurde, nicht als relevant für OrderSend wahrgenommen wird. Es muss sich also doch um einen Fehler handeln.
Ich aktivierte MetaTrader, fand mein altes Beispiel, fügte FILE_SHARE_WRITE hinzu (obwohl ich es dort nicht brauchte) - das Ergebnis änderte sich nicht... Vielleicht hat es bei mir aus einem anderen Grund nicht funktioniert
Alternativ können Sie die Datei im Speicher (MemMap) positionieren und dort per Semaphor arbeiten, und dann die Daten per Semaphor in die Datei ausgeben
Übrigens, diese Methode bringt Ihnen einen großen Geschwindigkeitsgewinn
Alternativ können Sie die Datei im Speicher (MemMap) positionieren und dort per Semaphor arbeiten, und dann die Daten per Semaphor in die Datei ausgeben
Übrigens, diese Methode bringt Ihnen einen großen Geschwindigkeitsvorteil
Die Sache ist die, ich hatte eine kleine Konfigurationsdatei und jeder EA musste sie nur einmal lesen, bevor er zu arbeiten begann - der einfachste Vorgang - siehe das Beispiel in den Links oben... und Sie sagen Semaphoren)
Ich sage, dass das Schreiben über dieses Problem für mehrere Seiten, und angesichts der Tatsache, dass das Problem mit dem Bart und beheben Sie es Entwickler können offenbar nicht oder wollen nicht, weil Ich bot Ihnen eine von ihnen, wenn Sie es nicht mögen, verwenden Sie winapi, was das Problem ist)), aber es ist besser als das Schreiben der gleichen Sache, ohne etwas zu tun, können Sie die gleichen Semaphore verwenden, um von einer physischen Datei zu lesen, die gleiche Semaphore Signal, das beschäftigt ist und warten müssen!
Bei diesem einfachen Skript, das zunächst mit "writing = true" und dann in einem anderen Diagramm mit "writing = false" ausgeführt wird, erhalte ich einen Fehler.
Dem Öffner für das Lesen fehlt das FILE_SHARE_WRITE-Flag (Schreiben erlauben), da es einen Schreiber gibt.
Dies ist eine Systembeschränkung (WinAPI).
Hier sind die richtigen Flags, mit denen Ihr Code funktionieren wird:
Hier sind die richtigen Flags, damit Ihr Code funktioniert:
Bitte FileLoad korrigieren
Forum für Handel, automatisierte Handelssysteme und Strategietests
Wanzen, Wanzen, Fragen
fxsaber, 2018.07.10 19:26
Fehler in FileLoad. Wenn zwei lokale Agenten mit dem FILE_COMMON-Flag versuchen, Daten über FileLoad zu lesen, scheitert einer der Agenten.
Es ist möglich, entsprechende Flags in FileOpen zu setzen, aber nicht in FileLoad. Erlauben Sie daher bitte den Zugriff auf die Datei über FileLoad, wenn der andere FileLoad sie liest.
Warum? )
Da es in der Liste der Flaggen keine Null gibt
Kennung
Wert
Beschreibung
DATEI_LESEN
1
Die Datei wird zum Lesen geöffnet. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet. FILE_WRITE und/oder FILE_READ müssen beim Öffnen einer Datei gesetzt werden.
DATEI_SCHREIBEN
2
Die Datei wird zum Schreiben geöffnet. Dieses Flag wird verwendet, um eine Datei zu öffnen (FileOpen()). Wenn eine Datei geöffnet wird, müssen die Flags FILE_WRITE und/oder FILE_READ gesetzt sein.
FILE_BIN
4
Binärer Lese- und Schreibmodus (keine Konvertierung von oder nach String). Dieses Flag wird zum Öffnen von Dateien verwendet (FileOpen())
DATEI_CSV
8
Datei vom Typ csv (alle geschriebenen Elemente werden in eine Zeichenkette des entsprechenden Typs, Unicode oder Ansi, umgewandelt und durch ein Trennzeichen getrennt). Dieses Flag wird beim Öffnen einer Datei verwendet (FileOpen())
DATEI_TXT
16
Einfache Textdatei (wie csv, aber ohne Trennzeichen). Dieses Flag wird verwendet, wenn Dateien geöffnet werden (FileOpen())
FILE_ANSI
32
ANSI-Strings (Ein-Byte-Zeichen). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())
FILE_UNICODE
64
UNICODE-Strings (Zwei-Byte-Zeichen). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())
FILE_SHARE_READ
128
Gemeinsamer Lesezugriff durch mehrere Programme. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet, ersetzt aber nicht die Notwendigkeit von FILE_WRITE und/oder FILE_READ beim Öffnen einer Datei.
FILE_SHARE_WRITE
256
Dieses Flag wird für den gemeinsamen Schreibzugriff durch mehrere Programme verwendet. Dieses Flag wird zum Öffnen von Dateien (FileOpen()) verwendet, ersetzt aber nicht FILE_WRITE und/oder FILE_READ beim Öffnen einer Datei.
DATEI_REWRITE
512
Die Datei kann mit FileCopy() und FileMove() überschrieben werden. Die Datei muss existieren oder beschreibbar sein. Andernfalls wird die Datei nicht geöffnet.
FILE_COMMON
4096
Speicherort der Datei im gemeinsamen Ordner aller Client-Terminals\Terminal\Common\Files. Dieses Flag wird beim Öffnen von Dateien (FileOpen()), beim Kopieren von Dateien (FileCopy(), FileMove()) und beim Prüfen, ob Dateien existieren (FileIsExist()) verwendet.
Und wenn die Entwickler alle ihre Fehler beheben, wird es vielen Leuten nicht gefallen. Weit mehr als die Hälfte des Codes wird nicht mehr funktionieren.