MetaTrader 5プラットフォームビルド2085: Pythonとの統合、ストラテジーテスターの改良

Python言語を使用するアプリケーションを介したMetaTrader 5ターミナルデータの要求を可能にする新しいAPIを追加しました。

12 6月 2019

ターミナル

  1. Python言語を使用するアプリケーションを介したMetaTrader 5ターミナルデータの要求を可能にする新しいAPIを追加しました。

    Pythonは、スクリプトやアプリケーションを開発するための現代の高水準プログラミング言語です。これには、機械学習、プロセスの自動化、およびデータ分析と視覚化のための複数のライブラリが含まれています。

    MetaTrader Pythonパッケージは、MetaTrader 5ターミナルから直接プロセッサ間通信を介して交換データを効率的かつ迅速に取得するように設計されています。このルートで受信したデータは、統計計算や機械学習にも使用できます。



    接続

    1. 最新のPythonバージョンはhttps://www.python.org/downloads/windowsでダウンロードできます。
    2. Pythonのインストール中に、[Add Python X.X to PATH%(Python X.XをPATH%に追加)]をチェックして、コマンドラインからPythonスクリプトを起動できるようにします。
    3. MetaTrader 5モジュールをコマンドラインからインストールします。
      pip install MetaTrader5
    4. matplotlibとpytzパッケージを追加します。
      pip install matplotlib
      pip install pytz

    関数

    • MT5InitializeはMetaTrader 5ターミナルとの接続を確立します。
    • MT5ShutdownはMetaTrader 5ターミナルへの以前に確立された接続を閉じます。
    • MT5TerminalInfoは接続されたMetaTrader 5ターミナルのステータスとパラメータを受信します。
    • MT5VersionはMetaTrader 5ターミナルバージョンを戻します。
    • MT5WaitForTerminalはMetaTrader 5ターミナルが取引サーバーに接続するまで待ちます。
    • MT5CopyRatesFromは指定した日付から開始してMetaTrader 5ターミナルからバーを受信します。
    • MT5CopyRatesFromPosは指定したインデックスから開始してMetaTrader 5ターミナルからバーを受信します。
    • MT5CopyRatesRangeは指定した期間のバーをMetaTrader 5ターミナルから受信します。
    • MT5CopyTicksFromは指定した日付から開始してMetaTrader 5ターミナルからティックを受信します。
    • MT5CopyTicksRangeは指定した期間のティックをMetaTrader 5ターミナルから受信します。


  2. マーケットおよびシグナルセクションを最適化しました。製品とシグナルのショーケースが最大7倍速くなり、サービスブラウジング体験が向上しました。




  3. Wineでの「マーケット」、「シグナル」、「検索」サポートを追加しました。LinuxおよびMac OSユーザーが、最大規模の取引アプリケーションとコピー取引サービスにアクセスできるようになりました。




  4. 内蔵の学習プログラムは、スペイン語、中国語、ポルトガル語、ドイツ語を含む30以上の言語に翻訳されています。希望の言語でインタラクティブなヒントを表示するには、[表示]メニューを使用してインターフェイスの言語を切り替えます。




  5. デモ口座と予備口座の開設時にトレーダーが指定した電話番号とメールの認証を可能にする新しいオプション。

    データ認証の必要性はブローカーによって決定されます。このオプションが有効になっていると、口座のリクエスト中に認証コードが自動的にトレーダーに送信され、特別なコードフィールドがダイアログボックスに表示されます。




    認証コードは数分間有効です。この時間内にコードがフィールドに入力されない場合、手順を繰り返す必要があります。
    コードが送信される前に、指定された電話/メールが以前に認証されたかどうかが確認されます。すでに使用中のコンピューターからの認証が完了している場合は、追加認証なしで口座が開設されます。よって、口座を簡単にリクエストできます。
  6. PayPalシステムを介したMQL5.community支払いオプションを拡張しました。このシステムを使用して、ワンクリックで購入ができるようになりました。

    仕組み
    購入時にPayPalアカウントでログインした後に、当社への今後の支払いを許可するよう求められます。





    このオプションを確認すると、以前に保存したアカウントボタンを押すことで、ワンクリックで追加購入が可能になります。




    [キャンセルしてMetaQuotes Software Corp.に戻る]をクリックした場合は、購入ごとにPayPalアカウントの詳細を手動で入力して、通常の方法で支払いを行うことになります。
    MQL5.comウェブサイトとMetaTrader 5プラットフォームでは支払い詳細は保存されません。資金の入金、マーケットでの購入、シグナルの購読が行われると、データは支払いシステム側で検証されます。PayPalアカウントのリンクはいつでも削除できます。

  7. ストラテジーテスターの改善と最適化。

    ストラテジーテスタの操作を最適化するために、数多くの改良を陰で導入しエラーを修正しました。このアップデートにより、一部のタスクタイプのテストが大幅に高速化され、操作の安定性が向上しました。主な改善点は次のとおりです。

    フレーム操作
    ローカル、ネットワーク、クラウドの各エージェントでフレームを使用した操作を最適化しました。このような操作はより高速に処理されるようになり、スキップされることはありません。

    エージェントへのタスクの分配
    テスターは、最適化プロセス中にタスクをエージェントに再分配できるようになりました。新しいエージェントが利用可能になった場合(または以前に使用されていたエージェントのいずれかがリリースされた場合)、テスターは他のエージェント間で以前に分配されていたタスクパッケージを使用してタスクの新しいパッケージを自動的に作成します。低速のエージェントが検出された場合にもタスクを再分布することができます。そのようなエージェントのタスクは他のエージェントに送信され、最適化がより早く完了します。

    数学計算モードでのタスク分配がはるかに高速になりました。

    操作ログでの最適化統計
    最適化のログへの記録が拡張され、クラウドエージェントの有効化と無効化など、MQL5クラウドネットワークの使用に関する詳細な統計情報が含まれるようになりました。

    完全最適化ログモードでの操作
    リソースを最適に消費するために、エージェントからのすべてのメッセージがテスターログに記録されるわけではありません。すべてのログを表示するには、テスターログのコンテキストメニューを使用して[完全最適化ログ]オプションを有効にします。以前は、このモードでは最適化プロセスが大幅に遅くなりました。計算時間は影響を受けないようになりました。

    MQL5クラウドネットワーク
    クラウドテストエージェントの操作を最適化しました。計算タスクはより効率的に分散されるようになりました。

  8. 内蔵カレンダでは、米国、欧州連合、日本、英国を含む18の経済大国の経済に関連する900以上の指標の発表を集めています。データは、公開情報からリアルタイムに収集されます。定期的にサービスをチェックすることで、最新の世界的なニュースを手に入れ、情報に基づいた取引決定を下すことができます。
    経済指標カレンダーは、モバイル端末だけでなくデスクトップのターミナルやウェブサイトでも利用できます。アプリケーションは、ターミナルの[カレンダー]コンテキストメニューを使用して開くことができます。




    プラットフォームを選択してTradaysアプリをダウンロードします。


    デスクトップ版で利用可能なカレンダー機能に加えて、モバイル版では、イベントのリマインダーやチャートや表の形式で指標の完全な履歴へのアクセスを提供しています。

  9. ティック履歴のインポート中のカスタム銘柄バー履歴の自動生成を追加しました。カスタム銘柄のティックデータが変わると、対応するバーが自動的に再計算されるようになりました。

    • このようにして統合されたデータはプラットフォームに保存されます。
    • ティックデータをインポートした後は(十分なデータがある場合)、バーが自動的に計算されているので、バーをインポートする必要はありません。

    変更は、ターミナルインターフェイスを介して実行されたティックのインポート、およびCustomTicks*関数を使用してMQL5アプリケーションから実行されたティックの更新に関するものです。ティックデータに変更があると、対応するカスタム銘柄の1分足の再計算が行われます。

  10. 取り外されたチャートで十字線を使用したときの[データ]ウィンドウでのデータ更新を修正しました。
  11. ティック履歴の保存を修正しました。以前のバージョンでは、1ミリ秒以内に複数のティックがあると、誤った順序で保存される可能性がありました。
  12. サーバーで利用可能な短すぎる価格履歴(1日未満)に基づくチャートの生成を修正しました。

