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

ウェブプラットフォーム、デスクトップ版、モバイル版の更新履歴

11 10月 2024
MetaTrader 5 build 4620:MQL5のバグ修正と新しいOpenBLASメソッド

端末

  1. 特定の条件下で不完全なティック履歴が返されるエラーを修正しました。
  2. 英語以外の言語で銘柄を選択する際の自動補完を修正しました。検索フィールドに銘柄名を入力すると、入力した文字に基づいて関連するオプションが自動的に提案されます。検索機能は、すべてのロケールで大文字と小文字を区別せずに正しく動作するようになりました。

MQL5

  1. 新しいOpenBLASメソッドの説明がMQL5ドキュメントに追加されました。現在、行列とベクトルの15個の新しいメソッドが利用可能であり、近日中にさらに追加される予定です。
    OpenBLASは、特にデータセットを操作する場合の高性能コンピューティングのための効率的なオープンソースソリューションです。

    関数

    アクション

    SingularValueDecompositionDC

    特異値分解、分割統治アルゴリズム。他のSVDアルゴリズムの中でも最も高速であると考えられています(LAPACK関数GESDD)

    SingularValueDecompositionQR

    特異値分解、QRアルゴリズム。古典的なSVDアルゴリズム(LAPACK関数GESVD)

    SingularValueDecompositionQRPivot

    特異値分解、ピボット付きQRアルゴリズム(LAPACK関数 GESVDQ)

    SingularValueDecompositionBisect

    特異値分解、二分アルゴリズム(LAPACK関数GESVDX)

    SingularValueDecompositionJacobiHigh

    特異値分解、Jacobi高レベルアルゴリズム(LAPACK関数GEJSV)

    SingularValueDecompositionJacobiLow

    特異値分解、Jacobi低レベルアルゴリズム(LAPACK関数GESVJ)。このメソッドは、特定のケースにおいて、他のSVDルーチンよりもはるかに高い精度で小さな特異値とその特異ベクトルを計算します。

    SingularValueDecompositionBidiagDC

    特異値分解、双対対角行列に対する分割統治アルゴリズム(LAPACK関数BDSVDX)

    SingularValueDecompositionBidiagBisect

    特異値分解、双対対角行列に対する二分法アルゴリズム(LAPACK関数BDSVDX)

    EigenSolver

    古典的なアルゴリズムを使用して正方行列の固有値と固有ベクトルを計算(LAPACK関数GEEV)

    EigenSymmetricDC

    対称行列またはエルミート行列(複素共役行列)の固有値と固有ベクトルを分割統治アルゴリズムで計算(LAPACK関数 SYEVD, HEEVD)

    SingularSpectrumAnalysisSpectrum

    固有値に基づくスペクトル成分の相対寄与率を計算するメソッド

    SingularSpectrumAnalysisForecast

    入力時系列のスペクトル成分を使用して再構築および予測されたデータを計算するためのメソッド

    SingularSpectrumAnalysisReconstructComponents

    入力時系列の再構成されたコンポーネントとその寄与を計算するためのメソッド

    SingularSpectrumAnalysisReconstructSeries

    最初のcomponent_countコンポーネントを使用して再構築された時系列を計算するメソッド

  2. matrix::CopyRatesメソッドを使用する実行可能なMQL5プログラムファイル(.ex5)の古いバージョンを実行するときに発生するエラーを修正しました。これらのエラーは、新しいバージョンでコンパイルされたファイルでは発生しませんでした。
  3. unionで許可される順序の型チェックを修正しました。

MetaTester

  • カスタム指標の初期化解除中に特定の条件下で発生する可能性があったクラッシュを修正しました。

4 10月 2024
MetaTrader 5プラットフォームビルド4585:パフォーマンス向上

端末

  • 特定の条件下でMQL5プログラムのプロファイリング停止時に発生する可能性があったクラッシュを修正しました。

MetaEditor

MetaTester

  • シングルパステストの再実行時に特定の条件下で発生していたクラッシュを修正しました。
27 9月 2024
MetaTrader 5 build 4570:MQL5のWebバージョンとOpenBLAS統合の強化

端末

  1. 口座がシグナルにサブスクライブされている場合、MQL5取引および履歴機能へのアクセスが制限されます。

    口座でシグナルサブスクリプションが検出されると(現在の端末でコピーが有効になっているかどうかに関係なく)、オープン注文とポジションの受信、履歴の受信、取引操作の実行など、MQL5取引関数の呼び出しはすべて禁止されます。以下の対応する警告が操作ログに記録されます。
    'XXX': signal subscription detected, trading and history access functions in MQL5 and Python disabled
    制限は、Python取引関数(positions_total、positions_get、orders_total、orders_get、history_orders_total、history_orders_get、history_deals_total、history_deals_get、order_check、order_send)にも適用されます。

    口座でシグナルサブスクリプションがキャンセルされた場合、またはシグナルサブスクリプションなしで別の口座に接続すると、制限が解除され、次のメッセージが記録されます。
    'XXX': no signal subscription detected, trading and history access functions in MQL5 and Python enabled
    口座で制限がアクティブになっている場合、MQL5関数は次の応答コードを返します。

    • OrderSendとOrderSendAsync:RET_REQUEST_AT_DISABLED_CLIENT
    • OrdersTotalとPositionsTotal:0
    • PositionGetSymbol、PositionSelect、PositionSelectByTicket、PositionGetTicket:ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • OrderGetTicketとOrderSelect:ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • HistorySelect:ERR_MQLAPI_TRADE_DEAL_NOT_FOUND

  2. ティック履歴のリクエストとCSV\HTMLファイルへのエクスポートを修正、最適化、高速化しました。
  3. macOS上の取引プラットフォームでHTMLコンテンツを表示するためのMicrosoft Edge WebView2サポートを追加しました。旧来のMSHTMLに比べ、現代技術へのアクセスを提供することで、コンテンツ表示機能が大幅に拡張されます。WebView2への移行により、マーケット、シグナル、VPSなどのセクションの外観が改善され、応答性とパフォーマンスが向上しました。

  4. 内部メール送信ウィンドウのコンテキストメニューを修正しました。
  5. 取引商品選択ダイアログのフィルタリングを修正しました。 期限切れの銘柄を非表示にするためにまず銘柄名を入力する必要がなくなりました。
  6. 契約仕様ウィンドウでの証拠金要件計算を修正し、取引所株式や債券商品の誤計算を解消しました。
  7. FIFO口座の一括ポジションクローズ機能を改善しました。このような口座では、すべての利益/損失ポジション、同一方向のポジション、反対方向のポジションのクローズなど、互換性のない操作タイプは表示されなくなりました。
  8. ポジションのクローズがFIFOルールに従う口座でユーザーが反対の保留注文を出すことができない問題を修正しました。
  9. 取引所先物商品のポジションを持つ口座の清算価値の計算を修正しました。
  10. ExchangeBondsおよびExchangeMOEXBonds商品のポジションの変動利益計算を修正しました。
  11. デモ口座がない場合にプラットフォーム起動時にデモ口座を自動作成する機能を無効化しました。
  12. 口座登録時の名前とメールアドレスの検証を強化しました。
  13. ヘッジポジションの証拠金計算を修正しました。口座で変動証拠金(現在のポジションのボリューム/価値に基づいて計算)を使用する場合、特定のケースでエラーが発生する可能性がありました。
  14. デモ口座開設ダイアログの[次へ]ボタンの状態の更新を修正しました。電話またはメールの確認コードを入力した後、特定の条件下ではボタンが非アクティブのままになることがありました。
  15. ユーザーインターフェイスの翻訳を更新しました。

MQL5

  1. OpenBLAS行列計算ライブラリとのネイティブ統合を追加しました。

    OpenBLASは、BLAS (Basic Linear Algebra Subprograms) といくつかのLAPACK関数を実装する高性能なオープンソースの線形代数ライブラリです。OpenBLASは、機械学習、数値法、シミュレーションなどの科学および工学タスクでよく使用される行列演算とベクトル演算の計算パフォーマンスを向上させるように設計されています。

    以下は、OpenBLASの主な機能です。

    • マルチスレッドサポート:OpenBLASは、並列計算に複数のプロセッサコアを効率的に使用し、マルチプロセッサシステムでの操作を大幅に高速化します。
    • プロセッサアーキテクチャの最適化:OpenBLASには、Intel、AMD、ARMなどのさまざまなプロセッサ向けに最適化されたビルドが含まれています。ライブラリは、プロセッサの特性(AVX/AVX2/AVX512などのサポートされている命令セット)を自動的に検出し、最も適切な関数の実装を選択します。
    • 広範なBLAS操作サポート:OpenBLASは、ベクトル演算(ベクトル加算やドット積など)、行列演算(乗算)、ベクトル行列演算などのコアBLAS関数を実装します。
    • LAPACK互換性:このライブラリは、線形方程式の解法、行列の固有値の計算など、より複雑な線形代数演算のためのLAPACK (Linear Algebra PACKage)関数をサポートしています。
    • ハイパフォーマンス:他のBLASライブラリと比較すると、OpenBLASは特定のプロセッサアーキテクチャ向けに手作業で最適化されているため、より優れた結果を示すことがよくあります。

    OpenBLASは数値計算を伴うアプリケーションで広く使用されています。

    • ニューラルネットワークやその他の機械学習タスクのトレーニング
    • 科学計算(例:物理プロセスのモデリング)
    • 大量のデータの処理と分析

    現在、MQL5では次のメソッドが利用可能です。

    特異値分解

    • SingularValueDecompositionDC:分割統治アルゴリズム。他のSVDアルゴリズムの中で最も高速であると考えられています(lapack関数GESDD)。
    • SingularValueDecompositionQR:QRアルゴリズム。古典的なSVDアルゴリズム(lapack関数GESVD)と見なされます。
    • SingularValueDecompositionQRPivot:ピボットアルゴリズムを使用したQR(LAPACK関数GESVDQ)。
    • SingularValueDecompositionBisect:二分アルゴリズム(LAPACK関数GESVDX)。
    • SingularValueDecompositionJacobiHigh:Jacobi高レベルアルゴリズム(LAPACK関数GESVDX)。
    • SingularValueDecompositionJacobiLow:Jacobi低レベルアルゴリズム(LAPACK関数GESVJ)。このメソッドは、特定のケースにおいて、他のSVDルーチンよりもはるかに高い精度で小さな特異値とその特異ベクトルを計算します。
    • SingularValueDecompositionBidiagDC:二重対角行列の分割統治アルゴリズム(LAPACK関数BDSVDX)。
    • SingularValueDecompositionBidiagBisect:二重対角行列の二分アルゴリズム(LAPACK関数BDSVDX)。

    固有値メソッド:

    • EigenSolver:古典的なアルゴリズム(LAPACK関数GEEV)を使用して、正規正方行列の固有値と固有ベクトルを計算します。
    • EigenSymmetricDC:分割統治アルゴリズム(LAPACK関数SYEVD、HEEVD)を使用して、対称行列またはエルミート(複素共役)行列の固有値と固有ベクトルを計算します。

    詳細なドキュメントは近日公開予定です。

  2. ENUM_SYMBOL_SWAP_MODE列挙にSYMBOL_SWAP_MODE_CURRENCY_PROFIT値を追加しました。SymbolInfoInteger関数がこの値を返す場合、スワップは利益計算通貨で請求されます。
  3. ONNXランタイムのサポートを拡張しました。新しいタイプの機械学習操作を追加し、より高度なニューラルモデルの実行が可能になりました。
  4. 一部の機能ですでに使用されている、より効率的なMQL5コンパイラへの移行を継続します。これにより、さらなる最適化とプログラム実行の高速化が可能になります。
  5. OpenBLASライブラリをサポートするために新しいデータ型を追加しました。

    • complexf:浮動小数点データで表される複素数
    • vectorcf:complexf型の要素を含むベクトル
    • matrixcf:complexf型の要素を含む行列

  6. URLフォーマット規則に違反している、リダイレクトエラーが含まれている、または代替DNS名のリストが長いWebサイトを操作する場合のWebRequest操作を改善しました。
  7. 複数の変数への行列型やベクトル型の同時割り当てに関する不具合を修正しました。

MetaEditor

  1. AIアシスタントの利用可能なモデルを更新し、より高度なGPT-4o miniがGPT-3.5 Turboに取って代わりました。01-miniモデルも追加しました。
  2. ウォッチウィンドウで変数値が更新されない原因となっていたデバッガーエラーを修正しました。
  3. ユーザーインターフェイスの翻訳を更新しました。

MetaTester

  1. カスタム銘柄設定での証拠金係数の保存を修正しました。
  2. 特定の条件下でテストパス間で発生する可能性があったメモリリークを修正しました。

Web端末

  1. チャート上で正確な値を表示したり距離を測定したりするためのクロスヘアモードを追加しました。

    左側のパネルの該当するボタンをクリックしてモードを有効にします。チャート上の任意のポイントに十字線を移動すると、それぞれの軸に日付と価格が表示されます。距離を測定するには、チャート上の任意の点をクリックし、マウスボタンを押したままカーソルを別の点までドラッグします。




    ショートカットを使用することもできます。マウスの中央ボタンを押してクロスヘアを有効にし、Escキーまたは右クリックを使用して無効にします。

  2. バーの終値に基づいて作成されたシンプルな折れ線グラフを追加しました。




  3. モバイルビューでは、気配値表示セクションに追加の列を表示する機能を追加しました。設定するには、テーブルモードに切り替えて[...]をクリックします。




  4. ホットキーを追加しました。

    • Home:チャートの先頭(最も古い日付)までスクロールします
    • End:チャートの最後までスクロールします(最新の日付)
    • PageUp:チャートを1画面前へスクロールします
    • PageDown:チャートを1画面先にスクロールします

  5. アカウント接続ストレージのデータセキュリティが強化されました。
  6. チャートのスクロール、ドラッグ、スケーリング機能が改善されました。
  7. ページ上のWebプラットフォームの初期読み込みが高速化されました。
  8. バーの読み込みが最適化されました。
  9. ExchangeBondsおよびExchangeMOEXBonds商品のポジションの変動利益計算を修正しました。
  10. チャート上のワンクリック取引パネルのボリューム入力を修正しました。
  11. 板情報における注文量の更新エラーを修正しました。特定の条件下では値の更新が遅れる場合があります。
  12. 注文時の最小許容取引量チェックを修正しました。
  13. ヘッジポジションの証拠金計算を修正しました。口座で変動証拠金(現在のポジションのボリューム/価値に基づいて計算)を使用する場合、特定のケースでエラーが発生する可能性がありました。
  14. ワンクリック取引パネルの[買い]ボタンと[売り]ボタンが、数量が変更されるまで非アクティブになる可能性があるエラーを修正しました。
21 6月 2024
MetaTrader 5プラットフォームビルド4410:パフォーマンスの改善
MetaTrader 5プラットフォームビルド4410:パフォーマンスの改善

ターミナル

  • 特定の条件下でテスト開始時に発生していたターミナルのクラッシュを修正しました。

MQL5

Webターミナル

  1. Webターミナルとブラウザの互換性の検証を修正しました。場合によっては、ブラウザがサポートされていないことを示すメッセージが誤ってユーザーに表示されることがありました。
  2. デモ口座の開設を修正しました。
  3. マイナーな修正と改善。

このアップデートは、Live Updateシステムを通じて提供される予定です。

MetaTrader 5 Android

  1. タブレット版のインターフェイスを完全に再設計しました。iOS版とWeb版のプラットフォームですでに実証されているモダンなデザインが採用されいます。メインセクションは画面の下部に配置され、チャートの操作コマンドは左側に表示されます。




  2. ポジション履歴セクションにコンテキストメニューが追加され、対応する銘柄の取引ダイアログまたはチャートにすばやくアクセスできるようになりました。
  3. 取引不可能な銘柄の取引ダイアログに切り替えるコマンドを非表示にしました。
  4. MetaQuotes-Demoサーバーでの操作を修正しました。

モバイルアプリを更新するには、Google PlayHuawei AppGalleryにアクセスする、またはAPKファイルをダウンロードしてください。

7 6月 2024
MetaTrader 5プラットフォームビルド4380:パフォーマンスの改善

ターミナル

  1. 特定の条件下でLive Updateシステムの誤動作を引き起こす可能性のあるエラーを修正しました。
  2. エキスパートアドバイザーのリストを開くための新しいホットキーAlt+Xを追加しました。
  3. クラッシュログに報告されるエラーを修正しました。

MetaTester

  1. ビットマップグラフィックオブジェクトの特定のプロパティを設定する際のエラーを修正しました。
  2. 仮想環境で動作している場合やプロセッサがAVX命令セットをサポートしていない場合は、テストエージェントのMQL5クラウドネットワークへの接続が禁止されるようになりました。

Webターミナル

  1. チャート上のワンクリック取引パネルの操作におけるエラーを修正しました。
  2. チャート上でワンクリック取引パネルを有効にしたときに開く警告ダイアログを修正しました。
31 5月 2024
MetaTrader 5 Build 4350:Webプラットフォーム分析オブジェクトの追加とMetaEditorウェルカムページ

MetaEditor

  1. アルゴリズム取引とアプリケーション開発の旅を始めるユーザーを支援するために、ウェルカムページを追加しました。



    初心者向け教材
    「はじめに」セクションでは、MQL5.comで入手可能な教育資料(言語ドキュメント、書籍、記事、開発者フォーラム、コード ベースライブラリ)を紹介しています。また、アプリケーションマーケット、フリーランス、取引シグナルなど、知識を応用して収益化できるサービスも紹介しています。

    ドキュメントと書籍のセクションでは、利用可能な学習教材の詳細な説明を見つけることができます。

    開発者向けの便利な機能
    「新着情報」セクションでは、開発者が最新情報を入手するための重要な情報がまとめられています。


    さらに、最近開いたファイルのリストもここに表示され、すぐにアクセスできます。



    マーケットで積極的にアプリケーションを販売しているユーザーにとって、「私の売上」レポートはパフォーマンスを評価するための貴重なツールとなります。以下へのアクセスが提供されます。

    • 長期にわたる包括的な売上とダウンロードの統計
    • 販売地域(製品の人気が最も高い地域についての洞察を提供)。これにより、特定の言語へのローカライズや特定地域を対象とした広告キャンペーンなど、プロジェクトのさらなる拡大のためのアイデアが提案される可能性があります。
    • 売上高と収益に基づく、最も売れている製品のデータ。グラフは、ライセンスの種類(フルライセンスまたは一定期間のレンタル)に基づいてフィルタリングできます。さらに、ここでは製品価格の変化を示すグラフを見ることができます。これらすべてが顧客を理解するのに役立ちます。
    • 各製品の詳細なダウンロードおよび販売統計


  2. 組み込み検索が改善されました。上部の検索バーは、現在のドキュメント内またはローカルファイル内のテキストの検索にのみ使用されるようになりました。教育資料やコードをグローバルに検索するには、ツールボックスの別のセクションを使用します。


  3. AI Assistantに最新の ChatGPT モデルである GPT-4o のサポートが追加されました。コードを自動的に補完し、ヒントを取得するために使用できます。MetaEditor設定で新しいモデルを選択できます。


  4. ユーザーインターフェイスの翻訳を更新しました。

ターミナル

  1. 取引商品仕様における計算価格の表示精度が向上しました。
  2. 取引レポートのMFEおよびMAEの計算を修正しました。
  3. 経済指標カレンダーの国と通貨によるフィルタリング設定の保存と復元を修正しました。
  4. チャートへのテンプレートの適用を修正しました。チャートで取引履歴の表示が有効になっている場合、テンプレートを適用した後も対応するオブジェクトが消えなくなります。
  5. オプションボードのエラーを修正しました。ボードに銘柄を追加すると、特定の条件下でプラットフォームがフリーズする可能性がありました。
  6. ポジション編集ダイアログのエラーを修正しました。場合によっては、現在のストップロスとテイクプロフィットの値の代わりに、誤ったレベルが入力される可能性がありました。
  7. ユーザーインターフェイスの翻訳を更新しました。

MQL5

  1. ArrayResize関数を最適化し、高速化しました。特定の条件下では、関数の実行速度が最大40%高速化されます。
  2. ONNXのサポートを更新しました。
  3. サービスアプリケーションでのMessageBox関数呼び出しを修正しました。ダイアログ内でユーザーが押したボタンに関係なく、null値が返されていました。
  4. 一部のケースでMQL5プログラムの初期化が不完全になっていた問題を修正しました。
  5. いくつかのマクロの解析エラーを修正しました。多数の定数を使用したときにエラーが発生していました。


MetaTrader 5 Webターミナル

  1. 利用可能な分析オブジェクトのリストを拡張しました。定規を利用して時間と価格を測定したり、図形(長方形、楕円、三角形、円)を描いたり、チャートにラベルを追加したりできるようになりました。すべてのオブジェクトは左パネルにあります。


  2. オブジェクトの名前を変更する機能が追加されました 。
  3. 経済指標カレンダーとの統合を改善しました。データ要求を最適化、高速化しました。
  4. チャート操作を高速化しました。
  5. アプリケーションの起動と取引口座への接続が高速化されました。
  6. チャート上の取引操作の表示を制御する設定を修正しました。
  7. 契約仕様における証拠金要件の表示を修正しました。
  8. 履歴セクションの講座ステータスの表示を修正しました。画面が狭いデバイスでは問題が発生する可能性がありました。
  9. マーケットの深さの変更の表示を修正しました。
22 3月 2024
MetaTrader 5 build 4260:全般的な改善

ターミナル

  1. 購読サービスにおいて、無料製品に申し込む際のエラーを修正しました。特定の条件下では、該当するボタンがダイアログに表示されない場合がありました。
  2. ユーザーインターフェイスの翻訳を更新しました。
  3. クラッシュログに報告されるエラーを修正しました。

MQL5

  1. キーボードイベントのサポートを拡張しました。

    • OnChartEventハンドラにCHARTEVENT_KEYUPイベントを追加しました。主要なリリースに関連するイベントを追跡することができます。
    • デッドキーの処理を追加しました。これらは、直後に打たれたキーによって生成された文字の外観を変更するキーです。例えば、ギリシャ語のレイアウトでは、強調母音のά、έ、ύなどは、最初に「; 」を押してから母音を入力することで生成できます。このようなキーの押下は、TranslateKey関数を使って追跡することができます。
    • TranslateKey関数とTerminalInfoInteger関数を改良しました。OnChartEventでCHARTEVENT_KEYUPまたは CHARTEVENT_KEYDOWNイベントを受信すると、イベントが発生した時点の完全なキーボード状態を取得できるようになりました。例えば、ユーザーがZキーを押した場合、その瞬間にCtrlキーとShiftキーのどちらが押されたかを判断することができます。その他のイベントでは、関数は以前と同じように動作し続け、現在のキーボードの状態を返します。

  2. Alglibライブラリを更新しました。更新に伴い、CMatrixDoubleおよびCMatrixComplexクラスの以下のメソッドが修正されました。
    vector<double/complex> operator[](const int i) const;
    vector<double/complex> operator[](const ulong i) const;
    これらは、一定の戻り値を持つ単一のメソッドに取って代わられました。
    const vector<double/complex> operator[](const ulong i) const;
    この修正は、新しいAlglibのバージョンでは、mat[row][col]=xのコードが古いバージョンとは異なる動作をするため、結果の不正確な使用を捕捉するのに役立ちます。以前は、これは行列への書き込みを示していましつぁ。ここで、値は一時的なオブジェクトベクター<double/complex>に書き込まれ、記録後はすぐに破棄されます。

    戻り値にconstを追加することで、mat[row][col]=xを使用することができます。mat[row]は定数ベクトルを返すようになったので、その要素をmat[row][col]で上書きしようとするとコンパイルエラーになります。

  3. 特定の条件下でChartGet*関数が正しく動作しない可能性のあるエラーを修正しました。

