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

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

23 8月 2017
iOS版MetaTrader 5ビルド1649、金融商品の市場統計

この新しいバージョンでは、取引実行モードで取引されている金融商品の市場統計を表示することができます。統計を表示するには、気配値表示で任意の銘柄のメニューを開いて「統計」を選択します。


「取引」タブでのポジション操作がより便利になりました。ポジションや注文をシングルタップすると、ポジション銘柄のチャートを開くだけでなく、ポジションボリュームを決済する、変更する、または増やすなどの詳細な情報と利用可能なアクションが表示されます。

2 8月 2017
MetaTrader5 Android build 1642: ライブ口座のかんたんなリクエスト方法

Android用のMetaTrader5では、予備の口座を簡単に作成できます。 メニューから"ライブアカウントを開設"を選択し、サーバーのリストの中からブローカーを見つけてください。 IDの書類と銀行口座の明細の二つが必要です。 リクエストはブローカーに送信され、口座開設に必要な追加情報を求められます。




21 7月 2017
MetaTrader 5プラットフォームビルド1640:カスタムシンボルの作成とテスト

ターミナル

  1. ターミナルにカスタム金融商品を作成することができるようになりました。この新しいオプションを使用すると、任意のシンボルを作成してその設定を構成し、シンボルに価格データをインポートしてチャートを表示できます。

    カスタムシンボルの作成
    板情報コンテキストメニューを使用してシンボル管理ウィンドウを開き「カスタムシンボルの作成」をクリックします。


    多数のシンボルパラメータの設定が可能です。パラメータとその説明の完全なリストは ドキュメントでみられます。カスタムシンボルは、同様のシンボルのパラメータをコピーして変更することで素早く設定することができます。「コピー元」フィールドで既存のシンボルを選択します。
    カスタムシンボルの名前は、ブローカーによって提供されるシンボルの名前と同じであってはなりません。同じ名前のシンボルが存在するサーバーに接続すると、カスタムシンボルが削除されます。
    ここではパラメータのインポートとエクスポートのコマンドも利用できます。カスタムシンボルはターミナル間で簡単に共有または転送することができます。設定はJSONテキストファイルにエクスポートされます。
    カスタムシンボルの管理
    すべてのシンボルは、個別のカスタムグループに表示されます。シンボルを変更または削除する必要がある場合は、リストのコンテキストメニューを使用します。



    価格履歴のインポート
    価格データは、任意のテキストファイル、およびMetaTrader履歴ファイル(HSTとHCC )からカスタムシンボルにインポートすることができます。シンボルを選択して「バー」タブに移動します。


    インポートダイアログで、ファイルへのパスを指定し、必要なパラメータを設定します。

    • Separator — テキストファイルの要素セパレータ
    • Skip columns and rows — インポート中にスキップされる列(左から右)と行(上から下)の量
    • Shift — 時間単位の時間シフト。このオプションは、異なるタイムゾーンに保存されたデータをインポートするときに使用されます。
    • Use selected only — 行ビュー領域で強調表示された行のみをインポートします。行はCtrlキーまたはShiftキーを長押しすると強調表示できます。

    分足のファイルは「日付 時刻 始値 高値 安値 終値 ティックボリューム ボリューム スプレッド」の形式を持つはずです。例:
    2016.06.27    00:01:00    1.10024    1.10136    1.10024    1.10070    18    54000000    44
    2016.06.27    00:02:00    1.10070    1.10165    1.10070    1.10165    32    55575000    46
    2016.06.27    00:03:00    1.10166    1.10166    1.10136    1.10163    13    13000000    46
    2016.06.27    00:04:00    1.10163    1.10204    1.10155    1.10160    23    51000000    41
    カスタムシンボルでは任意の既存製品のデータを使用することができます。データをエクスポートし(このオプションは以前のプラットフォームのバージョンで追加されました)、必要に応じて変更し、データをインポートし直します。
    価格履歴はMetaTrader 5に分足バーの形で保存され、他のすべての時間枠は、これらのバーに基づいて作成されます。また、より長い時間枠のデータをインポートすることもできますが、より短い時間枠のチャートではギャップが生じます。たとえば、時間足のデータをインポートすると、1時間に1つのバーがM1チャートに表示されます。
    カスタムシンボルの価格データは、下記のような別のカスタムディレクトリに保存されます(取引サーバのデータが保存されているディレクトリではありません)。
    C:\Users\[windows account]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom

    カスタムシンボルの使用
    カスタムシンボルの使用は、ブローカーが提供する製品の使用に似ています。カスタムシンボルは板情報ウィンドウに表示され、 シンボルのチャートを開いたり、その上に指標や分析オブジェクトを適用することができます。カスタムシンボルは取引できません。

    カスタムシンボルのテスト戦略
    カスタムシンボルはストラテジーテスターでの自動売買ロボットや指標のテストに使用できます。これにより、ブローカーが現在提供できない銘柄についても戦略の最適化が可能になります。履歴を正しくインポートし、カスタムシンボルのプロパティを設定するだけです。



    ストラテジーテスターは証拠金と利益を計算するときには自動的に利用可能なクロスレートを使用します。 Forexタイプの証拠金計算を使用してAUDCAD.customシンボルを作成し、口座通貨をUSDにしたとします。この場合、テスターはForexシンボル名に基づいて次の順序で必要なシンボルを検索します。
    1.     まず、AUDUSD.custom(証拠金計算用)とUSDCAD.custom(取引利益計算用)のシンボルの検索が実行されます。
    2.     これらのシンボルがいずれも存在しない場合、必要な通貨ペアに対応する最初のシンボル(名前はそれぞれAUDUSDおよびUSDCAD)の検索が実行されます。たとえば、AUDUSD.bとNZDUSD.bのシンボルが見つかると、証拠金と利益を計算するためにはそれらのレートが使用されます。

    他種の証拠金計算を持つ製品(CFD、先物取引および証券取引所)では、商品通貨を預金通貨に変換するために通貨ペアが必要です。預金通貨がCHFであり、利益および証拠金通貨がGBPで表されるカスタムシンボルを作成したとします。この場合、テストシンボルの検索は次の順序で実行されます。
    1. GBPCHF(GBP対CHF)に対応する取引シンボルの存在が確認される。
    2. そのようなシンボルが存在しない場合、GBPCHFに対応する最初の取引シンボル(GBPCHF.bまたはGBPCHF.defなど)が検索される。

    カスタム製品を使用してアプリケーションをテストする場合は、取引口座に必要な通貨ペアがすべてあることを確認してください。ペアが欠如している場合、テスト中の取引結果と証拠金の計算は不可能です。

    今後のプラットフォームでは可能性がさらに広がる
    カスタムシンボルの開発はまだ完了しておらず、次のビルドでも多くの機能が追加される予定です。エキスパートアドバイザーからカスタムシンボルに直接履歴をインポートできるだけでなく、そのようなシンボルのデータ(クオーツを追加)を実時間でインポートすることもできます。

  2. Time&Sales機能にボリュームによるフィルタリングを追加しました。

    指定された値未満のボリュームを持つ取引は、Time&Salesテーブルから非表示にすることができます。このフィルタが適用されていると「Time&Sales」ウィンドウには大きな取引だけが表示されます。
    Time&Salesウィンドウの最初の行をダブルクリックして最小ボリュームを指定し、板情報の他の領域をクリックします。取引がフィルタリングされ、現在のフィルタ値がボリューム列ヘッダーに表示されます。


    Time&Salesのコンテキストメニューを使用して最小ボリュームを指定することもできます。

  3. 板情報をアクティブチャートにバインドするオプションを追加しました。金融商品のチャートに切り替えるたびに、板情報ウィンドウで同じ商品が自動的に有効になります。したがって、新しいシンボルごとに板情報ウィンドウを開く必要はありません。



  4. ターミナルウィンドウを最小化/最大化した後のツールバーのリフレッシュを修正しました。
  5. 取引チケットとポジションチケットが重なった場合のポジション取引履歴の生成を修正しました。

