//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- start(); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } void export() { string file="export_"+Symbol()+"_"+Period()+".csv"; int f=FileOpen(file,FILE_CSV|FILE_WRITE,","); if(f<1) { Alert("File opening error"); return(0); } 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"); FileFlush(f); FileClose(f); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { export(); //---- //Alert(ArraySize(norepeats) + ArraySize(morerepeats)); return(0); } //+------------------------------------------------------------------+
Si prega di utilizzare la ricerca Forum . . .
https://www.mql5.com/en/forum/147170
. . . e la documentazione
Ho combinato in questo modo, e mi dà errore. Non capisco perché ottengo il file senza alcun dato
//#property copyright "" //#property link "" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { export(); } //+------------------------------------------------------------------+ void export() { string file="export_"+Symbol()+"_"+Period()+".csv"; int f=FileOpen(file,FILE_CSV|FILE_READ,","); if(f<1) { Alert("File opening error"); return(0); } 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"); FileFlush(f); FileClose(f); }
1) >=
for(int i=Bars-1;i<=0;i--)
2) FILE_WRITE o FILE_READ|FILE_WRITE
FileOpen(file,FILE_CSV|FILE_READ,",");
3) Conosci EMPTY_VALUE (ZZ e Fractals possono averlo)? (I valori vuoti non sono disegnati o mostrati nella DataWindow. Per default, il valore vuoto è EMPTY_VALUE)
4) Alla chiusura del file, i dati vengono scaricati automaticamente sul disco, quindi non è necessario chiamare la funzione FileFlush() prima di chiamare la funzione FileClose().
Ho fatto queste modifiche e il file mi dà solo un fatto:
Non riesco a pensare a niente di più
//#property copyright "" //#property link "" //+------------------------------------------------------------------+ //| 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<1) { Alert("File opening error"); return(0); } 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)); FileClose(f); } Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records"); FileClose(f); }
Ho fatto queste modifiche e il file mi dà solo un fatto:
Non riesco a pensare a niente di più
Poche ore prima che tu aprissi questo topic
si è aperto un altro topic con il tuo stesso argomento
non l'hai letto? Salvataggio dei dati del grafico in un file
Se aprite un file, ci scrivete, lo chiudete, poi lo riaprite per scrivere altri dati, dove saranno scritti i nuovi dati? In quale punto del file?
Nel codice, penso di usare i passi giusti. Penso che dovresti scaricare tutti i dati in un file . Csv, ma non capisco perché faccio questo.
Ho provato a creare un esperto, un codice più o meno simile, e scrivo un file ad esempio i dati mensili
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,1.1614,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,2147483647
1970.01.01 00:00,,,,,1.4104,0,0,2147483647
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.1688,0,0
1970.01.01 00:00,,,,,1.2495,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.1192,0,0
1970.01.01 00:00,,,,,1.2315,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.1069,1.1069,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.2894,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.3161,0,0,1.3161
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.2351,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.4535,0,1.4535,1.4535
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.3,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.3353,1.2596,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.0344,1.0344,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.1537,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.0608,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.1216,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,1.079,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,0,0,0,0
1970.01.01 00:00,,,,,1.2401,0,1.2401,1.2401
Ma non ci sono più dati da scaricare dal 1970.
Il codice che abbiamo usato era il seguente:
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- start(); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } void export() { string file="export_"+Symbol()+"_"+Period()+".csv"; int f=FileOpen(file,FILE_CSV|FILE_WRITE,","); if(f<1) { Alert("File opening error"); return(0); } 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); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { export(); //---- //Alert(ArraySize(norepeats) + ArraySize(morerepeats)); return(0); } //+------------------------------------------------------------------+
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.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso