MetaTrader 5 build 2485: iCustomの改善とMQL5全体の最適化

MetaTrader 5の何が新しくなったのか

5 6月 2020

ターミナル

  1. カスタム金融商品でのバー履歴の編集を最適化し大幅に高速化しました。この改善はCustomRatesUpdate関数にも関係しています。
  2. カスタム銘柄設定のJSONファイルへのエクスポートを修正しました。
  3. クラッシュログで報告されたエラーを修正しました。

MQL5

  1. このバージョンでは、iCustomを介したカスタム指標の読み込みアルゴリズムが変更されています。

    カスタム指標名の前にバックスラッシュ(\)が示されている場合、EXL指標ファイルはMQL5ルートフォルダーに対して相対的に検索されます。例えば、iCustom(Symbol(), Period(), "\FirstIndicator"...)が呼び出された場合、指標はMQL5\FirstIndicator.ex5として読み込まれます。このパスでファイルが見つからない場合、エラー4802 (ERR_INDICATOR_CANNOT_CREATE)が返されます。

    パスがバックスラッシュ(\)で始まらない場合、指標は次の一連のアクションに基づいて検索および読み込みされます。

    • EX5ファイルが、呼び出し元プログラムのEX5と同じフォルダーで検索されます。例えば、CrossMA.EX5エキスパートアドバイザーがMQL5\Experts\MyExpertsにあって、呼び出しが「iCustom(Symbol(), Period(), "SecondIndicator"...)」だとします。この場合、指標はMQL5\Experts\MyExperts\SecondIndicator.ex5で検索されます。
    • 指標が見つからない場合、指標ルートディレクトリMQL5\Indicatorsに相対した検索が実行され、MQL5\Indicators\SecondIndicator.ex5ファイルが検索されます。指標が見つからない場合、関数はINVALID_HANDLEを返し、エラー4802(ERR_INDICATOR_CANNOT_CREATE)が発生します。

    指標パスがMyIndicators\ThirdIndicatorなどのサブディレクトリに設定されている場合、検索は以下の呼び出し側プログラムのフォルダー(エキスパートアドバイザーはMQL5\Experts\MyExpertsフォルダーにある)から開始されます: MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5。指標が見つからない場合、MQL5\Indicators\MyIndicators\ThirdIndicator.ex5が検索されます。呼び出しでは、パス区切り文字を二重のバックスラッシュ(\\)として指定する必要があります。例えば「iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...)」です。

    また、iCustomを介したカスタム指標の呼び出しがプログラムコードで見つかった場合、コンパイラは、「#property tester_indicator XXX」ディレクティブが指定されていなければ、暗黙的に追加します。
  2.  HistorySelect関数を最適化し、大幅に高速化しました。これにより、取引や注文の履歴をリクエストできます。
  3. MQL5: CopyTicksRange関数によるティックリクエストで時々発生するエラーを修正しました。エラーにより、範囲の開始時刻が指定された時刻ではなく、その日の始めに設定されていました。
  4. Alertによるアラート表示を最適化し、大幅に高速化しました。
  5. 銘柄の最後のティック時間(ミリ秒)を表す新しいプロパティSYMBOL_TIME_MSCを追加しました。このプロパティはSymbolInfoInteger関数で取得できます。