Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
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
Visualizações:
894
Avaliação:
(27)
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

Quando se escreve um arquivo, os dados podem ser realmente encontrados no local somente depois de algum tempo. Para salvar os dados no arquivo instantaneamente, use a função FileFlush(). Se a função não for utilizada, parte dos dados que não tenha sido armazenados no disco, serão obrigatoriamente escritos no local, somente quando os arquivos forem fechados através da função FileClose().

O script no loop recebe os dados dos preços Bid e Ask atuais e para escrevê-los chama a função FileWrite(). A cada 128 interações, a função FileFlush() é chamada para a redefinição forçada de dados pré-gravados em disco.

Código:

//--- mostra a janela de parâmetros de entrada, ao lançar o script
#property script_show_inputs
//--- nome do arquivo a ser escrito
input string InpFileName="exemplo.csv"; // nome do arquivo
//+------------------------------------------------------------------+
//| Função iniciar do Script de programa                             |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- redefinir o valor de erro
   ResetLastError();
//--- abrir o arquivo
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- escrever dados do arquivo
      for(int i=0;i<1000;i++)
        {
         //--- chamar função de escrita
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- salvar os dados no disco a cada 128 iterações
         if((i & 127)==127)
           {
            //--- agora, os dados serão localizados no arquivo e não serão perdidos em caso de erro crítico
            FileFlush(file_handle);
            PrintFormat("i = %d, OK",i);
           }
         //--- pausa de 0.01 segundo
         Sleep(10);
        }
      //--- fechar o arquivo
      FileClose(file_handle);
     }
   else
      PrintFormat("Erro, código = %d",GetLastError());
  }

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

XOSMA Oscillator XOSMA Oscillator

Histograma de OsMA de 4 cores (Média Móvel do Oscilador) permitindo a implementação de diferentes algoritmos de suavização.

i-IntradayFibonacci i-IntradayFibonacci

Níveis de Fibonacci intradiários.

Demo_FileMove Demo_FileMove

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

The20sv0.20 The20sv0.20

Indicador de sinal de tendência do tipo semáforo.