MetaTrader 5 build 2815: Pythonからの板情報へのアクセス、デバッガーとプロファイラーの改良

タスクマネージャを使用すると、プラットフォームで消費されるリソースを監視できます。チャートによって消費されたメモリの量、エキスパートアドバイザーによって使用されたCPUリソース、およびその他のパフォーマンス指標を表示できます。プラットフォームのパフォーマンスが低下した場合、問題を簡単に検出して修正できます。

26 2月 2021

ターミナル

  1. Python APIを介して板情報データにアクセスする機能が追加されました。
    3つの新しい関数を使用すると、統計計算や機械学習タスクのデータをすばやく取得できます。これらのデータは、既成の多数のPythonライブラリを使用して実装できます。
    • market_book_add — 指定された銘柄の板情報の変化に関連するイベントを受信するためにMetaTrader5ターミナルをサブスクライブします。
    • market_book_get — 指定された銘柄の板情報レコードを含むタプルをBookInfoから返します。
    • market_book_release — 指定された銘柄の板情報の変更に関連するイベントへのMetaTrader5ターミナルサブスクリプションをキャンセルします。

  2.  プッシュメッセージの最大長が256文字から1024文字に増加し、モバイルデバイス上のMQL5プログラムからより多くの情報を送信できるようになりました。
  3.  F2キーを押すことで呼び出すことができるタスクマネージャーの暫定バージョンを追加しました。
    タスクマネージャを使用すると、プラットフォームで消費されるリソースを監視できます。チャートによって消費されたメモリの量、エキスパートアドバイザーによって使用されたCPUリソース、およびその他のパフォーマンス指標を表示できます。プラットフォームのパフォーマンスが低下した場合、問題を簡単に検出して修正できます。



  4.  サブスクリプションサービスを改善しました。相場が遅れている銘柄には、特別な表示が追加されています。
    • 気配値表示の銘柄は時計アイコンでマークされ、遅延値がツールチップに表示されます。
    • データ遅延通知がチャートに表示されます。



  5.  取引口座に接続していない場合のサブスクリプションリストの表示を修正しました。
  6. メールやニュースレターのリンクを修正しました。すべてのリンクがデフォルトのブラウザで開きます。以前は、リンクはInternet Explorerでのみ開くことができます。
  7. WebRequest関数からIPv6アドレスとCloudflare保護を備えたホストへの接続を修正しました。
  8. VPSサービスの機能と応答性が向上しました。
  9. WineおよびMacOS/Crossoverでの操作が改善されました。これには、M1プロセッサを搭載したmacOS BigSurのバージョンが含まれます。

MQL5

  1. ArrayPrint関数のエラーを修正しました。関数が配列の出力に失敗することがありました。
  2. File*関数によって実行されるファイル操作を最適化しました。ファイルの読み取りおよび書き込み操作ははるかに高速に実行されるようになりました。
  3. 配列が関数パラメータとして使用される場合に、動的配列の2番目、3番目、および4番目の次元のサイズの指定を必要とする制限を削除しました。これにより、コードの再利用と柔軟性が向上します。
    void func(int &arr[ ][ ][ ][ ])
      {
      }
  4.  ArrayBsearch関数の動作を修正しました。この関数は、バイナリ検索中に見つかった要素の誤ったインデックスを返す可能性があります。

MetaEditor

  1. 改良されたデバッガで、より多くの新機能が利用できるようになりました。
    • ArraySetAsSeriesで設定された並べ替えに従って、配列が観測ウィンドウに表示されるようになりました。
    • ローカル静的変数のサポートを追加しました。
    • 指定された配列要素値の表示を修正しました。
    • staticクラスフィールドの処理を修正しました。
    • より正確で信頼性の高いデバッグのためのその他の改善。

  2. Enable optimizations in profiling(プロファイリングで最適化を有効にする)」オプションを追加しました。
    プロファイリングレポートに詳細を含めるために、コード最適化モードを無効にすることができます。最適化を行わない場合のコード速度は数倍遅くなる可能性がありますが、このモードではコードカバレッジが広くなります。最適化コードでは、ボトルネックが不正確になる可能性があることに注意してください。

    「Enable inlining in profiling(プロファイリングでインライン化を有効にする)」を無効にすることで、より穏やかなプロファイリングモードを設定できます。



    最適化管理オプションもプロジェクト設定に追加されました。
    • プロジェクトで最適化が無効になっている場合、新しいオプションは無視されるため、プロファイリング(インライン化操作を含む)では常に最適化が無効になります。
    • プロジェクトで最適化が有効になっている場合、プロファイリングのコンパイル時に新しいオプションが考慮されます。

  3. デバッグおよびプロファイリングプロセスのログを追加しました。環境設定は、操作開始時にログに記録されます。 収集されたデータ統計は、操作停止時にログに記録されます。
    MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
    MQL5 profiler       symbol: 'EURUSD'
    MQL5 profiler       period: 'H1'
    MQL5 profiler       date from: '2021.01.01'
    MQL5 profiler       date to: '2021.02.22'
    MQL5 profiler       ticks mode: 'every tick'
    MQL5 profiler       execution delay: 0 ms
    MQL5 profiler       deposit: 10000
    MQL5 profiler       currency: 'USD'
    MQL5 profiler       leverage: 1:100
    MQL5 profiler       profit in pips: NO
    MQL5 profiler    profile data received (4640 bytes)
    MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
    MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

テスター

  1. 高度なテスト設定での非取引時間の指定を修正しました。
ドキュメントを更新しました。