MetaEditor

  1. 書籍『MQL5を使用したアルゴリズム取引のためのニューラルネットワーク』の内容を検索できるようにしました。この新しいオプションは、以前出版された『MQL5 Programming for Traders』と同じセクションに掲載されています。



テスター

  1. 多数のリモートエージェントを使用する際の最適化を修正しました。場合によっては、このエラーによってCPUが過剰に使用されることがあります。

Webターミナル

  1. 取引所執行モードの商品の指値注文の設定を修正しました。これで、発注中の注文の価格が現在価格に対して変化した場合(高くなったり安くなったりした場合)、注文の種類は、他の種類の商品のように、買い指値から売り指値に切り替わることはありません。そのため、ユーザーは市場より上に買い指値注文を、市場より下に売り指値注文を出すことができ、取引価格を確実に限定することができます。
  2. 気配値表示で選択された銘柄カウンターの表示を修正しました。
7 3月 2024
MetaTrader 5 build 4230:ビルトインアプリケーションの増加とONNXサポートの拡張

ターミナル

  1. 28個の新しいエキスパートアドバイザーと12個の新しい指標が標準プラットフォームパッケージに追加されました。アプリケーションは、ナビゲーターのExpert Advisors\Free RobotsセクションとIndicators\Free Indicatorsセクションで入手できます。各プログラムは、MQL5言語の学習に役立つ詳細なコメント付きのソースコードとして入手できます。

    ロボットは、3 Black Crows – 3 White Soldiers、Bullish Engulfing – Bearish Engulfing、Bullish Harami – Bearish Haramiなどのテクニカル指標とローソク足パターンに基づいて取引戦略を実行します。新しい指標は、カマリラ、デマーク、ドンチャン、フィボナッチ、ケルトナーなど、人気のあるチャネルを実装したものです。



  2. ナスダック市場データのサブスクリプションの開始に向けて準備が進められています。トレーダーはプラットフォームから直接、最大規模の取引所の1つから数百もの金融商品のリアルタイムの相場や詳細な価格履歴にアクセスできるようになります。サブスクリプションは、MetaQuotes-Demoサーバー上のデモ口座とMQL5.communityアカウントを持つユーザーであれば誰でも利用できます。



    開始するには、サブスクリプションを購入し、関連する銘柄を気配値表示に追加するだけです。これらの銘柄は通常の商品として使用できます。チャートを開いて、オブジェクトや指標を使用して分析し、ストラテジーテスターでエキスパートアドバイザーを実行します。すべての情報へのアクセスは、ブローカーと取引する通常の金融商品と同様に実装されます。

  3. 商品仕様の証拠金セクションを改善しました。このセクションには、各商品の証拠金率と計算値が掲載されています。



    特定の種類の銘柄の証拠金表示のエラーを修正しました。

  4. [ヘルプ]メニューにMQL5 Telegramチャネルへのリンクを追加しました。チャネルでは、新しいプログラミング記事のレビューや、コードベースからの無料のロボットや指標など、開発者にとって興味深いコンテンツが定期的に共有されます。重要な情報を見逃さないように、チャネルに登録して最新情報を入手してください。



  5. カスタム構成ファイルの[StartUp]セクションにShutdownterminalパラメーターのサポートが追加されました。このパラメータを使用してプラットフォームを起動し、スクリプトを使用して1回限りのタスクを実行します。たとえば、チャートのスクリーンショットを取得するスクリプトがあるとします。プラットフォームとともにこのスクリプトを起動する構成ファイルを作成できます。このファイルでShutdownTerminalを「Yes」に設定すると、スクリプトの完了直後にプラットフォームが自動的にシャットダウンされます。
  6. ネットワークプロトコルとマーケット製品の保護が強化されています。
  7. デモ口座のシグナルサービスのサポートを無効にしました。デモ口座の拡張統計にアクセスするには、新しい取引レポートを使用します。成長、バランス、資本のグラフ、方向性や商品別の取引分布図など、戦略の収益性とリスクを特徴付ける多数の指標が含まれます。
  8. [ヘルプ]メニューの証券会社契約リンクの表示を修正しました。
  9. VPSレンタルにおける最適なサーバーの選択が改善されました。
  10. ターミナル:ナビゲーターのセクション間を切り替えるときのサブスクリプションページの更新が修正されました。
  11. ターミナル:予備口座を開設する際の契約リストの更新を修正しました。
  12. ユーザーインターフェイスの翻訳を更新しました。

