Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

CFastFile - clase para trabajar con una matriz de tipo uchar como un fichero virtual - librería para MetaTrader 5

Visualizaciones:
1137
Ranking:
(38)
Publicado:
2014.01.14 12:49
Actualizado:
2017.05.02 10:01
\MQL5\Scripts\ \MQL5\Include\
FastFile.mqh (13.95 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

CFastFile elimina la necesidad de una escritura intermedia de datos en un fichero físico del disco. Proporciona una aceleración significativa trabajando con datos.

Tiene funciones similares a las funciones estándar FileWriteXXX/FileReadXXX. Significa que puede migrar fácilmente del uso de ficheros físicos al acceso rápido con ficheros "virtuales" en memoria. El almacenamiento y lectura/escritura de datos se basa en el uso de una matriz de tipo uchar en lugar de un fichero físico.

Lista de funciones:

    CFastFile(uchar &data[]);           // constructor con la inicialización de los datos del fichero desde una matriz

    void Clear();                       // limpia fichero
   
    //--- funciones para trabajar con las propiedades del fichero
    void Delim(uchar delim=';');        // delimitador (separador de datos) para el modo CSV
    int Size();                         // obtiene el tamaño del fichero
    int Tell();                         // obtiene la posición actual
    void Seek(int offset, int origin);  // posiciona
    bool IsEnding();                    // comprobación de fin de fichero (EOF)
    bool IsLineEnding();                // comprobación de final de línea

    //--- funciones para escribir datos en el fichero
    uint WriteArray(uchar &src[], uint src_start=0, int src_cnt=WHOLE_ARRAY); // escribe matriz uchar
    uint WriteDouble(double v);          // escribe un double
    uint WriteFloat(float v);
    uint WriteLong(long v);
    uint WriteInt(int v);
    uint WriteShort(short v);
    uint WriteChar(char v);
    uint WriteInteger(int v, int sz=INT_VALUE); // escribe un entero - para compatibilidad con el estándar FileWriteInteger
    uint WriteString(string v, int cnt);        // escribe una cadena cnt=-1 significa modo CSV con adición de \r\n (salto de línea)
   
    //--- funciones para leer del fichero
    uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY); // lee matriz
    double ReadDouble();                 // lee un double
    float ReadFloat(); 
    long ReadLong();
    int ReadInt();
    short ReadShort();
    char ReadChar();
    int ReadInteger(int sz=INT_VALUE); // lee un entero - para compatibilidad con el estándar FileReadInteger
    double ReadNumber(); //
    string ReadString(int cnt);         // lee una cadena. cnt=-1 significa modo CSV - leyendo hasta delimitador (separador de datos)
   
    //--- funciones, usadas para guardar datos
    uint Save(uchar &v[]);     // guarda el fichero en matriz uchar
    uint Save(int h);          // guarda el fichero en el fichero físico en el disco. h - descriptor de fichero (el fichero debe estar abierto)
    uint Save(string file);    // guarda el fichero en el fichero físico en el disco. file - Nombre del fichero

    //--- funciones usadas para la carga de datos
    uint Load(uchar &v[]);    // carga el fichero desde matriz uchar
    uint Load(int h);         // carga datos desde el fichero físico en el disco. h - descriptor de fichero (el fichero debe estar abierto)
    uint Load(string file);   // carga datos desde el fichero físico en el disco. file - Nombre del fichero

Como se puede observar, las funciones tienen nombres similares a las operaciones estándar de ficheros.

La migración desde ficheros reales a CFastFile es muy fácil. En lugar de abrir el archivo y obtener el descriptor de archivo (por ejemplo, int h) usted necesita crear la instancia de clase CFastFile, por ejemplo:

CFastFile f; 

Lo siguiente que necesita cambiar son las funciones de ficheros convencionales de acuerdo a la regla:

FileWriteDouble(h, 10)  ->  f.WriteDouble(10)

Para su comodidad, las funciones Save/Load han sido añadidas, esto le permite grabar/cargar los datos del fichero "virtual" al fichero real en disco.

Se incluye un ejemplo de demostración del uso de la clase CFastFile.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/845

Módulo de señales de comercio basado en el indicador ColorJFatl Módulo de señales de comercio basado en el indicador ColorJFatl

Módulo de señales de comercio para el asistente MQL5 . En el momento, que el indicador ColorJFatl indicator cambia su color, indica el momento de entrada en el mercado.

Trading signals module based on SilverTrend_Signal indicator Trading signals module based on SilverTrend_Signal indicator

Módulo de señales de trading para el Asistente MQL5. El punto de color del indicador SilverTrend_Signal sirve como una señal de entrada en el mercado.

Módulo de señales de trading basado en el indicador WPRSIsignal Módulo de señales de trading basado en el indicador WPRSIsignal

Módulo de señales de trading para el asistente MQL5. La flecha de color del indicador WPRSIsignal sirve como señal de entrada en mercado.

Módulo de señales de comercio basado en el indicador Candles_Smoothed Módulo de señales de comercio basado en el indicador Candles_Smoothed

Módulo de señales de comercio para el asistente MQL5 . En el momento, que una vela formada por Candles_Smoothed cambia su color, indica el momento de entrada en el mercado.