Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1134

 
Pessoal, bem ajuda nos pares. Como acrescentar se não há MT na lista geral?
 
Valeriy Yastremskiy:

FILE_SHARE_READ

128

Acesso de leitura compartilhado por múltiplos programas. Esta bandeira é usada ao abrir arquivos (FileOpen()), mas não substitui a necessidade de especificar FILE_WRITE e/ou FILE_READ ao abrir um arquivo

Não tem. E, em geral, é melhor não abrir e fechar o arquivo a cada tique

Ela permite leituras compartilhadas, não leituras compartilhadas
Obrigado. Está funcionando! Sinto pena que o computador feche o arquivo a cada tique, por isso coloquei o fechamento do arquivo no OnDeinit.
 
HeAic:
Como substituir a função Sleep(500) no indicador?

Se você realmente precisar dele, faça sua própria pausa que conta o tempo do processador em milissegundos. Ele fará uma pausa, mas o fio todo estará esperando.

 
  int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
  datetime time=TimeLocal();
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  FileClose(fileHandle);
  }
void OnTick()
  {
  FileWrite(fileHandle,"Время=",TimeLocal());
  }
Por que declarar uma variável "tempo" se ela não é usada em"FileWrite"? Se você não o declarar:
int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
datetime TimeLocal();
então o compilador jurará, mas qual é o objetivo?
 
ascerdfg:
Por que declarar a variável "tempo" se ela não é usada em "FileWrite"? Se você não o declarar: o compilador jurará, mas de que adianta?
datetime TimeLocal();

ESTE QUE?????

Talvez remover completamente essa linha e ver?

 
Valeriy Yastremskiy:

ISTO É O QUE?????

Talvez remover completamente essa linha e ver?

Diz o mesmo na Ajuda: https://www.mql5.com/ru/docs/dateandtime/timelocal

Chamada sem parâmetros

data/horaHoraLocal();

Документация по MQL5: Дата и время / TimeLocal
Документация по MQL5: Дата и время / TimeLocal
  • www.mql5.com
Дата и время / TimeLocal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ascerdfg:

Isto é o que diz no arquivo de ajuda: https://www.mql5.com/ru/docs/dateandtime/timelocal

Chamado sem parâmetros

data/horaHoraLocal();

FileOpen

A função abre um arquivo com nome e bandeiras especificados.

intFileOpen(
nome_do_arquivo de string,// nome do arquivo
intopen_flags,// combinação de bandeiras
delimitador curto='\t',// delimitador
uintcodepage=CP_ACP//codepage
);

E é assim que se escreve "fileopen". Isto não é um exemplo de como escrevê-lo em um programa, mas uma indicação do tipo do valor de retorno.

 qqq.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                                  https:// |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
 int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
//  datetime time=TimeLocal();
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  FileClose(fileHandle);
  }
void OnTick()
  {
  FileWrite(fileHandle,"Время=",TimeLocal());
  }
'qqq.mq4'       qqq.mq4 1       1
0 errors, 0 warnings, 202 msec elapsed          1       1
Faz sentido atribuir a variável de tempo à hora do computador local no oninit e esta será a hora de início da EA))))
 
Obrigado!
 
double a=20.43;
double b=20.56;
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  Print(a-b);
  }
O resultado diz -0,1299999999999999999999. Por quê?
 
ascerdfg:
O resultado imprime -0.129999999999999999. Por quê?

Características de armazenamento de números reais na memória do computador.

Use DoubleToString() para produzir com a precisão desejada

Em geral, você deve aprender o básico, e depois tentar escrever programas.

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...
Razão: