问题代码 - 页 2

 
burnssss:

我试着创建了一个专家,或多或少有些类似的代码,我写了一个文件,例如每月的数据


但没有再下载1970年的数据。

我们使用的代码如下。

我已经给了你一个链接,告诉你为什么这不起作用,你看了吗?

RaptorUK

请使用论坛搜索 . .

https://www.mql5.com/en/forum/147170

. .和文件

 
RaptorUK:
没有回应我简单的问题,在档案中的哪个位置是你想要的新数据的位置?. .

旧数据的延续?我不明白,我必须使用和在哪里继续执行数据下载
 
FILEREAD /file_write 的组合我刚刚做出来,我一直在做同样的事情。我有些不明白
 
burnssss:
FILEREAD / file_write的组合我刚刚做出来,我一直在做同样的事情。我有一些不明白的地方
每次你向文件写入一行数据,每一行新的数据你都希望是在新的一行,你不希望它覆盖你刚写的那一行 . . . 在你写入新的一行数据之前,你需要FileSeek()到文件的末端 .......然后再写新的一行数据。
 
我将尝试
 

我不明白,是不是和以前一样?

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
export();
  }

//+------------------------------------------------------------------+
void export() 
{ 

string file="export_"+Symbol()+"_"+Period()+".csv"; 
int f=FileOpen(file,FILE_CSV|FILE_READ|FILE_WRITE, ';'); 
if(f>0)
{
     FileSeek(f, 0, SEEK_END);
   
    }



for(int i=Bars-1;i>=0;i--)
{
FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(), 
0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i));
Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records"); 
FileClose(f);
  f=0;
}
}
 
burnssss:

我不明白,是不是和以前一样?

你为什么要在循环中关闭文件? 在测试之前,请通读你的代码,确保它是合理的。
 

在代码中,我认为我使用了正确的步骤。我认为你应该在一个文件中下载所有的数据。Csv,但不明白我为什么这样做。

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
export();
  }

//+------------------------------------------------------------------+
void export() 
{ 

string file="export_"+Symbol()+"_"+Period()+".csv"; 
int f=FileOpen(file,FILE_READ|FILE_WRITE, ';'); 
if(f>0)
{
     FileSeek(f, 0, SEEK_END);
   
    }



for(int i=Bars-1;i>=0;i--)
{
FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(),0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i));
}

Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records");  
FileClose(f); 
}
 
burnssss:

在代码中,我认为我使用了正确的步骤。我认为你应该在一个文件中下载所有的数据。Csv,但不明白我为什么这样做。

当循环运行到i 的第一个值时,它将写入数据,然后关闭文件,对于循环中i 的下一个值,文件被关闭 ...... 你认为会发生什么?
 
非常感谢,我找到了解决方案