MQL5

  1. ENUM_MQL_INFO_INTEGER列挙にMQL_STARTED_FROM_CONFIGプロパティを追加しました。スクリプト/エキスパートアドバイザーが構成ファイルのStartUpセクションから起動された場合はtrueを返します。これは、スクリプト/エキスパートアドバイザーがターミナルの起動に使用した構成ファイルで指定されていることを意味します。
  2. ONNXモデルのサポートを拡大し続けます。

    機械学習タスクでは、必ずしも高い計算精度が必要なわけではありません。計算を高速化するために、一部のモデルではFloat16やFloat8などの低精度のデータ型を使用します。ユーザーが関連データをモデルに入力できるようにするために、次の関数がMQL5に追加されました。
    bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
    boolArrayToFP16(ushort&dst_array[],constdouble&src_array[],ENUM_FLOAT16_FORMATfmt);
    bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    boolArrayFromFP16(double&dst_array[],constushort&src_array[],ENUM_FLOAT16_FORMATfmt);
    bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    16ビットと8ビットの実数形式は異なる場合があるため、変換関数の「fmt」パラメータは、どの数値形式を処理する必要があるかを示す必要があります。16ビットバージョンの場合、新しい列挙体NUM_FLOAT16_FORMATが使用されます。現在、その値は次のとおりです。


    8ビットバージョンの場合、新しいENUM_FLOAT8_FORMAT列挙が使用されます。現在、この列挙には次の値があります。

    • FLOAT_FP8_E4M3FN:8ビット浮動小数点数(4ビット-指数、3ビット-仮数)。通常は係数として使用されます。
    • FLOAT_FP8_E4M3FNUZ:8ビット浮動小数点数(4ビット-指数、3ビット-仮数)。NaNをサポートしますが、負のゼロとInfはサポートしません。通常は係数として使用されます。
    • FLOAT_FP8_E5M2FN:8ビット浮動小数点数(5ビット-指数、2ビット-仮数)。NaNとInfをサポートします。通常、勾配に使用されます。
    • FLOAT_FP8_E5M2FNUZ:8ビット浮動小数点数(5ビット-指数、2ビット-仮数)。NaNをサポートしますが、負のゼロとInfはサポートしません。勾配にも使用されます。

  3. 機械学習で使用される新しい行列およびベクトル手法を追加しました。

    • PrecisionRecallは値を計算して適合率-再現率曲線を構築します。ClassificationScoreと同様に、このメソッドは真の値のベクトルに適用されます。
    • ReceiverOperatingCharacteristic:受信者動作特性(ROC)曲線を構築するための値を計算します。ClassificationScoreと同様に、このメソッドは真の値のベクトルに適用されます。

  4. ONNXランタイムがバージョン1.16に更新されました。リリースの詳細については、GitHubを参照してください。
  5. Python統合パッケージがバージョン5.0.4200に更新され、Python3.12のサポートが追加されました。コマンド「pip install --upgrade MetaTrader5」を使用してパッケージを更新し、最新の変更を取得します。
  6. 場合によってはOrderCalcMargin関数の動作を修正しました。
  7. ENUM_DEAL_REASON列挙に DEAL_REASON_CORPORATE_ACTIONプロパティを追加しました。これは、証券の合併または名前変更、顧客の別の口座への移管など、コーポレートアクションの結果として実行された取引を示します。
  8. Compareメソッドで複素数のベクトルと行列を比較するためのサポートが追加されました。比較には、複素数間の距離の推定が含まれます。距離はsqrt(pow(r1-r2, 2) + pow(i1-i2, 2)として計算され、すでにイプシロンと比較できる実数です。
  9. カラータイプ変数のRGB形式のテキストへの変換が修正されました。
  10. 複素固有値の場合にEigメソッドで固有ベクトルを取得した結果が返される問題を修正しました。複素数の評価のためのメソッドオーバーロードを追加しました。

MetaEditor

  1. 最近リリースされた書籍「トレーダーのためのMQL5プログラミング」へのリンクをHelp\MQL5.communityメニューに追加しました。この書籍は検索システムにも追加されているため、MetaEditorから必要な情報を直接見つけることができます。




  2. ビルトイン検索の改善:

    • [ツールボックス]ウィンドウの検索結果セクションは、オンライン検索結果(ドキュメント、記事、書籍など)の「検​​索」と、ローカル結果の「ファイル内検索」の2つのタブに分割されています。
    • 別の検索文字列が結果セクションに追加されました。これは、MetaEditorのメインツールバーの検索バーの代わりに使用できます。

  3. コマンドラインからコマンドをコンパイルする際のAVX、AVX2、AVX512モードのサポートが追加されました。コンパイルするには、/avx、/avx2、/avx512のいずれかのキーをコマンドに追加します。
  4. データベース操作用のSQLiteエンジンがバージョン3.45に更新されました。
  5. Internet Explorerのサポートを無効にしました。現在、HTMLページの表示にはMicrosoft Edge WebView2のみが使用されています。時代遅れのMSHTMLと比較して、新しいコンポーネントは最新のテクノロジへのアクセスを提供することにより、コンテンツ表示機能を大幅に拡張します。WebView2を使用すると、一部のMetaEditorセクションの外観が改善され、パフォーマンスが向上し、より応答性の高いインターフェイスが作成されます。
  6. 関数のオートコンプリート時にまれに発生するフリーズを修正しました。
  7. クラッシュログに報告されるエラーを修正しました。
  8. 関数のオートコンプリート時にまれに発生するフリーズを修正しました。

テスター

  1. テスト開始日がトリプルスワップ日にあたる場合のトリプルスワップの計算を修正しました。

MetaTrader5Webターミナル

契約仕様における証拠金要件の表示が改善されました。計算の比率と初期パラメータに加えて、仕様には最終証拠金値が表示されるようになりました。証拠金の値がポジションのボリュームに依存する場合、対応するレベルがダイアログに表示されます。



証拠金は仕様ウィンドウが開いた時点の商品価格に基づいて計算され、リアルタイムでは更新されません。したがって、値は参考値として考慮する必要があります。現在の価格に基づいて値を再計算するには、商品仕様を再度開きます。
18 1月 2024
MetaTrader 5 build 4150:MQL5の取引レポートのエクスポートと新しい機械学習メソッド

ターミナル

  1. 取引レポートのHTMLおよびPDFファイルへのエクスポートを追加しました。このオプションを使えば、取引実績を同僚や投資家と簡単に共有できます。ファイルメニューとレポートメニューに新しいエクスポートコマンドが追加されました。




  2. 気配値表示ウィンドウの現在の状態をCSVファイルに保存する機能を追加しました。これをおこなうには、コンテキストメニューのエクスポートを選択します。ファイルには、エクスポート時に選択したメトリクスが保存されます。より多くのデータを保存するには、コンテキストメニューから追加の列を有効にします。




  3. 契約仕様における証拠金要件の表示が改善されました。計算の比率や初期パラメータの代わりに、仕様に最終証拠金値が表示されます。証拠金の値がポジションのボリュームに依存する場合、対応するレベルがダイアログに表示されます。



    証拠金は仕様ウィンドウが開いた時点の商品価格に基づいて計算され、リアルタイムでは更新されません。したがって、値は参考値として考慮する必要があります。現在の価格に基づいて値を再計算するには、商品仕様を再度開きます。

  4. デモ口座のシグナルサービスのサポートを無効にしました。デモ口座の拡張統計にアクセスするには、新しい取引レポートを使用します。成長、バランス、資本のグラフ、方向性や商品別の取引分布図など、戦略の収益性とリスクを特徴付ける多数の指標が含まれます。
  5. 逆指値注文のテイクプロフィットおよびストップロスを編集する際の潜在的な利益/損失の値の表示を修正しました。
  6. 決済システムの運用に関する修正と改善。
  7. *.set ファイルから気配値表示に銘柄のセット を読み込むするときの重複チェックを修正しました。
  8. ParallelsのWebインストーラーを修正しました。M1/M2/M3を備えたmacOS上でこの仮想化システムを使用すると、プラットフォームが正しくインストールされるようになりました。
  9. ユーザーインターフェイスの翻訳を更新しました。
  10. クラッシュログに報告されるエラーを修正しました。

MQL5

  1. 機械学習で利用される行列やベクトルを操作する新しいメソッドを追加しました。

    • ConfusionMatrix:誤差行列を計算します。このメソッドは、予測値のベクトルに適用されます。
    • ConfusionMatrixMultilabel:各ラベルの誤差行列を計算します。このメソッドは、予測値のベクトルに適用されます。
    • ClassificationMetric:分類行列を計算して、実際のデータと比較して予測データの品質を評価します。このメソッドは、予測値のベクトルに適用されます。
    • ClassificationScore:分類行列を計算して、実際のデータと比較して予測データの品質を評価します。このメソッドは真の値のベクトルに適用されます。
     
  2. FileWrite関数によるUTF-8形式のテキストファイルへのデータ保存を修正しました。
  3. Signal*関数が無効化・非推奨にされ、空のシグナルセットを返すようになりました。

MetaEditor

  1. プロファイリングのためのサンプリングレートを向上しました。プロファイラーがアプリケーションの状態を1秒間に10,000回キャプチャするようになり、関数の実行速度をより正確に測定できるようになりました。
  2. 自動コーディングアシスタントAI Assistantの使用可能モデルを更新しました。ChatGPT-4 Turboモデルを追加し、古い実装を削除しました。
  3. 選択されたテキスト断片内の単語を置換する際のエラーを修正しました。

テスター

  1. 汎用最適化モードで発生する可能性のあるフォワードテストのフリーズを修正しました。
  2. MQL5プログラムの取引履歴を利用した操作を最適化・高速化しました。
  3. クローズ・バイ・オペレーションの利益計算を修正しました。メインテスト銘柄と一致しない取引商品でエラーが発生することがありました。

Webターミナル

  1. ブローカー側で関連プロパティが変更された場合、取引銘柄のプロパティが更新されるように修正しました。
  2. チャート上のローソク足実体の表示を修正しました。チャートに小さな実体が表示されないことがありました。
  3. 口座開設フォームの「国」フィールドの動作を修正しました。
20 10月 2023
MetaTrader 5 build 4040:改善と修正

ターミナル

  1. 新しい取引報告書の改善。成長グラフとドローダウン計算の最初の値の表示を修正しました。



  2. 口座を開設する際、トレーダーは社内のメールシステムを通じていくつかのメッセージを受け取ります。これらは、プラットフォームの機能およびビルトインサービスに関する資格情報および有用な情報を提供します。これらのメールを更新・改善し、50ヶ国語に翻訳し、デザインも一新しました。
  3. 口座入出金ページを最適化しました。
  4. ターミナル:新規注文時の出来高変更エラーを修正しました。取引商品の設定の組み合わせによっては、このフィールドを編集することができませんでした。
  5. デモ口座開設ダイアログのブローカー契約リンクの表示を修正しました。
  6. ユーザーインターフェイスの翻訳を更新しました。

MQL5

  1. 特定の条件下で、MQL5プログラムが起動時にクラッシュする可能性のあるエラーを修正しました。

MetaTrader 5 Webターミナル

  1. 取引履歴のストップロスとテイクプロフィットの表示を修正しました。
  2. ロギングを改善しました。新しいログメッセージは、接続の成功と失敗に関する情報を表示します。
  3. 気配値表示のコンテキストメニュー操作を修正しました。
  4. いた情報から取引する際の操作結果通知の表示を修正しました。
  5. 取引ダイアログを呼び出した際に、指標サブウィンドウがチャートから削除されてしまうエラーを修正しました。
  6. 分析オブジェクトの上に表示される取引レベルのチャート上でのドラッグを修正しました。
29 9月 2023
MetaTrader 5 build 4000 : 取引レポートとWebターミナルの改善

ターミナル

  1. 新しい取引レポートに、月次の資金増加額の表示を追加しました。メトリックスを表示するには、サマリーレポートを開き、バランスモードを選択します。



  2. 新しい取引レポートの表示を修正・改善しました。
  3. ONNXランタイムがバージョン1.16に更新されました。リリースの詳細についてはGitHubを参照してください。
  4. ユーザーインターフェイスの翻訳を更新しました。

MetaTrader 5 Webターミナル

  1. パスワード変更ダイアログと口座開設ダイアログの表示を修正しました。
  2. 履歴でのストップロスとテイクプロフィットの値を修正しました。関連するレベルの修正後にエラーが発生することがありました。
  3. リスク警告ダイアログにスクロールを追加しました。
  4. ユーザーインターフェイスの翻訳を更新しました。
  5. その他の改善と修正。
21 9月 2023
MetaTrader 5 build 3980:改善と修正

ターミナル

  1. 新しい取引レポートの改善。スワップ総額と銘柄別利益チャートの表示を修正しました。
  2. 入出金ページの最適化。決済システムとの新しいプラットフォーム統合の詳細については、ビルド3950のリリースノートをご覧ください。
  3. ストラテジーテスターを含むプラットフォーム全体の金融操作の再計算を最適化。利益、証拠金、その他多くのパラメータがより速く計算されるようになりました。
  4. ユーザーインターフェイスの翻訳を更新しました。

MQL5

  1. complex、vector<complex>、matrix<complex>型にConjugateメソッドを追加しました。これらは複素数の共役演算を実装しています。。
    //+------------------------------------------------------------------+
    //| スクリプトプログラム開始関数                                     |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1)  (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  2. ONNXモデル出力で「Sequence of maps」型を取り扱うようになりました。

    出力レイヤーにMapシーケンスを提供するONNXモデル(ONNX_TYPE_MAPのONNX_TYPE_SEQUENCE)の場合、構造体の動的配列または固定配列を出力パラメータとして渡さなければなりません。この構造体の最初の2つのフィールドは、ONNX_TYPE_MAPのキーと値の型に一致し、固定配列または動的配列でなければなりません。

    以下のPythonスクリプトで作成されたiris.onnxモデルをみてみましょう。
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    # ONNXフォーマットに変換
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    作成したonnxファイルをMetaEditorで開きます。

    MetaEditorでONNXモデルを見る


    Mapシーケンスはoutput_probabilityとして渡されます。これは、INT64型(MQL5ではlongに相当)のキーとfloat型の値を持ちます。この出力からデータを受け取るには、以下の構造体を宣言します。
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    ここでは、適切な型の動的配列を使用しました。この場合、このモデルのMapは常に3つのキーと値のペアを含むので、固定配列を使用することができます。

    Mapシーケンスが返されるので、output_probability出力からデータを受け取るためのパラメータとして、そのような構造体の配列を渡す必要があります。この配列は、特定のモデルの特性に応じて、動的または静的にすることができます。例:
    //--- 出力層output_probabilityからデータを受け取る配列を宣言する 
    MyMap output_probability[];
    
    ...
    
    //--- 実行中のモデル
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);

MetaEditor

  1. ONNXモデルビューアの出力タイプの表示を修正しました。

MetaTrader 5 Webターミナル ビルド3980

  1. Webターミナルのメインメニューに「Contact Broker」セクションを追加しました。
  2. SSL認証のエラー処理を追加。この認証タイプはWebターミナルではサポートされていません。代わりにワンタイムパスワードを使うことができます。
  3. メインメニューのデスクトッププラットフォームダウンロードリンクを修正しました。
  4. 口座管理ダイアログを修正。ブローカーがデモまたはリアル口座開設オプションを提供していない場合、関連するメニュー項目は非表示になります。
14 9月 2023
MetaTrader 5 build 3950:ターミナルでの入出金と取引レポートの更新

ターミナル

  1. クライアントターミナルで取引口座から直接資金を入出金するための残高操作をサポートしました。

    ブローカーがトレーダーに新しいレベルのサービスを提供できるように、最も人気のある支払いシステムの統合をMetaTrader 5プラットフォームに直接追加しました。入金やチャージの際は、好みの方法を選択してトランザクションを完了できます。さらに便利なことに、トレーダーは選択したカードを保存できるので、毎回カード情報を入力する必要がありません。ブローカーは支払いの詳細やカード番号を保存しません。ユーザーによって入力された決済データは、安全なチャネルを介してユーザーが選択した決済システムに送信されます。

    この新機能により、トレーダーはクライアントターミナルを離れることなく、ワンクリックで資金を管理することができるようになります。



  2. 取引履歴レポートを全面的に刷新しました。より見やすくなりました。情報提示のアプローチを見直し、味気ない統計レポートをインタラクティブなグラフやダイアグラムに変換しました。作業はまだ進行中ですが、変化はすぐに評価することができます。

    取引統計を表示するには、表示メニューの[レポート]をクリックします。






    レポートは4つのタブに分かれており、それぞれに集約された情報が掲載されています。

    1. 概要:取引概要:口座データ、全体の損益、入出金、残高、成長率、配当金のグラフなど
    2. 利益/損失:利益のあった取引と損失のあった取引のデータ。パラメータは、取引の種類(手動、アルゴリズム、コピー取引)によって分けられています。その結果は、月単位、年単位で取引額や金額を分析することができます。
    3. ロング/ショート:指定期間における購入と売却のダイナミックな比率、および購入と売却の収益性
    4. 銘柄:金融商品別の取引分析。ここでは、どの銘柄で利益を得たり損失を被ったりしているのか、どれくらいの頻度で取引しているのかや、取引のグラフや金額ボリュームを見ることができます。

    新しいレポートでは、タブをクリックするだけで、取引結果を様々な角度から視覚的に評価することができます。ヒストグラム、グラフ、ダイアグラムはインタラクティブで、マウスカーソルを置くと追加情報が表示されます。当社設計者は、できるだけシンプルでわかりやすいレポートを作ることに力を注いできました。ぜひお試しください。


  3. CPUがサポートしている場合、AVX2命令(英語)を使用できるようにした。これにより、ターミナルが起動するCPU能力をより効率的に使用することができます。インストールやアップデートの際、ターミナルがCPUアーキテクチャを独自に判断し、最適なバージョンをインストールするようになっています。起動中、ターミナルは、ターミナルが構築された命令セットを表示するメッセージ(AVX/AVX2)をログに送信します。
    Terminal	MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
    Terminal	Windows 10 build 19045, 20 x Intel Xeon  E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
    

    Advanced Vector Extensions (AVX)は、2008年に提唱されたインテルおよびAMDマイクロプロセッサ向けのx86命令セットの拡張です。さらに開発が進み、AVX2とAVX-512が登場しました(2013年)。

  4. X64とAVX上のMetaTrader 5ターミナルの2つのバージョンに加えて、AVX2コマンドを直接サポートするようにコンパイルされたデスクトップターミナルの3番目のバージョンをリリースしました。同時に、ONNXモデルはAVX2コマンドもサポートするようになりました。
  5. ブローカーの必要な規制文書へのリンクの表示を追加しました。ブローカーから必要な法的情報を、クライアントターミナルの[ヘルプ]>[取引条件]で直接入手できるようになりました。





  6. 証明書を使用した拡張認証を追加使用した場合の二要素認証を修正しました。
  7. MacOSで作業しているときの内部メールメッセージの表示を修正しました。
  8. Wineで作業しているときのシグナルウインドウの表示を修正しました。
  9. Linux用の新しいMetaTrader 4と5のインストーラーをリリースしました。
  10. ヘルプにLinuxとMacのターミナル版のダウンロードページを閲覧するためのコマンドを追加しました。トレーダーの便宜を図るため、ブラウザでの取引だけでなく、全プラットフォーム用のターミナルバージョンをWebサイトの特別セクションに設けました。





  11. 社内メールへの画像埋め込みを修正
  12. M1/M2プロセッサをサポートした新しいMac用MetaTrader 5ターミナルインストーラーをリリース。Wine 8.0.1への移行に伴い、古いバージョンを削除し、新しいものをインストールすることを強くお勧めします。8.0.0より古いバージョンのWineを使用している場合、アップデートの必要性に関するメッセージがターミナルログに表示されます。
  13. ネットワークスキャンメニューに取引サーバーへのpingを示す「VPSホスティングスピードアップ」を追加しました。これにより、内蔵VPSをレンタルした場合にネットワークの遅延がどのように減少するかを明確に確認することができます。




  14. パスワードの最低複雑性に関する要件を強化しました。

    • パスワードの長さは8文字以上
    • 少なくとも1文字の大文字と小文字、少なくとも1桁の数字、少なくとも1文字の特殊文字を含める必要がある

  15. ターミナルのログで使用可能なリンク。httpsリンクのある行をダブルクリックすると、ブラウザに移動されリンクが開かれるようになりました。
  16. [気配値表示]の取引商品の検索を修正しました。銘柄はまず名前で検索されからその他のフィールド(説明、ISINなど)で検索されるようになりました。
  17. 口座取引履歴レポートの残高を計算する際に、取引で得た利益の会計処理を修正しました。場合によっては、商品の種類が計算に考慮されていないことがありました。