MQL5

  1. MQL5プログラムを価格履歴でプロファイリングするオプションが追加されました。このオプションを使うと、新しいティックを待たずにプログラムの性能を確認することができます。
    実際のデータに基づいてプロファイリングする場合、プログラムはターミナルの通常のチャートで起動されます。多くのプログラム、特に指標は、新しいティックの到着時にのみ計算を実行するため(OnTickOnCalculate)、その性能を評価するためには、実時間で新しいティックを待たなければなりません。履歴データを使用したプログラムのテストでは、必要な負荷をすぐに提供できます。プロファイリングはストラテジーテスターのビジュアルモードで開始され、一度に多くの新しいティックイベントが受信されます。



  2. unionサポートを追加しました。unionは、同じメモリ領域を共有する複数の変数からなる特別なデータ型で、同じビットシーケンスを2つ(またはそれ以上)の異なる方法で解釈する能力を提供します。unionの宣言は 'union'キーワードで始まります。
    union LongDouble
    {
      long   long_value;
      double double_value;
    };
    構造体とは異なり、さまざまなunionメンバは同じメモリ領域に属します。この例では、LongDoubleのunionは、long型とdouble型の値が同じメモリ領域を共有するように宣言されています。long_valueとdouble_value変数が(メモリ内で)重複しているので、構造体とは異なり、long型の値とdouble型の実数値を同時に格納することはできません。一方、MQL5プログラムは、unionからのデータをいつでも整数(long)または実数(double)として 処理することができるため、unionでは、同じデータシーケンスを表す2つ(またはそれ以上)のオプションを受け取ることができます。

    unionの宣言中に、コンパイラは、変数unionに最大(サイズ)の型を格納するのに十分なメモリ領域を自動的に割り振ります。union要素にアクセスするためには、構造体要素にアクセスするのと同じ構文(点演算子)が使用されます。
    union LongDouble
    {
      long   long_value;
      double double_value;
    };
    //+------------------------------------------------------------------+
    //| スクリプトプログラム開始関数                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //---
       LongDouble lb;
    //--- 無効な-nan(ind)番号を取得して表示する
       lb.double_value=MathArcsin(2.0);
       printf("1.  double=%f                integer=%I64X",lb.double_value,lb.long_value);
    //--- 正規化された最大値l(DBL_MAX)
       lb.long_value=0x7FEFFFFFFFFFFFFF;
       printf("2.  double=%.16e  integer=%I64X",lb.double_value,lb.long_value);
    //--- 正規化された最小正 (DBL_MIN)
       lb.long_value=0x0010000000000000;    
       printf("3.  double=%.16e  integer=%.16I64X",lb.double_value,lb.long_value);
      }
    /*  実行結果
        1.  double=-nan(ind)                integer=FFF8000000000000
        2.  double=1.7976931348623157e+308  integer=7FEFFFFFFFFFFFFF
        3.  double=2.2250738585072014e-308  integer=0010000000000000
    */

  3. 構造物やクラスオブジェクトに対する暗黙のコピー演算子の自動生成を追加しました。コンパイラは自動的にコピー演算子を作成します。これにより、b = aのようなオブジェクトの単純なエントリを書くことができます。
    class Foo
      {
       int               value;
    public:
       string Description(void){return IntegerToString(value);};
       //--- デフォルトコンストラクタ
                         Foo(void){value=-1;};
       //--- パラメータ付きのコンストラクタ
                         Foo(int v){value=v;};
      };
    //+------------------------------------------------------------------+
    //|  Foo型オブジェクトを持つ構造体                           |
    //+------------------------------------------------------------------+
    struct MyStruct
      {
       string            s;
       Foo               foo;
      };
    //+------------------------------------------------------------------+
    //| スクリプトプログラム開始関数                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //---
       MyStruct a,b;
       Foo an_foo(5);
       a.s="test";
       a.foo=an_foo;
       Print("a.s=",a.s," a.foo.Description()=",a.foo.Description());
       Print("b.s=",b.s," b.foo.Description()=",b.foo.Description());
    //---
       Print("b=a");
       b=a;
    //---
       Print("a.s=",a.s," a.foo.Description()=",a.foo.Description());
       Print("b.s=",b.s," b.foo.Description()=",b.foo.Description());
    /*
       Execution result;
       a.s=test a.foo.Description()=5
       b.s= b.foo.Description()=-1
       b=a
       a.s=test a.foo.Description()=5
       b.s=test b.foo.Description()=5
    */
      }
    オブジェクトメンバ単位のコピーは暗黙の演算子で実行されます。

    • メンバがオブジェクトの場合、このオブジェクトに対応するコピー演算子が呼び出されます。
    • メンバがオブジェクトの配列である場合、各要素に対して適切なコピー演算子を呼び出す前に、ArrayResizeを使用して受信配列が必要なサイズに増減されます。
    • メンバが単純型の配列である場合、コピーにはArrayCopy関数が使用されます。
    • メンバがオブジェクトへのポインタである場合、コピーされるのはポインタでそれが指しているオブジェクトではありません。

    必要に応じて、オーバーロードを使用して暗黙のコピー演算子の代わりに動作をオーバーライドして独自のオプションを作成することができます。

  4. Copy*関数を使用してエキスパートアドバイザーから価格履歴にアクセスする際のメモリ使用量を最適化しました。大量のデータを扱う場合、メモリ消費量は何倍も削減されます。

  5. datetimeのMqlDateTimeへの変換が成功したかどうかをTimeToStruct関数が返すブール値で確認できるようになりました。
  6. 文字列、動的配列、オブジェクト、ポインタを含む構造体の FileWriteStruct および FileReadStruct 関数の使用を禁止しました。
  7. 以下の応答コードが追加されました。

    • TRADE_RETCODE_REJECT_CANCEL — 未決注文をアクティブにする要求が拒否され、注文がキャンセルされました。
    • TRADE_RETCODE_LONG_ONLY — シンボル に"Only long positions are allowed(買いポジションのみ)"が設定されているため、リクエストが拒否されました。
    • TRADE_RETCODE_SHORT_ONLY — シンボルに"Only short positions are allowed(売りポジションのみ)"が設定されているため、リクエストが拒否されました。
    • TRADE_RETCODE_CLOSE_ONLY — シンボルに"Only closing of existing positions is allowed(既存ポジションの決済のみ)"が設定されているため、リクエストが拒否されました。

  8. SYMBOL_ORDER_MODE パラメータを持つSymbolInfoInteger関数の新しい戻り値を追加しました。SYMBOL_ORDER_CLOSEBY — Close By操作(反対方向のポジションによるポジションの決済)の許可。
  9. SYMBOL_CUSTOMブール値プロパティがENUM_SYMBOL_INFO_INTEGER列挙に追加されました。このプロパティは、シンボルがカスタムであるかどうかを調べることができます。プロパティを取得するにはSymbolInfoInteger 関数を使用します。
  10. 注文、取引、ポジションの作成理由を取得できるようになりました。

    新しいプロパティ


    注文、取引、ポジション作成の理由
    取引操作の作成理由を得るための3つの変数が追加されました。
    ENUM_POSITION_REASON ENUM_DEAL_REASON ENUM_ORDER_REASON 理由の詳細
    POSITION_REASON_CLIENT DEAL_REASON_CLIENT ORDER_REASON_CLIENT この操作は、デスクトップターミナルから出された注文がアクティブ化された結果として実行されました。
    POSITION_REASON_MOBILE DEAL_REASON_MOBILE ORDER_REASON_MOBILE この操作は、モバイルアプリケーションから出された注文がアクティブ化された結果として実行されました。
    POSITION_REASON_WEB DEAL_REASON_WEB ORDER_REASON_WEB この操作は、Webプラットフォームから出された注文がアクティブ化された結果として実行されました。
    POSITION_REASON_EXPERT DEAL_REASON_EXPERT ORDER_REASON_EXPERT この操作は、MQL5プログラム(エキスパートアドバイザーまたはスクリプト)から出された注文がアクティブ化された結果として実行されました。
    - DEAL_REASON_SL ORDER_REASON_SL この操作は、ストップロスのアクティブ化の結果として実行されました。
    - DEAL_REASON_TP ORDER_REASON_TP この操作は、テイクプロフィットのアクティブ化の結果として実行されました。
    - DEAL_REASON_SO ORDER_REASON_SO この操作は、ストップアウトイベントの結果として実行されました。
    - DEAL_REASON_ROLLOVER - この約定は、ロールオーバのために実行されました。
    - DEAL_REASON_VMARGIN - この約定は、変動証拠金を課金した後に実行されました。
    - DEAL_REASON_SPLIT - この約定は、スプリットが公表された時にポジションが存在した株式または他の資産のスプリット(低下)の後に実行されました。

  11. 同期とティック履歴へのアクセスを最適化しました。
  12. CopyTicksRange関数でティックを統計配列に返すよう修正しました。以前のバージョンでは、この場合、常に0個のティックが返されました。
  13. ファジー論理ライブラリにさまざまな修正を加えました。

