Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 52

 
Alexey Navoykov:
Si prega di correggere il codice, il numero 5 invece di DealsNum nella prima funzione. E il controllo per INT_MAX non ha senso

Grazie per la modifica. Controllo di INT_MAX - se senza parametri di input, l'Expert Advisor non rallenterà, e la dispendiosa HistorySelect non sarà chiamata.

 
Gli ordini nella tabella della cronologia sono ordinati per tempo di inserimento (non di esecuzione/cancellazione). Tenetene conto quando chiamate HistorySelect.
 
fxsaber:
Gli ordini nella tabella della cronologia sono ordinati per tempo di inserimento (non di esecuzione/cancellazione). Tenetene conto quando chiamate HistorySelect.

Sarebbe bene aggiungere a questo come sono gli accordi e le posizioni - per avere un quadro completo.

 
Artyom Trishkin:

Sarebbe bene aggiungere la situazione con gli accordi e le posizioni per avere un quadro completo.

Non c'è modo di trattare le posizioni - non sono nella Storia. E con le offerte senza ambiguità - c'è solo una volta DEAL_TIME.

 
fxsaber:

Non c'è modo con le posizioni - non sono nella Storia. E con le offerte senza ambiguità - c'è solo un tempo DEAL_TIME.

Sì, ma le posizioni sono nella lista attuale.

 
Artyom Trishkin:

Sì, ma le posizioni sono nella lista attuale.

Per favore, chiarisci, non lo capisco affatto.

 
fxsaber:

Per favore, chiarisci, non lo capisco affatto.

PositionsTotal() su un conto di copertura cosa restituisce? Il numero di posizioni. Sono in una specie di lista. E come sono ordinati? Ecco di cosa sto parlando.

 
Artyom Trishkin:

Cosa restituirà PositionsTotal() sul conto di copertura? Il numero di posizioni. Sono in una specie di lista. E come sono ordinati? Questo è ciò di cui sto parlando.

Capito. Non ho chiarito questo punto per me, perché non ho incontrato una situazione in cui possa essere necessario.

 

Al primo passaggio di uno stack di lavoro Agent (ad esempio in una singola esecuzione del tester) il tempo tra l'avvio di EA e il primo evento NewTick può richiedere diversi secondi. Nei successivi passaggi dello stack, questo tempo è zero.

L'ultimo passaggio di uno stack di lavoro richiede fino al 10% di tempo in più per l'esecuzione dell'agente rispetto ai passaggi precedenti.

 
// Перемещение папки. Описание такое же, как у 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