Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 52

 
Alexey Navoykov:
Bitte korrigieren Sie den Code, die Zahl 5 anstelle von DealsNum in der ersten Funktion. Und die Prüfung auf INT_MAX macht keinen Sinn

Danke für die Verbesserung. Prüfung auf INT_MAX - wenn keine Eingabeparameter vorhanden sind, wird der Expert Advisor nicht verlangsamt, und das verschwenderische HistorySelect wird nicht aufgerufen.

 
Die Aufträge in der Verlaufstabelle sind nach dem Zeitpunkt der Platzierung (nicht der Ausführung/Stornierung) sortiert. Berücksichtigen Sie dies beim Aufruf von HistorySelect.
 
fxsaber:
Die Aufträge in der Verlaufstabelle sind nach dem Zeitpunkt der Platzierung (nicht der Ausführung/Stornierung) sortiert. Berücksichtigen Sie dies beim Aufruf von HistorySelect.

Um ein vollständiges Bild zu erhalten, wäre es gut, wenn man noch hinzufügen würde, wie die Geschäfte und Positionen aussehen.

 
Artyom Trishkin:

Es wäre gut, die Situation mit den Geschäften und Positionen hinzuzufügen, um ein vollständiges Bild zu erhalten.

Es gibt keine Möglichkeit, mit Positionen umzugehen - sie sind nicht in der Geschichte enthalten. Und bei Geschäften eindeutig - es gibt nur eine Zeit DEAL_TIME.

 
fxsaber:

Es gibt keine Möglichkeit, mit Positionen umzugehen - sie sind nicht in der Geschichte enthalten. Und bei Geschäften eindeutig - es gibt nur eine Zeit DEAL_TIME.

Ja, aber die Positionen sind in der aktuellen Liste enthalten.

 
Artyom Trishkin:

Ja, aber die Stellen sind in der aktuellen Liste aufgeführt.

Bitte klären Sie mich auf, ich verstehe das überhaupt nicht.

 
fxsaber:

Bitte klären Sie mich auf, ich verstehe das überhaupt nicht.

PositionsTotal() auf einem Hedge-Konto gibt was zurück? Die Anzahl der Positionen. Sie sind in einer Art Liste aufgeführt. Und wie werden sie sortiert? Das ist es, wovon ich spreche.

 
Artyom Trishkin:

Was ergibt PositionsTotal() für das Hedge-Konto? Die Anzahl der Positionen. Sie sind in einer Art Liste aufgeführt. Und wie werden sie sortiert? Das ist es, wovon ich spreche.

Verstanden. Ich habe diesen Punkt für mich selbst noch nicht geklärt, da ich noch nicht in einer Situation war, in der dies notwendig gewesen wäre.

 

Beim ersten Durchlauf eines Agentenauftragsstapels (z. B. in einem einzelnen Testlauf) kann die Zeit zwischen dem EA-Start und dem ersten NewTick-Ereignis mehrere Sekunden betragen. Bei nachfolgenden Durchläufen des Stapels ist diese Zeit Null.

Für den letzten Durchlauf eines Auftragsstapels benötigt der Agent bis zu 10 % mehr Zeit als für die vorherigen Durchläufe.

 
// Перемещение папки. Описание такое же, как у FileMove - https://www.mql5.com/ru/docs/files/filemove
bool FolderMove( const string FolderNameSrc, const string FolderNameDst, const int Common_Flag = 0, const int Mode_Flags = FILE_REWRITE )
{
  if (FolderNameSrc == FolderNameDst)
    return(false);

  string FileName;
  const long handle = ::FileFindFirst(FolderNameSrc + "\\*", FileName, Common_Flag);

  bool Res = false;

  if (handle != INVALID_HANDLE)
  {
    do
    {
      const string TmpFileNameSrc = FolderNameSrc + "\\" + FileName;
      const string TmpFileNameDst = FolderNameDst + "\\" + FileName;

      if (::FileIsExist(TmpFileNameSrc, Common_Flag))
        Res = ::FileMove(TmpFileNameSrc, Common_Flag, TmpFileNameDst, Mode_Flags);
      else
      {
        const string TmpFileNameSrc2 = ::StringSubstr(TmpFileNameSrc, 0, ::StringLen(TmpFileNameSrc) - 1);
        const string TmpFileNameDst2 = ::StringSubstr(TmpFileNameDst, 0, ::StringLen(TmpFileNameDst) - 1);

        if (!FolderMove(TmpFileNameSrc2, TmpFileNameDst2, Common_Flag, Mode_Flags))
          Res = ::FolderCreate(TmpFileNameDst2, Mode_Flags & FILE_COMMON);
      }
    }
    while (::FileFindNext(handle, FileName));

    ::FileFindClose(handle);
  }

  return(::FolderDelete(FolderNameSrc, Common_Flag) && Res);
}
Документация по MQL5: Файловые операции / FileMove
Документация по MQL5: Файловые операции / FileMove
  • www.mql5.com
Файловые операции / FileMove - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Grund der Beschwerde: