MetaTrader 5 build 1430: Exposureタブの更新

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

16 9月 2016

ターミナル


  1. 株式市場の為の『資産』タブを形成する新しいアルゴリズムが実装されました。今後は、ターミナルは取引口座に使用されているリスク管理システムに応じて資産の表示を行います(リテールFX、CFD、先物または取引モデル)。

    『資産』セクションは、取引所でFXまたは先物取引をする方が、 市場での自分の現在の状況を理解するのに役立ちます。同じ通貨が様々なツールで見られます(通貨ペアのうちの1つとしてや基礎通貨としてなど)。例とし て、GBPUSD、USDJPY、GBPJYで多方向にポジションを保有することができます。この状況において、最終的にどの通貨をいくつ保有していて、 保有する必要があるのかを理解するのは非常に問題です。もっと難しいのは、このようなポジションが3つどころか、遥かに多く保有している場合です。このよ うな状況の口座の最終的な状態は、『資産』タブで簡単に参照することができます。
    これらの3つのポジションでの例を見てみましょう:

    Buy GBPJPY 1 lot at 134.027 — 100 000 GBPを買い、134 027 000 JPYを売りました
    Sell USDJPY 1 lot at 102.320 — 100 000 USDを売り、102 320 000 JPYを買いました
    Sell GBPUSD 1 lot at 1.30923 — 100 000 GBPを売り、103 920 USDを買いました

    私 達は同時に100 000 GPBを買い、売りました。合計としてGBPが0の場合、『資産』タブはこの通貨を表示しません。この場合ではUSDを売り、別の時に買いました。証拠金 通貨はUSDなので、資産タブは現在の残高で計算し合計をします。JPYは2つの取引に入っているので、タブも合計値を表示します。




    このセクションは取引モデルに沿って取引をする方が、資金の運用法を理解するのに役立ちます。前のモデルとの違いは、取引実行 時に資金がすぐに引き落とし/入金される点です。例えば、EURRUBの購入時にすぐにユーロを取得し、残高からは相当する額のルーブルが引き落とされま す。取引時に口座残高はマイナスになることがあります(借りている資金で取引を行っている場合に、補てんに取得した資産が使われる)。このような場合『資 産』タブで、口座の取引状況を簡単に理解することができます。

    ここでは追加でリクイディティ価格(口座上の資金の合計や市場価格による現在のポジション決済の価格/結果)が表示されます。





  2. 取引操作履歴での取引タイプの表示エラーを修正しました。
  3. 取引口座への再接続時にリスクに関する通知ウィンドウが再表示されるエラーを修正しました。
  4. 多数のシンボル(数千またはそれ以上)がある場合の取引銘柄の選択ダイアログの動作が修正および最適化されました。
  5. 移動平均をベースに計算を行う内蔵インディケータ(Bollinger Bands、Adaptive Moving Averageなど)のレベル表示が修正されました。サブウィンドウでインディケータを表示した際にエラーが発生していました。
  6. いくつかのケースで先物取引の発注を行うことができなくなるエラーを修正しました。注文価格が取引価格の上限/下限価格と一致する場合にエラーが発生していました。

MQL5

  1. MQL5プログラムのコンパイルが高速化および最適化されました。
  2. クラス、構造体、関数の為のfinalとoverrideの修飾子のサポートが追加されました。

    クラスと構造体の為のfinal修飾子
    final 修飾子は、クラスまたは構造体の宣言時にそこからのさらなる継承を禁止します。クラス(構造体)がそこへ更なる変更を加える必要がないものである、または セキュリティ上の理由で変更が許可されていない場合は、それをfinal修飾子で宣言してください。また、全てのクラスのメソッドも暗黙的にfinalと みなされます。
    class CFoo final
      {
      //--- クラス本体
      };
     
    class CBar : public CFoo
      {
      //--- クラス本体
      };
    final修飾子を使用したクラスからの継承を試行すると、上記の例で示したように、コンパイルはエラーを出します。
    cannot inherit from 'CFoo' as it has been declared as 'final'
    see declaration of 'CFoo'

    関数の為のoverride修飾子
    override修飾子は、宣言される関数は必ず親クラスのメソッドをオーバーライ ドする必要があるということを意味しています。この修飾子を使用することで、オーバーライド時のメソッドシグネチャのランダムな変更といったエラーを回避 することができます。例として、基底クラスで引数としてint型変数を取るfuncメソッドを定義します。
    class CFoo
      {
       void virtual func(int x) const { }
      };
    次にメソッドを派生クラスでオーバーライドします:
    class CBar : public CFoo
      {
       void func(short x) { }
      };
    しかしエラーによって引数の型がintからshortに変わります。実際には、このような場合、オーバーライドではなくメソッドのオーバーロードが起こります。オーバーロードされた関数定義のアルゴリズムに従い、特定のケースにおいてコンパイラがオーバーライドされたメソッドの代わりに基底クラスで定義されたメソッドを選択することがあります。

    このようなエラーを回避する為には、明示的にオーバーライドメソッドにoverride修飾子を追加する必要があります。
    class CBar : public CFoo
      {
       void func(short x) override { }
      };
    オーバーライド時にメソッドシグネチャが変更された場合、コンパイラは親クラスで全く同じシグネチャを見つけることができず、コンパイルエラーを出します。
    'CBar::func' method is declared with 'override' specifier but does not override any base class method

    関数の為のfinal修飾子

    final修飾子は逆に、派生クラスでのメソッドのオーバーライドを禁止します。メソッドの実装が十分であり、完全に禁止されている場合、派生クラスで変更されないようにするためにfinal修飾子を使って宣言してください。
    class CFoo
      {
       void virtual func(int x) final { }
      };
     
    class CBar : public CFoo
      {
       void func(int) { }
      };
     
    final修飾子を使用したメソッドのオーバーライドを試行すると、上記の例で示したように、コンパイルはエラーを出します。
    'CFoo::func' method declared as 'final' cannot be overridden by 'CBar::func'
    see declaration of 'CFoo::func'
  3. デフォルトのパラメータを持つテンプレート関数のコンパイルエラーを修正しました。

マーケット

  1. マーケットの製品のソートにおける一連のエラーを修正しました。

テスター

  1. ビジュアルテストモードでの保有注文/ポジションの現在の市場価格の更新を修正しました。
  2. 取引銘柄でのテスト時のBuy LimitとSell Limit注文実行のスリッページが削除されました。
  3. いくつかのケースで『始値のみ』モードで、間違った価格が生成されていたエラーを修正しました。
  4. テスト時のOnTradeTransactionイベントの形成が修正されました。
  5. リアルティックに基づくテストの際に、既存の分足バーのlowまたはhighの数値とティック価格(bidかlastかはどの価格にバーが形成されているかによる)の不一致についての情報がテスターの操作ログに表示されます。

メタエディター

  1. ソースコードのファイル上のデータプロファイリングの表示エラーが修正されました。

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