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
Demo_FileWriteArray - expert para MetaTrader 5
- Visualizações:
- 1127
- Avaliação:
- Publicado:
- 2014.01.14 14:00
- Atualizado:
- 2016.11.22 07:33
- 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
Indicador Ichimoku simplificado(Ichimoku Kinko Hyo), contendo apenas a nuvem.
Demo_FileReadArrayO script demonstra o exemplo de como usar a função FileReadArray().
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_FileGetIntegerO script demonstra o exemplo de como usa a função FileGetInteger().