下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2013.10.24 15:05
脚本

演示_FileFlush - MetaTrader 5脚本

| Chinese English Русский Español Deutsch 日本語 Português

显示:
467
等级:
投票: 23

当写文件时, 数据仅在某一时刻才会真正写到文件里。若要立即保存数据到文件, 使用 FileFlush() 函数。如果函数未调用, 部分数据并未储存进磁盘, 但当调用 FileClose() 函数文件关闭时,数据才会被强迫写进文件。

这段脚本获取当前买、卖价格并调用 FileWrite() 函数输出文件。每 128 组数据 调用 FileFlush() 函数,强迫预写数据写至磁盘。

代码:

//--- 当脚本启动时显示输入参数窗口
#property script_show_inputs
//--- 输出文件名
input string InpFileName="example.csv"; // 文件名
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
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("错误, 代码 = %d",GetLastError());
  }

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/1615

演示_FileMove 演示_FileMove

这段脚本简单示例如何使用 FileMove() 函数

演示_FileCopy 演示_FileCopy

这段脚本简单示例如何使用 FileCopy() 函数

演示_FileIsEnding 演示_FileIsEnding

这段脚本简单示例如何使用 FileIsEnding() 函数

演示_FileGetInteger 演示_FileGetInteger

这段脚本简单示例如何使用 FileGetInteger() 函数