無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
スクリプト

Demo_FileFlush - MetaTrader 5のためのスクリプト

ビュー:
611
評価:
(27)
パブリッシュ済み:
2016.09.29 12:10
アップデート済み:
2016.11.22 07:34
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

ファイルに書き込んだデータは実際にはすぐには見つからないかもしれません。即座にファイルにデータを保存するには FileFlush() 関数を使用します。この関数を使用しない場合、まだディスクに格納されていないデータは FileClose()関数でファイルが閉じられた時のみに強制的に書き込まれます。

スクリプトはループ内で現在の売買価格を取得してFileWrite()関数で書き入れます。128の反復ごとにFileFlush()関数が呼ばれ、ディスクに前もって書き込まれたデータのリセットが強制されます。

コード:

//--- スクリプト起動時に入力パラメータウィンドウを表示する
#property script_show_inputs
//--- 書き込みするファイル名
input string InpFileName="example.csv"; // ファイル名
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- エラー値をリセットする
   ResetLastError();
//--- ファイルを開く
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- データをファイルに書く
      for(int i=0;i<1000;i++)
        {
         //--- 書き込み関数を呼び出す
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- 128反復ごとにディスクにデータを保存する
         if((i & 127)==127)
           {
            //--- データはファイルに配置されるようになり、重大なエラーの場合に失われることはない
            FileFlush(file_handle);
            PrintFormat("i = %d, OK",i);
           }
         //--- 0.01 秒の休止
         Sleep(10);
        }
      //--- ファイルを閉じる
      FileClose(file_handle);
     }
   else
      PrintFormat("Error, code = %d",GetLastError());
  }

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1615

Demo_FileMove Demo_FileMove

このスクリプトはFileMove()関数の使用例を実証します。

i-IntradayFibonacci i-IntradayFibonacci

日中フィボナッチリレベル

Demo_FileIsEnding Demo_FileIsEnding

このスクリプトはFileIsEnding()関数の使用例を実証します。

Demo_FileGetInteger Demo_FileGetInteger

このスクリプトはFileGetInteger()関数の使用例を実証します。