Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
Demo_FileSize - script para MetaTrader 5
- Visualizaciones:
- 1027
- Ranking:
- Publicado:
- 2014.01.14 14:32
- Actualizado:
- 2016.11.22 07:33
- ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El script analiza uno por uno todos los archivos CSV ubicados en la carpeta general de todos los terminales clientes para obtener sus tamaños. Despues de obtener el tamaño, este valor se compara con el valor de referencia "InpThresholdSize" y según el resultado, el archivo es colocado en una de las carpertas "InpBigFolderName" o "InpSmallFolderName". De esta forma se clasifican los archivos en grandes y pequeños.
Ademas de utilizar la función FileSize(), aquí se utilizan también las funciones FileFindFirst(), FileFindNext() y FileFindClose() para ordenar los archivos y la función FileMove() para moverlos.
Código:
//--- muestra una ventana con los parámetros de entrada al lanzar el script #property script_show_inputs //--- parámetros de entrada input ulong InpThresholdSize=20; // tamaño de referencia en kilobytes input string InpBigFolderName="big"; // carpeta para archivos grandes input string InpSmallFolderName="small"; // carpeta para archivos pequeños //+------------------------------------------------------------------+ //| Función de inicio del script | //+------------------------------------------------------------------+ void OnStart() { string file_name; // variable para almacenar los nombres de los archivos string filter="*.csv"; // filtro para seleccionar los archivos ulong file_size=0; // tamaño del archivo en bytes int size=0; // número de archivos //--- imprimimos la ruta del archivo con el que estamos trabajando PrintFormat("Usando la carpeta %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH)); //--- recibimos el descriptor de búsqueda en la raiz de la carpeta común a todos los terminales long search_handle=FileFindFirst(filter,file_name,FILE_COMMON); //--- comprobamos si FileFindFirst() se ha ejecutado correctamente if(search_handle!=INVALID_HANDLE) { //--- dentro del ciclo movemos los archivos según su tamaño do { //--- abrimos el archivo ResetLastError(); int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON); if(file_handle!=INVALID_HANDLE) { //--- obtenemos su tamaño file_size=FileSize(file_handle); //--- cerramos el archivo FileClose(file_handle); } else { PrintFormat("Error abriendo el archivo %s, código de error = %d",file_name,GetLastError()); continue; } //--- imprimimos el tamaño del archivo PrintFormat("El tamaño del archivo %s es igual a %d bytes",file_name,file_size); //--- definimos la ruta hacia donde moveremos el archivo string path; if(file_size>InpThresholdSize*1024) path=InpBigFolderName+"//"+file_name; else path=InpSmallFolderName+"//"+file_name; //--- movemos el archivo ResetLastError(); if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON)) PrintFormat("El archivo %s ha sido movido",file_name); else PrintFormat("Error, código = %d",GetLastError()); } while(FileFindNext(search_handle,file_name)); //--- cerramos el descriptor de busqueda FileFindClose(search_handle); } else Print("No se encontraron archivos!"); }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1633
Stochastic Momentum de William Blau.
Stochastic Momentum Index Blau_SMIStochastic Momentum Index de William Blau.
Oscilador Estocástico de William Blau.
Stochastic Index Blau_TStochIIndicador Stochastic Index (periodo-q del Estocástico con suavizado normalizado) de William Blau.