Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
608
Rating:
(27)
Veröffentlicht:
2016.06.20 13:15
Aktualisiert:
2016.11.22 07:34
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Wenn man in eine Datei schreibt, kann es sein, dass man die Daten erst nach einer gewissen Zeit sieht. Um die Daten sofort in die DAtei zu schreiben, dient die FileFlush() Funktion. Wenn die Funktion nicht verwendet wird, wird der Teil der Daten, der noch nicht auf die Platte geschrieben wurde erst dann geschrieben, wenn die Datei mit der FileClose() Funktion geschlossen wird.

Das Skript holt sich in der Schleife die aktuellen Bid und Ask Preise und ruft die FileWrite() Funktion auf, um sie zu schreiben. Nach je 128 Iterationen wird die FileFlush() Funktion aufgerufen für das erzwungene Schreiben der Daten auf die Platte.

Code:

//--- zeige das Fesnter mit den Eingabeparametern beim Aufruf des Skripts
#property script_show_inputs
//--- Dateiname für Ausgabe
input string InpFileName="example.csv"; // Dateiname
//+------------------------------------------------------------------+
//| Skript Programmstart Funktion                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Fehlerwert zurücksetzen
   ResetLastError();
//--- Datei öffnen
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- Daten in die Datei schreiben
      for(int i=0;i<1000;i++)
        {
         //--- Aufruf der write Funktion
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- bei jeder 128. Iteration Daten auf die Platte schreiben
         if((i & 127)==127)
           {
            //--- nun befinden sich die Daten in der Datei und gehen im Falle eines kritischen Fehlers nicht mehr verloren
            FileFlush(file_handle);
            PrintFormat("i = %d, OK",i);
           }
         //--- 0.01 Sekunden Pause
         Sleep(10);
        }
      //--- Datei schließen
      FileClose(file_handle);
     }
   else
      PrintFormat("Fehler, Code = %d",GetLastError());
  }

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1615

Demo_FileMove Demo_FileMove

Das Skript demonstriert ein Beispiel für die Verwendung der FileMove() Funktion

i-IntradayFibonacci i-IntradayFibonacci

Intraday Fibonacci Levels

Demo_FileIsEnding Demo_FileIsEnding

Das Skript demonstriert ein Beispiel für die Verwendung der FileIsEnding() Funktion

Demo_FileGetInteger Demo_FileGetInteger

Das Skript demonstriert ein Beispiel für die Verwendung der FileGetInteger() Funktion