Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
![Bibliotecas](https://c.mql5.com/i/code/library.png)
CFastFile - classe para trabalhar a array uchar como um arquivo virtual - biblioteca para MetaTrader 5
- Visualizações:
- 1130
- Avaliação:
- Publicado:
- 2014.01.14 12:47
- Atualizado:
- 2017.05.02 10:02
-
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)](https://c.mql5.com/i/code/indicator.png)
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](https://c.mql5.com/i/code/library.png)
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](https://c.mql5.com/i/code/indicator.png)
Um indicador combinado baseado em dois osciladores RSI.
![Módulo de sinais de negociação baseado no indicador WPRSIsignal](https://c.mql5.com/i/code/library.png)
Módulo de sinais de negociação para o Assistente MQL5. As setas coloridas do indicador WPRSIsignal indicam um sinal de entrada no mercado.