CÓDIGO DO PROBLEMA - página 2

 
burnssss:

Eu tentei criar um código mais ou menos similar e escrevo um arquivo, por exemplo, dados mensais


Mas não há mais dados de download de 1970.

O código que utilizamos foi o seguinte:

Eu já lhe dei um link que lhe diz porque isto não funciona, você o leu?

RaptorUK:

Por favor, use a busca no Fórum . . .

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

... e a documentação

 
RaptorUK:
No has respondido a mi pregunta simples, donde en el archivo es lo que desea colocar los nuevos datos? si se piensa que por unos minutos le ayudará. . .

Uma continuação dos dados antigos? Eu não entendo que tenho que usar e onde continuar fazendo o download dos dados
 
A combinação FILEREAD / file_write que acabei de fazer e continuo fazendo o mesmo. Algo que eu não estou entendendo
 
burnssss:
A combinação FILEREAD / file_write que acabei de fazer e continuo fazendo o mesmo. Algo que eu não estou entendendo
Cada vez que você escreve uma linha de dados no arquivo, cada nova linha de dados que você quer que esteja em uma nova linha, você não quer que ela substitua a linha que acabou de escrever . . . antes de escrever a nova linha de dados que você precisa para FileSeek() até o final do arquivo . . depois escreva sua nova linha de dados.
 
Vou tentar
 

Eu não entendo, é o mesmo de antes

//+------------------------------------------------------------------+
//| 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:

Eu não entendo, é o mesmo de antes

Por que você está fechando o arquivo dentro do laço ? leia seu código antes de testá-lo, certifique-se de que ele faz sentido . .
 

No código, acho que utilizo os passos corretos. Acho que você deve baixar todos os dados de um arquivo. Csv, mas não entendo porque eu faço isso.

//+------------------------------------------------------------------+
//| 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:

No código, acho que utilizo os passos corretos. Acho que você deve baixar todos os dados de um arquivo. Csv, mas não entendo porque eu faço isso.

Quando o loop for executado para o primeiro valor de i ele escreverá os dados e depois fechará o arquivo, para o próximo valor de i no loop o arquivo é fechado . . . o que você acha que vai acontecer ?
 
Muito obrigado, eu encontrei a solução