シグナル

  1. 取引口座の接続がない場合、ウェブサイトからのシグナルが開かれる問題を修正しました。

テスター

  1. 注文履歴及び約定履歴による作業を最適化して加速化しました。大量のデータ(数万回の履歴エントリ)を扱う場合の操作速度は何倍も向上しました。
  2. テストレポートのポジション保持時間の計算を修正しました。

MetaEditor

  1. デバッガでの静的クラスメンバ配列の内容の表示を修正しました。
  2. デバッグされたプログラムにブレークポイントのリストを追加しました。このリストは「デバッグ」タブのコンテキストメニューを使用して開くことができます。


    ブレークポイントにジャンプするには、ブレークポイントをダブルクリックします。
ドキュメントを更新しました。
8 6月 2017
iOS 版 MetaTrader 5 ビルド1605:仮取引口座の開設

iOS版 MetaTrader 5 ビルド1605では仮取引口座を簡単に開設することが可能です。口座を新規開設するには、メニューから「リアル口座を開く」を選択し、ブローカーをサーバーのリストから探し、個人情報を記入して身元と住所を確認するための2つの書類を添付して送信します。ブローカーはリアル口座を開設して必要に応じて追加情報を要求します。


この新バージョンのもう一つの特徴は、最適化され再設計された電子メールセクションです。

  • 関連する電子メールはスレッドにまとめられ、電子メールのリストに単一のアイテムとして表示されます。
  • 電子メール添付ファイルのプレビューも追加されました。
  • 現在1通の電子メールで最大5つの添付ファイルを(ファイルサイズは8MB以下)送信することができます。
26 4月 2017
MetaTrader 5プラットフォームビルド1596:価格履歴へのアクセス

ターミナル

  1. バーとティック履歴へのアクセスを追加しました。現在、MQL5言語を使用するだけでなく、サーバーからトレーディングプラットフォームインターフェイスを介して完全な1分およびティック履歴をダウンロードすることも可能です。価格データへのアクセスは、カスタムデータフィード機能の開始の準備の一環として拡大されています。近い将来、プラットフォームはユーザーの価格データに基づいてチャートを作成し、合成銘柄を作成し、オフラインチャートを使用する可能性を提供します。
    データをダウンロードするには「気配値表示」ウィンドウのコンテキストメニューから銘柄管理ダイアログを開きます。


    このダイアログには "バー"と "ティック"の2つの新しいタブがあります。銘柄と希望の時間間隔を選択し「Request」をクリックします。プラットフォームはサーバーから利用可能なすべてのデータを要求し、既にダウンロードされている場合はすぐにデータを表示します。保存された価格データはCSVファイルにエクスポートできます。

  2. ポジション、取引、注文のミリ秒単位の時間表示を追加しました。



  3. 取引ダイアログで、Close Byリクエストの実行拒否に関する通知を修正しました。

MQL5

  1. PositionSelect関数を修正しました。この関数は、最も低いチケット番号を有するものとは異なるポジションを時々選択することがあります。
  2. 非常に詳細なティック履歴データを要求するときCopyTicksおよびCopyTicksRange機能の動作を固定しました。

シグナル

  1. 既存のポジションのサイズを増やす操作のコピーが修正されました。このエラーは、ネット決済の時折発生する可能性があります。

テスター

  1. テスター:取引所製品のリミット注文の処理を修正しました。買値が市場価格よりも低い、または売値が市場価格を上回る注文は、スリッページなしで実行されます。市場価格より悪い注文は、直ちに注文時の市場価格で実行されます

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

8 4月 2017
Android版 MetaTrader 5 ビルド1576:取引履歴でのポジション

Android版 MetaTrader 5は取引履歴をポジションの形で表示することができるようになりました。履歴タブには今までには注文と約定のみが表示されていましたが、取引がポジションの形で分析できるようになりました。1つのポジションの全ての取引データが1つのレコードに結合されて、下記が表示されます。

  • ポジションの開閉時間(最初と最後の取引によって決定)
  • ポジションボリューム(ポジションが部分的に決済された場合には決済ボリュームと初期ボリューム)
  • 加重平均されたポジションの始値と終値
  • ポジションの約定の全体的な結果


