mql5语言的特点、微妙之处以及技巧 - 页 52

 
阿列克谢-纳沃伊科夫
请纠正代码,第一个函数中的数字5而不是DealsNum。对INT_MAX 的检查没有意义

谢谢你的调整。检查INT_MAX - 如果没有输入参数,专家顾问将不会放慢速度,也不会调用浪费的HistorySelect。

 
历史表中的订单是按下单时间(而不是执行/取消)排序的。在调用HistorySelect 时要考虑到这一点。
 
fxsaber:
历史表中的订单是按下单时间(而不是执行/取消)排序的。在调用HistorySelect 时要考虑到这一点。

最好能在此基础上增加交易和职位的情况,以便有一个完整的画面。

 
阿尔乔姆-特里什金

最好能加上交易和职位的情况,以获得一个完整的画面。

没有办法用职位--他们不在历史中。而与交易毫不含糊地--只有一个时间DEAL_TIME

 
fxsaber:

没有办法处理职位问题--它们不在历史中。而与交易毫不含糊地--只有一个时间DEAL_TIME

是的,但这些职位都在目前的名单中。

 
阿尔乔姆-特里什金

是的,但这些职位都在目前的名单上。

请澄清一下,我完全不明白。

 
fxsaber:

请澄清一下,我完全不明白。

套期保值账户的PositionsTotal()将返回什么?职位的数量。他们在某种列表中。它们又是如何分类的呢?这就是我所说的。

 
阿尔乔姆-特里什金

对冲账户的PositionsTotal()将返回什么?职位的数量。他们在某种列表中。它们又是如何分类的呢?这就是我所说的。

明白了。我还没有为自己澄清这一点,因为我还没有遇到可能需要这样做的情况。

 

在Agent作业堆栈的第一遍(例如在单个测试器运行中),EA启动和第一个NewTick事件之间的时间可能需要几秒钟。在堆栈的后续传递中,这个时间是零。

一个作业堆栈的最后一个通道比前几个通道的Agent运行时间最多增加10%。

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