Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
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

FileUnlimited - biblioteca para MetaTrader 5

Visualizações:
784
Avaliação:
(30)
Publicado:
2016.12.27 09:06
\MQL5\Include\TheXpert\ \MQL5\Libraries\TheXpert\ \MQL5\Scripts\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Biblioteca para trabalhar com os arquivos usando o WinAPI sem limitações de localização.

Atualmente, o modo somente leitura foi implementado. A biblioteca será atualizada.

  • Os arquivos FileUnlimited.mqh, FileUnlimitedConstants.mqh, e StringUtils.mqh devem ser copiados para terminal_data_folder\MQL5\Include\TheXpert;
  • A biblioteca ConstFileUnlimited.mqh deve ser copiada para terminal_data_folder\MQL5\Libraries\TheXpert;
  • O script FileUnlimitedTest.mq5 deve ser copiado para terminal_data_folder\MQL5\Scripts.

Eu tentei fazer o uso da classe mais simples possível.

Exemplo de aplicação (o script):

#include <TheXpert/FileUnlimited.mqh>
#include <TheXpert/StringUtils.mqh>

#define CP_UTF16 1200

void OnStart()
{
   string name = "TheXpert\\Test.txt";
   string path = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + name;
   
   int hFile = FileOpen(name, FILE_WRITE | FILE_TXT, ' ', CP_UTF16);
   if (hFile == INVALID_HANDLE)
   {
      Print("File not opened.");
      return;
   }
   
   bool writeBool = false, readBool = true;
   long writeLong = -4369549, readLong = 0;
   double writeDouble = -4369549.245, readDouble = 0;
   datetime writeDatetime = 2596824987, readDatetime = 0;
   color writeColor = Blue, readColor = White;
   string writeString = "2r4i6bf4wb9tb69vw", readString = "";
   
   FileWrite(hFile, writeBool);
   FileWrite(hFile, writeLong);
   FileWrite(hFile, writeDouble);
   FileWrite(hFile, writeDatetime);
   FileWrite(hFile, writeColor);
   FileWrite(hFile, writeString);

   FileClose(hFile);
   
   // ---------------------------------------------
   // A partir daqui é utilizado a biblioteca para leitura.
   // ---------------------------------------------
   ConstFile* file = OpenConstFile(path);
   if (CheckPointer(file) != POINTER_INVALID)
   {
      file.Read(readBool);
      Print("readBool = ", readBool);

      file.Read(readLong);
      Print("readLong = ", readLong);

      file.Read(readDouble);
      Print("readDouble = ", readDouble);

      file.Read(readDatetime);
      Print("readDatetime = ", readDatetime);

      file.Read(readColor);
      Print("readColor = ", readColor);

      file.Read(readString);
      Print("readString = ", readString);
      
      delete file;
   }
   else
   {
      Print("Failed to open ConstFile at path -- ", path);
   }
}

A biblioteca funciona com apenas arquivos Unicode, é por isso que temos a página de código CP_UTF16 (Por algum motivo ela não está disponível nas constantes da linguagem).

Por favor, notifique sobre todos os erros detectados nos comentários ou nesta discussão.

Comentários, sugestões e críticas construtivas são bem vindas.

Vamos fazer algo útil para todos!

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

Sacred Chao - Sinais do Trading Chaos, 2ª Edição Sacred Chao - Sinais do Trading Chaos, 2ª Edição

Um outro indicador Chaos.

RJTX_Matches RJTX_Matches

Este indicador ajuda a determinar o fim e o inicio da tendência com base na inclinação dos "fósforos" e da cor de suas cabeças.

Heatmaps, gradientes de cor e escalas em MQL5 Heatmaps, gradientes de cor e escalas em MQL5

O objetivo do presente código é demonstrar como é fácil criar escalas de cores, gradientes de cor e heatmaps (mapas de calor) com a linguagem e as funções em MQL5.

Indicador TrendSignal Indicador TrendSignal

Indicador TrendSignal para o MetaTrader 5.