CODICE PROBLEMA - pagina 2

 
burnssss:

Ho provato a creare un esperto, codice più o meno simile, e scrivo un file ad esempio i dati mensili


Ma non più scaricare i dati dal 1970.

Il codice utilizzato era il seguente:

Ti ho già dato un link che ti dice perché questo non funziona, l'hai letto ?

RaptorUK:

Si prega di utilizzare la ricerca del Forum . . .

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

. . . e la documentazione

 
RaptorUK:
Non hai risposto alla mia semplice richiesta, dove nell'archivio c'è quello che vuoi inserire i nuovi dati? se pensi che per qualche minuto ti aiuterà. . .

Una continuazione dei vecchi dati? Non capisco che devo usare e dove continuare a eseguire il download dei dati
 
La combinazione FILEREAD / file_write l'ho appena fatta e continuo a fare lo stesso. C'è qualcosa che non capisco
 
burnssss:
La combinazione FILEREAD / file_write l'ho appena fatta e continuo a fare lo stesso. Qualcosa che non sto capendo
Ogni volta che scrivi una riga di dati nel file, ogni nuova riga di dati che vuoi essere su una nuova riga, non vuoi che sovrascriva la riga che hai appena scritto . . . prima di scrivere la nuova riga di dati devi FileSeek() alla fine del file . ... poi scrivete la vostra nuova riga di dati.
 
Proverò
 

Non capisco, è lo stesso di prima

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

Non capisco, è lo stesso di prima

Perché stai chiudendo il file all'interno del ciclo? Leggi bene il tuo codice prima di testarlo, assicurati che abbia senso.
 

Nel codice, penso di usare i passi giusti. Penso che si dovrebbe scaricare tutti i dati in un file. Csv, ma non capisco perché faccio questo.

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

Nel codice, penso di usare i passi giusti. Penso che si dovrebbe scaricare tutti i dati in un file. Csv, ma non capisco perché faccio questo.

Quando il ciclo viene eseguito per il primo valore di i scriverà i dati e poi chiuderà il file, per il prossimo valore di i nel ciclo il file viene chiuso . . . cosa pensate che succeda ?
 
Molte grazie, ho trovato la soluzione
Motivazione: