Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1134

 
Les gars, bien aider sur les paires. Comment ajouter s'il n'y a pas de MT sur la liste générale ?
 
Valeriy Yastremskiy:

FICHIER_PARTAGÉ_LECTURE

128

Accès en lecture partagé par plusieurs programmes. Cet indicateur est utilisé lors de l'ouverture de fichiers (FileOpen()), mais ne remplace pas la nécessité de spécifier FILE_WRITE et/ou FILE_READ lors de l'ouverture d'un fichier.

Ce n'est pas le cas. Et en général, il est préférable de ne pas ouvrir et fermer le fichier à chaque tic-tac.

Il permet des lectures partagées, pas des lectures partagées
Merci. Ça marche ! Je suis désolé pour le compilateur qui doit fermer le fichier à chaque tic, donc j'ai mis la fermeture du fichier dans OnDeinit.
 
HeAic:
Comment remplacer la fonction Sleep(500) dans l'indicateur ?

Si vous en avez vraiment besoin, faites votre propre pause qui compte les temps de tic du processeur en millisecondes. Il fera une pause, mais le fil entier sera en attente.

 
  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());
  }
Pourquoi déclarer une variable "time" si elle n'est pas utilisée dans"FileWrite" ? Si vous ne le déclarez pas :
int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
datetime TimeLocal();
alors le compilateur va jurer, mais à quoi bon ?
 
ascerdfg:
Pourquoi déclarer la variable "time" si elle n'est pas utilisée dans "FileWrite" ? Si vous ne le déclarez pas : le compilateur le jurera, mais à quoi bon ?
datetime TimeLocal();

THIS IS WHAT ?????

Peut-être supprimer complètement cette ligne et voir ?

 
Valeriy Yastremskiy:

THIS IS WHAT ?????

Peut-être supprimer complètement cette ligne et voir ?

C'est indiqué dans l'aide : https://www.mql5.com/ru/docs/dateandtime/timelocal

Appel sans paramètres

datetimeTimeLocal() ;

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

Voici ce que dit le fichier d'aide : https://www.mql5.com/ru/docs/dateandtime/timelocal

Appelé sans paramètres

datetimeTimeLocal() ;

FileOpen

La fonction ouvre un fichier avec le nom spécifié et les drapeaux spécifiés.

intFileOpen(
stringfile_name,//nom du fichier
intopen_flags,// combinaison de drapeaux
shortdelimiter='\t',// délimiteur
uintcodepage=CP_ACP//codepage
) ;

Et c'est ainsi que fileopen est écrit. Ce n'est pas un exemple de la façon de l'écrire dans un programme, mais une indication du type de la valeur de retour.

 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
Il est logique d'assigner la variable time à l'heure locale de l'ordinateur dans oninit et ce sera l'heure de début de l'EA)))).
 
Merci !
 
double a=20.43;
double b=20.56;
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  Print(a-b);
  }
Le résultat dit -0.12999999999999999999. Pourquoi ?
 
ascerdfg:
Le résultat imprime -0.129999999999999999. Pourquoi ?

Caractéristiques du stockage des nombres réels dans la mémoire d'un ordinateur.

Utilisez DoubleToString() pour obtenir une sortie avec la précision souhaitée.

En général, vous devez apprendre les bases, puis essayer d'écrire des programmes.

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