mql5言語の特徴、微妙なニュアンスとテクニック - ページ 52

 
アレクセイ・ナヴォイコフ
最初の関数で、DealsNumの代わりに5という数字が使われていますが、コードを修正してください。また、INT_MAXの チェックは意味がありません。

ツッコミありがとうございます。INT_MAX のチェック - 入力パラメータがない場合、Expert Advisor の動作が遅くなることはなく、無駄な HistorySelect は呼び出されません。

 
履歴テーブルの注文は、発注時刻順にソートされます(約定/取消ではありません)。HistorySelectを呼び出す 際には、この点を考慮してください。
 
fxsaber
履歴テーブルの注文は、発注時刻順にソートされます(約定/取消ではありません)。HistorySelectを呼び出す 際には、この点を考慮してください。

これに加えて、案件やポジションがどうなっているのか、全体像を把握することができればよいですね。

 
アルチョム・トリシキン

案件やポジションの状況を加えて、全体像を把握するのが良いと思います。

ポジションを扱う方法がない - ヒストリーにない。そして、unambiguouslyお得な情報 - 唯一の時間DEAL_TIMEが あります。

 
fxsaber

ポジションを扱う方法がない - ヒストリーにない。そして、unambiguouslyお得な情報 - 唯一の時間DEAL_TIMEが あります。

はい、しかし、ポジションは現在のリストにあります。

 
アルチョム・トリシキン

はい、しかし、ポジションは現在のリストにあります。

全く理解できないので、はっきり言ってください。

 
fxsaber

全く理解できないので、はっきり言ってください。

ヘッジ口座のPositionSotal()は何を返すのでしょうか?ポジションの数 です。何らかのリストに入っている。また、どのように分類されているのでしょうか?そういうことなんです。

 
アルチョム・トリシキン

ヘッジ口座のPositionsTotal()は何を返すのでしょうか?ポジションの数 です。何らかのリストに入っている。また、どのように分類されているのでしょうか?ということです。

了解しました。この点については、必要になりそうな場面に遭遇していないので、私自身は明確にしていません。

 

エージェントジョブスタックの最初のパスでは、(例えば単一のテスターランでは)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
理由: