Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

CFastFile - classe para trabalhar a array uchar como um arquivo virtual - biblioteca para MetaTrader 5

Visualizações:
1119
Avaliação:
(38)
Publicado:
2014.01.14 12:47
Atualizado:
2017.05.02 10:02
\MQL5\Scripts\ \MQL5\Include\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

O CFastFile elimina a necessidade de uma escrita intermediária de dados para o arquivo físico no disco. Ele fornece a aceleração significativa quando se trabalha com dados.

Ele tem funções semelhantes às FileWriteXXX/FileReadXXX. Isso significa que você pode facilmente migrar o do uso dos arquivos físicos para o trabalho rápido com os arquivos "virtuais" na memória. O armazenamento de dados e leitura/escrita esta baseado no uso da array uchar - em vez do arquivo físico.

Lista de funções:

    CFastFile(uchar &data[]);          // construtor com a inicialização de dados do arquivo a partir da array 

    void Clear();                      // arquivo definido
   
    //--- funções para trabalhar com as propriedades do arquivo
    void Delim(uchar delim=';');       // definir delimitador (separador de dados) para o modo CSV
    int Size();                        // obter o tamanho do arquivo
    int Tell();                        // obter a posição atual
    void Seek(int offset, int origin); // procurar
    bool IsEnding();                   // verificação do fim do arquivo(EOF)
    bool IsLineEnding();               // verificação do fim da linha

    //--- funções para escrever os dados de arquivo
    uint WriteArray(uchar &src[], uint src_start=0, int src_cnt=WHOLE_ARRAY); // escreve a array uchar
    uint WriteDouble(double v);        // escreva 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); // escrever integer - para compatibilidade com o padrão FileWriteInteger
    uint WriteString(string v, int cnt);        // escrever a string cnt=-1 significa o modo CSV com adição de \r\n
   
    //--- funções para leitura do arquivo
    uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY); // ler array
    double ReadDouble();                 // ler double
    float ReadFloat(); 
    long ReadLong();
    int ReadInt();
    short ReadShort();
    char ReadChar();
    int ReadInteger(int sz=INT_VALUE); // ler integer - para compatibilidade com o padrão FileReadInteger
    double ReadNumber(); //
    string ReadString(int cnt);        // ler string. cnt=-1 means CSV mode - lendo o delimitador(separador de dados)
   
    //--- funções, usada para salvar dados
    uint Save(uchar &v[]);     // salvar arquivo para array uchar
    uint Save(int h);          // salvar o arquivo para o arquivo real no disco. h - file handle (the file must be opened)
    uint Save(string file);    // salvar o arquivo no arquivo real do disco. file - file name

    //--- funções, utilizados para o carregamento dos dados
    uint Load(uchar &v[]);   // carregar o arquivo da array uchar 
    uint Load(int h);        // carregar dados no arquivo real do disco. h - file handle (the file must be opened)
    uint Load(string file);  // carregar os dados de arquivo real no disco. file - nome do arquivo

Pode-se ver, as funções são nomeados semelhante às operações de arquivo padrão.

A migração de arquivos reais para o CFastFile é muito fácil. Em vez de abrir o arquivo e obter o handle do arquivo (por exemplo, int h) você precisa criar a instância da classe CFastFile, por exemplo:

CFastFile f; 

A próxima mudança são as funções dos arquivos convencionais de acordo com a regra:

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

Por conveniência, as funções Save/Load são adicionadas - elas permitem que você salve/carregue os dados do arquivo "virtual" para o real no disco.

O exemplo de demonstração de classe CFastFile usar incluído.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/845

Relative Momentum Index (RMI) Relative Momentum Index (RMI)

O indicador RMI (Índice de Momentum Relativo) é uma versão melhorada do RSI, o momentum é incluído no cálculo.

Módulo de sinais de negociação baseado no indicador ColorJFatl Módulo de sinais de negociação baseado no indicador ColorJFatl

Módulo de sinais de negociação para o Assistente MQL5. O momento em que o indicador ColorJFatl muda de cor, significa que está na hora de entrar no mercado.

RSIImproved RSIImproved

Um indicador combinado baseado em dois osciladores RSI.

Módulo de sinais de negociação baseado no indicador WPRSIsignal Módulo de sinais de negociação baseado no indicador WPRSIsignal

Módulo de sinais de negociação para o Assistente MQL5. As setas coloridas do indicador WPRSIsignal indicam um sinal de entrada no mercado.