VPSホスティング

  1. x64/AVX/AVX2コマンドセットでコンパイルされたEX5プログラムの送信および実行機能を追加しました。AVX512用のプログラムは、内蔵VPSではサポートされていません。
  2. 内臓VPSのレンタル拠点を27拠点まで拡大しました。最も近いサーバーの選択肢がさらに広がりました。

MQL5

  1. 拡張プロセッサ命令セット(AVX、AVX2、AVX512、FMA3)の選択を含むコンパイル設定の制御を追加しました。

    現代のCPUは、数学的計算を大幅に高速化する高度な命令セットを備えているが、現代のプログラムの大半はこれらの機能を使用していません。MQL5言語コンパイラにこれらの命令のサポートを追加し、より効率的で高速なコード生成を可能にしました。

    また、MQL5プログラムをコンパイルする命令の種類を選択する機能も追加しました。MetaEditorのオプションでは、単一のプログラムに対して一般的な設定を指定し、プロジェクト設定では個人的な設定を適用することができます。



  2. 行列およびベクトルメソッドにENUM_AVRAGE_MODEおよびENUM_CLASSIFICATION_METRIC列挙を追加しました。
  3. ベクトルにSetメソッドを追加しました。
  4. OpenCLの初期化を改訂し、OpenCL関数を含むMQL5プログラムは読み込むのではなく、最初に実際に使用することで初期化されるようになりました。
  5. SocketIsConnected関数呼び出し時のエラーを修正しました。
  6. カスタム指標のアンロード時にOnDeinitメソッドを呼び出す際の遅延を修正しました。
  7. indicator_labelプロパティの文字列の長さが正しく計算されず、グラフィカルオブジェクトのツールチップが正しく表示されないというコンパイラー・エラーを修正しました。
  8. マクロ本体で複数行のコメントを使用するのを修正しました。エラーが発生したマクロの例:
    #define MACRO1 /*
    #define MACRO2 */
    void OnStart()
    {
    #ifdef MACRO2
        Print( 2 );
    #else
        Print( 1 );
    #endif
    }
  9. MathAtan2関数のパラメータの順序を修正しました。順序がC++の同様の関数と一致するようになりました。
  10. ENUM_TERMINAL_INFO_STRING列挙に新しいTERMINAL_CPU_ARCHITECTURE値を追加しました。また、__CPU_ARCHITECTURE__マクロを追加し、ターミナルが動作しているコンピュータのCPUアーキテクチャを取得できるようにした。使用例
    void OnStart()
      {
       Print("CPU name:         ",TerminalInfoString(TERMINAL_CPU_NAME));
       Print("CPU cores:        ",TerminalInfoInteger(TERMINAL_CPU_CORES));
       Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE));  
       Print("");
       Print("EX5 architecture: ",__CPU_ARCHITECTURE__);                            
      }
    
    CPU name:         12th Gen Intel Core i9-12900K
    CPU cores:        24
    CPU architecture: AVX2 + FMA3
    
    EX5 architecture: AVX

  11. extern修飾子の動作を変更しました。extern修飾子を使った変数の宣言は、変数の事前宣言となります。

    新たな制限:
    1. 変数の事前宣言に初期化を含んではなりません。例えば、以下のコードをコンパイルすると、「X - extern variable initialization is not allowed」というエラーが出ます。
      extern int X=0;
      
      void OnStart()
        {
        }

    2. extern変数は、externキーワードなしでプログラム中で宣言されなければなりません。例えば、以下のコードをコンパイルすると、「unresolved extern variable X」というエラーが発生します。
      extern int X;
      
      void OnStart()
        {
        }

    3. externを使用する場合、初期化の順番に注意することが重要です。なぜなら、初期化されていない変数がアクセスされる場合があるからです。例えば、以下のコードでは、変数Yの初期化が変数Xの初期化より前におこなわれるため、ログに「Y=0 X=5」と記録されます。
      extern int X;
      int        Y=X;
      
      void OnStart(void)
        {
         Print("Y=",Y," X=",X);
        }
        
      int X=_Digits;

  12. ALGLIBライブラリを3.19に更新しました。ALGLIBは、数値計算手法やデータ解析アルゴリズムを扱うために設計された高性能数値解析ライブラリです。

    行列とベクトルを使用するように既存のライブラリクラスを修正し、ALGLIB 3.19からの新機能も追加しました。すべてのソースコードが改訂され、単一のデザインスタイルになりました。ALGLIBライブラリのソースコードは<ターミナルデータディレクトリ>\MQL5\Include\Math\Alglibにあります。テストスクリプトはMQL5\Scripts\UnitTests\Alglibにあります。

    残念なことに、MQL5用のALGLIBライブラリバージョン3.19の変更は非常に大きく、後方互換性がありません。MQL5バージョン3.5用のALGLIBライブラリを使用している場合は、明示的にプログラムをチェックし、必要な変更をおこなう必要があります。

    ライブラリ自体に加え、テストスクリプトも更新されました。テストの数は、クラスが62から91に、インターフェイスが143から152に増加しました。このように、MetaTrader 5プラットフォームの開発者は、トレーダーに最も効率的なソリューションを提供しています。

    • MQL5言語は、スピードの点ではC++に匹敵する
    • SQLiteデータベースの組み込み処理、OpenCL計算、DirectXサポート、Pythonとの統合
    • ファジー論理統計ALGLIBの更新を含む数学ライブラリ

MetaEditor

  1. CPUがサポートしている場合、AVX2命令(英語)を使用できるようにした。
  2. コンパイル中にフリーズすることがあったエラーを修正。
  3. デバッグ時のローカル変数の表示を改善しました。

テスター

  1. AVX2命令がCPUでサポートされている場合に使用できるようにしました。
ユーザーインターフェイスの翻訳を更新しました。

クラッシュログに報告されるエラーを修正しました。


MetaTrader 5 Webターミナル ビルド3950

  1. チャート設定に売り呼び値の表示を追加しました。




  2. 加速された初期ターミナル負荷。
  3. パスワード変更機能を追加しました。
  4. パスワードの削除と保存機能を追加しました。
  5. 取引履歴を表示するカスタム期間を追加しました。
  6. パスワードの強制変更を修正しました。
  7. Diff(建値とTP/SLレベル間の距離)の計算を修正しました。





  8. すべての注文/取引を決済する際のティックストップエラーを修正しました。
  9. 経済カレンダーイベントの表示を修正しました。オプションが有効になっているにもかかわらず、チャートに表示されないことがありました。
  10. チャートの銘柄を変更すると指標がリセットされる問題を修正しました。
  11. 電話・メール確認時のリアル口座開設フォームのエラーを修正しました。
  12. 新しい翻訳を追加し、既存の翻訳を修正しました。

8 6月 2023
MetaTrader 5 build 3800:BOC注文、AIコーディングアシスタント、ONNXのサポート強化など

ターミナル

  1. 新しい注文処理ポリシーであるパッシブ/BOC (Book or Cancel)のサポートを追加しました。



    BOCのポリシーでは、注文は[板情報](オーダーブック)にしか出せないことになっています。注文後すぐに約定できる場合、この注文はキャンセルされます。このポリシーは、発注された注文の価格が現在の市場よりも悪くなることを保証します。BOCはパッシブ取引を実装するために使用されます。注文が出されたときにすぐに実行できないことが保証されているため、現在の流動性には影響しません。この処理ポリシーは、取引所執行モードの指値注文および逆指値注文にのみ対応しています。

    新しい処理ポリシーの有無は、証券会社によって異なります。

  2. HTMLコンテンツの表示にMicrosoft Edge WebView2が使用されるようになりました。

    旧来のMSHTMLに比べ、現代技術へのアクセスを提供することで、コンテンツ表示機能が大幅に拡張されます。WebView2を使用することで、一部のプラットフォームセクションの外観を改善し、パフォーマンスを向上させ、より応答性の高いインターフェイスを実現します。特に、新コンポーネントは、マーケット、シグナル、VPSの各セクションに影響します。
    WebView2のフルサポートはWindows 10で導入されました。すべてのユーザーが最新のOSバージョンにアップグレードすることを強くお勧めします。プラットフォームは、Windows 7とWineではMSHTMLを使い続けますが、新機能は利用できません。また、利用可能なすべてのオペレーティングシステムのアップデートをインストールすることを強くお勧めします。推奨最低バージョンはWindows 10 21H2(ビルド19044、2021年11月)です。

  3. マーケットセキュリティシステムを改善しました。ここで、製品を実行するためには、製品を購入したのと同じMQL5アカウントで、ユーザーがプラットフォームで認証されている必要があります。アカウントは[ツール]>[オプション]>[コミュニティ]で指定する必要があります。



    アカウントが指定されていない場合、または無効なアカウントが指定されている場合、製品は起動せず、プラットフォームジャーナルに以下のメッセージが表示されます。
    'ProductName' requires active MQL5 account in Tools->Options->Community
  4. 履歴セクションのコンテキストメニューに[Overview]を追加しました。その口座の取引レポートが開かれます。



  5. 二要素認証ダイアログの表示不具合を修正しました。ターミナルに同じ番号で異なる証券会社で開設された複数の口座がある場合、口座接続フォームでワンタイムパスワード欄を表示できないことがありました。
  6. DRAW_COLOR_CANDLESの表示スタイルを持つ指標の高速描画を実装しました。
  7. 取引レポート作成時のエラーを修正しました。特定の条件下で、チャート上の利益と資本の値が正しく表示されないことがありました。
  8. 取引報告書にコストの表示を追加しました。この値は、銘柄の現在の中点価格に対して取引をおこなう際に発生するコストの合計(中点スプレッドコスト)を示しています。スプレッドによりトレーダーが取引で失う金額です。この値の有無は、証券会社によって異なります。
  9. UI翻訳を更新しました。
  10. 特にmacOSシステムでのWineでの安定性を向上させました。古いターミナルを完全に削除して、再インストールすることをお勧めします。


  11. パッケージのインストールやアップデートのダウンロード手順を高速化しました。ディストリビューションパッケージを選択する際に、ユーザーのコンピューターでAVXが利用可能かどうかを分析する機能を改善しました。
  12. WebプロトコルでTLS 1.3への対応を可能にしました。TLS 1.0は非推奨で安全でないとされているため、無効化されています。
  13. 取引履歴レポートにおける代理店手数料の会計処理を修正しました。最終的な利益を計算する際に、該当する取引を無視することもできます。
  14. アカウント接続ダイアログで、サーバーを変更できないように修正しました。ターミナル内に異なる証券会社から同じ番号の口座が複数ある場合に問題が発生していました。