30 3月 2017
MetaTrader 5 iOS 新ビルド1547 とポジション履歴

このビルドで一番革新的なのは、ポジションの形での取引履歴の表示です。履歴タブには今までには注文と約定のみが表示されていましたが、これにポジションが加わりました。取引プラットフォームは、ポジションの取引データを収集し、そのデータを1つのレコードに結合します。レコードには以下が含まれます。

  • 最初と最後の取引によって決定されたポジションの開閉時間
  • ポジションの数量ポジションが部分的に決済された場合には決済ボリュームと初期ボリューム
  • ポジションの加重平均始値及び終値
  • ポジションの約定の全体的な結果



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

ターミナル

  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)での仮想ホスティングウィザードの表示を修正しました。

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

17 2月 2017
MetaTrader 5 プラットフォームビルド1545:ウィンドウ間の高速切り替えとマウスホイールでの価格変更

ターミナル

  1. 「ツールボックス」と「ストラテジーテスター」ウィンドウ間を高速に切り替えます。



  2. 新しいオプションを使用して、マウスホイールで価格と注文量を編集できます。




  3. モバイルターミナルのダウンロードに切り替えるときにトレードサーバーのリストが記憶されます。その後、iPhoneやAndroidデバイスにMetaTraderをインストールすると、そのサーバーリストが表示されます。既存の取引口座にはすぐに接続することができます。モバイルターミナルでは現在接続されている口座のサーバーが最初に表示されます。




  4. 目に見えない(最小化された)チャートやオブジェクトによって生成されるターミナルへの負荷が大幅に軽減されました。
  5. トレール注文の不正なトリガが修正されました。
  6. 口座取引履歴での銘柄による取引のフィルタリングが修正されました。
  7. ポジション履歴での「タイプ」フィールドの表示が修正されました。
  8. ポジションの形での取引履歴の表示が修正されました。

MQL5

  1. 色にCLR_NONEが使用されている場合の描画タイプがDRAW_COLOR_LINE、DRAW_COLOR_ZIGZAGおよびDRAW_COLOR_SECTIONであるカスタム指標の表示が修正されました。
  2. 定数ポインタを使用したテンプレートの型付けが修正されました。
  3. private及びprotectedクラスメンバへのアクセスの制御が修正されました。

テスター

  1. テスター:注文商品の価格が現在の市場よりも悪い(買値が市場価格よりも高い、または売値が市場価格よりも低い)時の、取引所での指値注文のアクティブ化が修正されました。
  2. 64以上の入力パラメーターを持つカスタム指標のテストに関連する制限が削除されました。
  3. UIのヒンディー語への翻訳を追加しました。

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

9 2月 2017
iOS 版 MetaTrader 5 ビルド1509:FacebookでのMQL5.comへのログイン
  • Facebookを介してMQL5.comアカウントに登録してログインする機能を追加しました。 このソーシャルネットワークにプロファイルを持っている方は、数回のクリックでチャットやMetaTrader 5サービス全体にアクセスできます。‌

  • 改善と修正
27 1月 2017
MetaTrader 5 ビルド1525:ポジションとしての取引履歴の表示とテスターの改善

ターミナル

  1. 取引履歴をポジションの形で表示することができるようになりました。ターミナルは、ポジションに関連した取引データ(ポジションの開始点、追加の数量、部分的および完全決済)を収集し、そのデータを1つのレコードにグループ化します。このレコードには、次の詳細が含まれます。

    • 最初と最後の取引によって決定されるポジションの開閉時間
    • ポジションの数量ポジションの一部が決済されている場合は決済された数量とソース数量
    • 加重平均されたポジションの始値と終値
    • ポジションに関連する取引の結果




    ヘッジアカウントでは、新しい履歴の形式はMetaTrader 4で使用されたアカウント履歴のものと似ています。




  2. 新しいコマンドが追加されました。これにより、銘柄チャートで取引を視覚化することができます。

    • 選択したポジション/銘柄の取引を表示する必要がある場合は「 [銘柄名] の取引を追加」をクリックします。適切な取引は選択された銘柄の現在開いているすべてのチャートに表示されます。銘柄のチャートが1つも開いていない場合は、新しいチャートが開きます。
    • アカウント履歴でのすべての銘柄の取引を表示するには「すべての取引を追加」をクリックします。対応する銘柄の取引がすべての開いているチャートに追加されます。




  3. 契約仕様書での取引製品の国際名の表示と、銘柄管理ダイアログでの国際名での検索を追加しました。




  4. ターミナルウィンドウの解像度設定のためのコマンドが追加されました。この機能は、動画を作成するのに役立ちます。このメニューではYouTubeのようなさまざまなビデオサービスで使用される最も一般的な解像度オプションが用意されています。



  5. チャートテンプレートとプロファイルが「ターミナルデータフォルダ\Profiles」から「ターミナルデータフォルダ\MQL5\Profiles」に移動されました。MQL5ストレージにテンプレートを簡単に追加して、どのPCからでもアクセスできるようになりました。

