新しいMetaTrader 5プラットフォームビルド2265: MQL5の3D視覚化とストラテジーテスターの銘柄設定のためのDirectX関数

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

6 12月 2019

ターミナル

  1.  気配値表示でより多くの列が利用可能になりました。メインセクションには、以前は[詳細]タブでのみ使用可能だった40個の追加の銘柄パラメータが追加されています。




  2. [ナビゲーター]に現在リンクされている口座と現在のサーバの強調表示を追加しました。この機能は、異なるブローカーの口座が複数ある場合に役立ちます。




  3. チャートのフレーム設計を更新しました。フレームが小さくなったため、有用な情報に使用できるスペースが増えました。




  4. 取引履歴をポジションとして表示する際の取引合計を計算するためのアルゴリズムを修正しました。値は実際のレコードに基づいて計算されるようになりました。

    取引履歴をポジションとして表示するために、ターミナルは要求された期間中に実行された取引に関する情報を使用します。この期間内に決済されたポジションのみが履歴に表示されます。まだ開いているポジションや選択した間隔外に決済されたポジションは、履歴に表示されません。したがって、「ポジション」モードの合計利益と手数料は、「注文/取引」履歴モードの場合とは異なる場合があります。

    たとえば、過去1週間の履歴を表示しているとします。この期間中に、100件の取引が実行され、そのうち98件で20のポジションが開かれて決済されました。最後の2つの取引では新しいポジションが開かれましたが、まだ決済されていません。この場合、取引の履歴には100件の記録と、これらの取引に基づいて計算された適切な合計値が含まれます。履歴をポジションとして表示すると、98件の取引に基づいて収集された20件の記録が表示されます。合計値を計算するときは、このデータのみが考慮されます。証券会社がエントリ取引手数料を請求する場合、取引履歴の最終手数料はポジション履歴に表示される手数料とは異なります。後者の場合、最後の2つの取引は無視されるためです。

  5. MQL5プログラムのより高速な起動を実装しました。
  6. 新しい /betaキーがターミナルインストールファイルに追加され、ベータ版をダウンロードできるようになりました。通常モードでは、最初にリリースバージョンをインストールする必要があります。その後、ベータバージョンまで更新できます。この手順をスキップすると、時間とトラフィックを節約できます。インストール開始の例:
    C:\mt5setup.exe /beta
  7. 証券取引所」タイプの商品の証拠金要件の表示を修正しました。
  8. Clang / LLVMコンパイラの使用により、すべてのプラットフォームコンポーネントの操作を高速化しました。場合によっては、コンパイルが20%速くなります。

MQL5 

  1. 3D視覚化のための新しいDirectX 11関数とシェーダーを追加しました。MQL5で強力な3次元グラフィックスを直接作成できるようになりました。


    この新しいCCanvas3DクラスはCCanvasカスタムグラフィッククラスを拡張したもので、\MQL5\Include\Canvas\ディレクトリにあります。このクラスは、DirectX APIを介して3次元オブジェクトをレンダリングする機能を備えています。

    • Create — シーンを作成します。
    • Attach — シーンをチャートに結合します。
    • Destroy — シーンを破壊します。
    • ObjectAdd — CDXObject基本クラスから継承した子孫オブジェクトをシーンに追加します。
    • Render — ObjectAddメソッドを介して追加された、すべてのCDXObjectのバッファーのクリアとレンダリングを含む完全なレンダリングループです。
    • RenderBegin — シーンのレンダリングを開始し、指定された色(DX_CLEAR_COLORフラグが設定されている場合)および深度バッファー(DX_CLEAR_DEPTHを使用している場合)でレンダリングバッファを塗りつぶし、デフォルトシェーダーのDXInputSceneシーンバッファーを設定します。
    • RenderEnd — シーンのレンダリングを完了し、結果を内部バッファーに受け取ります。redraw==trueの場合は、実行中のグラフに画像を表示します。
    • ViewMatrixGet — ビュー行列を受け取ります。
    • ViewMatrixSet — ビュー行列を設定します。行列には、ViewPositionSet、ViewRotationSet、ViewTargetSet、ViewUpDirectionsSetメソッドとの互換性がありません。
    • ViewPositionSet — カメラの位置を設定します。
    • ViewRotationSet — カメラ回転行列を設定します。
    • ViewTargetSet — カメラが指している点を設定します。ViewUpDirectionsSetとともに、ViewRotationSetの代替です。
    • ViewUpDirectionsSet — カメラの垂直位置を設定します。ViewTargetSetとともに、ViewRotationSetの代替です。
    • ProjectionMatrixGet — 投影行列を受け取ります。
    • ProjectionMatrixSet — 投影行列を設定します。

    新しいライブラリの詳細なドキュメントは間もなく公開されます。<br0>




  2. MQL5から直接SQLiteデータベースを使用した操作のサポートを追加しました。これにより、複雑な命令を作成せずにSQLクエリを簡単に実行できます。内部操作は、新しい標準ライブラリ拡張機能によって実装されます。

    以下の関数を利用できます。

    • DatabaseOpen — 指定したファイルでデータベースを開くか作成します
    • DatabaseClose — データベースを閉じます
    • DatabaseTableExists — データベースに表があるかどうかを確認します
    • DatabaseExecute — 指定されたデータベースへのクエリを実行します
    • DatabasePrepare — DatabaseRead()を使用するとさらに実行できるクエリハンドルを作成します
    • DatabaseRead — クエリ結果の次のレコードにジャンプします
    • DatabaseFinalize — DatabasePrepare()で作成されたクエリを削除します
    • DatabaseTransactionBegin — トランザクションの実行を開始します
    • DatabaseTransactionCommit — トランザクションの実行を完了します
    • DatabaseTransactionRollback —トランザクションをロールバックします
    • DatabaseColumnsCount — クエリのフィールド数を受け取ります
    • DatabaseColumnName — 番号でフィールド名を受け取ります
    • DatabaseColumnType — 番号でフィールドタイプを受け取ります
    • DatabaseColumnSize — バイト単位のフィールドサイズを受け取ります
    • DatabaseColumnText — 現在のレコードからフィールドの文字列値を受け取ります
    • DatabaseColumnInteger —  現在のレコードからint値を受け取ります
    • DatabaseColumnLong — 現在のレコードからlong値を受け取ります
    • DatabaseColumnDouble — 現在のレコードからdouble値を受け取ります
    • DatabaseColumnBlob — 現在のレコードからフィールド値の配列を受け取ります

    次のエラーコードが関数操作に追加されました。

    • ERR_MQL_DATABASE_INTERNAL (5120) — 内部データベースエラー
    • ERR_MQL_DATABASE_INVALID_HANDLE (5121) — 無効なデータベースハンドル
    • ERR_MQL_DATABASE_TOO_MANY_OBJECTS (5122) データベースオブジェクトの最大数を超えました
    • ERR_MQL_DATABASE_CONNECT (5123)データベース接続エラー
    • ERR_MQL_DATABASE_EXECUTE (5124) リクエスト実行エラー
    • ERR_MQL_DATABASE_PREPARE (5125) リクエスト作成エラー
    • ERR_MQL_DATABASE_NO_MORE_DATA (5126) — 読み込むデータがありません
    • ERR_MQL_DATABASE_STEP (5127) 次のクエリレコードへの移動エラー
    • ERR_MQL_DATABASE_NOT_READY (5128) クエリ結果を読み取るためのデータはまだ準備できていません
    • ERR_MQL_DATABASE_BIND_PARAMETERS (5129) SQLクエリ自動置換エラー

  3. デフォルトの視覚化方法の選択を可能にするMQL5プログラムの新しいプロパティを追加しました。
    #property optimization_chart_mode "3d,InpX,InpY"
    このプロパティにより、最適化の最後に開くチャートのタイプ、およびX軸とY軸のプログラムパラメータを設定できます。

    このプロパティは、デフォルトのチャートビューのみを設定します。これは、コンテキストメニューを使用して、いつでも手動で変更できます。

  4. 新しいMathArctan2関数。タンジェントは、指定された2つの数値の比率に等しい角度のラジアン値を返します。
    double  MathArctan2(
       double  y      // 点のy座標
       double  x      // 点のx座標
       );
  5. パフォーマンスを向上させ、リソース消費を削減するために、プログラムの一般的な最適化を実行しました。
  6. ストラテジーテスターで実行できる数学計算の例を追加しました。これらは\MQL5\Experts\Examples\Math 3D\ディレクトリにあります。
  7. 名前空間の管理を強化しました。
  8. MQL5プログラムで.NETライブラリを使用する場合のリンクライブラリの読み込みを追加しました。使用されている.NETライブラリの操作に他のライブラリが必要な場合、コンパイラは必要なライブラリを\MQL5\Librariesから自動的にダウンロードしようとします。
  9. Python統合用のMetaTraderモジュールの時間操作を修正しました。これで、すべての出力データは、ターミナルが接続されている取引サーバの時間を使用します。

テスター

  1. 多数の新機能と改善点。


    金融商品のカスタム設定
    これで、メインの取引手段の設定を変更できます。これを使用して、テスト/最適化が実行されます。量、取引モード、証拠金要件、実行モード、その他の設定など、ほぼすべての仕様パラメータを上書きできます。したがって、異なる条件でエキスパートアドバイザーを確認する必要がある場合、個別のカスタム銘柄を作成してその履歴をダウンロードする必要はありません。これは、標準の銘柄設定を変更することで実行できます。



    銘柄仕様がカスタマイズされている場合、歯車アイコンと銘柄アイコンにはアスタリスクが付いています。これは、カスタムパラメータが現在のテストに使用されていることを示しています。




    Last設定/エキスパートアドバイザー/チャート
    新しいコンテキストメニューコマンドを使用して、高速なテストまたは最適化の設定を行います。最後に使用したテスター設定、最近のチャートまたはアプリケーションを選択します。




MetaEditor

  1. MetaEditorからC / C ++およびPythonプロジェクトを直接使用する機能を追加しました。多言語プロジェクトは、内蔵エディタを使用して管理できるようになっています。

    適切なコンパイラがPCにインストールされている場合、MetaEditorはそれらを検出して設定に追加します。オプションで、[コンパイラ]タブで必要なコンポーネントへのパスを指定できます。同じタブから、適切なフィールドの横にある[インストール]をクリックして、コンポーネントをダウンロードできます。




    その後、MQL5プログラムと同様にC/C++およびPythonプロジェクトを使用できます。

  2. MQL5 Storageを介した共有プロジェクト開発を目的としたShared Projectsディレクトリ内のサブプロジェクトのサポートを追加しました。以前は、トップレベルで作成できるプロジェクトは1つだけでした。
  3. 組み込みデバッガの更新。
  4. コードスタイラーを使用する際の関数ヘッダの追加を修正しました。
  5. 前/次のカーソル位置にジャンプ」コマンドを、表示メニューだけでなくツールバーでも使用できるようになりました。
  6. プロジェクト名にスペースを使用できるようになりました。

Android

  1. 証券会社Webサイトの入出金ページにすばやく切り替える機能を追加しました。

    ブローカーサイトのトレーダールームで適切な機能を検索する必要はありません。高速ナビゲーションコマンドはターミナルで直接使用できます。ユーザは[アカウント]セクションと[取引]セクションから入出金ページに切り替えることができます。



    • 入出金操作は、ブローカー側の取引口座で適切な機能が有効になっている場合にのみ利用できます。
    • 取引ターミナルは、口座の入出金操作を行いません。統合された機能は、ユーザーを適切なブローカーWebサイトページにリダイレクトします。

  2. 履歴内のポジションは、締め日で並び替えられるようになりました。
  3. 履歴セクションに赤と緑の縦線でストップロスまたはテイクプロフィットによって決済されたポジションのマーキングを追加しました。
  4. 取引銘柄仕様に新しいフィールドを追加しました。

    • Category — このプロパティは、金融商品の追加マーキングに使用されます。たとえば、これは銘柄が属する市場セクター(農業、石油およびガスなど)である可能性があります。カテゴリは、ブローカーによって提供された適切な情報のみが表示されます。
    • Exchange — 証券が取引される取引所の名前。カテゴリは、ブローカーによって提供された適切な情報のみが表示されます。

  5. 取引セクションに証拠金コール状態表示を追加しました。この状態が出現すると、Margin、Free Margin、Margin Levelパラメータが赤で表示されます。
  6. タブレットでのOTPセクションを開くボタンの表示を修正しました。
  7. その他の修正と改善。

iPhone/iPad

  1. 証券会社Webサイトで入出金ページにすばやく切り替える機能を追加しました。詳細については、Android版MetaTrader 5の新機能リストをご覧ください。



  2. iOS/iPadOSでダークモードサポートを追加しました。
  3. ワンタイムパスワードセクションが、iPadバージョンで使用可能になりました。
  4. ストップロスまたはテイクプロフィットによって決済されたポジションが履歴セクションで赤と緑の縦線でマークされるようになりました。
  5. 履歴内のポジションは、締め日で並び替えられるようになりました。ポジションがまだ決済されていない場合、その開かれた日がソートに使用されます。
  6. その他の修正と改善。