このビルド以降、インストーラーは64ビットプラットフォーム版でのみ動作するようになります。32ビット版のサポートは終了します。以前インストールした32ビットプラットフォーム版は、2024年1月1日まで動作します。

MQL5

  1. ENUM_STATISTICS列挙に新しいSTAT_COMPLEX_CRITERION値を追加しました。最適化の結果として算出された複素数基準値を取得するプロパティとして使用します。
  2. 渡された行列またはベクトルに基づいて回帰指標を計算するために使用されるRegressionMetricメソッドを改善しました。予測データの品質を評価する真の値を渡すためのパラメータvector_trueとmatrix_trueを追加しました。
    double vector::RegressionMetric(
       const vector& vector_true,            // true values
       const ENUM_REGRESSION_METRIC  metric  // metric
       );
     
    double matrix::RegressionMetric(
       const matrix& matrix_true,            // true values
       const ENUM_REGRESSION_METRIC metric   // metric
       );
     
    vector matrix::RegressionMetric(
       const matrix& matrix_true,            // true values
       const ENUM_REGRESSION_METRIC metric,  // metric
       const int                      axis   // axis
       );
  3. LinearRegressionメソッドを追加しました。渡されたベクトル/行列の線形回帰値を計算したベクトル/行列を返します。
    vector vector::LinearRegression();
     
    matrix matrix::LinearRegression(
       ENUM_MATRIX_AXIS axis=AXIS_NONE       // 回帰が計算される軸
       );
    例:
    vector vector_a;
    //--- ベクトルを価格で埋める
    vector_a.CopyRates(_Symbol,_Period,COPY_RATES_CLOSE,1,100);
    //--- 線形回帰を得る
    vector vector_r=vector_a.LinearRegression();
    その結果をグラフで可視化しました。


    LinearRegressionメソッドが返す結果を可視化


  4. 行列/ベクトル中のNaN値の数を返すHasNanメソッドを追加しました。
    ulong vector::HasNan();
    ulong matrix::HasNan();
    NaN値を持つ要素の適切なペアを比較する場合、CompareおよびCompareByDigitsメソッドはこれらの要素を等しいとみなしますが、通常の浮動小数点数の比較の場合はNaN != NaNです。

  5. ONNXモデルの操作に使用するOnnxTypeInfo構造体を変更しました。

    struct OnnxTypeInfo
      {
       ENUM_ONNX_TYPE       type;            // parameter type
       OnnxTensorTypeInfo   tensor;          // tensor description
       OnnxMapTypeInfo      map;             // map description
       OnnxSequenceTypeInfo sequence;        // sequence description
      };

    データ型は、新しいサブ構造を用いて構造体内で指定されます。

    • OnnxTensorTypeInfo:テンソル
    • OnnxMapTypeInfo:マップ
    • OnnxSequenceTypeInfo: シーケンス

    struct OnnxTensorTypeInfo
      {
       ENUM_ONNX_DATATYPE   data_type;       // data type in the tensor
       long                 dimensions[];    // number of elements
      };
    
    struct OnnxMapTypeInfo
      {
       ENUM_ONNX_DATA_TYPE  key_type;        // key type
       OnnxTypeInfo         type_info;       // value type
      };
    
    struct OnnxSequenceTypeInfo
      {
       OnnxTypeInfo         type_info;       // data type in the sequence
      };
    OnnxTypeInfo::type (ONNX_TYPE_TENSOR, ONNX_TYPE_MAP or ONNX_TYPE_SEQUENCE)に応じて、関連する部分構造体が満たされます。

  6. ONNX(Open Neural Network Exchange)モデルへの対応を強化しました。
  7. 指標バッファのデータをベクトルに取得できるCopyIndicatorBufferメソッドを追加しました。
    bool vector::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,ulong start_pos,ulong count);
    bool vector::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,ulong count);
    bool vector::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,datetime stop_time);
  8. FrameAddメソッドとFrameNextメソッドにおいて、2次元以上の配列を持つ操作を修正しました。
  9. CRedBlackTree::Remove標準ライブラリメソッドを修正しました。
  10. Fuzzy Logicライブラリの修正を実装しました。

MetaEditor

  1. 先進の自動コーディングアシスタントAI Assistantとの連携を追加しました。その運用は、OpenAIのモデルに基づいています。コメントや機能の一部を入力し、プロンプトを送信します。ニューラルネットワークは、プロンプトを分析し、アイデアを実装するためのコーディングオプションを提供します。

    ファイルの種類に応じて、各プロンプトの先頭に「MQL5 language」、「Python language」、「C++ language」という文字列が自動的に挿入されます。こうすると、ニューラルネットワークは必要な言語で結果を出します。

    AI Assistantは現在無料で、エディターですでに有効になっています。[ツール]>[オプション]>[AI Assistant]には、いくつかのオプションが用意されています。




    決済設定:

    • MQL5アカウントを使用する:このオプションは現在無料で利用できます。後日、MQL5のアカウント残高から直接サブスクリプションの支払いをおこなうことができるようになります。
    • サブスクリプションを購入して関連するキーがあれば、OpenAIのキーを使用します。

    以下はプロンプトの設定です。

    • モデル:リクエストを処理するニューラルネットワーク。現在、text-davinci-003とgpt-3.5-turboが利用可能です。gpt-4のサポートは近日中に追加される予定です。
    • 最大トークン:プロンプトに応答してモデルが返すことができるテキストユニットの数です。
    • 可変性:ニューラルネットワークがプロンプトにどれだけ厳密に従うかに影響します。値が大さいほど、結果のランダム性が高くなります。このオプションは、OpenAIのモデルにおけるemperatureパラメータに対応します。

  2. ONNXモデルのプロパティを表示する機能を追加しました。

    *.onnxファイルの内容をエディターで直接確認することができます。例を見るには、[ツールボックス]の[公開プロジェクト]タブで ONNX.Price.Predictionプロジェクトを探し、コンテキストメニューから[参加]を選択します。プロジェクトはコンピューターにダウンロードされ、ナビゲータに表示されます。



  3. Netronを使った機械学習モデルやニューラルネットワークの可視化機能を追加しました。このビューアは、ONNX、TensorFlow Lite、Caffe、Keras、ncnnなど、一般的なモデルをサポートしています。

    モデルを表示するには、ナビゲータでそのファイルを選択し、[Open in Netron]をクリックします。このユーティリティがインストールされていない場合は、GitHubのページが開くので、そこからお使いのOSに合ったインストーラーをダウンロードしてください。例えば、Windowsの場合は、Netron-Setup-X.X.X.exeを使用します。プログラムがインストールされていれば、すぐにモデルが開き、ナビゲータから見ることができます。


    以下が対応形式です。

    • armnn、caffemodel、circle、ckpt、cmf、dlc、dnn、h5、har、hd5、hdf5、hn、keras、kmodel、
    • lite、mar、meta、mge、mlmodel、mlnet、mlpackage、mnn、model、nb、ngf、nn、nnp、
    • om、onnx、ort、paddle、param、pb、pbtxt、pdiparams、pdmodel、pdopt、pdparams、prototxt、pt、pth、ptl、
    • rknn、t7、tfl、tflite、tmfile、tm、tnnproto、torchscript、uff、xmodel

  4. UI翻訳を更新しました。

テスター

  1. テストレポートにおける「平均負けトレード」指標の計算を修正しました。従来は、エントリ取引で手数料が発生した場合、誤ってエントリ取引を含めて計算することがありました。
  2. ストラテジーテスターのカスタム手数料オプションを改善しました。銘柄を設定する場合は、パス全体ではなく、その名前を指定します。
  3. ストラテジーテスターのアイコンを更新しました。新しいメタファーがあれば、より理解しやすくなります。

  1. クラッシュログに報告されるエラーを修正しました。

Webターミナル ビルド

  1. 取引履歴を改善しました。

    • 取引履歴で入出金、手数料、調整などの残高操作を表示するようにしました。
    • 取引履歴で残高、利益、手数料、入出金、注文数などの合計を表示するようにしました。
    • モバイル版で操作のソートと深さによる履歴のフィルタリング機能を追加しました。




  2. 銘柄契約仕様の強化:出来高制限、ティックサイズと値、初期証拠金とヘッジ証拠金の情報が追加されました。
  3. 配色を改善しました。

    • 未決注文は、チャート上ではグレーで表示されます。ポジションの色は方向によって異なり、赤は「売り」、青は「買い」を表します。新しい色は、チャート上に複数操作が表示されている場合に、より簡単にナビゲートすることができます。
    • ポジションを表示/編集する場合、このポジションとそのレベルのみが強調表示され、他のすべてのポジションと注文はグレーになり、そのレベルは価格スケールから非表示になります。従って、別々の業務を管理することが容易になります。
    • ストップロスの色が赤からオレンジに変更され、売りポジションとの混同を避けることができます。
    • ポジション決済時間を示すチャート上のアイコンを改善しました。テイクプロフィットで決済されたポジションには緑色のアイコンが、ストップロスで決済されたポジションには赤色のアイコンが使用されます。

  4. アラビア語、ブルガリア語、ベトナム語、ギリシャ語、インドネシア語、マレー語、オランダ語、ペルシャ語、ポーランド語、タイ語、ウクライナ語、ヒンディー語のインターフェース翻訳を追加しました。Webターミナルは2424の言語で利用できるようになりました。
  5. トルコ語のUI翻訳を修正しました。
  6. Webターミナルモバイル版で、未決注文の修正・削除を修正しました。
  7. チャート上の「クローズドマーケット」ツールチップを修正しました。
  8. 取引ダイアログのポジション決済ボタンで、利益の表示を修正しました。部分決済中にエラーが発生していました。
  9. チャート上の取引通知の表示を修正しました。
  10. 板情報で矢印を使ったボリューム変更を修正しました。
  11. 特定の条件下で、動作中の指標の設定がリセットされる可能性のあるエラーを修正しました。
  12. 新規口座開設時のユーザー名チェックを修正しました。従来は、名前にアポストロフィーがあるとエラーとされていました。
  13. リクオートの処理を修正しました。特定の条件下で、リクォート価格のダイアログが表示されない場合がありました。
  14. 一目均衡表指標の表示を修正しました。遅行スパン、上の雲、下の雲の各ラインが正しいオフセットで表示されます。
  15. 新規注文時の当初証拠金の確認を修正しました。ヘッジポジション会計システムでエラーが発生していました。
  16. 契約書仕様書ウィンドウのスクロールを修正しました。

