Fehler, Irrtümer, Fragen - Seite 2238

 
fxsaber:

Es kommt vor, dass der letzte Tick, der vor 16 Sekunden empfangen wurde, nicht als relevant für OrderSend angesehen wird. Es muss sich also doch um einen Fehler handeln.

Dieser Fehler

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: MT4Orders

fxsaber, 2018.07.24 09:46

Aktualisiertes Skript in der App. Findet zum Beispiel schnell Probleme wie dieses
2018.07.24 10:24:19.177 Trades  '35247942': market buy 0.01 USDHKD
2018.07.24 10:24:19.246 Trades  '35247942': failed market buy 0.01 USDHKD [No prices]
2018.07.24 10:24:19.246 Trades  '35247942': buy limit 0.01 USDHKD at 7.83618
2018.07.24 10:24:19.315 Trades  '35247942': failed buy limit 0.01 USDHKD at 7.83618 [No prices]
2018.07.24 10:24:19.316 Trades  '35247942': buy stop 0.01 USDHKD at 7.85618
2018.07.24 10:24:19.384 Trades  '35247942': failed buy stop 0.01 USDHKD at 7.85618 [No prices]

In etwa einer Minute können Sie mit diesem Skript auf ForexTimeFXTM-Demo01 reproduzieren, wenn Sie vor der Ausführung alle Symbole in der Marktübersicht aktivieren.

 
Ilyas:

Dies ist eine Systembeschränkung (WinAPI).

Hier sind die richtigen Flags, damit Ihr Code funktioniert:

Komm schon!)

Wir haben es überprüft - Windows kann die Datei öffnen, aber das Skript nicht. Das Problem liegt am FILE_SHARE_READ-Flag

 
fxsaber:

Bitte FileLoad korrigieren

Vielen Dank für diesen Beitrag.

FILE_FLAG_SHARE_READ | FILE_FLAG_SHARE_WRITE Flags zur FileLoad/FileSave Funktionsimplementierung hinzugefügt

Beim gleichzeitigen Schreiben und Lesen derselben Datei muss die Synchronisierung korrekt organisiert werden, da das Ergebnis des Lesens undefiniert sein wird.

 
Ilyas:

Danke für die Nachricht.

FILE_FLAG_SHARE_READ | FILE_FLAG_SHARE_WRITE Flags zur FileLoad/FileSave Funktionsimplementierung hinzugefügt

Beim gleichzeitigen Schreiben und Lesen derselben Datei muss die Synchronisierung korrekt organisiert werden, da das Ergebnis des Lesens undefiniert sein wird.

Danke für die Korrektur, der Steuerwinkel sollte nicht betroffen sein.

 
TheXpert:

Komm schon!)

Das Problem liegt im FILE_SHARE_READ-Flag.

Ich empfehle die Lektüre von https://docs.microsoft.com/en-us/windows/desktop/FileIO/creating-and-opening-files

Creating and Opening Files
Creating and Opening Files
  • 2018.05.31
  • Michael Satran
  • docs.microsoft.com
Considerations for creating or opening a file by using the CreateFile function.
 

Wie geht man mit dieser Tatsache um?

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2018.07.23 16:48

Offensichtlich ein Fehler, denn mit solchen Flaggen lesen Drittanbieteranwendungen die Datei problemlos.


Solche Dateien.

FILE_READ | FILE_WRITE | FILE_IS_TEXT | FILE_SHARE_READ

Ich sehe in TotalCommander ohne FileClose. Ohne FILE_SHARE_READ funktioniert es nicht.

 
Ilyas:

Ich empfehle, ihn zu lesen

Ja, ich wollte mich gerade einmischen.

Ich gebe zu, dass ich mich geirrt habe. Wenn das erste Handle zum Schreiben geöffnet ist, muss das zweite das FILE_SHARE_WRITE-Flag hinzufügen

aber es gibt noch einen weiteren Kommentar von a100, der überhaupt nicht registriert ist
 
Ilyas:

Der Opener kann das Flag FILE_SHARE_WRITE (Schreiben zulassen) nicht zum Lesen verwenden, da es einen Writer gibt.

Dies ist eine Systembeschränkung (WinAPI).

Hier sind die richtigen Flaggen, bei denen Ihr Code funktioniert:

Ich lese auch MSDN. Erklären Sie, ist es Microsoft nicht wissen, Englisch oder sie nicht lesen ihre Dokumentation selbst, oder ist es die letzte Option - die Flags in MQL sind ähnlich wie WinApi benannt, aber funktionieren auf eine andere Weise?

Entnommen von hier - https://docs.microsoft.com/en-us/windows/desktop/api/FileAPI/nf-fileapi-createfilea

FILE_SHARE_READ -Ermöglicht, dass nachfolgende Operationen zum Öffnen einer Datei oder eines Geräts Lesezugriff anfordern.Andernfalls können andere Prozesse die Datei oder das Gerät nicht öffnen, wenn sie Lesezugriff anfordern.

FILE_SHARE_WRITE -Ermöglicht, dass nachfolgende Operationen zum Öffnen einer Datei oder eines Geräts Schreibzugriff anfordern.Andernfalls können andere Prozesse die Datei oder das Gerät nicht öffnen, wenn sie Schreibzugriff anfordern.

Daher muss das erste Programm nur FILE_SHARE_READ setzen, damit das zweite Programm lesen kann. FILE_SHARE_WRITE darf nur gesetzt werden, wenn bekannt ist, dass das zweite Programm ebenfalls in die Datei schreibt.

CreateFileA function
CreateFileA function
  • 2018.06.14
  • windows-sdk-content
  • docs.microsoft.com
Creates or opens a file or I/O device. The most commonly used I/O devices are as follows:\_file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, and pipe.
 

Frage an die Entwickler.

Es gibt eine Synchronisationsfunktion:

//+------------------------------------------------------------------+
//| Проверка синхронизации символов                                                                                             |
//+------------------------------------------------------------------+
bool CheckSync()
        {
         //--- Проверка синхронизации символов
         if( !SymbolIsSynchronized( inpSymbol_1 ) )
                {
                 Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": SymbolIsSync("+inpSymbol_1+") = false!" );
                 return( false );
                }
         if( !SymbolIsSynchronized( inpSymbol_2 ) )
                {
                 Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": SymbolIsSync("+inpSymbol_2+") = false!" );
                 return( false );
                }
         //--- Если символы синхронизированы
         return( true );
        }

Ich erhalte manchmal diesen Fehler:

2018.07.24 15:14:27.415 Indicator (USDJPY,M5)   CheckSync: ОШИБКА #4014:  SymbolIsSync(EURGBP) = false!

D.h. der Indikator läuft auf USDJPY, und ich bekomme einen Fehler mit EURGBP Symbol. Gleichzeitig ist im Terminal ein offenes EURGBP-Chart zu sehen.

Der Fehler 4014 besagt, dass:

Systemfunktion darf nicht aufgerufen werden

Wie kann das sein?

 
TheXpert:

Ja, ich wollte mich gerade einmischen.

Ich gebe zu, dass ich mich geirrt habe. Wenn das erste Handle zum Schreiben geöffnet ist, muss das zweite Handle das Flag FILE_SHARE_WRITE hinzufügen

aber es gibt auch einen Kommentar von a100, der überhaupt nicht registriert ist.
In meinem Fall schreibt ServiceDesk nun, dass es nicht abspielen kann... brauchen Hilfe aus dem Raum ... später werde ich beschreiben, wie man es macht ...
Grund der Beschwerde: