//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+
Por favor, utilice la búsqueda en el Foro .
https://www.mql5.com/en/forum/147170
. . y la documentación
He combinado de esta manera, y me da error. No entiendo por qué me sale el archivo sin ningún 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) ¿Conoce el EMPTY_VALUE (ZZ y Fractals pueden tenerlo)? (Los valores vacíos no se dibujan ni se muestran en el DataWindow. Por defecto, el valor vacío es EMPTY_VALUE)
4) Al cerrar el archivo, los datos se vuelcan al disco automáticamente, por lo que no es necesario llamar a la función FileFlush() antes de llamar a la función FileClose().
Hice esos cambios y el archivo me da sólo un dato:
No se me ocurre nada más
//#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); }
Hice esos cambios y el archivo me da sólo un dato:
No se me ocurre nada más
Unas horas antes de que abrieras este tema
otro tema se abrió también con tu tema
¿no lo has leído? Guardando los datos del gráfico en un archivo
Si abres un archivo, escribes en él, lo cierras y lo vuelves a abrir para escribir más datos, ¿en qué lugar del archivo se escribirán los nuevos datos?
En el código, creo que uso los pasos correctos. Creo que debería descargar todos los datos en un archivo . Csv, pero no entiendo porque hago esto.
Intenté crear un experto, código más o menos similar, y escribo un archivo por ejemplo datos mensuales
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
Pero no hay más datos de descarga a partir de 1970.
El código que utilizamos fue el siguiente:
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+
En el código, creo que uso los pasos correctos. Creo que debería descargar todos los datos en un archivo . Csv, pero no entiendo porque hago esto.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso