MetaTrader 5プラットフォームビルド1570:マーケットショーケースの改善とMQL5テンプレート関数の拡張

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

24 3月 2017

ターミナル

  1. アプリケーションの MetaTraderマーケットストアでのショーケースを更新しました。売買ロボットやテクニカル指標がより便利にブラウズできます。デザインが更新され、製品の選択が追加されました。

    • メインページには人気の高いエキスパート、指標、マーケットでの新製品、トップ無償アプリが登場するようになりました。
    • エキスパート、指標、ユーティリティのセクションには、グリッドとヘッジのロボット、トレンド指標と多通貨指標などのサブセクションが追加されました。




  2. Windowsアカウントの権限が限られている場合の、クライアント端末更新とマーケット、シグナル、仮想ホスティングでの内蔵された購入を修正しました。
  3. 時折見られたポジション履歴の間違った並び替えを修正しました。
  4. 「資産(Exposure)」タブの表示を修正して最適化しました。

MQL5

  1. パラメータを使用したテンプレート関数オーバーロードのサポートを追加しました。例は、型キャストを使用して第1パラメータに第2パラメータの値を書き込むテンプレート関数です。MQL5はstringをboolに型キャストすることはできません。しかし、自分でやることは可能です。テンプレート関数のオーバーロードを作成しましょう。
    //+------------------------------------------------------------------+
    //| テンプレート関数                                                   |
    //+------------------------------------------------------------------+
    template<typename T1,typename T2>
    string Assign(T1 &var1,T2 var2)
      {
       var1=(T1)var2;
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| bool+stringのための特別のオーバーロード                             |
    //+------------------------------------------------------------------+
    string Assign(bool &var1,string var2)
      {
       var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| スクリプトプログラム開始関数                                        |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int i;
       bool b;
       Print(Assign(i,"test"));
       Print(Assign(b,"test"));
      }
    コード実行の結果、Assign()テンプレート関数はint+stringのペアで使用され、オーバーロードされたバージョンは2回目の呼び出しでbool+stringペアですでに使用されていることがわかります。
    string Assign<int,string>(int&,string)
    string Assign(bool&,string)

  2. テンプレート関数を明示的に特殊化しました。これを行うには、呼び出しパラメーターのリストの前に型定義パラメーターを指定します。
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // 明示的テンプレート関数の特殊化
      }
    したがって、型定義は、呼び出しパラメータを使用するのではなく、型の明示的な指定によって実行されます。

  3. DRAW_ZIGZAG描画タイプを使用したカスタム指標の表示を最適化しました。
  4. ENUM_DEAL_TYPE取引タイプ列挙に新しい値を追加しました。

    • DEAL_DIVIDEND — 配当金操作
    • DEAL_DIVIDEND_FRANKED — フランク(課税対象外)配当操作(税金はクライアントではなく会社によって支払われます)
    • DEAL_TAX — 課税

  5. 描画タイプがDRAW_FILLINGのカスタム指標の表示が修正されました。上下の線の座標が一致する場合は、細い線が引かれます。
  6. CHART_SHOWパラメータが 'false'に設定されたときのBitmap Labelオブジェクトの座標計算が修正されました。このパラメータはChartSetInteger関数で設定され、すべての価格チャート要素を非表示にしてカスタムプログラムインターフェイスを作成できます。
  7. 24ビット画像をMQL5アプリケーションリソースに配置する際にの再エンコードを修正しました。
  8. ArrayPrint関数を使用した構造体の出力を修正しました。
  9. MQL5標準ライブラリを更新しました。

MetaEditor

  1. マレー語へのUI翻訳を追加しました。

シグナル

  1. 取引口座に接続されていない状態でMQL5.communityのWebサイトから移動したさいに端末のシグナルページを開くことを修正しました。

テスター

  1. ストラテジーテスターのCopyTicks関数の操作を修正しました。
  2. レポートを生成する際の出金取引の並び替えを修正しました。
  3. 修正中の未決注文を修正しました。

ホスティング

  1. 超高解像度スクリーン(4kb)での仮想ホスティングウィザードの表示を修正しました。

ドキュメントを更新しました。