Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1134

 
Amigos, bien ayuda en los pares. ¿Cómo se añade si no hay ninguna MT en la lista general?
 
Valeriy Yastremskiy:

FILE_SHARE_READ

128

Acceso de lectura compartido por varios programas. Esta bandera se utiliza al abrir archivos (FileOpen()), pero no sustituye la necesidad de especificar FILE_WRITE y/o FILE_READ al abrir un archivo

No es así. Y en general, es mejor no abrir y cerrar el archivo en cada momento

Permite las lecturas compartidas, no las lecturas compartidas
Gracias. ¡Funciona! Me da pena que el compukter tenga que cerrar el archivo cada vez que lo hace, así que puse el cierre del archivo en OnDeinit.
 
HeAic:
¿Cómo puedo sustituir la función Sleep(500) en el indicador?

Si realmente lo necesitas, haz tu propia pausa que cuente los tiempos de tick del procesador en milisegundos. Se pondrá en pausa, pero todo el hilo 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 qué declarar una variable "tiempo" si no se utiliza en"FileWrite"? Si no lo declaras:
int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
datetime TimeLocal();
entonces el compilador jurará, pero ¿qué sentido tiene?
 
ascerdfg:
¿Por qué declarar la variable "tiempo" si no se utiliza en "FileWrite"? Si no lo declaras: el compilador lo jurará, pero ¿qué sentido tiene?
datetime TimeLocal();

ESTO QUE?????

¿Tal vez eliminar esa línea por completo y ver?

 
Valeriy Yastremskiy:

ESTO ES ?????

¿Tal vez eliminar esa línea por completo y ver?

Lo dice la Ayuda: https://www.mql5.com/ru/docs/dateandtime/timelocal

Llamada sin parámetros

datetimeTimeLocal();

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

Esto es lo que dice el archivo de ayuda: https://www.mql5.com/ru/docs/dateandtime/timelocal

Llamada sin parámetros

datetimeTimeLocal();

FileOpen

La función abre un archivo con el nombre y los indicadores especificados.

intFileOpen(
stringnombre_archivo,//nombre_archivo
intopen_flags,// combinación de banderas
shortdelimiter='\t',// delimitador
uintcodepage=CP_ACP//codepage
);

Y así es como se escribe fileopen. Esto no es un ejemplo de cómo escribirlo en un programa, sino una indicación del tipo del 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
Tiene sentido asignar la variable de tiempo a la hora del ordenador local en oninit y esta será la hora de inicio del EA))
 
Gracias.
 
double a=20.43;
double b=20.56;
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  Print(a-b);
  }
El resultado dice -0,1299999999999999. ¿Por qué?
 
ascerdfg:
El resultado imprime -0,12999999999999. ¿Por qué?

Características del almacenamiento de números reales en la memoria del ordenador.

Utilice DoubleToString() para obtener la precisión deseada

En general, hay que aprender lo básico y luego intentar escribir programas.

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