MQL5:

  1. リソース変数のサポートが追加されました。そのような変数を使用することによって、いくつかのプログラムの開発を大幅に促進することができます。たとえば、OpenCLプログラムのコードを別のCLファイルに記述してMQL5プログラムリソースに文字列として含めることができます。更新前には、そのようなコードは1つの大きな文字列変数として記述される必要がありました。

    リソース変数の宣言
    #resource path_to_resource_file as type_of_resource_variable name_of_resource_variable

    機能
    • 文字列ファイルのエンコーディングはBOM(ヘッダ)に基づいて自動的に決定されます。BOMが存在しない場合、エンコーディングはファイルの内容によって定義されます。ANSI、UTF-8、UTF-16がサポートされています。すべての文字列はUnicodeに変換されます。
    • そのようなリソースのデータは、変数を介してのみアドレス指定することができます。":: <リソース名>"を使用した自動アドレス指定は使用できません。
    • 特別なビットマップリソース変数型は、コンパイラにリソースが画像であることを示します。この場合、リソース変数はuint型をもちます。
    • 24ビット画像を使用する場合、アルファチャンネルコンポーネントはすべての画像ピクセルに対して255に設定されます。
    • アルファチャンネルなしの32ビット画像を使用する場合、アルファチャンネルコンポーネントもまたすべての画像ピクセルに対して255に設定されます。
    • アルファチャンネルを使用して32ビット画像をロードすると、ピクセルはまったく処理されません。
    • ビットマップ型の配列リソース変数は2次元を持つことができます。この場合、配列のサイズは[image_height] [image_width]で定義されます。
    • 配列の1次元が指定されている場合、要素数は image_height*image_width となります。
    • リソースファイルのサイズが配列要素のサイズの倍数でない場合、残りのデータは切り取られます。たとえば、ファイルサイズが14バイトの場合、int 配列の要素数は3になりますが、他の2バイト(14 - sizeof(int)* 3)は捨てられます。

    使用例
    #resource "data.bin" as int ExtData[]             // data.binファイルのデータを含む数値配列の宣言
    #resource "data.bin" as MqlRates ExtData[]        // data.binファイルのデータを含む単純構造配列の宣言
    
    #resource "data.txt" as string ExtCode            // data.txtファイルのデータを含む文字列の宣言
    #resource "data.txt" as string ExtCode[]          // data.txtファイルのデータを含む文字列の宣言
    
    #resource "image.bmp" as bitmap ExtBitmap[]       // BMPファイルからのビットマップを含む1次元配列の宣言、array size = width * height
    #resource "image.bmp" as bitmap ExtBitmap2[][]    // BMPファイルからビットマップを含む2次元配列を宣言する、array size [hight][width]
    

  2. 新しいCHART_SHOWプロパティを使用すると、チャートの表示を無効にできます。プロパティを取得/設定するには、関数ChartGetInteger ChartSetInteger を使用します。

    falseの場合、時間および価格スケール、クイックナビゲーションバー、カレンダーイベントラベル、取引ラベル、インディケータおよびバーツールヒント、インディケータサブウィンドウ、ボリュームヒストグラムなど、価格チャート属性の描画は無効になり、すべてのチャートの境界インデントが削除されます。
    描画の無効化は、グラフィックリソースを使用してカスタムプログラムインターフェイスを作成するための完璧なソリューションです。

    グラフィックオブジェクトはCHART_SHOWプロパティの値に関係なく常に描画されます。

  3. 新しいCHART_KEYBOARD_CONTROLプロパティを使用すると、キーボードを使用してチャートコントロールを有効/無効にすることができます ("Home"、"End"、"PgUp"、"+"、"-"、"上矢印"など)。CHART_KEYBOARD_CONTROLをfalseに設定するとOnChartEvent()でキー押下イベントを受け取ることができますが、チャートのスクロールとスケーリングは無効になります。
    ChartGetIntegerChartSetInteger関数を使用するとプロパティを取得/設定できます。

  4. OpenCLを使用するための新しい関数が追加されました。

    メモリを操作するための新しいプロパティ
    CLGetInfoIntegrer によって、4つの新しいプロパティを受け取ることができます。
    • CL_DEVICE_MAX_WORK_GROUP_SIZE — OpenCLデバイスで使用可能なローカルワーキンググループの総数
    • CL_KERNEL_WORK_GROUP_SIZE — OpenCLプログラムで使用可能なローカルワーキンググループの総数
    • CL_KERNEL_LOCAL_MEM_SIZE — グループ内のすべての並列タスクを解決するためにOpenCLプログラムが使用するローカルメモリのサイズ(バイト単位)(使用可能な最大値を受け取るにはCL_DEVICE_LOCAL_MEM_SIZEを使用)
    • CL_KERNEL_PRIVATE_MEM_SIZE — OpenCLプログラムカーネルの各タスクで使用されるプライベートメモリの最小サイズ(バイト単位)

    bool CLExecutionStatus(int kernel)
    OpenCLプログラム実行ステータスを返します。 OpenCLプログラムのカーネルハンドルはパラメータとして渡されます。

    bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
    ローカルバッファをカーネル関数の引数として設定します。OpenCLプログラムのカーネルハンドル、OpenCL関数の引数数、およびバッファサイズはパラメータとして渡されます。

  5. 新しいTRADE_RETCODE_LIMIT_POSITIONS応答コードが追加されました。口座に同時に存在するポジションの数は、サーバー設定によって制限されます。制限に達すると、サーバーは注文を出そうとするときにTRADE_RETCODE_LIMIT_POSITIONSエラーを返します。この制限の動作は、ポジション会計タイプによって異なります。

    • Netting — ポジション数が考慮されます。限界に達すると、プラットホームはその実行によってポジション数が増加する可能性がある新しい発注を無効にします。実際には、プラットフォームはすでにポジションを持っている銘柄だけを注文することができます。現在の未決注文は、その実行が現在のポジションの変更につながってもその数を増やすことはできないので、考慮されません。
    • Hedging — 未決注文のアクティベーションは常に新しいポジションを開くため、未決注文はポジションとともに考慮されます。制限に達すると、プラットフォームは、ポジションを開けるための成行注文と未決注文の両方を無効にします。

  6. ティック履歴でティックが抜かされるエラーを修正しました。
  7. 間接的なテンプレート入力エラーを修正しました。
  8. 数学統計関数ライブラリを更新しました。

マーケット

  1. デモ版をダウンロードする際に開かれる製品ページを修正しました。

テスター

  1. 最適化完了後、結果が「結果」列で自動的にソートされるようになりました。
  2. 最適化結果タブのコンテキストメニューの新しい「最適化結果に切り替える」コマンドを使用すると、最適化が完了したときに自動的に結果を開くことができます。
  3. ストラテジーテスターは、単一のテストを開始した後、最適化モードのままでいるようになりました。以前のバージョンでは、最適化結果タブから1テストを開始した場合、ストラテジーテスターは単一テストモードに切り替わりました。さらに最適化を行うには最適化モードを有効にする必要がありました。
  4. 入力パラメータのセットは、従来の.setファイルに加えて、コンテキストメニューから便利にアクセスできるローカルストラテジーテスター設定として保存できるようになりました。




  5. モンゴル語、ハンガリー語、ルーマニア語、ウルドゥー語へのUI翻訳を追加しました。
  6. デバッガウィンドウで監視された式の順序を変更する機能が追加されました。式はマウスで必要な位置にドラッグすることができます。




MetaEditor

  1. デバッガウィンドウで監視された式の順序を変更する機能が追加されました。式はマウスで必要な位置にドラッグすることができます。



  2. ソースファイルのエンコーディングの決定を修正しました。
  3. UTF-8エンコーディングのファイルによる検索を修正しました。
  4. テキストがタブを含む場合のマウスによるテキスト選択を修正しました。
  5. ハンガリー語とルーマニア語へのUI翻訳を追加しました。

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

18 1月 2017
Android版 MetaTrader 5 ビルド1506:取引の絞り込みと並び替え
  • 取引タブと履歴タブには、すべての取引を銘柄(金融商品)、注文、および開/閉時間で並べ替えるソート機能が用意されました。並べ替えとは別に、履歴タブでは銘柄によって取引を絞り込むことができます。

  • マルチウィンドウモードでのチャートの操作が最適化されました。メニューは改良されており、新しいウィンドウを開く、古いウィンドウを削除する、ウィンドウを再配置する、希望するレイアウト(垂直、水平、タイル)を選択するといったことが可能になりました。

9 12月 2016
新しい MetaTrader 5 プラットフォームビルド1495:カスタムグラフィックを扱うためのMQL5の改良

MQL5

  1. MQL5: CopyTicksRange 関数が追加されました。
  2. MQL5:CCanvasクラスに改良されたアンチエイリアス関数が追加されました。
  3. MQL5:MQL5リファレンスにグラフィカルライブラリの説明が追加されました。このライブラリは、価格チャート上でヒストグラム、分布グラフ、折れ線グラフを手早く作成することができます。
  4. MQL5:クライアントターミナルプロパティの定数リストにシステムキーの状態を表す識別子が追加されました。TerminalInfoInteger(TERMINAL_KEYSTATE_XXX)の呼び出しは、MSDNのGetKeyState()関数と同じキーの状態コードを返します。
  5. MQL5:string型のboolへのキャストのサポートを無効にしました。文字列をチェックするには、明示的な条件を使用する必要があります。たとえば、新しいビルドでは、次のコードをコンパイルするとエラーになります。
    string str;
    ...
    if(str)                        // 「Cannot convert type 'string' to 'bool(string型はboolに変換できません)」コンパイルエラーが発生する(以前のバージョンではエラーは表示されない)
       Print("str is true");
    明示的な条件の使用が必要です。
    string str;
    ...
    
    //--- 文字列が初期化されているかを確認する
    if(str!=NULL)
       Print("str is true");
    
    または
    
    //--- 文字列の値が「true」かどうかを確認する
    if(StringCompare(str,"true",false))
       Print("str is true");
    
    または
    
    //--- 文字列が整数でゼロと等しいかどうかを確認する「true」かどうかを確認する
    if((int)str!=0)
       Print("str is true");
  6. クラッシュログで修正されたエラーが修正されました。
2 12月 2016
メタトレーダー5 ウェブ・プラットフォーム:二要素認証とパスワード変更
  • ワンタイムパスワードを使用した二要素認証オプションが追加されました。これによって、不正アクセスに対するアカウントの保護が強化されます。二要素認証を有効にするには、メタトレーダー5モバイル版を起動します。ログインして、設定ウィンドウでワンタイムパスワード(OTP)ジェネレータオプションを選択します。OTPジェネレータを使用すると、取引アカウントをすべてバインドして、アカウントごとに固有の6桁のワンタイムパスワードを自動的に生成できます。ウェブ・プラットフォームにログインする際には生成されたパスワードを入力します。





  • あと一つの新しいオプションでは、マスターパスワードと投資家パスワードを変更することができます。この機会に覚えやすい個人IDを作成してください。
  • また、更新されたWebプラットフォームではデモアカウントが自動的に生成されます。メタトレーダー5 ウェブ・プラットフォームをどのブラウザからでも立ち上げ、すぐに外国為替、株、先物やCFDの金融商品の取引を始めることができます。
24 11月 2016
MetaTrader 5 ビルド1485:新しいテストモードと標準ライブラリのグラフィックス

ターミナル

  1. ターミナルとMetaEditorジャーナルのエントリの順序が変更されました。更新前には最新のログエントリが最初に表示されましたが、最も古いエントリーがジャーナルの最初に表示されるようになりました。より一般的な昇順での並べ替えは、ジャーナルの読解を容易にします。




    さらに、ジャーナルのコンテキストメニューを使用して、「時間」および「ソース」列を非表示にすることも可能になりました。

  2. ヘッジモードで、取引履歴の注文と取引に関連して決済されたポジションのチケットが表示されるようになりました。これにより、関連する開閉操作を簡単に見つけることができます。




  3. SL/TPを既存のポジションから同じ製品の新しいポジションにコピーする際に発生したエラーを修正しました。このエラーは(チャートまたは気配値表示ウィンドウなどからの)ワンクリック取引機能をヘッジモードで使用すると発生することがありました。
  4. 超高精細画面(4K)での矢印オブジェクトの表示を修正しました。

MQL5

  1. 新しいArrayPrint 関数が追加され、単純な型と構造体が配列ログに出力されます。
    void  ArrayPrint(
       const void&   array[],             // 出力配列
       uint          digits=_Digits,      // 小数点以下の桁数
       const string  separator=NULL,      // 構造体フィールド間の区切り文字の値
       ulong         start=0,             // 初めに表示される要素のインデックス
       ulong         count=WHOLE_ARRAY,   // 表示される要素の数
       ulong         flags=ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_LIMIT|ARRAYPRINT_ALIGN    
       );
    
    ArrayPrintは構造体配列のすべてのフィールドをログに出力するものではありません。オブジェクトの配列フィールドとポインタフィールドは抜かされます。すべての構造体のフィールドを出力する必要がある場合は、希望の書式を使用して独自のマス出力関数を記述する必要があります。
    //--- 最後の10バーの値を出力する
       MqlRates rates[];
       if(CopyRates(_Symbol,_Period,1,10,rates))
         {
          ArrayPrint(rates);
          Print("Проверка\n[time]\t[open]\t[high]\t[low]\t[close]\t[tick_volume]\t[spread]\t[real_volume]");
          for(int i=0;i<10;i++)
            {
             PrintFormat("[%d]\t%s\t%G\t%G\t%G\t%G\t%G\t%G\t%I64d\t",i,
             TimeToString(rates[i].time,TIME_DATE|TIME_MINUTES|TIME_SECONDS),
             rates[i].open,rates[i].high,rates[i].low,rates[i].close,
             rates[i].tick_volume,rates[i].spread,rates[i].real_volume);
            }
         }
       else
          PrintFormat("CopyRates failed, error code=%d",GetLastError());
    //--- ログの例
    /*
                        [time]  [open]  [high]   [low] [close] [tick_volume] [spread] [real_volume]
       [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295         18110       10   17300175000
       [1] 2016.11.09 05:00:00 1.12296 1.12825 1.11930 1.12747         17829        9   15632176000
       [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744         13458       10    9593492000
       [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194         15362        9   12352245000
       [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172         16833        9   12961333000
       [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052         15933        8   10720384000
       [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528         11888        9    8084811000
       [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915          7284       10    5087113000
       [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904          8710        9    6769629000
       [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263          8956        7    7192138000
       Check
       [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume]
       [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295 18110 10 17300175000 
       [1] 2016.11.09 05:00:00 1.12296 1.12825 1.1193 1.12747 17829 9 15632176000 
       [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744 13458 10 9593492000 
       [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194 15362 9 12352245000 
       [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172 16833 9 12961333000 
       [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052 15933 8 10720384000 
       [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528 11888 9 8084811000 
       [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915 7284 10 5087113000 
       [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904 8710 9 6769629000 
       [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263 8956 7 7192138000 
    */
    

  2. S1=S2+S1のように文字列の加算する際のエラーを修正しました。
  3. ArrayResize関数の動作が変更されました。reserve_sizeパラメータとして-1が渡された場合、この関数は配列サイズを増やさない場合にのみ未使用(予約済み)メモリを解放します。reserve_size=-1で新しい配列サイズを0に設定することはArrayFreeを呼び出すことと同じです。この新しい動作によってMQL5プログラムのメモリ使用量が最適化できます。
    void OnStart()
      {
       int arr[];
    //--- 最初に使用されるメモリの量 
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- サイズ1の配列に使用されたメモリ量(リサーブ(予備)あり)
       ArrayResize(arr,1,1024*1024);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- 予備があるため、使用されたメモリの量は要素数の増加後には変更されない
       ArrayResize(arr,1024*512,1024*1024);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- メモリサイズは配列を縮小した後にも変更されない
       ArrayResize(arr,1);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- 未使用メモリは予備の削除後に解放される
       ArrayResize(arr,1,-1);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
      }
    

  4. チャート描画関数が標準ライブラリに追加されました。この新機能を使用するには、プロジェクトにMQL5\Include\Graphics\Graphic.mqhを含めます。

    下記はGraphPlotを使用して3つのデータ系列に基づいてチャートをプロットします。
    #include <Graphics/Graphic.mqh>
    
    double Func1(double x) { return MathPow(x,2); }
    double Func2(double x) { return MathPow(x,3); }
    double Func3(double x) { return MathPow(x,4); }
    
    void OnStart()
      {
       GraphPlot(Func1,Func2,Func3,-2,2,0.05,CURVE_LINES);
      }
    
    
    結果:


    下記はGraphPlotを使用してデータ配列に基づいてチャートをプロットします。
    #include <Math/Stat/Binomial.mqh>
    #include <Graphics/Graphic.mqh>
    
    void OnStart(void)
      {
       double    vars[101];
       double    results[101];
       const int N=2000;
    //---  
       MathSequence(0,N,20,vars);
       MathProbabilityDensityBinomial(vars,N,M_PI/10,true,results);
       ArrayPrint(results,4);
       GraphPlot(results);
    //---
      }
    
    結果:



  5. 標準ライブラリの数学統計を扱うための関数を更新しました。MQL5バージョンとソースR言語の両方で、すべての関数の品質と精度が完全に確認されました。精度とパフォーマンスの速度の制御を可能にするために、ユニットテストが静的ライブラリとともに配布されます。これらは\MQL5\Scripts\UnitTests\Statディレクトリにあります。

    • TestStat.mq5 - 計算結果を確認するためのメインテストスクリプト
    • TestPrecision.mq5 — 計算精度のテスト
    • TestBenchmark.mq5 — コンピューティングパフォーマンス測定のテスト