MQL5.community

  1. MQL5クラウドネットワークのWebサイト(https://cloud.mql5.com)が全面リニューアルされました。

    世界中の何千台ものコンピュータの処理能力を利用して、取引戦略を最適化する方法をご紹介します。MQL5クラウドネットワークを使えば、多量の計算も数分で完了します。ネットワークへの参加方法、コンピュータリソースの提供による収入については、Webサイトをご覧ください。




  2. マーケット商品のスクリーンショットセクションを改善しました。最大1920*1800ピクセルの画像をアップロードして、アプリケーションの動作を説明することができます。また、スクリーンショットギャラリーも更新しました。カルーセルには画像のサムネイルが表示され、クリックするとフルサイズの画像が表示されます。



  3. フリーランスのセクション改善:初回注文時に、より多くのヒントをユーザーに提供するようになりました。

    • 要求仕様書の例と追加を促すリマインダー
    • 注文作成手順
    • テンプレート活用のヒント

    これらのヒントをもとに、注文を作成し、望ましい結果を得るためのお手伝いをします。




24 3月 2023
MetaTrader 5 build 3640:改善と修正

ターミナル

  1. 時折誤ったプラットフォームログが作成される問題を修正しました。
  2. ユーザーインターフェイスの翻訳を更新しました。

MQL5

  • グローバル変数のチェックを修正しました。異なる名前空間で同一の変数を宣言すると、コンパイラは、変数が既に宣言されているという誤った警告を出しました。

Webターミナル ビルド

  1. ポルトガル語へのユーザー インターフェイスの翻訳を追加しました。Webターミナルは12の言語で利用できるようになりました。
  2. 標準偏差インジケータを追加するためのダイアログを修正しました。
  3. マイナーな修正と改善。
17 3月 2023
MetaTrader 5 build 3640:11言語のWebターミナル

Webターミナル

  1. 10の広く話されている言語へのUI翻訳を追加しました。簡体字および繁体字中国語、フランス語、ドイツ語、イタリア語、日本語、韓国語、スペイン語、トルコ語、ロシア語です。このリストは、将来のバージョンでさらに拡張される予定です。言語を切り替えるには、関連するメニューを使用します。


    11言語対応のWeb端末インターフェイス


  2. 取引サーバーへの接続メカニズムを最適化しました。

MQL5

  1. MQL5:CopyTicksCopyTicksRangeCopyRates各メソッドにCOPY_TICKS_VERTICALフラグとCOPY_RATES_VERTICALフラグを追加しました。

    デフォルトでは、ティックと系列は横軸に沿って行列にコピーされます。つまり、データは行末の右側に追加されます。トレーニング済みのONNXモデル実行タスクでは、入力データを供給するために、このような行列を転置する必要があります。

    const long   ExtOutputShape[] = {1,1};    // model's output shape
    const long   ExtInputShape [] = {1,10,4}; // model's input shape
    #resource "Python/model.onnx" as uchar ExtModel[]// model as a resource
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    int OnStart(void)
      {
       matrix rates;
    //--- get 10 bars
       if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10))
          return(-1);
    //--- input a set of OHLC vectors
       matrix x_norm=rates.Transpose();
       vector m=x_norm.Mean(0);               
       vector s=x_norm.Std(0);
       matrix mm(10,4);
       matrix ms(10,4);

    メソッドを呼び出すときに追加のCOPY_RATES_VERTICALフラグ(ティックの場合はCOPY_TICKS_VERTICAL) を指定することで、余分なデータ転置操作を避けることができます。

    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    int OnStart(void)
      {
       matrix rates;
    //--- get 10 bars
       if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC|COPY_RATES_VERTICAL,2,10))
          return(-1);
    //--- input a set of OHLC vectors
  2. ENUM_CHART_PROPERTY_INTEGER列挙に新しいCHART_SHOW_TRADE_HISTORY値を追加しました。このプロパティは、チャート上の取引履歴からの取引の表示を制御します。ChartGetIntegerおよびChartSetInteger関数を使用して、プロパティを取得および設定します。チャート上の取引表示の詳細については、プラットフォームのドキュメントをお読みください。

MetaEditor

  • 特定の条件下でファイルのコンパイル中に発生する可能性があったインターフェイスのフリーズを修正しました。

ターミナル

  • クラッシュログに報告されるエラーを修正しました。
10 3月 2023
MetaTrader 5ビルド3620:Webターミナルの改善、ONNXサポート、MQL5の高速行列乗算

ターミナル

  1. 取引レポートの合計利益計算を修正しました。
  2. 気配値表示ウィンドウから利用できる取引商品のファンダメンタルズデータを更新しました。
  3. LinuxシステムのWine7.0.1での取引プラットフォームの起動を修正しました。
  4. 検索バーから板情報に銘柄を追加できるように修正しました。説明で見つけた銘柄を、その行をクリックしてリストに追加することができませんでした。

MQL5

  1. ONNX(Open Neural Network Exchange)モデルを用いた操作に対応しました。

    ONNXは、機械学習モデルのためのオープンソースフォーマットです。このフォーマットは、ChainerCaffee2PyTorchを含む多くのプラットフォームでサポートされています。専用ツールを使ってONNXモデルを作成し、MQL5アプリケーションに統合して、取引の意思決定に利用することができます。

    サポートされるすべての関数は、ドキュメントに記載されています。テスト用ONNXモデルの例は、MetaEditorの公開プロジェクトで確認できます。ツールボックスで[公開プロジェクト]からONNX.Price.Predictionプロジェクトを探し、コンテキストメニューから[参加]を選択します。プロジェクトがコンピューターにダウンロードされ、ナビゲーターに表示されます。


    公開プロジェクトにおけるONNXモデルとの連携例


    プロジェクトをコンパイルし、EURUSDH1で実行し、結果を確認することができます。

    モデルとそれを実行するMQL5コードに加え、プロジェクトにはPricePredictionTraining.pyというPythonスクリプトも含まれています。これは、ONNXモデルを自分で作成する方法を紹介するものです。スクリプトを実行するには、Pythonをコンピュータにインストールして、次のようにコマンドプロンプトから必要なモジュールをインストールしてください。

    python.exe -m pip install --upgrade pip
    python -m pip install --upgrade tensorflow
    python -m pip install --upgrade pandas
    python -m pip install --upgrade scikit-learn
    python -m pip install --upgrade matplotlib
    python -m pip install --upgrade tqdm
    python -m pip install --upgrade metatrader5
    python -m pip install --upgrade onnx==1.12
    python -m pip install --upgrade tf2onnx
    ONNXの使用方法は、ドキュメントに記載されています。

  2. 一般行列乗算(GeMM)のサポートを追加しました。このアルゴリズムは、タスクの並列化とL1/L2/L3キャッシュの最適化された利用により、一部のプロセッサタイプでの計算を高速化します。計算速度は、KernelLibrary(MKL)(英語)やOpenBLASなどの一般的なパッケージと同程度です。詳細な比較テストはまもなく公開されます。

    新しいアルゴリズムは現在、matrix::GeMMメソッドでサポートされています。お使いのプロセッサがAVXおよびFMA(英語)命令をサポートしている場合(2013年以降にリリースされたほとんどのプロセッサがこれらの命令をサポートしています)、アルゴリズムは自動的に有効化されます。

  3. 行列とベクトルをDLLに転送する機能が追加されました。これにより、外部変数から、該当する型を利用する関数をインポートすることができます。

    行列とベクトルは、バッファへのポインタとしてDLLに渡されます。たとえば、float型の行列を渡すには、DLLからエクスポートされた関数の対応するパラメータが、float型のバッファポインタを受け取る必要があります。次は例です。

    MQL5
    #import "mmlib.dll"
    bool sgemm(uint flags,matrix<float> &C,const matrix<float> &A,const matrix<float> &B,ulong M,ulong N,ulong K,float alpha,float beta);
    #import
    C++
    extern "C" __declspec(dllexport) bool sgemm(UINT flags,float *C,const float *A,const float *B,UINT64 M,UINT64 N,UINT64 K,float alpha,float beta)
    バッファに加えて、正しく処理されるために行列とベクトルのサイズを渡す必要があります。

  4. 同期された時系列をMqlRatesから別の配列にコピーするための新しいCopySeries関数を追加しました。

    CopySeries関数を使用すると、1回の呼び出しで必要な時系列のみを別の指定された配列に取得できますが、時系列データはすべて同期されます。これは、特定のインデックスNで結果として得られる配列のすべての値が、指定された銘柄/時間枠のペアの同じバーに属することを意味します。したがって、プログラマーはバーの開始時間までに受信したすべての時系列の同期を確保する必要はありません。

    時系列の完全なセットをMqlRates配列として返すCopyRatesとは異なり、CopySeries関数を使用すると、特定の必要な時系列を個別の配列に取得できます。これは、時系列の種類を選択するためのフラグの組み合わせを指定することで実現できます。関数に渡される配列の順序は、MqlRates構造体のフィールドの順序と一致する必要があります。

    struct MqlRates
      {
       datetime time;         // period beginning time
       double   open;         // open price
       double   high;         // high price for the period
       double   low;          // low price for the period
       double   close;        // close price
       long     tick_volume;  // tick volume
       int      spread;       // spread
       long     real_volume;  // exchange volume
      }

    したがって、現在の銘柄/時間枠の最後の100バーの「time」、「close」、「real_volume」時系列の値を取得する必要がある場合は、次の呼び出しを使用します。

    datetime  time[];
    double    close[];
    long      volume[];
    CopySeries(NULL,0,0,100,COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_VOLUME_REAL,time,close,volume);
    

    time、close、volume配列の順序は、MqlRates構造体内のフィールドの順序と一致する必要があります。rates_maskの値の順序は無視されます。マスクは次のようになります。

    COPY_RATES_VOLUME_REAL|COPY_RATES_TIME|COPY_RATES_CLOSE


    //--- input parameters
    input datetime InpDateFrom=D'2022.01.01 00:00:00';
    input datetime InpDateTo  =D'2023.01.01 00:00:00';
    input uint     InpCount   =20;
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart(void)
      {
    //--- arrays to get timeseries from the Rates structure
       double   open[];
       double   close[];
       float    closef[];
       datetime time1[], time2[];
    //---request close prices to a double array
       ResetLastError();
       int res1=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                           COPY_RATES_TIME|COPY_RATES_CLOSE, time1, close);
       PrintFormat("1. CopySeries  returns %d values. Error code=%d", res1, GetLastError());
       ArrayPrint(close);
       
    
    //--- now also request open prices; use float array for close prices
       ResetLastError();
       int res2=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                           COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_OPEN, time2, open, closef);
       PrintFormat("2. CopySeries  returns %d values. Error code=%d", res2, GetLastError());
       ArrayPrint(closef);
    //--- compare the received data
       if((res1==res2) && (time1[0]==time2[0]))
         {
          Print("  | Time             |    Open      | Close double | Close float |");
          for(int i=0; i<10; i++)
            {
             PrintFormat("%d | %s |   %.5f    |   %.5f    |   %.5f   |",
                         i, TimeToString(time1[i]), open[i], close[i], closef[i]);
            }
         }
    /*  Result
            1. CopySeries  returns 0 values. Error code=0
            [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
            [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
            2. CopySeries  returns 0 values. Error code=0
            [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
            [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
              | Time             |    Open      | Close double | Close float |
            0 | 2023.03.01 17:00 |   1.06660    |   1.06722    |   1.06722   |
            1 | 2023.03.01 18:00 |   1.06722    |   1.06733    |   1.06733   |
            2 | 2023.03.01 19:00 |   1.06734    |   1.06653    |   1.06653   |
            3 | 2023.03.01 20:00 |   1.06654    |   1.06520    |   1.06520   |
            4 | 2023.03.01 21:00 |   1.06520    |   1.06573    |   1.06573   |
            5 | 2023.03.01 22:00 |   1.06572    |   1.06649    |   1.06649   |
            6 | 2023.03.01 23:00 |   1.06649    |   1.06694    |   1.06694   |
            7 | 2023.03.02 00:00 |   1.06683    |   1.06675    |   1.06675   |
            8 | 2023.03.02 01:00 |   1.06675    |   1.06684    |   1.06684   |
            9 | 2023.03.02 02:00 |   1.06687    |   1.06604    |   1.06604   |
    */
      }
  5. OrderSend関数の動作を修正しました。同じ口座が複数のプラットフォームで同時に使用された場合、関数リクエストは間違った注文チケットを返す可能性がありました。
  6. EX5ライブラリのインポートを修正しました。インポートしたライブラリの名前と、インポート先のファイル名が一致しない場合はエラーとなります。

