Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1134

 
Leute, das ist eine gute Hilfe für die Paare. Wie kann man etwas hinzufügen, wenn kein MT auf der allgemeinen Liste steht?
 
Valeriy Yastremskiy:

FILE_SHARE_READ

128

Gemeinsamer Lesezugriff durch mehrere Programme. Dieses Flag wird beim Öffnen von Dateien (FileOpen()) verwendet, ersetzt aber nicht die Notwendigkeit, FILE_WRITE und/oder FILE_READ beim Öffnen einer Datei anzugeben

Das ist nicht der Fall. Und im Allgemeinen ist es besser, die Datei nicht bei jedem Häkchen zu öffnen und zu schließen.

Es erlaubt gemeinsame Lesungen, nicht gemeinsame Lesungen
Ich danke Ihnen. Es klappt! Es tut mir leid, dass der Computer die Datei jedes Mal schließen muss, deshalb habe ich das Schließen der Datei in OnDeinit integriert.
 
HeAic:
Wie kann ich die Funktion Sleep(500) im Indikator ersetzen?

Wenn Sie es wirklich brauchen, machen Sie Ihre eigene Pause, die die Prozessor-Tickzeiten in Millisekunden zählt. Es wird eine Pause eingelegt, aber der ganze Thread wartet weiter.

 
  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());
  }
Warum eine "time"-Variable deklarieren, wenn sie nicht in"FileWrite" verwendet wird? Wenn Sie es nicht anmelden:
int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
datetime TimeLocal();
dann wird der Compiler fluchen, aber was bringt das?
 
ascerdfg:
Warum wird die Variable "time" deklariert, wenn sie in "FileWrite" nicht verwendet wird? Wenn Sie es nicht deklarieren, wird der Compiler fluchen, aber was nützt das?
datetime TimeLocal();

DIESES WAS?????

Vielleicht sollten Sie diese Zeile ganz entfernen und abwarten?

 
Valeriy Yastremskiy:

DIESES WAS?????

Vielleicht sollten Sie diese Zeile ganz entfernen und abwarten?

So steht es in der Hilfe: https://www.mql5.com/ru/docs/dateandtime/timelocal

Aufruf ohne Parameter

datetimeTimeLocal();

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

So steht es in der Hilfedatei: https://www.mql5.com/ru/docs/dateandtime/timelocal

Aufgerufen ohne Parameter

datetimeTimeLocal();

FileOpen

Die Funktion öffnet eine Datei mit dem angegebenen Namen und den angegebenen Flags.

intFileOpen(
stringfile_name,//Dateiname
intopen_flags,// Kombination von Flags
shortdelimiter='\t',// Begrenzungszeichen
uintcodepage=CP_ACP//codepage
);

Und so wird fileopen geschrieben. Dies ist kein Beispiel dafür, wie man es in ein Programm schreibt, sondern ein Hinweis auf den Typ des Rückgabewerts.

 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
Es ist sinnvoll, die Zeitvariable in oninit auf die lokale Computerzeit zu setzen, die dann die Startzeit des EA ist)))
 
Ich danke Ihnen!
 
double a=20.43;
double b=20.56;
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  Print(a-b);
  }
Das Ergebnis lautet -0,129999999999999999. Und warum?
 
ascerdfg:
Das Ergebnis lautet -0,1299999999999999. Und warum?

Merkmale der Speicherung reeller Zahlen im Computerspeicher.

Verwenden Sie DoubleToString() zur Ausgabe mit der gewünschten Genauigkeit

Im Allgemeinen sollten Sie die Grundlagen lernen und dann versuchen, Programme zu schreiben.

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