MQL5

  1. MQL5サービスのデバッグオプションを追加しました。これらのアプリケーションはエキスパートアドバイザーや指標と同様にテストできるようになりました。
  2. ENUM_SYMBOL_CALC_MODE 列挙体に新しい利益と証拠金の計算モードが追加されました。

    • SYMBOL_CALC_MODE_EXCH_BONDS — 為替ボンドの計算
    • SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX — モスクワ証券取引所で取引されている株式の計算
    • SYMBOL_CALC_MODE_EXCH_BONDS_MOEX — モスクワ証券取引所で取引されている債券の計算

  3. 新しいTesterDeposit関数がテストの間に入金操作のエミュレーションを可能にします。この関数は、資金管理戦略をテストするときに役立ちます。
    bool  TesterDeposit(
       double money      // 入金額
       );
  4. OnDeinitメソッドの実行中には、MQL5アプリケーションはターミナルからイベントを受信しません。以前は、他のイベントが受信されたためにアプリケーションが初期化解除を完了できない場合がありました(たとえば、作成されたすべてのオブジェクトの削除)。
  5. 当日のカスタム銘柄のティック履歴が変更された後に発生する可能性があるエラーを修正しました。
  6. 多数(数万)のグラフィックオブジェクトを使用している場合にアプリケーションが遅くなる可能性があるという問題を修正しました。
  7. MQL5プログラムから頻繁に取引履歴が呼び出される場合にターミナルがフリーズする問題を修正しました。
  8. iBarShift関数の動作を修正しました。「exact=false」フラグとデータ外のリクエストで、関数は最新のバー番号の代わりに最古のバー番号を返していました。

テスター

  1. 複数のNUMAノードを持つプロセッサを搭載したコンピューターのコア数の特定を修正しました。
  2. テスト中に新しいTesterDeposit 関数を使用して入金操作をエミュレートできるため、初期入金をゼロにしてテストと最適化を実行する可能性が追加されました。

MetaEditor

  1. コードスタイルコマンドをすばやくアクセスするためにツールバーに追加できるようになりました。
  2. 関数名と変数名にUnicode以外の文字を使用した場合のパラメータ定義への切り替えと関連データの表示を修正しました。

ドキュメントが更新されました。

更新はLiveUpdateシステムから利用できます。