MetaEditor

  1. 共有プロジェクトメンバーへのプッシュ通知送信を追加しました。新しいオプションでは、プロジェクトの設定とファイルの変更についてユーザーに通知できます。通知を有効にするには、MQL5.communityプロファイルの[設定\セキュリティ]セクションにMetaQuotes IDを入力します。


    プロジェクトの更新をプッシュ通知でお知らせ


  2. ナビゲーターのファイルアイコンを更新しました。新しく、よりシンプルなメタファーで、より理解しやすくなっています。

テスター

  1. |」が含まれている場合に入力文字列パラメータが切り捨てられるエラーを修正しました。

MetaTrader 5 Webターミナルビルド3620

  1. Webターミナルインターフェイス用の既製のカラーテンプレートを追加しました。テンプレートは、チャートのバーと線の表示、気配値表示での価格と口座の資産報告に影響します。当社のデザインチームは、お客様の提案と伝統的な色の組み合わせに基づいて、カラーテンプレートプリセットを用意しました。


    新しいWebターミナルのカラーテンプレート


  2. 銘柄指定ウィンドウを再設計しました。取引商品データは、見やすいように論理ブロックに再編成されています。


    取引商品指定画面の更新


  3. Webターミナルを介したリアル口座の開設を修正しました。登録フォームに記入した後、サーバーがエラーを返すことがありました。
  4. 取引ダイアログのエラーを修正しました。ポジション変更ダイアログが開いているときにツールボックスウィンドウでXボタンを押してポジションを閉じた場合、ダイアログの内容がリセットされていませんでした。更新後、ダイアログは新しい発注モードに自動的にリセットされます。
  5. 口座管理ダイアログのサーバーフィールドの表示を修正しました。
  6. ツールバーの現在の時間枠の表示を修正しました。
  7. 取引ダイアログで、原資産単位での出来高の表示を修正しました。
  8. ストップロスとテイクプロフィットレベルの変更を修正しました。値の1つを変更すると、特定の条件下で2つ目の値がリセットされる可能性がありました。
  9. 投資リスク警告の表示を修正しました。
6 3月 2023
iPhone/iPad向けMetaTrader 5:チャート取引と分析の機能改善
  1. チャートからストップ注文とストップリミット注文を出す機能を追加しました。

    以前のバージョンではリミット注文のみが利用可能でした。下部のチャートパネルのボタンを連続して押して、必要なタイプを選択します。


    チャートからストップ注文とストップリミット注文を出す


  2. チャートからポジション決済や指値注文の削除を実行できるようになりました。チャートでポジションまたは注文レベルを選択すると、関連するコマンドが下部の取引パネルに表示されます。


    チャートからポジションと注文を管理する


  3. 価格チャートの右枠をシフトする機能を改善しました。シフトを変更するには、垂直セパレータが表示されるまで、チャートを最後の価格までスクロールしてから、下のチャートスケールにある三角形をドラッグします。


    下の目盛りの三角形をドラッグしてチャートシフトを変更


  4. チャートに分析オブジェクトをコピーする機能を追加しました。これにより、チャートのマークアップが高速になります。長押ししてオブジェクトメニューを開き、[コピー]を選択します。

    分析オブジェクトのコピーの作成


  5. さまざまな時間枠でインジケータの表示を管理する機能を追加しました。インジケータが特定のチャート期間に適していない場合は、非表示にして、画面で他の分析ツールのために場所を空けることができます。


    異なる時間枠でのインジケータの表示を管理する


  6. 銘柄指定ウィンドウに銘柄手数料の表示を追加しました。


    商品仕様で手数料額を調べる


  7. パスワード回復リンクを追加しました。アカウントのパスワードは、関連する証券会社を介してのみ復元できます。リンクには、証券会社の連絡先の詳細が表示されます。


    パスワードの回復に関するヘルプ


  8. MQL5.communityチャンネルへのリンクを共有する機能を追加しました。


    アプリを介してチャンネルへのリンクを共有する


  9. 取引制限のある口座に接続する際のユーザーエクスペリエンスを向上しました。

    取引は、投資家モードで接続している、取引契約が受け入れられていない、証券会社の検証が完了していないなどのさまざまな理由で制限される可能性があります。以前は、取引機能が利用できない理由は説明されていませんでした。

    取引が制限されている場合、取引セクションの注文ボタンがグレー表示されるようになりました。ボタンを押すと、関連する情報と推奨事項が表示されます。


    取引制限時のお役立ち情報


  10. 高度な認証に使用されるSSL証明書によるワークフローを改善しました。

    ユーザーが高度な認証を使用して口座に接続すると、必要なアクションの簡単な説明が表示されるようになりました。


    SSL証明書を使用した操作の改善


    証明書は、PFXファイルからインポートできます。必要なファイルを「ファイル」アプリに保存してから、開始ダイアログのインポート機能を使用します。

    また、証明書をファイルにインポートすることも可能になり、他のデバイスで証明書を使用できるようになりました。これをおこなうには、[設定]\[証明書]に移動し、証明書メニューで[エクスポート]を選択します。

  11. 価格チャートの作成を、Appleデバイスで使用される最新世代のグラフィックスAPIであるMetalに移行しました。これにより、チャート、インジケータ、およびオブジェクトのレンダリングパフォーマンスが大幅に向上します。
  12. 板情報でのストップロスとテイクプロフィットレベルの代替を修正しました。FIFO口座の場合、同じ銘柄の既存のポジションのストップレベルに従って、ストップレベルが自動的に設定されます。このプロセスは、FIFOルールに準拠するために必要です。
  13. リクオートを修正しました。リクオートが返されると、ユーザーは新しい価格を受け入れるか拒否するかを選択するための短い時間が与えられます。必要な時間内にアクションが実行されなかった場合、リクエストは自動的に拒否され、リクオートウィンドウは自動的に閉じられます。
  14. ダークインターフェイステーマを使用している場合のチャートセクションでの時間の表示を修正しました。
16 12月 2022
MetaTrader 5 build 3550:改善と修正

ターミナル

  1. ターミナル:ユーザーインターフェイスの翻訳を更新しました。
  2. クラッシュログに基づく修正。

Webターミナル

9 12月 2022
MetaTrader 5 build 3540:Webターミナルでの2FA/TOTP認証と改善された気配値表示

Webターミナル

  1. Google Authenticatorや類似アプリを利用した2FA/TOTP認証を追加しました。

    2FA/TOTP認証は、万が一取引口座のログイン名やパスワードが流出した場合でも、不正なアクセスから取引口座を保護することができます。Time-basedOne-timePasswordAlgorithm (TOTP)を用いた認証は、様々なモバイルアプリを利用して実装することが可能です。その代表的なものが、GoogleAuthenticator、MicrosoftAuthenticator、LastPassAuthenticator、Authyです。このようなAuthenticatorアプリで生成されたワンタイムパスワードを使用して、MetaTrader 5クライアントターミナルで口座に接続することができるようになりました。

    2要素認証オプションを有効にするには、MetaTrader 5 Webターミナル経由で口座に接続します。次に、メニューで口座をクリックし、新しく開いたダイアログで[2FA/TOTPを有効にする]を選択します。モバイルターミナルでAuthenticatorアプリを起動し、[+]をクリックして取引口座を追加し、ターミナルからQRコードを読み取ってください。生成されたコードを[ワンタイムパスワード]欄に入力し、[2FAを有効にする]をクリックします。証券会社の取引サーバーに、お客様の口座の秘密が登録されます。


    Google Authenticatorや類似のアプリを使った2FA/TOTP認証に対応


    保存された秘密は、Authenticatorアプリで、口座に接続するたびにOTPコードを生成するために使用されます。各パスワードの有効期限は30秒です。その後、新しいものが生成されます。


    口座への接続には、Authenticatorアプリからの追加OTPが必要


    ジェネレーターにリンクするためのバックアップコードもQRコードダイアログに表示されます。安全な場所に保管してください。リンクされたデバイスにアクセスできなくなった場合、コードを使用すると、口座をAuthenticatorアプリに再度追加できます。

    Authenticatorアプリから保存された秘密を削除する場合、まず適切な口座のコンテキストメニューコマンドを使用して2FA/TOTP認証を無効にする必要があります。新しい2FA/TOTP認証方式が口座で利用できない場合は、お取引のある証券会社にお問い合わせください。

  2. 気配値表示に表示されるデータ量を拡大しました。現在の売/買呼値と価格変動率に加えて、以下を確認できます。

    • 現在の取引セッションの最大および最小の売/買呼値
    • 現在の取引セッションの始値と前の取引セッションの終値

    表示される情報をカスタマイズするには、コンテキストメニューを使用します。


    追加の気配値データ


  3. 証券会社側で対応する設定が有効になっている場合のリスク通知表示を追加しました。一部の規制当局は、トレーダーが取引前に通知を読んで同意することを要求しています。
  4. 画面の上部にノッチがあるiPhoneモデルのトップツールバーの表示を修正しました。以前は、パネルボタンを覆うことがありました。
  5. Google Chromeブラウザでの口座の最終財務パラメータ(利益、株式など)の表示を修正しました。時々、それらが更新されないことがありました。

ターミナル

  1. デモ口座開設ダイアログを最適化し、大幅に高速化しました。
  2. ユーザーインターフェイスの翻訳を更新しました。
  3. クラッシュログに基づく修正。

MQL5

  1. 標準ライブラリのCOpenCLクラスに新しいメソッドを追加しました:

    • BufferFromMatrix - 行列からのデータでデバイスバッファを満たす
    • BufferToMatrix - デバイスバッファから行列にデータを読み込む
    • ContextCreate - デバイスコンテキストの作成(Initializeメソッドの最初の部分)
    • ProgramCreate - OpenCLソースコードに基づくプログラムの作成(Initializeメソッドの2番目の部分)
    • ContextClean - デバイスコンテキストに属するすべてのデータを解放する(Shutdownメソッドに似ているが、コンテキストを削除しない)
    • GetDeviceInfoInteger - 整数のデバイスプロパティを受け取る
    • GetKernelInfoInteger - 整数のカーネルプロパティを受け取る
    • GetDeviceInfo - ENUM_OPENCL_PROPERTY_INTEGER列挙に存在しない単一の整数デバイスプロパティを受け取る

    GetDeviceInfoの使用例:
    longpreferred_workgroup_size_multiple=OpenCL.GetDeviceInfo(0x1067);
  2. TERMINAL_CPU_NAMEとTERMINAL_OS_VERSIONの値をENUM_TERMINAL_INFO_STRING列挙に追加しました。ユーザーのCPU名とOS名を受け取ることができます。
    voidOnStart()
      {
       文字列cpu、os;
    //---
       cpu=TerminalInfoString(TERMINAL_CPU_NAME);
       os=TerminalInfoString(TERMINAL_OS_VERSION);
       PrintFormat("CPU:%s、OS:%s",cpu,os);
      }
    
    結果
    CPU:IntelXeonE5-2630v4@2.20GHz、OS:Windows10ビルド19045
  3. DatabasePrintおよびDatabaseExport関数の「table_or_sql」パラメータの操作が修正されました。SQLクエリに加えて、テーブル名を渡すことができるようになりました。

MetaEditor

  1. データベースで表示可能な列の最大数のチェックを修正しました。最大64列まで表示できるようになりました。
  2. IF[ if(cond) break; ].のような短い構文でのブレークポイントの操作を修正しました。
前へ12345678910111213