テスター

  1. この更新には、テスト中に実行遅延を設定するための高度な設定機能が加わりました。これで、遅延がない理想的なケースやカスタム遅延セットを含めたさまざまな取引条件でエキスパートアドバイザーをテストすることができます。



    以前のバージョンではランダム遅延モードのみが使用できました。

  2. 「M1ベースのOHLC」モードでのバーのティックボリュームの生成を修正しました。
  3. ヘッジモードで取引する際の注文とポジションの開始時間をミリ秒単位までで指定できるように修正しました。
  4. 「リアルチック」モードでの複数通貨または複数時間枠テストで表示される「古いチック」エラーを修正しました。
  5. 要求されたティックがディスク上にあるデータベースから読み取られる際のCopyTicksのパフォーマンス速度が向上されました。

MetaEditor

  1. ナビゲータとツールボックスのファイルコンテキストメニューに、バージョン管理された MQL5 Storage ソースコードリポジトリを操作するためのコマンドが追加されました。




  2. リポジトリ内で1024を超えるファイルを操作する際にローカルのMQL5ストレージデータベースの整合性を壊す可能性のあったエラーを修正しました。
  3. MQL5 Storageのファイルツリーの表示を修正しました。
  4. 大量のテキストを置換した後のファイルの表示を修正しました。

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

24 11月 2016
MetaTrader 5 iOS build 1425
  • チャート上のワンクリックトレーディングパネルの改善:ポートレートモードでも使用できるようになりました。 リストから所望の値を選択することによって取引量を迅速に変更することができるようになりました。 

  • ウィンドウヘッダーの銘柄名をタップしてチャート銘柄を変更できるようになりました。
  • アプリ設定セクションの改善:現在のアカウントに関する情報が提供されるようになりました。ユニットが適切に配置され、デザインが改良されました。
  • その他複数の改善と修正。
14 10月 2016
MetaTrader 5 build 1445:MQL5数学関数ライブラリ

ターミナル

  1. トレードダイアログの買、売、及び決済ボタンにツールヒントが追加されました。ツールヒントには、初心者が取引プロセスを理解するために、操作中に売買される証券に関する情報が含まれています。




  2. Trade(取引)とHistory(履歴)タブ内で注文、約定及びポジションに新しいアイコンが追加されました。




  3. 更新されたターミナルは最適化されており、板情報、板情報でのティックチャート、Time&Sales infoの表示と更新が(最高4~5倍)より速くなります。
  4. 取引時間外のティック履歴の同期が修正されました。このプロセスは、場合によっては、多量のネットワークトラフィックを消費します。

