Wednesday 12 July 2017

Datei Schreiben Mt4 Forex


Ich habe versucht, FileOpen () eine einzelne Datei (in den gemeinsamen Ordner) in zwei separaten MT4-Instanzen, aber wenn die Datei von der ersten geöffnet ist, kann die zweite nicht öffnen und -1 wird von FileOpen () zurückgegeben. Eigentlich möchte ich die Datei offen für das Schreiben in einem von ihnen zu halten, und halten Sie es offen für das Lesen in der anderen. Ich habe gerade angefangen, von FILEREAD für jetzt zu testen. Sie müssen FILESHAREREAD undFILESHAREWRITE verwenden. Erstes Skript hält file. csv offen zum Lesen. Zweite Skripts versucht, die Datei zu öffnen und zu ändern, aber zurückgibt Fehler 5004: Datei kann nicht geöffnet werden Mohammad: Das erste Skript hält file. csv offen für das Lesen. Zweite Scripts versucht, die Datei zu öffnen und zu ändern, aber zurückgibt Fehler 5004: Datei kann nicht geöffnet werden Natürlich öffnen Sie Ihr erstes Skript die Datei zum Lesen. Sie können nicht öffnen Sie es für das Schreiben mit einem anderen Skript. Wenn eine Akte für das Lesen geöffnet ist, öffnen Sie sie nicht für Schreiben von einem anderen Code, und wenn öffnen Sie für das Schreiben, das Sie es nicht öffnen können, um nur zu lesen. Je nachdem, wie viel Informationen in der Datei ist, können Sie versuchen, mit globals oder named pipes Natürlich, öffnen Sie Ihre erste Skript die Datei zum Lesen. Sie können nicht öffnen Sie es für das Schreiben mit einem anderen Skript. Wenn eine Akte für das Lesen geöffnet ist, öffnen Sie sie nicht für Schreiben von einem anderen Code, und wenn öffnen Sie für das Schreiben, das Sie es nicht öffnen können, um nur zu lesen. Das bedeutet, dass zwei Skripte entweder nur Lese - oder Freigabe-Schreiben (FILESHAREREAD amp FILESHAREWRITE) p. s: sorry Stuart namens pipes-Methode ist zu kompliziert für mich, Ive bereits gesehen, dass:) in File-Deskriptor von FileOpen () zurückgegeben. In Die Liste der Parameter, die durch Kommas getrennt sind, um in die Datei zu schreiben. Die Anzahl der geschriebenen Parameter kann bis zu 63 betragen. Anzahl der geschriebenen Bytes oder 0 im Fehlerfall. Um Informationen über den Fehler zu erhalten, rufen Sie die GetLastError () - Funktion auf. Zahlen werden in einen Text am Ausgang umgewandelt (siehe Print () - Funktion). Die Daten der doppelten Art werden mit der Genauigkeit von 16 Ziffern nach dem Dezimalpunkt ausgegeben, und die Daten können entweder in traditionellem oder in wissenschaftlichem Format angezeigt werden - je nachdem, welches Format am kompaktesten ist. Die Daten des Float-Typs werden mit 5 Ziffern hinter dem Dezimalpunkt angezeigt. Verwenden Sie DoubleToString (), um reelle Zahlen mit unterschiedlicher Genauigkeit oder in einem klar definierten Format auszugeben. Zahlen des Bool-Typs werden als quottruequot oder quotfalsequot Zeichenfolgen angezeigt. Nummern des Datetime-Typs werden als YYYY. MM. DD angezeigt. HH: MI: SSquot. -------------------------------------------------- ---------------- DemoFileWrite. mq4 Urheberrecht 2014, MetaQuotes Software Corp. mql5 ----------------------- ------------------------------------------- Eigentum copyright quotCopyright 2014, MetaQuotes Software Corp. quot Eigenschaft Link quotmql5quot Eigenschaft Version quot1.00quot Eigenschaft streng --- das Fenster der Eingabeparameter zeigen, wenn die Skripteigenschaft scriptshowinputs starten --- Parameter für Daten aus dem Terminal-String, Eingangs InpSymbolName quotEURUSDquot 1057urrency Paar Eingangs ENUMTIMEFRAMES InpSymbolPeriod PERIODH1 Zeitrahmen Eingang int InpFastEMAPeriod12 Schnelle EMA Periode Eingangs int InpSlowEMAPeriod26 langsam EMA Periode Eingangs int InpSignalPeriod9 Differenz Mittelungsperiode Eingang ENUMAPPLIEDPRICE InpAppliedPrice PRICECLOSE Preistyp --- Parameter zum Schreiben von Daten Eingabestring InpFileName quotMACD. csvquot Dateiname Eingabestring InpDirectoryName quotDataquot Ordnername Datei --- -------------------------------------------------- ------------- Scriptprogramm-Startfunktion --------------------------------- ----------------------------- void OnStart () bool Signbuff Signal-Array (true - kaufen, false - verkaufen) Datetime timebuff Array von signals39 erscheinen Zeit int signsize0 Signal Array-Größe Doppel-macdbuff Array von Indikatorwerten datetime datebuff Array von Indikatordaten int macdsize0 Größe der Anzeige-Arrays --- gesetzt Indizierung als Zeitreihen ArraySetAsSeries (signbuff, true) ArraySetAsSeries (timebuff, true) ArraySetAsSeries (macdbuff, true) ArraySetAsSeries (datebuff, true) --- letzten Fehlercode ResetLastError () zurückgesetzt --- von den letzten 1000 die Zeit Kopieren Bars int kopiert CopyTime (NULL, 0,0,1000, datebuff) if (copiedlt0) PrintFormat (quotFailed, Zeitwerte zu kopieren. Fehlercode dquot. GetLastError ()) return --- vorbereiten macdbuff Array ArrayResize (macdbuff, kopiert) --- kopieren Sie die Werte der Hauptlinie der IMACD Indikator für (int i0iltcopiedi) macdbuffi IMACD (InpSymbolName, InpSymbolPeriod, InpFastEMAPeriod, InpSlowEMAPeriod, InpSignalPeriod, InpAppliedPrice, MODEMAIN, i) --- bekommen Größe macdsize Arraysize (macdbuff) --- die Daten zu analysieren und die Indikatorsignale zu speichern, um die Arrays ArrayResize (signbuff, macdsize-1) ArrayResize (timebuff, macdsize-1) für (int i1iltmacdsizei) - - Signal kaufen, wenn (macdbuffi-1lt0 ampamp macdbuffigt0) signbuffsignsize true timebuffsignsizedatebuffi signize --- Verkaufssignal if (macdbuffi-1gt0 ampamp macdbuffilt0) signbuffsignsize false timebuffsignsizedatebuffi signize --- Öffnen Sie die Datei zum Schreiben der Indikatorwerte (falls die Datei nicht vorhanden ist , Wird es automatisch erstellt) ResetLastError () int filehandle FileOpen (InpDirectoryName quote InpFileName, FILEREAD FILEWRITE FILECSV) if (Dateihandle INVALIDHANDLE) PrintFormat (quots-Datei steht für writequot, InpFileName) zur Verfügung PrintFormat (quotFile-Pfad: sFilesquot. TerminalInfoString (TERMINALDATAPATH)) --- Zuerst schreiben Sie die Anzahl der Signale FileWrite (filehandle, signize) --- schreibe die Zeit und die Werte der Signale an die Datei für (int i0iltsignsizei) FileWrite (filehandle, timebuffi, signbuffi) --- Schließen Sie die Datei FileClose (Dateihandle) PrintFormat (quotData wird geschrieben, s-Datei ist closedquot, InpFileName) else PrintFormat (failed to open s-Datei, Fehlercode dquot, InpFileName, GetLastError ())

No comments:

Post a Comment