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
Experts

Demo_FileWriteArray - expert para MetaTrader 5

Visualizações:
1127
Avaliação:
(23)
Publicado:
2014.01.14 14:00
Atualizado:
2016.11.22 07:33
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

O Expert Advisor obtém valores de preço Bid e Ask em cada tick e lembra-os da estrutura array dos "preços". A cada vigésimo tick, o Expert Advisor escreve a estrutura de objetos de dados para o arquivo usando a função FileWriteArray(). Os dados serão registrados no arquivo binário no subdiretório da pasta local do terminal. A posição da pasta local do terminal pode ser obtida chamando a função TerminalInfoString().

PrintFormat("O caminho para a pasta local do terminal: %s\\Arquivos\\",TerminalInfoString(TERMINAL_DATA_PATH)); 
Quando é excluído o Expert Advisor a partir do gráfico, fica registrado os dados não escritos no arquivo depois que o Expert Advisor termina o seu trabalho.

Código:

//--- parâmetros de entrada
input string InpFileName="dados.bin";
input string InpDirectoryName="AlgumaPasta";
//+------------------------------------------------------------------+
//| Estrutura para o armazenamento de dados dos preços               |
//+------------------------------------------------------------------+
struct prices
  {
   datetime          date; // dados
   double            bid;  // preço Bid
   double            ask;  // preço Ask
  };
//--- variáveis globais
int    count=0;
int    size=20;
string path=InpDirectoryName+"//"+InpFileName;
prices arr[];
//+------------------------------------------------------------------+
//| Função de inicialização do Expert                                |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- alocando memória para o array
   ArrayResize(arr,size);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Função de desinicialização do Expert                             |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- escrever a contagem das string restantes se a quantidade<n
   WriteData(count);
  }
//+------------------------------------------------------------------+
//| Função tick do Expert                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- salvar dados para o array
   arr[count].date=TimeCurrent();
   arr[count].bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   arr[count].ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- mostrar dados atuais
   Print("Data = ",arr[count].date," Bid = ",arr[count].bid," Ask = ",arr[count].ask);
//--- aumentar o contador
   count++;
//--- se o array é preenchido, escrever os dados para o arquivo e zerá-lo
   if(count==size)
     {
      WriteData(size);
      count=0;
     }
  }
//+------------------------------------------------------------------+
//|Escrever n elementos do array para o arquivo                      |
//+------------------------------------------------------------------+
void WriteData(const int n)
  {
//--- abrir o arquivo
   ResetLastError();
   int handle=FileOpen(path,FILE_READ|FILE_WRITE|FILE_BIN);
   if(handle!=INVALID_HANDLE)
     {
      //--- escrever os dados de array para o final do arquivo
      FileSeek(handle,0,SEEK_END);
      FileWriteArray(handle,arr,0,n);
      //--- fechar o arquivo
      FileClose(handle);
     }
   else
      Print("Falha ao abrir o arquivo, o erro",GetLastError());
  }

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

Ichimoku Cloud Ichimoku Cloud

Indicador Ichimoku simplificado(Ichimoku Kinko Hyo), contendo apenas a nuvem.

Demo_FileReadArray Demo_FileReadArray

O script demonstra o exemplo de como usar a função FileReadArray().

MarketProfile MarketProfile

Perfil de Mercado é uma ferramenta usada por muitos traders de mercados futuros para a análise estatística da distribuição do tempo do preço, encontrar uma área de preços e controle de valores para a sessão de negociação diária. O indicador baseia-se no movimento simples de preços e não utiliza indicadores padrão da plataforma MetaTrader 5.

Demo_FileGetInteger Demo_FileGetInteger

O script demonstra o exemplo de como usa a função FileGetInteger().