MQL5

  1. 標準ライブラリにALGLIB数値解析ライブラリのMQL5 版が追加されました。

    ライブラリ機能

    • 線形代数
    • 線形および非線形方程式のシステム
    • 補間
    • 最適化
    • 高速フーリエ変換
    • 数値積分
    • 線形および非線形最小二乗フィッティング
    • 常微分方程式
    • 特殊機能
    • 記述統計と仮説検定
    • データ分析 - 分類、回帰
    • 多倍長演算での線形代数、補間などのアルゴリズムの(MPFRを使用した)実装

    使用法

    ALGLIBファイルは \MQL5\Include\Math\Alglibに位置します。関数を使用するには、メインライブラリファイルをお使いのプログラムに追加なさってください。

    #include <Math\Alglib\alglib.mqh>

  2. 標準ライブラリに数理統計機能が追加されました。R言語機能がMQL5で提供されるようになりました。これは、統計データ処理と解析のための最良なツールのうちの1つです。

    ライブラリ機能

    統計ライブラリには、データの統計的特性を計算するための関数や統計分布と操作のための関数が含まれています。

    • 配列要素の統計的特性を計算するための関数
    • 正規分布、対数正規分布、ベータ分布などの統計分布と操作のためのオプション

    使用法

    統計ライブラリファイルは \MQL5\Include\Math\Stat に位置します。関数を使用するには、下記の例が示すように、必要な関数を含むファイルをお使いのプログラムに追加します。

    #include <Math\Stat\Binomal.mqh>
    #include <Math\Stat\Cauchy.mqh>
    
    
    

    ライブラリ関数の詳細はStatistical Distributions in MQL5 - Taking the Best of R(MQL5での統計的分布 - Rの活用)稿で説明されています。


  3. 標準ライブラリにファジィライブラリのMQL5 版が追加されました。ファジィライブラリはマムダニ及び菅野ファジィ推論法を実装します。

    ライブラリ機能

    • 13のメンバーシップ関数
    • ファジィシステムルールを開発するための柔軟なフォーム
    • マムダニ<ファジィ推論法
    • 菅野ファジィ推論法
    • 5つのマムダニシステムの非ファジィ化メソッド
    • 無制限の量の入力/出力変数

    使用法

    ファジィライブラリファイルは\MQL5\Include\Math\Fuzzyに位置します。関数を使用するには、下記の例が示すように、必要な関数を含むファイルをお使いのプログラムに追加します。

    #include <Math\Fuzzy\mamdanifuzzysystem.mqh>
    #include <Math\Fuzzy\sugenofuzzysystem.mqh>
    
    
    

    ライブラリの詳細はコードベースのファジィ - ファジィモデル開発のためのライブラリで参照できます。


  4. 新しいCHART_QUICK_NAVIGATIONプロパティが、チャートのナビゲーションバーの迅速な有効/無効化を可能にします。プロパティの状態を変更/アクセスする必要がある場合にはChartSetInteger及びChartGetInteger関数が使用されます。




    ナビゲーションバーは、Enterキーまたはスペースキーを押すことによって開かれます。チャート上での指定した日付への迅速な移動だけでなく、銘柄と時間枠の切り替えも可能です。お使いのMQL5プログラムがEnterキーまたはスペースキーの押下を処理する場合は、ターミナルによるこれらのイベントの傍受を避けるために CHART_QUICK_NAVIGATIONプロパティを無効になさってください。クイックナビゲーションバーは、ダブルクリックでも開くことができます。

  5. FileLoad及びFileSave関数が追加されました。これらは、ファイルの読み取りおよびファイルへに配列を保存する簡単な方法を提供します。FileRead*やFileWrite*と異なり、これらの関数は指標ハンドルを必要としません。FileLoadとFileSaveは数値型の配列ならびに文字列、動的配列やクラスオブジェクトを持たないシンプルな構造体の配列と動作します。
    long  FileLoad(
       const string filename,      // [in] ファイル名
       void         &buffer[],     // [out] ファイルが読み込まれる配列
       uint         common_flag=0  // [in] 0 - 端末のFilesフォルダでファイルを探す、FILE_COMMON - 端末の共通ディレクトリでファイルを探す
       );
    
    bool  FileSave(
       const string filename,      // [in] ファイル名
       const void   &buffer[],     // [in] ファイルが保存される配列
       uint         common_flag=0  // [in] 端末のFilesフォルダでファイルを作成する、FILE_COMMON - 端末の共通ディレクトリでファイルを作成する
       );
    
    
    ファイルにティックを書き込んでから読み取るメソッドの例:
    //--- 入力パラメータ
    input int      ticks_to_save=1000; // ティック数
    //+------------------------------------------------------------------+
    //| スクリプトプログラム開始関数                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       string  filename=_Symbol+"_ticks.bin";
       MqlTick ticks[];
    //---
       int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
       if(copied!=-1)
         {
          PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied);
          //--- ティック履歴が同期されている場合はエラーコードは0に等しい
          if(!GetLastError()==0)
             PrintFormat("%s: Ticks are not synchronized. Error=",_Symbol,copied,_LastError);
          //---  ファイルにティックを書き込む
          if(!FileSave(filename,ticks,FILE_COMMON))
             PrintFormat("FileSave() failed, error=%d",GetLastError());
         }
       else
          PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError());
    //--- ファイルにティックを読み返す
       ArrayFree(ticks);
       long count=FileLoad(filename,ticks,FILE_COMMON);
       if(count!=-1)
         {
          Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
          for(int i=0;i<count;i++)
            {
             PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
             TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
             ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
            }
         }
      }
    
    

  6. DRAW_CANDLES描画モードを使用したカスタム指標の表示を修正しました。このモードでは1つから3つの色を設定することが可能です。ローソク足の表示は設定されている色の数に依存します。

    1色のみが指定されている場合はチャートのすべてのローソク足はこの色で塗られています。
    //--- 同じ色で塗られたローソク足 
    #property indicator_label1  "One color candles"
    #property indicator_type1   DRAW_CANDLES
    //--- 1色のみが設定されたのでローソク足の色はすべて同じ
    #property indicator_color1  clrGreen  
    
    
    2色が指定された場合は1番目の色がローソク足の輪郭、2番目が実体に適用されます。
    //--- ローソク足の実体の色は髭の色と異なる
    #property indicator_label1  "Two color candles"
    #property indicator_type1   DRAW_CANDLES
    //--- ローソクの輪郭と髭は緑で実体は白
    #property indicator_color1  clrGreen,clrWhite 
    
    
    3色が指定された場合は1番目の色がローソク足の輪郭、2、3番目の色が強気/弱気ローソク足の実体に適用されます。
    //--- ローソク足の実体の色は髭の色と異なる
    #property indicator_label1  "One color candles"
    #property indicator_type1   DRAW_CANDLES
    //--- ローソクの輪郭と髭は緑、強気ローソク足の実体は白、弱気ローソク足の実体は赤
    #property indicator_color1  clrGreen,clrWhite,clrRed
    
    
    DRAW_CANDLESスタイルはカスタムキャンドル着色を可能にします。また、すべての色はPlotIndexSetInteger function (composition_index_DRAW_CANDLES, PLOT_LINE_COLOR, modifier_index, color)関数を使用してインディケータの動作中に動的に変更することができ、ここでmodifier_indexの持つ値は次のいずれかです。
    • 0 – 輪郭と髭の色
    • 1 – 強気ローソク足の実体の色
    • 2 – 弱気ローソク足の実体の色
    //--- 輪郭と髭の色の設定
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,clrBlue);
    //--- 強気ローソク足の実体の色の設定
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,clrGreen);
    //--- 弱気ローソク足の実体の色の設定
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,clrRed);
    
    
  7. CopyTicks関数を使ったティック履歴操作がバグの修正とともに改善されました。
  8. この新しいビルドでは、インターフェイスでの演算子の使用が可能になりました(以前は不可能)。

マーケット

  1. マーケットからの製品購入の際の繰り返したMQL5.communityへのサインインリクエストの原因となっていたエラーを修正しました。

テスター

  1. UIのギリシャへ語、マレー語とヘブライ語への翻訳を追加しました。

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

29 9月 2016
メタトレーダー5 ウェブ・プラットフォームがより速くより便利に
  1. Market Watch(気配値表示)と価格チャートウィンドウなどのWebアプリケーションブロックのサイズを変える機能が追加されました。
  2. Toolbox (ツールボックス)ウィンドウのTrade(取引)とHistory(履歴)タブ内で列をソートする機能が追加されました。列の幅の変更も可能です。
  3. Details(詳細)タブと素早く銘柄を追加する機能が追加されました。
  4. コードの最適化によってウェブターミナルの動作速度を全体的に上げました。アカウントの初期化、銘柄の追加、そして取引自体がより高速に実行されるようになりました。


26 9月 2016
iOS 版 MetaTrader 5 ビルド1403
  • トレードセクションの表示を変更しました - 取引データの表示は、取引口座のリスク管理システムに依存するようになりました:小売外国為替、CFD、先物またはエクスチェンジモデル。

  • インターフェース言語の選択を一般設定で別々のメニュー項目に移動しました。
  • 修正と改善。
26 9月 2016
Android版 MetaTrader 5 ビルド1372
  • トレーダーが同時に複数銘柄の価格の変化を同時にモニターするためのマルチウィンドウモードがサポートされています。
  • インディケータサブウィンドウの高さを変更する機能が追加されました。
  • チャート画面におけるメニューバーに表示銘柄の変更アイコンならびにチャート設定画面用アイコンが追加されました。


  • PC版と同様にインディケータのレベルを編集する機能も追加され、インターフェイスはブルガリア語にも翻訳されました。
    前へ1234567891011