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

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

13 5月 2016
MetaTrader 5プラットフォームの新バージョンbuild 1340:モバイルへの便利な証明書の移動とテスターの改善

ターミナル

  1. 高度なセキュリティモードへ接続する為の、デスクトップターミナルからモバイルターミナルへの証明書の移動が快適になりました。

    取 引プラットフォームには拡張認証がサポートされています。パスワードに加えて、口座は特別なSSL証明書によって保護されています。証明書は、口座の為に 取引サーバーで生成されたファイルです。このファイルは固有のものであり、これなしで口座へ接続することはできません。

    以前は、もし証明書がデスクトップターミナルを通じて要求および生成された場合、iPhone/iPadまたはAndroidでMetaTrader 5の口座を使用するには、そのファイルを手動でデバイスへ移動し、それからインストールする必要がありました。これからは証明書は快適に移動されます。

    どのように移動が行われるか
    証明書の移動は取引サーバーを介して行われます。

    • はじめに証明書はデスクトップターミナルで暗号化されます。口座の所有者は、証明書が安全なアルゴリズムAES-256を使用して暗号化されるパスワードを指定します。このパスワードはユーザーのみが知り得るもので、サーバーには送信されません。
    • 次に暗号化された証明書は、モバイルターミナルを介して取得されるまでの間(1時間以内)保存される取引サーバーに送信されます。
    • 証明書の取得の為には、ユーザーはモバイルターミナルを介して口座へ接続する必要があります。接続後すぐに証明書のインポートが提案されます。この為には、デスクトップターミナルで暗号化されたパスワードを入力する必要があります。

    証明書の移動は安全に行われます。取引サーバーは中間ストレージとして使用され、暗号化はクライアント側で行われ、証明書のパスワードは送信されたり、取引サーバーに保存されることはありません。

    証明書の移動方法
    デスクトップターミナルで口座へ接続し、コンテキストメニューの『証明書の移動』を選択してください。



    あなたが指示したことを承認する為に、口座のマスターパスワードを入力してください。次に、サーバーへの送信前に証明書が保護されるパスワードを設定してください。パスワードは8桁以上である必要があります。

    サーバーへの証明書の送信が成功した後、モバイルターミナルを開き口座へ接続してください。するとすぐに証明書のインポートを求められます。同意をして、デスクトップターミナルで指定したパスワードを入力してください。



    インポートした証明書は、『プログラムについてー証明書』で表示することができます。
    証明書の移動がサポートされた、iPhone/iPadまたはAndroid版MetaTrader 5モバイルターミナルは、近日リリースされます。

テスター

  1. より正確なテストの為に、指値注文やストップロス/テイクプロフィット注文の実行および作動アルゴリズムが変更されました。ビジュアルテストの機能が拡張されました。

    株式商品に対して何が変わったのか
    実 際の市場では、株式商品のチャートの構築と注文の実行は、取引の終値(Last)で行われます。リミットオーダーの作動は、Bid/Ask価格で行われま す。全てのタイプの注文は、常に現在のBid/Ask価格で行われます。より実際の条件に近づけるようにストラテジーテスターに変更が加えられました。
      以前
    現在
    作動 Bid/Askによる全てのタイプの指値注文とストップロス/テイクプロフィット
    Bid/Askによるリミットオーダー
    Lastによるストップ、ストップリミット、ストップロス/テイクプロフィット注文
    実行 注文で指定された価格による全てのタイプの指値注文とストップロス/テイクプロフィット
    作動時のBid/Ask価格による全てのタイプの指値注文とストップロス/テイクプロフィット

    Si-6.16での例を見てみましょう。現在価格が、Bid=72570、Ask=72572、Last=72552で、バイストップオーダーが72580で発注されました。価格変動で新しい現在価格は、以下のようになりました。

    • Bid=72588
    • Ask=72590
    • Last=72580


    株式商品では、ストップオーダー作動のトリガーはLast価格です。従って、Last価格が72580になったことで、バイストップオーダーが有効になり ました。以前では、この72580という価格は、この注文の実行に使用されました。買い操作の実行の為のAsk=72580という価格は市場にはないの で、このような動作は正しくないものでした。


    更新されたテスターでは、現在の買い価格はAsk=72590で、バイストップオーダーはこの価格で実行されます。このように、テスターの新しい取引実行 アルゴリズムは、より正確に実際の市場に対応しています。以前のアルゴリズムでは、取引操作は非市場価格で実行され、不正確なテスト結果に繋がっていたこ とでしょう。

    株式商品以外に対しては何が変わったのか
    株式以外の商品に対しては、アルゴリズムは以前のまま作動し ます。全てのタイプの指値注文とストップロス/テイクプロフィットにBidとAsk価格を使用します。実行モードが変更されました。以前は注文で指定され た価格で行われていましたが、これからは注文作動時の現在のBidとAsk価格が使用されます。

    ビジュアルテストの新しい機能
    ビ ジュアルテストでは、これからはバーのAskの最大価格とBidの最小価格のラインが表示されます。このようなチャートでは、バーの構築と注文の作動が Last価格で行われ、注文の実行はBidやAsk価格で行われる、株式商品でのエキスパートアドバイザーのテストが簡単になります。



    ビジュアルテストのチャートには、指定した日付へのナビゲーションの機能が登場しました。チャート上でダブルクリックをし、必要な日付と時間を指定してく ださい。また、チャートはあらゆる注文や取引に移動させることができます。取引操作の『取引』、『履歴』または『操作』でダブルクリックをしてください。
  2. テスター:テスター起動前の価格/ティックヒストリーのダウンロードのジャーナルが拡張されました。これからは、操作ログには履歴のダウンロードの終了、ダウンロードデータのボリュームとダウンロードにかかった時間が表示されます。
    2016.05.10 12:47:53    Core 1    5.10 Mb of history processed in 0:00.842
    2016.05.10 12:47:53    Core 1    GBPUSD: history synchronization completed [5225 Kb]

MQL5

  1. いくつかのケースでCopyTicks関数が要求したものよりも少ないティックを返すエラーを修正しました。
  2. テンプレート関数生成のエラーを修正しました。
  3. ドキュメントが更新されました。

クラッシュログで報告された不具合を修正しました。

12 5月 2016
MetaTrader 5ウェブプラットフォーム:β版のテストができます

トレーダーからの多数の要望により、MetaTrader 5取引プラットフォームのウェブ バージョンが開発されました。新製品はスピード、マルチマーケット性、取引機能の拡張といったデスクトップ版『5』の利点を持つ、ウェブプラットフォーム の利便性とクロスプラットフォーム性を兼ね備えたものとなっています。

MetaTrader 5ウェブプラットフォームがMQL5.communityのサイトで利用可能になり、あらゆるOS(Windows、Mac、Linux)のあらゆるブラウザから金融市場取引を行うことができるようになりました。プログラムをインストールする必要はなく、インターネット接続があれば十分です。

β版でトレーダーがすぐに利用できるもの:

  • 両建て取引機能
  • 30種類のテクニカルインディケータ
  • 24種類の分析オブジェクト
  • MetaTrader 5の取引注文のフルセット
  • 41言語のインターフェイス
β版のリリースは幅広い公開テストを提供し、トレーダーが新しい機能を評価することができるようにするという目的を持っています。
22 4月 2016
MetaTrader 5 build 1325:ヘッジ取引と実際のティックによるテスト

ターミナル

  1. リテールFXの可能性を拡大する為に、プラットフォームに2つ目の計算システムであるヘッジングが追加されました。これからは、シンボルごと に、反対方向のものを含む、多数のポジションを持つことができます。これによって、いわゆる『ロック』を使った取引戦略を実装することができ、つまり、も し価格がトレーダーに反する方向へ向かった場合、反対方向にポジションを開くことができます。

    新しい計算システムは、MetaTrader 4で使用されているものと同様なので、トレーダーに馴染みのあるものです。また、トレーダーは、複数の取引の実行(部分的なものも含む)や、MQL5 Cloud Networkのサポートを持つ多通貨・マルチスレッドテスターなど、第五世代プラットフォームの全ての長所を使用することができます。

    これからは、一つのシンボルにつき一つのポジションしか持つことができない、ネッティングを使用しているアカウントと同じアカウントで、株式取引を行うことができます。また、同じプラットフォームの他のアカウントで、FX取引やヘッジングを使用することもできます。

    ヘッジアカウントの取得方法とポジション計算タイプの参照場所
    ポジション計算のタイプはアカウントレベルで設定され、これはターミナルウィンドウのヘッダやログに表示されます。



    ヘッジングのデモアカウントを開設する為には、対応するオプションを有効にしてください。



    ネッティングシステム
    この計算システムは、アカウント上では一度に1つのシンボルにつき1つのポジションのみ開くことができるということを念頭に置いています。

    • ポジションを持っている場合、同じ方向での取引実行時にこのポジションのボリュームを増加させます。
    • 逆方向に取引が実行された場合、既存のポジションのボリュームを小さくし、これを閉じたり(現在のポジションボリュームと等しいボリュームでの取引実行時)反転させます(もし反対方向の取引のボリュームが現在のポジションよりも大きい場合)。

    この時、どのようなアクションの結果、反対方向に取引が行われるかや、市場の注文や指値注文の実行の結果は重要ではありません。

    以下に、0.5ロットのボリュームでのEURUSDの二つの買い取引の実行例を引用しました。


    これらの取引の実行結果は、1ロットのボリュームの1つの共通ポジションになりました。

    ヘッジングシステム
    この計算システムはアカウントに、同じシンボルに対し反対方向のものを含む、複数の取引ポジションを持つことを可能にします。

    取引シンボルに開いているポジションがあり、トレーダーが新しい取引を実行する(または指値注文が作動する)場合、新しいポジションが開かれます。既存のポジションは変化しません。

    以下に、0.5ロットのボリュームでのEURUSDの二つの買い取引の実行例を引用しました。


    これらの取引が実行された結果、2つの別個のポジションが開かれました。

    新しい取引操作タイプ Close By
    ヘッ ジングポジション計算のアカウントの為に、反対のポジションを閉じる新しいタイプの取引操作が追加されました。この操作によって、同じシンボルでの反対方 向の2つのポジションを同時に閉じることができます。もし相対するポジションが様々なロット数を持っている場合、2つのうちの1つの注文のみが開いたまま 残ります。このボリュームは、2つのクローズポジションのロット差と等しくなり、ポジションの方向とオープン価格は、クローズポジションのうちの(ボ リューム的に)大きい方と等しくなります。

    2つのポジションの単一のクローズと比較すると、相対クローズでは、トレーダーは1つのスプレッドを節約することができます。

    • 単一クローズの場合、トレーダーは2回スプレッドを払うことになります。より低い価格(Bid)で買いを閉じ、より高い価格(Ask)で売りを閉じます。
    • 最初のポジションを閉じる為の相対クローズでは、2つ目のポジションのオープン価格を使用し、2つ目のポジションには最初のポジションのオープン価格が使用されます。


    相対ポジションのクローズ時に、『close by』のタイプの注文が設定されます。閉じられるポジションのチケットが、コメントで指定されます。相対ポジションのペアのクローズは、『out by』タイプの2つの取引によって行われます。両方のポジションのクローズの結果によって得られる取引の利益/損失のサイズは、1つの取引でのみ指定され ます。


  2. プラットフォームのヘッジングサポートの、MetaTrader 4からのアカウントの転送機能が拡張されました。これからは、ブローカーはMetaTrader 5のアカウントを全ての操作と一緒に自動モードで転送することができます。(建玉、指値、全ての取引履歴)

    MetaTrader 4から転送されたアカウントへの最初の接続時に、ウェルカムページが表示されます。転送は安全に行われます。作業を開始する前に、以前に MetaTrader 4で使用していたアカウントのパスワードを入力し、それから新しいパスワードを設定してください。



    接続後は、MetaTrader 5で始めからアカウントを開いていたかのように通常モードで作業することができ、MetaTrader 4の全ての取引履歴は自動的に新しいアカウントに保存されます。
    インポート時に、注文とポジションのチケット(注文履歴を含む)は、MetaTrader 4の取引履歴の一つの記録は、MetaTrader 5の取引履歴の4つの記録までに相応するので保存されません。全ての取引記録には、新しいチケットが割り当てられます。

    アカウント番号は、ブローカーがインポートをする方法に応じて、保存されるか、または新しいものに置き換えられます。
  3. チャットが追加されました。これからは、取引プラットフォームで直にMQL5.communityの友人や仲間と交流することができます。チャットでは、MQL5アカウントの全ての個人メッセージが表示されます。交流の前に、チャット画面やプラットフォームの設定から自分のアカウントにログインしてください。(サービス->設定->コミュニティ)




  4. デモアカウント開設のダイアログが簡素化され、ヘッジ機能付きアカウントを開設することができるようになりました。これからは、長いアンケートを記入する必要はなく、主要データを表示し取引パラメータを選択するだけで十分です。



  5. プラットフォームを使った作業の迅速な開始の為に、デモアカウントの自動割り当てが追加されました。もし、プラットフォームにまだ一 つもアカウントがない場合、起動時に最初の利用可能な取引サーバでデモアカウントを割り当てます。開設に成功した後、アカウントはすぐに接続されます。

  6. これからは、各ポジションにはチケット(ユニークナンバー)があります。通常、ポジションが開かれた注文のチケットと一致します (サーバーでの操作の結果チケットが変更された場合を除く)。例えば、ポジションの再オープンによるスワップの加算です。ターミナルの新しいバージョンへ のアップデート後、以前に開かれたポジションには、チケットが自動的に割り当てられます。



  7. ポジションの方向転換をもたらす市場発注の際のストップロスとテイクプロフィットのレベル設定が修正されました。以前は、新しいポジションでは適切なレベルが設定されませんでした。
  8. ワンクリック注文パネルのコントロール要素で、小数点以下4桁以上を持つ価格の表示が修正されました。
  9. 印刷前のプレビューウィンドウのニュース表示のエラーを修正しました。
  10. ティックチャートの表示エラーを修正しました。
  11. ターミナルの強制終了後のマーケットデプスの開始が修正されました。
  12. ワンクリック注文パネルのコントロール要素の表示の際に、成行注文の許可のチェックが追加されました。
  13. 多数の開かれた注文やポジションがある場合の、マージンと利益の計算が最適化されました。
  14. ユーザーインターフェースのマレー語への翻訳が追加されました。
  15. マニュアルが全体的に更新されました。新しいデザイン、インタラクティブなスクリーンショット、そして内蔵されたビデオなど、これらは全てMetaTrader 5を使った取引の学習を最大限に簡単で便利なものにする為にあります。



  16. 『上からのチャート』モードでのグラフィックオブジェクトの表示が修正されました。

テスター

  1. 取引ロボットとテクニカルインディケータの実際のティックヒストリーでのテストが可能になりました。

    実際ティックでのテストと最適化は実際の条件に最大限に近くなります。分足データをベースに生成されたものの代わりに金融商品ごとに証券会社によって収集された実際ティックが使用されます。これらのティックは、取引所や流動性プロバイダーからのものです。

    実際のティックによるテストもしくは最適化を開始する為には、ストラテジーテスターで適切なモードを選択してください。


    ティックデータは分足データよりも遥かに大きいサイズを持っています。初めにテストを起動する際には、これらのダウンロードに時間がかかる場合がありま す。ダウンロードされたティックデータは、月ごとにTKSファイル\bases\[取引サーバ名]\ticks\[シンボル名]に保存されます。

    実際ティックでのテストの特徴
    実際ティックでのテストの際には、スプレッドは分足バーの領域内で変わることがあり、その場合、1分間の中でのティックティック生成時に相応するバーで決まっているスプレッドが使用されます。

    も しシンボルによってマーケットデプスが中継される場合、バーはきっちりと最終取引(Last)実行価格で構築されます。他の場合では、テスターは初めに Lastの価格でバーを構築しようと試みますが、それがない場合にのみBid価格を使用します。そこにLast価格があったかどうかに関係なく、 OnTickの発生は全てのティックで起こります。

    チャートがLast値で構築されていたとしても、取引操作はいつもBidとAskの価 格によって行われる点にご注意ください。例えば、バーの始値を使用するエキスパートアドバイザは一つの価格(Last)に基づいてシグナルを取得します が、取引の実行は他の価格(BidまたはAsk)で行われます。『全ティック』生成モード使用時には、バーはBid価格で構築され、取引はBidやAsk 価格で実行されます。この時Askは、Bid+分足バーに相応する固定スプレッドで計算されます。

    もしシンボルの履歴に分足バーがある が、その分に対するティックデータがない場合、テスターは『全ティック』モードでティックを生成します。これによって、ブローカーに完全なティックデータ がない場合の、計画した期間中におけるエキスパートアドバイザのテストをすることが可能になります。もしシンボルの履歴に分足バーがないが、その分に対す るティックデータがある場合、これらのティックは無視されます。分足データはより信頼性が高いと考えられています。

    MQL5 Cloud Networkでの実際ティックによるテスト
    実際ティックでのテストは、ローカルやリモートエージェントだけでなく、MQL5 Cloud Networkを介しても利用することができます。数か月かかるストラテジーの最適化も、数千のコンピュータの計算能力を用いることで数時間で実行することができます。

    ネットワークを介したテストを行うには、クラウドエージェントの使用をオンにしてください。



    MQL5 Cloud Networkを介した実際ティック上でのテストでは、大量のインターネットトラフィックが転送されることがあります。これは、コンピュータネットワークの使用に対する最終コストに大きく影響を与えます。
  2. 取引シンボルの幾つかのタイプで手数料が計算されるエラーを修正しました。
  3. 対応するポジションのExpert欄の数値に応じた、SL/TPが作動した結果に起こる、取引注文のExpert欄の記入が修正されました。以前は記入されませんでした。
  4. 通常およびフォワード最適化の結果タブへの切り替えが修正されました。
  5. "Envelopes"インディケータの表示と計算が修正されました。
  6. ビジュアルテストの実行が最適化されました。
  7. 多数の開かれた注文やポジションがある場合の、マージンと利益の計算が最適化されました。
  8. 高頻度取引での取引操作の実行が最適化されました。
  9. 今後は履歴の同期は、現在の相場を必要としない、非主要シンボルのプロパティのリクエスト時に行われません。例えば、 SYMBOL_SELECT、SYMBOL_DIGITS, SYMBOL_SPREAD_FLOAT、SYMBOL_TRADE_CALC_MODE、SYMBOL_TRADE_MODE、 SYMBOL_TRADE_STOPS_LEVEL、SYMBOL_TRADE_FREEZE_LEVEL、SYMBOL_TRADE_EXEMODEな どです。以前は非主要シンボルのプロパティの任意のリクエスト時に現在のシンボルでの履歴の同期化が行われていました。
  10. 年率でのスワップ計算が修正されました。

MQL5

  1. MQL5言語の新しい機能の追加とMetaTrader 5プラットフォームにヘッジングが登場したことに関連し、実行されるEX5ファイルのフォーマットが変更されました。以前のビルドのMetaEditor でコンパイルされた全ての古いEX5プログラムは、更新後に正常に動作するため、上位互換性は完全に確保されます。

    この時、1325以降のビルドでコンパイルされたEX5プログラムは、古いビルドのターミナルでは動作せず、下位互換性はありません。
  2. 抽象クラスと純粋仮想関数のサポートが追加されました。

    抽象クラスは、将来におけるより具体的な派生クラスを作成する一般的なエンティティを作成する為に作られています。抽象クラスは、いくつかの他のクラスの為に基底クラスとして使用することができるだけなので、抽象クラスのオブジェクトタイプを作成することはできません。

    純粋仮想関数を一つでも含むクラスは、抽象クラスとなります。したがって、抽象クラスから派生したクラスは、その純粋仮想関数を実装する必要があり、そうしないと、これらは同様に抽象クラスになります。

    仮 想関数は、純粋指定子構文を使用し、『純粋』として宣言されます。例として、共通機能を提供する為だけ型に作成されるCAnimalクラスを見てみましょ う。CAnimalのオブジェクト自体は、実際の使用には一般的すぎます。したがって、CAnimalクラスは、抽象クラスの為の良い例となります。
    class CAnimal
      {
    public:
                          CAnimal();     // 構造
       virtual void       Sound() = 0;   // 純粋仮想関数
    private:
       double             m_legs_count;  // 足数
      };
    ここでのSound()関数は、純粋仮想関数PURE(=0)の指定子で宣言されている為、純粋仮想となります。

    (=NULL)または(=0)と純粋指定子PUREが指定されている仮想関数のみが純粋仮想関数となります。抽象クラスの使用と宣言例:
    class CAnimal
      {
    public:
       virtual void       Sound()=NULL;   // PUREメソッドは派生クラスでオーバーライドする必要があり、CAnimalクラス自体は抽象クラスになり、作成されません
      };
    //--- 抽象クラスからの子孫
    class CCat : public CAnimal
     {
    public:
      virtual void        Sound() { Print("Myau"); } // PUREは再定義され、CCatクラスは抽象ではなく作成されません
     };
    
    //--- 誤用例
    new CAnimal;         // エラー『CAnimal』-コンパイラはエラー"cannot instantiate abstract class"を出します
    CAnimal some_animal; // エラー『CAnimal』- コンパイラはエラー『cannot instantiate abstract class』を出します
    
    //--- 正しい使用例
    new CCat;  // エラーはありません。CCatクラスは抽象ではありません
    CCat cat;  // エラーはありません。CCatクラスは抽象ではありません
    抽象クラス使用の制限
    純粋仮想関数(直接または間接)の抽象クラスのコンストラクタによる呼び出しの際、結果は未定義になります。
    //+------------------------------------------------------------------+
    //| 抽象基底クラス                                                     |
    //+------------------------------------------------------------------+
    class CAnimal
      {
    public:
       //--- 純粋仮想関数
       virtual void      Sound(void)=NULL;
       //--- 関数
       void              CallSound(void) { Sound(); }
       //--- コンストラクタ
       CAnimal()
        {
         //--- 仮想メソッドの明示的呼び出し
         Sound();
         //--- 暗黙的呼び出し(第三関数を介して)
         CallSound();
         //--- コンストラクタまたはデストラクタでは、常に自分の関数が呼び出されます
         //--- 仮想性や子孫を呼び出す関数に関わりません
         //--- もし呼び出される関数が純粋仮想である場合、
         //--- 呼び出しは重大な実行エラー"pure virtual function call"をもたらします
        }
      };
    しかしながら、抽象クラスのコンストラクタとデストラクタは、他のメンバー関数を呼び出すことができます。

  3. イベントモデルの構成の簡素化の為に、関数へのポインターのサポートが追加されました。

    関数へのポインターを宣言する為には、『関数へのポインター』のタイプを明確にしてください。
    typedef int (*TFunc)(int,int);
    これで、TFuncがタイプとなり、変数の関数ポインターを宣言することができます。
    TFunc func_ptr;
    func_ptr変数に、以後の呼び出しの為に、関数のアドレスを保存することができます。
    int sub(int x,int y) { return(x-y); }
    int add(int x,int y) { return(x+y); }
    int neg(int x)       { return(~x);  }
    
    func_ptr=sub;
    Print(func_ptr(10,5));
    
    func_ptr=add;
    Print(func_ptr(10,5));
    
    func_ptr=neg;           // エラー: negはint (int,int)型を持っていません
    Print(func_ptr(10));    // エラー: 二つのパラメータが存在する必要があります
    関数のポインターを保存し、パラメータとして引き渡すことができます。クラスの非静的メソッドにポインターを取得することはできません。

  4. MqlTradeRequestの取引リクエスト構造体に、二つの新しいフィールドが追加されました。

    • position — ポジションチケット。ヘッジ取引の際やポジションのクローズや変更時に、その明確な識別の為に記入する必要があります。ポジションの識別が取引シンボルの名前で行われる為、ネッティング計算システムでの取引時には、この欄の記入は意味を持ちません。
    • position_by — 相対ポジションのチケット。同じシンボルで、かつ反対方向に開かれた相対ポジションのクローズ時に使用されます。ヘッジポジション計算システムにのみ使用されます。

  5. ENUM_TRADE_REQUEST_ACTIONSの取引操作タイプにTRADE_ACTION_CLOSE_BY(相対ポジションクローズ)が追加されました。ヘッジポジション計算システムにのみ使用されます。

  6. 注文、取引、ポジションのプロパティに、取引操作に相応するチケットが追加されました。

    • ENUM_ORDER_PROPERTY_INTEGERにORDER_TICKET(注文のチケット)が追加されました。固有の番号が各注文に割り当てられます。
    • ENUM_DEAL_PROPERTY_INTEGERにDEAL_TICKET(取引のチケット)が追加されました。固有の番号が各取引に割り当てられます。
    • ENUM_POSITION_PROPERTY_INTEGERにPOSITION_TICKET(ポジションのチケット)が追加さ れました。固有の番号が各ポジションに割り当てられます。通常、ポジションが開かれた注文のチケットと一致します(サーバーでの操作の結果チケットが変更 された場合を除く)。例えば、ポジションの再オープンによるスワップの加算です。その注文によってポジションが開かれた注文を見つけるには、 POSITION_IDENTIFIERを使用する必要があります。POSITION_TICKETは MqlTradeRequest::positionと一致します。

  7. ENUM_ORDER_TYPEにORDER_TYPE_CLOSE_BY(相対するポジションによるポジションクローズ注文)が追加されました。
  8. ENUM_ORDER_PROPERTY_INTEGERに(ORDER_POSITION_BY_IDORDER_TYPE_CLOSE_BY注文の為の相対ポジションの識別子)が追加されました。
  9. ENUM_DEAL_ENTRYにDEAL_ENTRY_OUT_BY(相対ポジションをクローズした結果取引が行われた)が追加されました。
  10. 取引トランザクションの構造体MqlTradeTransactionに、2つの同様のフィールドが追加されました。

    • position — トランザクションによって影響を受けるポジションのチケット。市場注文の処理に関わるトランザクション (TRADE_TRANSACTION_ORDER_* ポジションチケットがまだ割り当てられていないTRADE_TRANSACTION_ORDER_ADD以外)と注文履歴 (TRADE_TRANSACTION_HISTORY_*)の為に記入します。
    • position_by — 相対ポジションのチケット。同じシンボルで、かつ反対方向に開かれた相対ポジションのクローズ時に使用されます。相対ポジションのクローズの注文 (close by)と相対ポジションのクローズの為の取引(out by)の為のみに記入されます。

  11. PositionGetTicket関数が追加されました。これはオープンポジションリスト内のインデックスによるポジションチ ケットを返し、PositionGetDouble、PositionGetInteger、PositionGetString関数を使用し、今後の作 業の為に自動的にこの関数を選択します。
    ulong  PositionGetTicket(
       int  index      // ポジションリスト内の番号
       );

  12. PositionSelectByTicket関数が追加されました。これは、指定されたチケットによって、今後の作業の為にオープンポジションを選択します。
    bool  PositionSelectByTicket(
       ulong   ticket     // ポジションのチケット
       );

  13. ENUM_SYMBOL_INFO_DOUBLEにSYMBOL_MARGIN_HEDGED(カバーされたポジション(一つのシンボルに異なる方向へのポジション)の一つのロットの契約またはマージンのサイズ)が追加されました。

    • 最初のマージンがシンボルの為に指定されている場合(SYMBOL_MARGIN_INITIAL)、ヘッジマージンは絶対値(金額での)として指定されます。
    • 最初のマージンが指定されていない(0と等しい)場合、SYMBOL_MARGIN_HEDGEDに、取引タイプ(SYMBOL_TRADE_CALC_MODE)に相応する式に基づくマージンの計算時に使用される契約サイズが表示されます。

    ヘッジポジションの為のマージン計算の特徴は、 MetaTrader 5取引プラットフォームのユーザーガイドに書かれています。

  14. ENUM_ACCOUNT_INFO_INTEGERに、ACCOUNT_MARGIN_MODE(現在の取引アカウントの為のマージン計算モード)が追加されました。

    • ACCOUNT_MARGIN_MODE_RETAIL_NETTINGは、『ネッティング』モード(1つのシンボルに対し、1つの ポジションのみ)でのポジション計算をする子場外市場の為に使用されます。シンボルタイプをベースにマージンが計算されます。 (SYMBOL_TRADE_CALC_MODE)
    • ACCOUNT_MARGIN_MODE_EXCHANGEは、株式市場の為に使用されます。シンボル設定で指定された割引に基づいてマージンが計算されます。割引はブローカーによって設定されますが、取引所によって決められた値よりも低くなることはありません。
    • ACCOUNT_MARGIN_MODE_RETAIL_HEDGINGは、独立したポジション計算(『ヘッジング』は1つのシンボ ルに対し、複数のポジションを有することができる)の際、市場外取引の為に使用されます。マージン計算はシンボルタイプ (SYMBOL_TRADE_CALC_MODE)とヘッジマージンのサイズ計算(SYMBOL_MARGIN_HEDGED)をベースに行われます。

  15. クライアントターミナルのプロパティENUM_TERMINAL_INFO_INTEGERに TERMINAL_SCREEN_DPI(画像の情報出力解像度は、DPIで測定される)が追加されました。このパラメータを知ることで、異なる解像度の モニターで同じように表示されるように、グラフィックオブジェクトのサイズを指定することができます。

  16. クライアントターミナルのプロパティENUM_TERMINAL_INFO_INTEGERにTERMINAL_PING_LAST(マイクロ秒単位の取引サーバーまでのPingの最新の既知値)が追加されました。1秒は100万マイクロ秒です。

  17. SendFTP関数呼び出し結果の送信が修正されました。以前は、送信に成功した際に、TRUEの代わりにFALSEが返されていました。
  18. 幾つかのケースで、"Access violation"エラーに繋がっていたStringConcatenate関数内のエラーを修正しました。
  19. テンプレート関数の動作のエラーを修正しました。
  20. Print、Alert、Comment関数は、4000以上の文字サイズの列を出力することができるようになりました。
  21. 配列同士(開始からの初期ポジションの異なるオフセット)の比較の際に起こっていたArrayCompare関数内のエラーを修正しました。
  22. スタンダードライブラリにヘッジ取引のヘルプが追加されました。

    CPosition
    以下のメソッドが追加されました。:

    • SelectByMagicは、以後の作業の為のシンボルとマジックナンバーによってポジションを選択します。
    • SelectByTicketは、以後の作業の為のチケットでポジションを選択します。

    CTrade
    以下のメソッドが追加されました。

    • RequestPositionは、ポジションのチケットを取得します。
    • RequestPositionByは、相対ポジションのチケットを取得します。
    • PositionCloseByは、反対方向のポジションチケットの指定によってポジションを閉じます。
    • SetMarginModeは、現在のアカウントの設定に応じて、マージンの計算モードを設定します。

    メソッドのオーバーロードを追加しました。

    • PositionCloseは、チケットによってポジションを閉じます。
    • PositionModifyは、チケットによってポジションを変更します。

    CAccountInfo
    以下のメソッドが変更されました。

    • MarginModeは、今後はマージンの計算モードを取得します。以前は、StopoutMode新メソッドと同様に動作しました。
    • MarginDescriptionは、今後は文字列としてマージン計算モードを取得します。以前は、StopoutModeDescription新メソッドと同様に動作しました。

    以下のメソッドが追加されました。

    • StopoutModeは、最小保証金レベルの指定モードを取得します。
    • StopoutModeDescriptionは、最小保証金レベルの指定モードを文字列として取得します。

    CExpert
    以下のメソッドが追加されました。

    • SelectPositionは、それを使用した今後の作業の為のポジションを選択します。

  23. MQL5のスタンダードライブラリにいくつかの改良が加えられました。
  24. DLLライブラリのアンロードエラーを修正しました。
  25. コンストラクタクラスのテンプレートサポートを修正しました。

Signals

  1. 年率でのスワップ計算が修正されました。

MetaEditor

  1. 『完全なワードのみ』モードにおけるファイルごとのワード検索が修正されました。
  2. 対応するファイルのコンパイル結果の列をダブルクリックすることでファイルへ移動することができるようになりました。
  3. Windows XPの幾つかのコントロールエレメントの表示が修正されました。
ドキュメントが更新されました。
31 3月 2016
MetaTrader 5 build 1295

ターミナル

  1. リテールFXトレーダーの可能性を拡大する為に、プラットフォームに2つ目の計算システムであるヘッジングが追加されました。こ れからは、シンボルごとに、反対方向のものを含む、多数のポジションを持つことができます。これによって、いわゆる『ロック』を使った取引戦略を実装する ことができ、つまり、もし価格がトレーダーに反する方向へ向かった場合、反対方向にポジションを開くことができます。

    新しい計算システムは、MetaTrader 4で使用されているものと同様なので、トレーダーに馴染みのあるものです。また、トレーダーは、複数の取引の実行(部分的なものも含む)や、MQL5 Cloud Networkのサポートを持つ多通貨・マルチスレッドテスターなど、第五世代プラットフォームの全ての長所を使用することができます。

    これからは、一つのシンボルにつき一つのポジションしか持つことができない、ネッティングを使用しているアカウントと同じアカウントで、株式取引を行うことができます。また、同じプラットフォームの他のアカウントで、FX取引やヘッジングを使用することもできます。

    ヘッジ機能つきアカウントの開設方法とポジション計算タイプの参照場所
    ポジション計算のタイプはアカウントレベルで設定され、これはターミナルウィンドウのヘッダやログに表示されます。



    ヘッジングのデモアカウントを開設する為には、対応するオプションを有効にしてください。




    ネッティングシステム
    この計算システムは、アカウント上では一度に1つのシンボルにつき1つのポジションのみ開くことができるということを念頭に置いています。

    • ポジションを持っている場合、同じ方向での取引実行時にこのポジションのボリュームを増加させます。
    • 逆方向に取引が実行された場合、既存のポジションのボリュームを小さくし、これを閉じたり(現在のポジションボリュームと等しいボリュームでの取引実行時)反転させます(もし反対方向の取引のボリュームが現在のポジションよりも大きい場合)。


    この時、どのようなアクションの結果、反対方向に取引が行われるかや、市場の注文や指値注文の実行の結果は重要ではありません。

    以下に、0.5ロットのボリュームでのEURUSDの二つの買い取引の実行例を引用しました。


    これらの取引の実行結果は、1ロットのボリュームの1つの共通ポジションになりました。

    ヘッジングシステム
    この計算システムはアカウントに、同じシンボルに対し反対方向のものを含む、複数の取引ポジションを持つことを可能にします。

    取引シンボルに開いているポジションがあり、トレーダーが新しい取引を実行する(または指値注文が作動する)場合、新しいポジションが開かれます。既存のポジションは変化しません。

    以下に、0.5ロットのボリュームでのEURUSDの二つの買い取引の実行例を引用しました。


    これらの取引が実行された結果、2つの別個のポジションが開かれました。

    新しい取引操作タイプ Close By
    ヘッ ジングポジション計算のアカウントの為に、反対のポジションを閉じる新しいタイプの取引操作が追加されました。この操作によって、同じシンボルでの反対方 向の2つのポジションを同時に閉じることができます。もし相対するポジションが様々なロット数を持っている場合、2つのうちの1つの注文のみが開いたまま 残ります。このボリュームは、2つのクローズポジションのロット差と等しくなり、ポジションの方向とオープン価格は、クローズポジションのうちの(ボ リューム的に)大きい方と等しくなります。

    2つのポジションの単一のクローズと比較すると、相対クローズでは、トレーダーは1つのスプレッドを節約することができます。

    • 単一クローズの場合、トレーダーは2回スプレッドを払うことになります。より低い価格(Bid)で買いを閉じ、より高い価格(Ask)で売りを閉じます。
    • 最初のポジションを閉じる為の相対クローズでは、2つ目のポジションのオープン価格を使用し、2つ目のポジションには最初のポジションのオープン価格が使用されます。


    相対ポジションのクローズ時に、『close by』のタイプの注文が設定されます。閉じられるポジションのチケットが、コメントで指定されます。相対ポジションのペアのクローズは、『out by』タイプの2つの取引によって行われます。両方のポジションのクローズの結果によって得られる取引の利益/損失のサイズは、1つの取引でのみ指定され ます。



  2. 取引ロボットとテクニカルインディケータの実際のティックヒストリーでのテストが可能になりました。

    実際ティックでのテストと最適化は実際の条件に最大限に近くなります。分足データをベースに生成されたものの代わりに、金融商品ごとにブローカーによって収集された実際のティックが使用されます。これらのティックは、取引所や流動性プロバイダーからのものです。

    実際のティックによるテストもしくは最適化を開始する為には、ストラテジーテスターで適切なモードを選択してください。



    ティックデータは分足データよりも遥かに大きいサイズを持っています。初めにテストを起動する際には、これらのダウンロードに時間がかかる場合がありま す。ダウンロードされたティックデータは、月ごとにTKSファイル\bases\[取引サーバ名]\ticks\[シンボル名]に保存されます。

    実際ティックでのテストの特徴
    実際ティックでのテストの際には、スプレッドは分足バーの領域内で変わることがあり、その場合、1分間の中でのティックティック生成時に相応するバーで決まっているスプレッドが使用されます。

    も しシンボルによってマーケットデプスが中継される場合、バーはきっちりと最終取引(Last)実行価格で構築されます。他の場合では、テスターは初めに Lastの価格でバーを構築しようと試みますが、それがない場合にのみBid価格を使用します。そこにLast価格があったかどうかに関係なく、 OnTickの発生は全てのティックで起こります。

    チャートがLast値で構築されていたとしても、取引操作はいつもBidとAskの価 格によって行われる点にご注意ください。例えば、バーの始値を使用するエキスパートアドバイザは一つの価格(Last)に基づいてシグナルを取得します が、取引の実行は他の価格(BidまたはAsk)で行われます。『全ティック』生成モード使用時には、バーはBid価格で構築され、取引はBidやAsk 価格で実行されます。この時Askは、Bid+分足バーに相応する固定スプレッドで計算されます。

    もしシンボルの履歴に分足バーがある が、その分に対するティックデータがない場合、テスターは『全ティック』モードでティックを生成します。これによって、ブローカーに完全なティックデータ がない場合の、計画した期間中におけるエキスパートアドバイザのテストをすることが可能になります。もしシンボルの履歴に分足バーがないが、その分に対す るティックデータがある場合、これらのティックは無視されます。分足データはより信頼性が高いと考えられています。
    現時点では、実際のティックでのテストと最適化は、ローカル及び遠隔のエージェントでのみ可能です。クラウドコンピューティングネットワークMQL5 Cloud Networkのサポートは近日追加予定です。

  3. チャットが追加されました。これからは、取引プラットフォームで直にMQL5.communityの友人や仲間と交流することができます。チャットでは、MQL5アカウントの全ての個人メッセージが表示されます。交流の前に、チャット画面やプラットフォームの設定から自分のアカウントにログインしてください。(サービス->設定->コミュニティ)




  4. デモアカウント開設のダイアログが簡素化され、ヘッジ機能付きアカウントを開設することができるようになりました。これからは、長いアンケートを記入する必要はなく、主要データを表示し取引パラメータを選択するだけで十分です。



  5. プラットフォームを使った作業の迅速な開始の為に、デモアカウントの自動割り当てが追加されました。もし、プラットフォームにま だ一つもアカウントがない場合、起動時に最初の利用可能な取引サーバでデモアカウントを割り当てます。開設に成功した後、アカウントはすぐに接続されま す。

  6. これからは、各ポジションにはチケット(ユニークナンバー)があります。通常、ポジションが開かれた注文のチケットと一致します (サーバーでの操作の結果チケットが変更された場合を除く)。例えば、ポジションの再オープンによるスワップの加算です。ターミナルの新しいバージョンへ のアップデート後、以前に開かれたポジションには、チケットが自動的に割り当てられます。




  7. ポジションの方向転換をもたらす市場発注の際のストップロスとテイクプロフィットのレベル設定が修正されました。以前は、新しいポジションでは適切なレベルが設定されませんでした。
  8. ワンクリック注文パネルのコントロール要素で、小数点以下4桁以上を持つ価格の表示が修正されました。
  9. 印刷前のプレビューウィンドウのニュース表示のエラーを修正しました。
  10. ティックチャートの表示エラーを修正しました。
  11. ターミナルの強制終了後のマーケットデプスの開始が修正されました。
  12. ワンクリック注文パネルのコントロール要素の表示の際に、成行注文の許可のチェックが追加されました。
  13. 多数の開かれた注文やポジションがある場合の、マージンと利益の計算が最適化されました。
  14. ユーザーインターフェースのマレー語への翻訳が追加されました。
  15. マニュアルが全体的に更新されました。新しいデザイン、インタラクティブなスクリーンショット、そして内蔵されたビデオなど、これらは全てMetaTrader 5を使った取引の学習を最大限に簡単で便利なものにする為にあります。




MQL5

  1. 抽象クラスと純粋仮想関数のサポートが追加されました。

    抽象クラスは、将来におけるより具体的な派生クラスを作成する一般的なエンティティを作成する為に作られています。抽象クラスは、いくつかの他のクラスの為に基底クラスとして使用することができるだけなので、抽象クラスのオブジェクトタイプを作成することはできません。

    純粋仮想関数を一つでも含むクラスは、抽象クラスとなります。したがって、抽象クラスから派生したクラスは、その純粋仮想関数を実装する必要があり、そうしないと、これらは同様に抽象クラスになります。

    仮 想関数は、純粋指定子構文を使用し、『純粋』として宣言されます。例として、共通機能を提供する為だけ型に作成されるCAnimalクラスを見てみましょ う。CAnimalのオブジェクト自体は、実際の使用には一般的すぎます。したがって、CAnimalクラスは、抽象クラスの為の良い例となります。
    class CAnimal
      {
    public:
                          CAnimal();     // コンストラクタ
       virtual void       Sound() = 0;   // 純粋仮想関数
    private:
       double             m_legs_count;  // 足の数
      };
        
    <t0>ここでのSound()関数は、純粋仮想関数PURE(=0)の指定子で宣言されている為、純粋仮想となります。

    (=NULL)または(=0)と純粋指定子PUREが指定されている仮想関数のみが純粋仮想関数となります。抽象クラスの使用と宣言例:
    class CAnimal
      {
    public:
       virtual void       Sound()=NULL;   // PUREメソッドは派生クラスでオーバーライドする必要があり、CAnimalクラス自体は抽象クラスになり、作成されません
      };
    //--- 抽象クラスからの派生
    class CCat : public CAnimal
     {
    public:
      virtual void        Sound() { Print("Myau"); } // PUREはオーバーライドする必要があり、CCatクラスは抽象クラスではなく、作成することができます
     };
    
    //--- 間違った使用例
    new CAnimal;         //『CAnimal』エラーは、コンパイラは「抽象クラスをインスタンス化できません」というエラーを出します
    CAnimal some_animal; // CAnimal』エラーは、コンパイラは「抽象クラスをインスタンス化できません」というエラーを出します
    
    //--- 正しい使用例
    new CCat;  // エラーはなく、CCatクラスは抽象クラスではありません
    CCat cat;  // エラーはなく、CCatクラスは抽象クラスではありません
        
    抽象クラスの使用の制限
    純粋仮想関数(直接または間接)の抽象クラスのコンストラクタによる呼び出しの際、結果は未定義になります。
    //+------------------------------------------------------------------+
    //| 抽象基底クラス                                                     |
    //+------------------------------------------------------------------+
    class CAnimal
      {
    public:
       //--- 純粋仮想関数
       virtual void      Sound(void)=NULL;
       //--- 関数
       void              CallSound(void) { Sound(); }
       //--- コンストラクタ
       CAnimal()
        {
         //--- 仮想メソッドの明示的な呼び出し
         Sound();
         //--- 明示的ではない呼び出し(第三の関数を介した)
         CallSound();
         //--- コンストラクタまたはデストラクタは常に自分の関数を呼び出す
         //--- 派生クラスでの呼び出された関数によるオーバーライドや仮想性に関わらず
         //--- もし、呼び出される関数が純粋仮想の場合、
         //--- 呼び出しは重大なランタイムエラーをもたらします:『純粋仮想関数呼び出し』
        }
      };
        
    しかしながら、抽象クラスのコンストラクタとデストラクタは、他のメンバー関数を呼び出すことができます。

  2. イベントモデルの構成の簡素化の為に、関数へのポインターのサポートが追加されました。

    関数へのポインターを宣言する為には、『関数へのポインター』のタイプを明確にしてください。
    typedef int (*TFunc)(int,int);
    これで、TFuncがタイプとなり、変数の関数ポインターを宣言することができます。
    TFunc func_ptr;
    func_ptr変数に、以後の呼び出しの為に、関数のアドレスを保存することができます。
    int sub(int x,int y) { return(x-y); }
    int add(int x,int y) { return(x+y); }
    int neg(int x)       { return(~x);  }
    
    func_ptr=sub;
    Print(func_ptr(10,5));
    
    func_ptr=add;
    Print(func_ptr(10,5));
    
    func_ptr=neg;           // エラー: negはint (int,int)タイプを持っていません。
    Print(func_ptr(10));    // エラー:二つのパラメータがある必要があります
    
    関数のポインターを保存し、パラメータとして引き渡すことができます。クラスの非静的メソッドにポインターを取得することはできません。

  3. MqlTradeRequestの取引リクエスト構造体に、二つの新しいフィールドが追加されました。

    • position — ポジションチケット。ヘッジ取引の際やポジションのクローズや変更時に、その明確な識別の為に記入する必要があります。ポジションの識別が取引シンボルの名前で行われる為、ネッティング計算システムでの取引時には、この欄の記入は意味を持ちません。
    • position_by — 相対ポジションのチケット。同じシンボルで、かつ反対方向に開かれた相対ポジションのクローズ時に使用されます。ヘッジポジション計算システムにのみ使用されます。

  4. ENUM_TRADE_REQUEST_ACTIONSの取引操作タイプにTRADE_ACTION_CLOSE_BY(相対ポジションクローズ)が追加されました。ヘッジポジション計算システムにのみ使用されます。

  5. 注文、取引、ポジションのプロパティに、取引操作に相応するチケットが追加されました。

    • ENUM_ORDER_PROPERTY_INTEGERにORDER_TICKET(注文のチケット)が追加されました。固有の番号が各注文に割り当てられます。
    • ENUM_DEAL_PROPERTY_INTEGERにDEAL_TICKET(取引のチケット)が追加されました。固有の番号が各取引に割り当てられます。
    • ENUM_POSITION_PROPERTY_INTEGERにPOSITION_TICKET(ポジションのチケット)が追加さ れました。固有の番号が各ポジションに割り当てられます。通常、ポジションが開かれた注文のチケットと一致します(サーバーでの操作の結果チケットが変更 された場合を除く)。例えば、ポジションの再オープンによるスワップの加算です。その注文によってポジションが開かれた注文を見つけるには、 POSITION_IDENTIFIERを使用する必要があります。POSITION_TICKETは MqlTradeRequest::positionと一致します。

  6. ENUM_ORDER_TYPEにORDER_TYPE_CLOSE_BY(相対するポジションによるポジションクローズ注文)が追加されました。
  7. ENUM_ORDER_PROPERTY_INTEGERに(ORDER_POSITION_BY_IDORDER_TYPE_CLOSE_BY注文の為の相対ポジションの識別子)が追加されました。
  8. ENUM_DEAL_ENTRYにDEAL_ENTRY_OUT_BY(相対ポジションをクローズした結果取引が行われた)が追加されました。
  9. 取引トランザクションの構造体MqlTradeTransactionに、2つの同様のフィールドが追加されました。

    • position — トランザクションによって影響を受けるポジションのチケット。市場注文の処理に関わるトランザクション (TRADE_TRANSACTION_ORDER_* ポジションチケットがまだ割り当てられていないTRADE_TRANSACTION_ORDER_ADD以外)と注文履歴 (TRADE_TRANSACTION_HISTORY_*)の為に記入します。
    • position_by — 相対ポジションのチケット。同じシンボルで、かつ反対方向に開かれた相対ポジションのクローズ時に使用されます。相対ポジションのクローズの注文 (close by)と相対ポジションのクローズの為の取引(out by)の為のみに記入されます。

  10. PositionGetTicket関数が追加されました。これはオープンポジションリスト内のインデックスによるポジションチ ケットを返し、PositionGetDouble、PositionGetInteger、PositionGetString関数を使用し、今後の作 業の為に自動的にこの関数を選択します。
    ulong  PositionGetTicket(
       int  index      // ポジションリストの番号
       );
    

  11. PositionSelectByTicket関数が追加されました。これは、指定されたチケットによって、今後の作業の為にオープンポジションを選択します。
    bool  PositionSelectByTicket(
       ulong   ticket     // ポジションのチケット
       );
    

  12. ENUM_SYMBOL_INFO_DOUBLEにSYMBOL_MARGIN_HEDGED(カバーされたポジション(一つのシンボルに異なる方向へのポジション)の一つのロットの契約またはマージンのサイズ)が追加されました。

    • 最初のマージンがシンボルの為に指定されている場合(SYMBOL_MARGIN_INITIAL)、ヘッジマージンは絶対値(金額での)として指定されます。
    • 最初のマージンが指定されていない(0と等しい)場合、SYMBOL_MARGIN_HEDGEDに、取引タイプ(SYMBOL_TRADE_CALC_MODE)に相応する式に基づくマージンの計算時に使用される契約サイズが表示されます。

    ヘッジポジションの為のマージン計算の特徴は、 MetaTrader 5取引プラットフォームのユーザーガイドに書かれています。

  13. ENUM_ACCOUNT_INFO_INTEGERに、ACCOUNT_MARGIN_MODE(現在の取引アカウントの為のマージン計算モード)が追加されました。

    • ACCOUNT_MARGIN_MODE_RETAIL_NETTINGは、『ネッティング』モード(1つのシンボルに対し、1つの ポジションのみ)でのポジション計算をする子場外市場の為に使用されます。シンボルタイプをベースにマージンが計算されます。 (SYMBOL_TRADE_CALC_MODE)
    • ACCOUNT_MARGIN_MODE_EXCHANGEは、株式市場の為に使用されます。シンボル設定で指定された割引に基づいてマージンが計算されます。割引はブローカーによって設定されますが、取引所によって決められた値よりも低くなることはありません。
    • ACCOUNT_MARGIN_MODE_RETAIL_HEDGINGは、独立したポジション計算(『ヘッジング』は1つのシンボ ルに対し、複数のポジションを有することができる)の際、市場外取引の為に使用されます。マージン計算はシンボルタイプ (SYMBOL_TRADE_CALC_MODE)とヘッジマージンのサイズ計算(SYMBOL_MARGIN_HEDGED)をベースに行われます。

  14. クライアントターミナルのプロパティENUM_TERMINAL_INFO_INTEGERに TERMINAL_SCREEN_DPI(画像の情報出力解像度は、DPIで測定される)が追加されました。このパラメータを知ることで、異なる解像度の モニターで同じように表示されるように、グラフィックオブジェクトのサイズを指定することができます。

  15. クライアントターミナルのプロパティENUM_TERMINAL_INFO_INTEGERにTERMINAL_PING_LAST(マイクロ秒単位の取引サーバーまでのPingの最新の既知値)が追加されました。1秒は100万マイクロ秒です。

  16. SendFTP関数呼び出し結果の送信が修正されました。以前は、送信に成功した際に、TRUEの代わりにFALSEが返されていました。
  17. 幾つかのケースで、"Access violation"エラーに繋がっていたStringConcatenate関数内のエラーを修正しました。
  18. テンプレート関数の動作のエラーを修正しました。
  19. Print、Alert、Comment関数は、4000以上の文字サイズの列を出力することができるようになりました。
  20. 配列同士(開始からの初期ポジションの異なるオフセット)の比較の際に起こっていたArrayCompare関数内のエラーを修正しました。
  21. スタンダードライブラリにヘッジ取引のヘルプが追加されました。
    CPosition
    以下のメソッドが追加されました。:

    • SelectByMagicは、以後の作業の為のシンボルとマジックナンバーによってポジションを選択します。
    • SelectByTicketは、以後の作業の為のチケットでポジションを選択します。

    CTrade
    以下のメソッドが追加されました。

    • RequestPositionは、ポジションのチケットを取得します。
    • RequestPositionByは、相対ポジションのチケットを取得します。
    • PositionCloseByは、反対方向のポジションチケットの指定によってポジションを閉じます。
    • SetMarginModeは、現在のアカウントの設定に応じて、マージンの計算モードを設定します。

    メソッドのオーバーロードを追加しました。

    • PositionCloseは、チケットによってポジションを閉じます。
    • PositionModifyは、チケットによってポジションを変更します。

    CAccountInfo
    以下のメソッドが変更されました。

    • MarginModeは、今後はマージンの計算モードを取得します。以前は、StopoutMode新メソッドと同様に動作しました。
    • MarginDescriptionは、今後は文字列としてマージン計算モードを取得します。以前は、StopoutModeDescription新メソッドと同様に動作しました。

    以下のメソッドが追加されました。

    • StopoutModeは、最小保証金レベルの指定モードを取得します。
    • StopoutModeDescriptionは、最小保証金レベルの指定モードを文字列として取得します。

    CExpert
    以下のメソッドが追加されました。

    • SelectPositionは、それと共にフォローアップする為のポジションを選択します。

  22. MQL5のスタンダードライブラリにいくつかの改良が加えられました。

シグナル

  1. 取引シグナルのリスト表示のエラーを修正しました。

テスター

  1. 取引シンボルの幾つかのタイプで手数料が計算されるエラーを修正しました。
  2. 対応するポジションのExpert欄の数値に応じた、SL/TPが作動した結果に起こる、取引注文のExpert欄の記入が修正されました。以前は記入されませんでした。
  3. 通常およびフォワード最適化の結果タブへの切り替えが修正されました。
  4. "Envelopes"インディケータの表示と計算が修正されました。
  5. ビジュアルテストの実行が最適化されました。


ターミナル

  1. 多数の開かれた注文やポジションがある場合の、マージンと利益の計算が最適化されました。
  2. 高頻度取引での取引操作の実行が最適化されました。
  3. 今後は履歴の同期は、現在の相場を必要としない、非主要シンボルのプロパティのリクエスト時に行われません。例えば、 SYMBOL_SELECT、SYMBOL_DIGITS, SYMBOL_SPREAD_FLOAT、SYMBOL_TRADE_CALC_MODE、SYMBOL_TRADE_MODE、 SYMBOL_TRADE_STOPS_LEVEL、SYMBOL_TRADE_FREEZE_LEVEL、SYMBOL_TRADE_EXEMODEな どです。以前は非主要シンボルのプロパティの任意のリクエスト時に現在のシンボルでの履歴の同期化が行われていました。

MetaEditor

  1. 『完全なワードのみ』モードにおけるファイルごとのワード検索が修正されました。
  2. 対応するファイルのコンパイル結果の列をダブルクリックすることでファイルへ移動することができるようになりました。
  3. Windows XPの幾つかのコントロールエレメントの表示が修正されました。

 

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

 

17 12月 2015
MetaTrader 5プラットフォーム build 1240: 動作速度の改善と内蔵ビデオ


ホスティング

  1. 仮想サーバのダイアログにチュートリアルビデオ『仮想プラットフォームをレンタルする方法』へのリンクが追加されました。このビデオは2分程度です。是非ご覧いただき、いかに年中無休のコピートレードや取引ロボットの起動が簡単かを知ってください。


    このビデオや、その他のビデオはYoutubeのMetaQuotes Software Corp.公式チャンネルにてご覧いただけます。
  2. エキスパートアドバイザから呼び出されるカスタムインディケータのEX5ライブラリ、またはカスタムインディケータの呼出時のホスティングへの移行のエラーを修正しました。

ターミナル

  1. 高周波の取引操作(1秒に50以上の操作)を実行する際、開いている注文とポジションのリストの更新速度が速くなりました。
  2. ターミナル: 多くの(数万の)取引ツール数の時の取引サーバとターミナルの初期同期化が最適化され、遥かに速くなりました。これからは、接続後、もっと素早く活動を始めることができます。
  3. ターミナル: ターミナルのメモリの消費が遥かに少なくなり、最適化されました。
  4. ターミナル: ターミナルの開閉時にマーケットデプスの設定の保存と復元される機能が追加されました。
  5. ターミナル: ターミナルのウィンドウをドラッグする際、Windows 10で起こっていたアーティファクトを修正しました。
  6. ターミナル: コマンドやダイアログの為のコンテキストヘルプの動作が修正されました。ヘルプの呼出には、実際のエレメントにカーソルを合わせF1キーを押してください。
  7. ターミナル:高解像度の画面での動作へのインターフェースの適応作業を続けています。

MQL5

  1. 注文と取引情報を取得する関数、OrderGetStringとHistoryOrderGetString、HistoryDealGetStringに新しいプロパティが追加されました。

    • ORDER_EXTERNAL_ID - 外部取引システムにおける注文の識別子。(株式市場)
    • DEAL_EXTERNAL_ID - 外部取引システムにおける取引の識別子。

  2. 構造体とクラスを伴う動作時の、関数ZeroMemoryの動作が修正されました。時折、メモリの解放が行われませんでした。
  3. 関数SendFTPの動作時のエラーコードが追加されました。関数は、設定ウィンドウの『FTP』タブで指定されたアドレスへファイルを送信します。

    • ERR_FTP_NOSERVER - 設定でftpサーバが指定されていません。
    • ERR_FTP_NOLOGIN - 設定でftpログインが指定されていません。
    • ERR_FTP_FILE_ERROR - ファイルが存在しません。
    • ERR_FTP_CONNECT_FAILED - ftpサーバへの接続に失敗しました。
    • ERR_FTP_CHANGEDIR - ftpサーバ上にファイルのアップロードの為のディレクトリが見つかりません。
    • ERR_FTP_CLOSED - ftpサーバへの接続が閉じています。

  4. 継承による継承先から継承元へのオブジェクトの移行の検証が修正されました。
  5. クラステンプレートの一連のエラーを修正しました。
  6. 関数CopyTicksによるティックの照会時のエラーを修正しました。連続同一取引ティック(1つのオブジェクトと1つのLast価格)のためのパラ メータCOPY_TICKS_TRADE指定時(取引ティックのみコピー)にそれらの内の始めのものだけが反応していました。
  7. カスタムタイプの変数のサイズ決定におけるエラーを修正しました。
  8.  開梱の無限サイクルを引き起こしていた、関数CryptDecodeのZLib使用時のエラーを修正しました。

テスター

  1. テストの主要ツールとは異なる取引ツールによる価格履歴同期化のエラーを修正しました。
  2. OnTradeTransactionの処理での取引トランザクションTRADE_TRANSACTION_DEAL_ADD(取引の履歴への追加)のバックアップが修正されました。
  3. 遺伝的最適化の際のフォワードテストの実行が変更されました。これからは、フォワードテストには遺伝的最適化の後で得られたすべての唯一無二の結果が関係します。以前は4分の1の結果しか使われていませんでした。

MetaEditor

  1. MQL5マスターにチュートリアルビデオ『MQL5マスターでの取引ロボットの作成方法』のリンクが追加されました。この3分程のビデオをご覧いただき、1つのコード配列を書くことなく、取引ロボットを作成してみてください。


    このビデオや、その他のビデオはYoutubeのMetaQuotes Software Corp.公式チャンネルにてご覧いただけます。
  2.  ウィンドウのうちの1つが完全に展開している場合に、開いているウィンドウの整理コマンドの動作を修正しました。『ウィンドウ』メニューから、開いているファイルをモザイク、垂直、水平、直列に配置することができます。
  3. インターフェースの高解像度の画面(4K)での動作の適応作業を続けています。
ドキュメントが更新されました。
30 10月 2015
MetaTrader 5プラットフォームの新バージョン build 1210:マーケットデプスの強化と一般の修正
Terminal
  1. マーケットデプスで市場よりも良くないリミットオーダーをだすことが可能になりました。これによって、株式取引市場における指定金額でのオーダーの実行の保障が得られます。
    リ ミットオーダーが買いと売りの注文のボーダーを超えて移される時は、ストップオーダーになります。(Buy LimitはBuy Stopに代わり、Sell LimitはSell Stopに代わります)これからは、リミットオーダーがストップオーダーに代わらない為には、ドラッグの際にCrtlキーを押してください。




  2. チャートの設定に『クイック注文ボタンを表示する』のオプションが追加されました。これにより、クイック注文とマーケットデプスのパネルを呼び出すボタンを隠すことができます。



  3. 時折、他のアプリケーションと共に現れるプロンプトの紛争につながる不具合を修正しました。

MQL5

  1. AS_SERIESフラグを持つ動的配列の履歴データのコピー関数Copy*の動作が修正されました。フラグはArraySetAsSeries関数によって設定され、配列要素の指数化が時系列で実行されることを示します。
  2. ChartSetIntegerとChartGetIntegerを使用する動作の為に、CHART_SHOW_ONE_CLICKの性能が変更されまし た。以前は、それでチャート上のクイック注文パネルを表示したり隠したりすることができました。これからは、この性能は追加でクイック注文パネル呼出ボタ ンやマーケットデプスボタンをチャート上に表示したり隠したりします。(チャート設定の中の『クイック注文ボタンを表示する』オプションと同様)
  3. テンプレートの動作の不具合を修正しました。
ドキュメントが更新されました。
23 10月 2015
MetaTrader 5プラットフォームの新バージョン build 1200:ティックヒストリーの取得とサービスの支払いが直に

ター ミナル

  1. マーケットウォッチにティックヒストリーが7追加されました。もし以前にティックチャートが、動作時間にターミナルに溜まった履歴しか表示してい なかったとしたら、これからは取引サーバーにある全てのティックヒストリーを利用することができます。通常の価格チャートでそうなっているように、不足し ている履歴があるので、それを取引サーバーからインストールする為に、オートスクロールを無効にし、マウスでティックチャートを過去の方へスクロールして ください。新しい機能は、価格変動の詳細チャートを最大限に受け取りたいトレーダーにとって有益なものになります。



    より深いティックヒストリーを自動で受け取る為には、 CopyTicks()の機能を使ってください。不足している履歴が取引サーバーにある場合、それを照会、およびインストールするように機能が変更されます。

  2. チャート上の『ワンクリック取引』のパネルのそばに、素早くマーケットデプスのオン/オフができるアイコンが追加されました。同様に、新しいホットキーAlt+Bでも使用できます。また、これはチャート内だけではなく、Market Watchウィンドウでも動作し、この際は、マーケットウォッチ内で選ばれたシンボルのマーケットデプスが開きます。




  3. コンピュータの性能とOSの記録が、クライアントターミナルに追加されました。例:
    2015.10.14 14:48:18.486	Data Folder: C:\Program Files\MetaTrader 5
    2015.10.14 14:48:18.486	Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7  920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:00
    2015.10.14 14:48:18.486	MetaTrader 5 build 1190 started (MetaQuotes Software Corp.)
  4. コンピュータの性能とOSの記録が、クライアントターミナルに追加されました。例:

    • マーケットウォッチにシンボル数の表示がマーケットウォッチに、また総利用可能シンボル数が取引サーバーに追加されました。
    • 選択の為のスマートセレクションリストと新しいシンボル追加の列が追加されました。
    • 追加列では検索はシンボル名で行われるだけでなく、その記述やインターナショナル名でも検索されます。




  5. 数か国語での経済情勢カレンダーサポートが追加されました。
  6. 経済カレンダーに不足している国のアイコンが追加されました。
  7. マーケットウォッチのシンボル管理画面呼出の為のホットキーCtrl+Uが追加されました。
  8. 『ウィンドウ』メニューのコマンドによる、開いているチャートウィンドウの配列が修正されました。
  9. 強化認証使用の際に、ターミナルが時折、証明書ファイルを見つけられない不具合を修正しました。
  10. 時折、価格履歴の同期化ループが起こる不具合を修正しました。
  11. 機器がRequest Executionモードで取引をしている場合に、すでに開いているポジションのサイズを大きくした時、StopLoss/TakeProfitのレベルが無効化される不具合を修正しました。
  12. "Long only"モードの機器でロングポジションの際に、売り注文を出すことが可能かのチェックがマーケットデプスで修正されました。
  13. Trailing Stop機能の動作が修正されました。稀に保護されたStop Lossが、オープンポジションの為に誤って動く事がありました。
  14. 高解像度の画面での動作へのインターフェースの適応作業を続けています。
  15. MQL5プラグラムのデータに定期的に訴えているにも関わらず、履歴データが使われていないものとしてアンロードされる不具合を修正しました
  16. Windows 10での動作時のユーザーインターフェイスの要素の表示を修正しました。
  17. ユーザーインターフェイスの翻訳が更新されました。

マーケット

  1. MQL5マーケットの製品データベースの動作が改良および最適化されました。
  2. VPSでのターミナル使用による、MQL5.communityのアカウントを持たない購入が禁止されました。今後はターミナルの設定内でMQL5.communityのアカウントを表示する必要があります。ツール―オプション―コミュニティ
  3. 支払システムUnionPayでの直接の製品購入ができるようになりました。
  4. MQL5マーケットでの製品購入時のログが強化されました。


ホスティングとシグナル

  1. これからはバーチャルホスティングと取引シグナルへの購読に対して、支払システムを通じて直に支払うことができます。
    ホスティングの支払いの為に、MQL5.communityを開いたり、アカウントに入金しなくても大丈夫です。これからは、プラットフォームの支払いシステムの中から、すぐにサービスへのお支払が可能です。



    お客様に合ったシステムを選択し、支払いを行ってください。




    同様に、お客様に合った支払システムを選択していただくだけで、直にターミナルから、有料取引シグナル購読の手続きが行えます。




    必要な金額がお客様のMQL5.communityのアカウントに入金され、その後、そこから支払いが行われます。このようにして、ホスティングレンタル やシグナル購読の履歴を常に明瞭にすることができます。また、MQL5.communityのサービスに自身が行った全ての支払いを見ることができます。
  2. クライアントターミナルの32ビットバージョンでの動作時のバーチャルホスティング(移行を除く)の管理が追加されました。
  3. FTPによる公開許可に関係なく、バーチャルホスティングへのFTPエクスポート設定の移行が修正されました。

MQL5

  1. 新しい最適なコンパイラーが始動しました64ビットのプラットフォーム上のプログラムの実行が5倍まで加速しています。MQL5-プログラムは、最新バージョンのMetaEditorで再コンパイルする必要があります。.
  2. MqlTick構造のフォーマットが拡張されました。これからは、その中でティックのミリ単位の到来時間が伝達され、同様にどのようなティックのパラメータが変わったのかを確かめることができるフラッグがあります。
    struct MqlTick
      {
       datetime     time;          // 価格の最終更新時間
       double       bid;           // 現在のBid価格
       double       ask;           // 現在のAsk価格
       double       last;          // 最終取引の現在価格(Last)
       ulong        volume;        // 現在のLast価格の為の容量
       long         time_msc;      // ミリ秒単位での最終価格更新時間
       uint         flags;         // ティックフラッグ
      };
    全てのフラッグは、前回のティックと比べデータが変わったかどうかに関わらず、いつも全てのパラメータで埋められます。ティックヒストリーごとに前回の数 値を検索することなく、あらゆる瞬間の現在の価格状態をいつも見ることができます。例えば、ティックと共にBid価格だけ変わることができましたが、構造 体の中では新しい価格の他に、前回のAsk価格、容量など、他のパラメータも表示されます。現在のティックのデータとどう変わったかを知るためには、その フラッグを分析してください。

    • TICK_FLAG_BID - ティックがBid価格を変更した
    • TICK_FLAG_ASK  - ティックがAsk価格を変更した
    • TICK_FLAG_LAST - ティックが最終取引価格を変更した
    • TICK_FLAG_VOLUME - ティックが容量を変更した
    • TICK_FLAG_BUY - 買い取引の結果にティックが発生した
    • TICK_FLAG_SELL - 売り取引の結果にティックが発生した

    MqlTick構造体は2つのメソッドにて使用されます。

    • CopyTicks - メソッドは構造体の古いフォーマットを保っていません。ティックの古いフォーマットを使用する、以前にコンパイルされたEX5ファイルは、 CopyTicksの機能呼出時に、エラー4006を返します。(ERR_MQL_INVALID_ARRAY).
    • SymbolInfoTick - メソッドは構造体の古いフォーマットも、新しいフォーマットも保っています.

  3. MQL5: C++のようにパラメータ化されたクラスを作成することができるクラステンプレートが追加されました。これは、より多く抽出したり、一様に異なるクラスのオブジェクト操作の為に同じコードを使用することを可能にするものです。使用例:
    //+------------------------------------------------------------------+
    //|                                                    TemplTest.mq5 |
    //|                        Copyright 2015, MetaQuotes Software Corp. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    //+------------------------------------------------------------------+
    //| クラステンプレートを指定                                               |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArray
      {
    protected:
       T                 m_data[];
    
    public:
    
       bool              Append(T item)
         {
          int new_size=ArraySize(m_data)+1;
          int reserve =(new_size/2+15)&~15;
          //---
          if(ArrayResize(m_data,new_size,reserve)!=new_size)
             return(false);
          //---
          m_data[new_size-1]=item;
          return(true);
         }
       T                 operator[](int index)
         {
          static T invalid_index;
          //---
          if(index<0 || index>=ArraySize(m_data))
             return(invalid_index);
          //---
          return(m_data[index]);
         }   
      };
    //+------------------------------------------------------------------+
    //| ポインター配列は                                                    |
    //| デストラクタで保存されたオブジェクト、ポインターを削除します。                   |
    //|                                                                  |
    //| クラステンプレートのTArrayからの継承にご注意ください。                       |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArrayPtr : public TArray<T *>
      {
    public:
       void             ~TArrayPtr()
         {
          for(int n=0,count=ArraySize(m_data);n<count;n++)
             if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
                delete m_data[n];
         }
      };
    //+------------------------------------------------------------------+
    //| クラスを指示し、そのオブジェクトへのポインターは配列に保管されます。             |
    //+------------------------------------------------------------------+
    class CFoo
      {
       int               m_x;
    public:
                         CFoo(int x):m_x(x) { }
       int               X(void) const { return(m_x); }
      };
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    TArray<int>     ExtIntArray;   // TArrayテンプレートをインスタンス化 (int型によってTArrayテンプレートを専門化する)
    TArray<double>  ExtDblArray;   // TArrayテンプレートをインスタンス化 (double型によってTArrayテンプレートを専門化する)
    TArrayPtr<CFoo> ExtPtrArray;   // TArrayPtrテンプレートをインスタンス化 (CFoo型によってTArrayPtrテンプレートを専門化する)
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- 配列にデータを入れる
       for(int i=0;i<10;i++)
         {
          int integer=i+10;
          ExtIntArray.Append(integer);
          
          double dbl=i+20.0;
          ExtDblArray.Append(dbl);
          
          CFoo *ptr=new CFoo(i+30);
          ExtPtrArray.Append(ptr);
         }
    //--- 配列の内容を出力
       string str="Int:";
       for(int i=0;i<10;i++)
          str+=" "+(string)ExtIntArray[i];      
       Print(str);   
       str="Dbl:";
       for(int i=0;i<10;i++)
          str+=" "+DoubleToString(ExtDblArray[i],1);
       Print(str);   
       str="Ptr:";
       for(int i=0;i<10;i++)
          str+=" "+(string)ExtPtrArray[i].X();      
       Print(str);
    //--- TArrayPtr<CFoo>のオブジェクトのデストラクタで削除されるので、newを通して作成されたCFooのオブジェクトは削除しなくても良い。  
      }
    実行結果:
    TemplTest (EURUSD,H1)    Int: 10 11 12 13 14 15 16 17 18 19
    TemplTest (EURUSD,H1)    Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
    TemplTest (EURUSD,H1)    Ptr: 30 31 32 33 34 35 36 37 38 39

  4. 新しい操作*と&が追加され、参照による変数の受信や変数への参照の受信が可能になりました。
  5. オーバーロード形式の機能ObjectsDeleteAllが追加されました。チャートウィンドウ内で指定されたタイプの全てのオブジェクトを名前の接頭辞によって削除します。
    int  ObjectsDeleteAll(
       long           chart_id,   // チャートID
       const string     prefix,   // オブジェクト名の接頭辞
       int       sub_window=-1,   // ウィンドウインデックス
       int      object_type=-1    // 削除の為のオブジェクトタイプ
       );

  6. ObjectGetValueByTime機能の動作が修正されました。 以前、時折(例えば水平トレンドラインのため)チャート内の時間ごとの価格の数値が誤って戻ることがありました。
  7. サーバーに履歴データがない場合の、Copy*機能の動作が修正されました。 以前はサーバーにデータがない場合に、これらの機能の呼出は、制御が戻る前に30~50秒の遅滞を起こすことがありました。
  8. MQL5のスタンダードライブラリにいくつかの改良がくわえられました。
  9. スタンダードライブラリのドキュメントがドイツ語、フランス語、中国語、トルコ語、スペイン語、ポルトガル語に翻訳されました
  10. MQL5の日本語版ドキュメントが追加されました。

Tester

  1. ストラテジーテスターで実行の為のプログラム選択がとても便利になりました。アドバイザーとインディケーターがあるディレクトリと適合するツリー形式でリストが表示されます。




  2. 可視テスト時、クライアントターミナルに応じたいくつかのインディケーターの表示が導入されました。
  3. ストラテジーテスターを経由してMQL5プログラムのデバッグ時に、レバレッジとタイムフレームチャートが出る不具合を修正しました。
  4. ヒストリーデータにおけるテスト時のインディケータのデバックが修正されました。
クラッシュログで報告された不具合を修正しました。

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

更新はLiveUpdateシステムを介して利用することができるようになります。

3 6月 2015
MetaTrader 5ビルド622:マーケットからロボットをより迅速かつ簡単に購入

マーケットアプリケーションをMetaTrader 4/5端末から登録なしで直接購入することができるようになりました。「購入」をクリックし、希望する支払い方法を選択するだけです。


支払いシステムのWebページにリダイレクトされ、購入が完了します。既製のロボットや指標の支払いにはPayPal、WebMoney、Neteller、または銀行カードでの支払いを選択できます。


購入した商品が自動的にアカウントにリンクされるように、購入後はMQL5.comアカウントを登録することをお勧めします。MQL5アカウントを使用すると、製品をアップデートして複数のコンピュータにインストールできます。さらに、MQL5.communityアカウントは、成功したトレーダーの取引をコピーするための取引シグナル、継続的オペレーションのための仮想ホスティング、 開発者から独自のロボットを注文するためのフリーランスなどの、MetaTraderプラットフォームのための他の多数のサービスへのアクセスを提供します。

これで取引ロボットを手に入れる最も簡単で簡単な方法がお分かりかと思います。マーケットでは5000以上のさまざまなMetaTraderアプリケーションがあなたを待っています。あなたはそれらを選択して購入するだけです。


22 5月 2015
MetaTrader 5ビルド1150:マーケットでの簡単な購入、履歴でのデバッグ、取引のフィード

マーケット

  1. 新しい『直接』購入のメカニズムをご紹介します。マーケットでのトレードロボットまたはインディケータの購入が更に簡単になりました。購入の為にMQL5.communityのアカウントを作成する必要もありません。

    ワンステップで購入
    購入を完了する為に、MQL5.communityに行き、アカウントに入金をする必要はありません。これからは、プラットフォームの支払いシステムから、直接製品のお支払が可能です。様々な支払いシステムを参照することなく、マーケットでの購入履歴を明瞭にするために、初めにあなたのMQL5.communityのアカウントに必要な額が入金され、それからアカウントから製品への支払いが行われます。

    このように、いつでも自分の全支払い履歴をMQL5.communityアカウントを通じて確認することができます。




    登録せずに購入
    これからは、MQL5.communityのアカウントがなくてもお買い物をすることができます。『購入する』ボタンを押すだけで、支払いシステムのうちの一つを通じて、製品購入の支払いを行えます。



    その後、支払い手続きを完了する、支払いシステムのページへと飛びます。



    購入後にMQL5.communityのアカウント登録を行うことを強くお勧めします。これを行うことで、あなたが購入した製品が自動的にアカウントに接続されます。それによって、他のコンピュータで製品を更新したり、インストールすることができるようになります。

MetaEditor

  1. ヒストリカルデータ上でのエキスパートアドバイザやインディケータのデバッグ機能が追加されました。以前は、デバッグはリアルタイムモードで更新されるチャート上でのみ行うことができましたが、

    これからは、プログラムの動作を関心のある履歴上で確認することができます。デバッグは、ストラテジーテスターのビジュアルテストモードで行われます。プログラムは、ティックシーケンスのテスターでモデル化されたものに基づいて作成されたチャート上で起動します。

    MetaEditorの設定で、デバッグに必要なパラメータ(通貨ペア、タイムフレーム、インターバル、実行モード、ティック作成、初期証拠金、レバレッジ)を設定してください。これらのパラメータが、ビジュアルテストに適用されます。



    プログラムのコードでブレークポイントを配置し、その後ヒストリカルデータでデバッグを起動してください。



    この後、ビジュアルモードが起動し、デバッグのプロセスが開始します。




バーチャルホスティング

  1. 『バーチャルホスティング』サービスに、多くの改良と修正が加えられました。

    多くの変更事項は、LinuxとMac OSのコンピュータ上のWineの動作に関わるものでした。これからは、バーチャルサーバーは正常に割り当てられ、通常モードで利用することができます(移行の実行、リソース消費の監視、ログの参照)。


    操作ログにも変更が加えられました。非常に多くの記録がリクエストされた場合、指定された期間の最初の記録の部分のみロードされます。これはログが膨大な場合の、パフォーマンスの低下を防ぐものです。これからは、操作ログのより後の記録をダウンロードする為に、リクエストの日付を変える必要はありません。参照画面で最後の行を選択し、PgDnキーを押してください。




取引ターミナル

  1. その他の商品による未決ポジションを確保する為に資産として使用することができる、非取引商品の特別なタイプのサポートが追加されました。例えば、トレーダーは物理的に一定量の金を証拠金で持ち、それを未決ポジションの担保として使用することができます。

    このような資産は、未決ポジションとして表示され、価格はContract size×Lots×Market Price×Liquidity Rateの式で求められます。

    • Contract size - 契約サイズ
    • Lots - ロットボリューム
    • Market Price - 商品の現在の市場価格
    • Liquidity Rate - 流動性比率 - ブローカーが担保として使用を許可している資産の割合


    資産(Assets)は、自己資本(Equity)に加えられ、口座上の取引操作量を増加させるフリーマージン(Free Margin)サイズを増加させます。

    このように、様々なタイプの担保を持つ口座を作成できるようになりました。


    引用した例では、トレーダーは現在の市場価格では1210.56米ドルの価値を持つ1オンスの金を持っています。この数値は自己資本とフリーマージンに加えられたものです。このように、トレーダーは残高がゼロの状態でも、取引を続けることができます。

  2. 新しいマーケットデプスは、ティックチャートとチャート上の取引フィード(Time&Sales)を備えています。

    これからは、実際の取引価格が中継される株式商品の為に、マーケットデプスはティックチャートを表示します。このチャートでは、取引所で締結した全ての取引がマークされます。

    • 赤い丸ー売り取引
    • 青い丸ー買い取引
    • 緑の丸ー取引種別が定義されていない。取引所が取引種別を中継していない場合に使用されます。この場合、種別はAskとBid価格に対する取引価格で判別されます。買い - Ask価格(またはそれ以上)で取引が行われた場合。売り - Bid価格(またはそれ以下)で取引が行われた場合。取引価格がBidとAskの間にある場合、種別は未定義とみなされます。

    円のサイズが大きければ大きいほど、決済量も大きくなります。取引量は、ティックチャートの下のヒストグラムとしても表示されます。



    上部と下部に現在の買いと売りの総量が表示されます。

  3. 商品選択ダイアログに取引銘柄の期日を表示する欄と、期限切れの商品を非表示にするオプションが追加されました。また、期限が切れた契約を現在のものへ自動で変更する機能が追加されました。



    よりコンパクトに表示する為に、全ての期限切れの銘柄が非表示にされます。これは特に先物市場で取引をする際に便利です。『最終取引日』のパラメータで定義される期限切れの銘柄は、アクチュアルではないとみなされます。この日付は銘柄一覧の『失効』の列に表示されます。全ての銘柄を参照するには、『期限切れ契約を表示』オプションを有効にしてください。

    利便性の向上の為に銘柄リストが、自動でソートされます。

    • 始めに期限なしの銘柄
    • 直近の日付から始まる期限有りの銘柄
    • 直近の期限の切れたものから始まる期限切れの銘柄
    • アルファベット順

    期限切れの銘柄を現在のものに変更する為に、『気配値表示』ウィンドウのコンテキストメニューの『自動削除』オプションを使用します。



    ターミナルの再起動時に、期限切れの銘柄は非表示になり、その場所に最もアクチュアルなものが追加されます。例えば、期限の切れた先物契約LKOH 3.15が、次の契約の同じ原資のKOH 6.15に置き換えられます。

    この時、エキスパートアドバイザが起動されていない場合にのみ、開いているチャートに対応する銘柄の置き換えが起こります。

  4. ポジションの有無やロングポジションの配置に応じた、マーケットデプスの取引ボタンの状態の更新が修正されました。ポジションがない場合、Closeボタンは非アクティブになります。ショートポジションを持つことが禁止されている場合、Sellボタンは非アクティブになります。

  5. インターフェースの高解像度の画面(4K)での動作の適応作業を続けています。
  6. 取引ボリュームが最小値未満の時、Request Executionモードで決済するポジションボリュームのチェック時のエラーが修正されました。
  7. いくつかのケースで、1つのディレクトリからいくつかのターミナルを起動することができたエラーを修正しました。
  8. 様々な言語での経済指標カレンダーのサポートと自動フィルタリングが追加されました。フィルタリングはターミナルのインターフェイス言語によって行われます。
  9. 操作ログビューアに、操作ログの出力記録による検索機能が追加されました。



    ワード/フレーズの検索は、出力した操作ログの記録によって行われます。
  10. クライアントターミナルにタイ語の翻訳が追加されました。
  11. クライアントターミナルのヒンディー語の翻訳が更新されました。

MQL5

  1. 新しいGetMicrosecondCount関数が追加されました。この関数はMQL5プログラムの動作開始時から経過したマイクロ秒数を返します。
    ulong  GetMicrosecondCount();
    この関数は、追加のプログラムの実行プロファイルや、『ボトルネック』を識別する為に使用することができます。

  2. ENUM_OPENCL_PROPERTY_INTEGER列挙に、バイト単位でのOpenCLバッファの実際のサイズを返すCL_BUFFER_SIZEチャートプロパティが追加されました。プロパティはCLGetInfoInteger関数を使用して取得することができます。
  3. WebRequest関数のエラー通知が修正されました。関数の使用のエラー時に、result配列はエラー記載を含みます。
  4. マクロスのコンパイル時のエラー群を修正しました。
  5. ソート機能とrraySort、ArrayBsearch、ArrayMinimum、ArrayMaximum配列内の検索は、多次元配列を使用して動作します。ソートと検索は、配列の最初の(ゼロの)インデックスでのみ行われます。以前はこれらの関数は、一次元配列でのみ動作します。

Tester

  1. MQL5:ビジュアルテストの動作にいくつかの修正と改良が加えられました。ツールパネルを介したテストのスピード調整がよりスムーズになりました。

クラッシュログで報告された不具合を修正しました。

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

LiveUpdateシステムを介して更新されます。

20 3月 2015
MetaTrader 5 Platform Update Build 1100: Faster Testing and Optimization of Expert Advisors

Tester

  1. A status of connection to MQL5 Cloud Network is now displayed in the Agents Manager. This allows users to easily check if they can receive tasks from the cloud computing network after they install agents.


    A status of connection to MQL5 Cloud Network


  2. Some improvements and bug fixes have been made in the operation of the Strategy Tester. Time spent on intermediate preparatory operations and network latency has been significantly reduced. Testing and optimization are now faster in all operating modes: working with local testing agents, with a farm of agents in the local network and using MQL5 Cloud Network.

Trading Terminal

  1. Added display of the number of unread emails in the "Mailbox" tab of the Toolbox window.


    Added display of the number of unread emails


  2. The Navigator window now contains the list of Expert Advisors running on the active trading account. In addition to the Expert Advisor name, a chart on which the EA is running is specified in the list. An icon indicates whether the EA is allowed to trade.


    The Navigator window now contains the list of Expert Advisors running on the active trading account


    The context menu contains commands for enabling or disabling automated trading for any of the Expert Advisors, as well as for viewing its properties or removing it from the chart.
  3. Improved accuracy of the algorithm for determining access points available for connection to a trading server.
  4. Fixed an error that could occasionally clean the database of client accounts when a terminal was reinstalled over an existing one.
  5. The terminal interface has been further adapted for high resolution screens (4K).

Market

  1. Fixed updating of the MQL5 account balance after purchasing or renting a product.

Virtual Hosting

  1. Fixed migration of custom indicators to the virtual hosting environment.
  2. Fixed updating of the virtual hosting status in the Navigator window.

MQL5

  1. Fixed errors which could occasionally interfere with the optimization of Expert Advisors in MQL5 Cloud Network.
  2. Fixed call of OnDeinit when deleting an Expert Advisor using the ExpertRemove function during testing. Previously, under the conditions described the OnDeinit event was not called.
  3. Fixed errors in use of resources in EX5 libraries.
  4. Fixed errors in the analysis of macros.

Fixed errors reported in crash logs.

Updated documentation.

The update is available through the LiveUpdate system.

16 2月 2015
MetaTrader 5プラットフォームアップデート ビルド1085

MetaTrader 5プラットフォームの変更が発表されました。この更新には以下の変更が含まれます。

MetaTrader 5クライアントターミナル ビルド1085
  1. ターミナル:新しい仮想ホスティングサービスが利用可能になりました。取引口座の仮想サーバーをクライアントターミナルからレンタルすることができるようになりました。取引サーバーとの一貫した接続と、エキスパートアドバイザーとコピー取引のための中断のないコンピューター操作を提供することがさらに容易になりました。
    仮想サーバーは、メタクオーツ・ソフトウェア社のパートナー企業によってホストされています。
    仮想サーバーの割り当て
    仮想サーバー上で仮想端末を受けとるには、必要な取引口座を使用して接続し、コンテキストメニューで"Register a Virtual Server"(仮想サーバーの登録)コマンドを実行します。




    Virtual Hosting Wizard(仮想ホスティングウィザード)ウィンドウが表示され、仮想ホスティングネットワークの仕組みを示します。仮想サーバーを取得するプロセスは、3つの手順で構成されます。まず、移行の準備方法が説明され、その後、ブローカーの取引サーバーに対して最小限のネットワーク遅延で最も近い仮想サーバーを選択します。



    MQL5.community登録ユーザーに提供されている1日間の無料ホスティングまたは提供されているサービスプランの1つを選択することが可能です。最後に、目標に応じてデータ移行モードを選択します。

    • エキスパートアドバイザー/指標と取引コピーを同時に開始する場合には、完全な移行が必要です。
    • シグナル購読が必要でない場合は、only Expert Advisors and indicators(エキスパートアドバイザーと指標のみ)。
    • only trade copying(取引コピーのみ)の場合は、シグナルのコピー設定(チャートやプログラムなし)のみが移行されます。

    移行モードを選択したら、すぐに"Migrate now"(移行)をクリックして仮想サーバーを起動することができますが、起動は後でいつでもできます。

    移行の準備
    仮想端末を起動する前に、チャート、起動された指標、エキスパートアドバイザー、シグナルコピーパラメータ、端末設定などのアクティブな環境を準備する必要があります。

    • チャートと気配値表示 - 気配値表示から不要な取引商品をすべて隠してトラフィックを減らします。不必要なチャートを閉じます。端末の設定で「ウィンドウ内の最大バー数」の必要な値を指定し、端末を再起動します。
    • 指標とエキスパートアドバイザー - 必要なEAと指標をチャートに添付しました。マーケットで購入されてチャート上で使われた製品も、移行中に移動されます。機能性は失われず、利用可能なアクティベーションの回数は減少しません。指標とエキスパートアドバイザーの外部パラメータはすべて正しく設定する必要があります。
    • 電子メール、FTP、およびシグナル - エキスパートアドバイザーが電子メールを送信したり、FTP経由でデータをアップロードしたり、シグナル取引をコピーする場合は、必要な設定をすべて指定してください。コミュニティタブでMQL5.communityアカウントの正しいログインとパスワードを設定してください。これはシグナルのコピーに必要です。
    • 取引とシグナルコピーの許可 - 仮想端末では、自動取引は常に許可されます。シグナルを操作するには、シグナルセクションでコピーパラメータを設定します。
    • WebRequest - 仮想端末で動作するプログラムがHTTPリクエストを送信するためにWebReqest()関数を使用する場合は、エキスパートアドバイザー タブをクリックします。


    移行
    移行とは現在のアクティブな環境をクライアント端末から仮想端末に移すことです。
    移行はクライアント端末の各同期の間に実行されます。同期は常に一方向のプロセスです。クライアント端末の環境は仮想端末に移動されますが、その逆はありません。仮想端末のステータスは、端末およびエキスパートアドバイザーのログと仮想サーバの監視データを要求することで監視できます。
    同期を実行するには、アカウントのコンテキストメニューを開いて移行タイプを選択します。




    したがって、チャートの数と銘柄の一覧、起動されたプログラムとその入力パラメータのセット、端末の設定、シグナル購読はいつでも変更できます。
    移行を実行すると、すべてのデータがクライアント端末のログに記録されます。


    同期の後、仮想端末のメインジャーナルを開き、実行されたアクションを調べます。




    仮想端末の操作
    レンタルされた仮想サーバーのステータスは、クライアント端末からも簡単に監視できます。コンテキストメニューで「詳細」コマンドを実行します。



    情報は4つのタブで表示されます。

    • Details - 仮想サーバー自体と端末のアクティブな環境に関する情報を提供します。
    • CPU Usage - CPU使用率グラフ(%)
    • Memory Usage - メモリ使用量グラフ(Mb)
    • Hard Disk Usage - ハードディスク使用率グラフ(Mb)

  2. マーケット: MetaTraderマーケット製品を1ヶ月、3ヶ月、6ヶ月、または12ヶ月間レンタルすることが可能になりました。これは、開発者と購入者の両方に否定できない利点を提供します。開発者は、潜在的な購入者が製品を安価で試せるようにすることで、ユーザーの信頼を大幅に向上させることができ、購入者にとって、レンタルは購入前に製品を評価する別の機会です。デモバージョンとは異なり、レンタルされた製品には有効期間以外の制限はありません。

    マーケットの開発者は、自分の製品がレンタル可能であるかどうかを決めてレンタル料を設定することができます。




    開発者は、無制限に使用できるフルライセンスのみを販売してレンタル用の製品を提供しないことを選択することができます。

    製品のレンタルが有効になっている場合、そのWebページにレンタル期間と価格のオプションが表示されます。「レンタル」をクリックし、レンタル期間を選択します。



    レンタル期間が過ぎると、ユーザーはレンタルを更新したり、フルライセンスを購入することができます。

  3. ターミナル:「画像として保存」コマンドやMQL5のScreenshot()関数を使用してチャートのスクリーンショットを保存するときの"MetaTrader 5, @ 2001-2015 MetaQuotes-Software Corp."著作権通知を削除しました。これによってスクリーンショットの配布が簡略化されます。




  4. ターミナル:ゲーターオシレーターテクニカル指標の計算とパラメータ管理を修正しました。
  5. ターミナル:取引サーバーへの接続ポイントのスキャンを改善しました。
  6. ターミナル:頻繁なLiveUpdate操作エラーが修正しました。
  7. MQL5:ENUM_SIGNAL_BASE_STRING列挙にシグナルプロバイダーの預金通貨であるSIGNAL_BASE_CURRENCYを追加しました。このプロパティは、SignalBaseGetString関数を介して受け取ることができます。
  8. MQL5:継承の際に親クラスメンバにアクセスする権限を決定する際のコンパイルエラーを修正しました。
  9. MQL5:パラメータの不変性によるクラスメソッドのオーバーロード時のコンパイルエラーを修正しました。
  10. テスター:MQL5クラウドネットワークエージェントの作業を最適化しました。エージェントは、タスクを配布するクラウドネットワークサーバーとのいわゆるウォームアップに時間を費やすことなしに、常にタスクを受けて実行する準備ができているようになります。これにより、MQL5クラウドネットワークを介して最適化が高速化されます。
  11. テスター:ストラテジーテスターのローカルエージェント、遠隔エージェント、クラウドエージェントのプレゼンテーションを改善しました。
  12. クラッシュログで報告されたエラーを修正しました。
  13. ドキュメントを更新しました。


Android版MetaTrader 5ビルド1052

Android版MetaTrader 5の新しいバージョンがGoogle Playで利用可能になりました。いくつかの修正と安定性の向上が特徴です。すぐに分析対象とメッセージングシステムを追加する予定です。

アプリケーションはhttps://download.mql5.com/cdn/mobile/mt5/android?hl=en&utm_source=www.metatrader5.comからダウンロードできます。


アップデートはLiveUpdateシステムから利用できます。

16 1月 2015
MetaTrader 5プラットフォーム更新ビルド1045:新しいWebRequest

取引ターミナル

  1. MetaTrader 5プラットフォームでの仮想ホスティングサポートの準備:仮想ホスティングサービスでは、MetaTrader 5から直接、中断することなく24時間稼働する端末をレンタルすることができます。その主要機能の1つは、ブローカーのサーバーに最も近いサーバーを選択してネットワーク待ち時間を最短にすることです。




  2. テスターエージェントは64ビットシステムでのみ動作するようになりました。この決定は、IT業界の発展に従う必要があることによって推進されました。新しいテクノロジーに切り替えることで、コンピューティングパフォーマンスが向上し、MQL5クラウドネットワークのさらなる開発が可能になります。



    プラットフォームコンポーネントの変更:

    • 遠隔エージェントとMQL5クラウドネットワークエージェントは、32ビット端末では使用できなくなりました。エージェントリストの代わりに、「64ビットバージョンのみで利用可能です」というメッセージが表示されます。
    • MetaTester 5エージェントマネージャは64ビット版でのみ利用可能で、エージェントは64ビットシステムにのみにインストールすることができます。


  3. 端末設定で言語リストが手動で指定されている場合の言語別のニュースフィルタリングが修正されました。
  4. 多数の注文との作業を最適化しました。
  5. 取引リクエストの送信を高速化しました。
  6. インターフェースを、フルHD以上の高解像度画面に適応しました。

MQL5言語

  1. 新しい形のWebRequest関数を追加しました。
    int WebRequest (string method, string url,string headers,int timeout, const char &data[], int data_size,char &result[], string &result_headers)
    この関数を使用すると、さまざまなWebサービスとやりとりするためのより柔軟なメカニズムを提供する、HTTP要求ヘッダーの内容を明示的に作成できます。

  2. 新しい取引アカウントのプロパティを追加しました。これらのプロパティはAccountInfoDouble関数を通して使用できます。

    • ACCOUNT_MARGIN_INITIAL - 口座の現在の当初証拠金
    • ACCOUNT_MARGIN_MAINTENANCE - 口座の現在の維持証拠金
    • ACCOUNT_ASSETS - 口座の現在の資産
    • ACCOUNT_LIABILITIES - 口座の現在の負債
    • ACCOUNT_COMMISSION_BLOCKED - ブロックされている口座の現在の手数料

  3. 新しい取引銘柄プロパティを追加しました。

    • SYMBOL_OPTION_STRIKE - オプション契約の行使価格。このプロパティはSymbolInfoDouble関数で受け取られます。
    • SYMBOL_BASIS - 取引銘柄の原資産名。このプロパティはSymbolInfoString関数で受け取られます。
    • SYMBOL_OPTION_MODE - オプションモード。値はENUM_SYMBOL_OPTION_MODE列挙を使用して設定されます。 
    • SYMBOL_OPTION_RIGHT - オプションライト。値はENUM_SYMBOL_OPTION_RIGHT列挙を使用して設定されます。このプロパティはSymbolInfoInteger関数で受け取られます。

  4. SymbolInfoMarginRate関数を追加しました。これは、取引注文の種類と方向に応じて当初証拠金および維持証拠金の比率を受け取ります。
  5. ストラテジーテスターでのChartIndicatorName関数の操作を修正しました。
  6. ##を使用した名前置換を含むマクロのコンパイルを修正しました。
  7. 新しいファイルを開くときに発生するファイル終わりの指標のリセットエラーを修正しました。

クラッシュログで報告されたエラーが修正されました。

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

更新はLiveUpdateシステムを介して利用できるようになります。

12 12月 2014
MetaTrader 5 Platform Update Build 1035: Option Strategy Builder and Access to Ticks

Trading Terminal

  1. Implementation of functions for trading options is currently underway. The Option Strategy Builder has been added. It helps users combine different options in one investment portfolio, and to assess the possibilities and potential risks.



    The Builder is easy to use: a trader chooses the option based on the expiration date and the underlying asset, and then selects one of the more than 30 available strategies. The Builder displays the appropriate combination of options and calculates evaluation parameters - the so-called Greeks. The profit/loss chart and the Greeks based chart appear at the bottom of the window.

    In addition to a large number of built-in strategies, traders can create and save their own strategies for later use.

  2. Added display of the number of newsletters received in the last 24 hours.




  3. Optimized and accelerated synchronization of large history of trading orders and deals.
  4. Fixed launch of several custom indicators in one chart subwindow.
  5. Fixed recalculation of Bill Williams Market Facilitation Index for a changed chart period.
  6. Fixed minimization of the "Toolbox window".
  7. Fixed generation of the account state report published over FTP.
  8. Updated translation of user interface into German.
  9. Added translation of user interface into Greek and Uzbek.

MQL5 Language

  1. New function for working with the tick history CopyTicks. The function is used for receiving an array of ticks accumulated by the terminal for the current session. The depth is limited to the last 2000 ticks.

    The new function expands the possibilities for developing scalping trading robots. The OnTick function does not handle every tick, it notifies the Expert Advisor of market changes. It can be a batch of changes: the terminal can simultaneously make a few ticks, but OnTick will be called only once to notify the EA of the latest market state. The CopyTicks function allows you to receive and analyze all the ticks.
    int  CopyTicks(
       const string      symbol_name,           // Symbol name
       MqlTick           &ticks_array[],        // the array where ticks will be placed
       uint              flags=COPY_TICKS_ALL,  // the flag that defines the type of received ticks
       ulong             from=0,                // the date starting from which ticks will be received, specified in milliseconds since 01.01.1970
       uint              count=0                // the number of latest ticks that should be received
       );
    Ticks can be requested by the date if the 'from' value is specified, or based on their number using the 'count' value. If none of the parameters are specified, all available ticks are received, but not more than 2000. Ticks can also be requested based on their type using the 'flags' parameter. Available values:

    • COPY_TICKS_ALL - all ticks.
    • COPY_TICKS_INFO - only information ticks (Bid and Ask).
    • COPY_TICKS_TRADE - only trade ticks (Last and Volume).

  2. Added an option for overloading template functions using array parameters.
  3. Added an option for overloading a method based on its constancy.
  4. Added generation of the CHARTEVENT_MOUSE_MOVE event (in the OnChartEvent entry point) at the right mouse button click on the chart.
  5. Fixed the functioning of the Switch operator if the case condition contains a negative value.
  6. Improved calculation accuracy in functions ObjectGetValueByTime() and ObjectGetTimeByValue(), used for receiving the price value for the specified object time and vice versa - time value for a price.

Strategy Tester

  1. MQL5 programs purchased in MetaTrader AppStore can now be tested and optimized on the MQL5 Cloud Network agents and on remote agents.
  2. Fixed calculation of swaps in points for positions with less than 1 lot.
  3. Fixed check and normalization of Stop Loss and Take Profit levels when opening a position for the trading instrument with "Market Execution" type.
  4. Fixed behavior of the ObjectGetValueByTime function. In some cases, the behavior of the function in the tester could be different from its behavior in the terminal.

MetaEditor

  1. Fixed MetaEditor crash when debugging and profiling looped programs.
  2. Added translation of user interface into Greek and Uzbek.

Fixed errors reported in crash logs.

Documentation has been updated.

The update is available through the LiveUpdate system.

31 10月 2014
MetaTrader 5 Trading Terminal build 1010: New Signals, Market and Options
Trading Signals
  1. The showcase of signals has been completely redesigned. New features have been added, the Signals service design and usability have been improved.



    The new features in the list of signals:

    • The list of signals now contains growth charts similar to those displayed on the MQL5.community site. A green icon in the lower left corner of the chart indicates that this is a real account based signal.
    • Now subscription to a signal is available directly from the list. To subscribe, press the button with the price indication (or the word 'Free', if the signal is free). This will open a subscription confirmation dialog.
    • Now signals can be added to Favorites. Click the star icon at the end of the signal line. After that, the signal can be easily found in the "Favorites" tab.
    • The context menu has been removed. Now to find a signal to which you have subscribed, go to any signal. The top panel shows the signal you are subscribed to and a link to it.

    A signal view page has been updated. A new option allows to add signals to Favorites. The status of the signal account is displayed when hovering the mouse pointer at "Growth".

    Signals statistics have expanded:

    • The total amount of subscribers' funds.
    • Trading account lifetime since its first trading operation.
    • The average position holding time.



    New tabs:

    • Risks - information about the best and worst trading operations and series of operations, and information on drawdowns.
    • Reviews - reviews of signal subscribers.
    • News - through this tab the signal provider can inform subscribers of any change in the signal and post other useful information.

Market

  1. Revised display of products in MetaTrader AppStore. Applications, magazines and books feature the new design. A new option allows to add products to Favorites. Click the star icon in the product view mode. After that, the product can be easily found in the "Favorites" tab.




Trading terminal

  1. The terminal now features an options board and a volatility chart. Implementation of tools for trading options is currently underway. Tools for analyzing option strategies will be added in the next version.




    Options Board
    The options board displays a series of options based on the expiration date for an underlying asset (a class of options) selected in the "Underlying" field. The following parameters are displayed for the options:

    • Bid CALL - the bid price of a call option.
    • Ask CALL - the ask price of a call option.
    • Theo CALL - the theoretical (fair) price of a call option calculated for the specified strike based on historical data.
    • Strike - an option execution price.
    • Volatility - an implied volatility. It is specified as a percentage, and characterizes the expectations of market participants about the value of the underlying asset of the option.
    • Theo PUT - the theoretical price of a put option calculated for the specified strike based on historical data.
    • Bid PUT - the bid price of a put option.
    • Ask PUT - the ask price of a put option.

    Volatility Chart
    Option strikes are shown along the horizontal axis of the chart, and the implied volatility is shown along its vertical axis.




  2. Added display of ping values ​​in the list of access points.




  3. The terminal interface has been adapted for high resolution screens - Full HD and higher. Menus, toolbars, window titles and the status bar are now large enough for easy viewing and working on touch screen of Windows-tablets.

  4. Added a command for managing trading symbols in the "View" menu and on the toolbar. Accessing symbol settings is now as easy as never before:



MQL5 Language

  1. Added conversion of a macro parameter to a string and concatenation of the macro parameter. Below is an example, in which the concatenation of macros allows to organize the automatic removal of the class instances.
    //+------------------------------------------------------------------+
    //|                                                     MacroExample |
    //|                        Copyright 2014, MetaQuotes Software Corp. |
    //|                                       https://www.metaquotes.net  |
    //+------------------------------------------------------------------+
    #property script_show_inputs
    input bool InpSecond=true;
    
    #define DEFCLASS(class_name) class class_name:public CBase{public:class_name(string name):CBase(name){}};
    #define TOSTR(x) #x
    #define AUTODEL(obj) CAutoDelete auto_##obj(obj)
    #define NEWOBJ(type,ptr) do { ptr=new type(TOSTR(ptr)); \
                             Print("Create object '",TOSTR(type)," ",TOSTR(ptr),"' by macro NEWOBJ"); } \
                             while(0)
    //+------------------------------------------------------------------+
    //| The basic class required for automatic deletion of objects       |
    //+------------------------------------------------------------------+
    class CBase
      {
    protected:
       string            m_name;
    
    public:
                         CBase(string name):m_name(name) { }
       string            Name(void) const{ return(m_name); }
    
      };
    //+------------------------------------------------------------------+
    //| The object auto-delete class makes watching of created           |
    //| objects unnecessary. It deletes them in its destructor           |
    //+------------------------------------------------------------------+
    class CAutoDelete
      {
       CBase            *m_obj;
    
    public:
                         CAutoDelete(CBase *obj):m_obj(obj) { }
                        ~CAutoDelete()
         {
          if(CheckPointer(m_obj)==POINTER_DYNAMIC)
            {
             Print("Delete object '",m_obj.Name(),"' by CAutoDelete class");
             delete m_obj;
            }
         }
      };
    //+------------------------------------------------------------------+
    //| Declaring two new classes CFoo and CBar                          |
    //+------------------------------------------------------------------+
    DEFCLASS(CFoo);
    DEFCLASS(CBar);
    //+------------------------------------------------------------------+
    //| The main script function                                         |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       CFoo *foo;
    //--- Creating an object of the CFoo class
       NEWOBJ(CFoo,foo);
    //--- Creating an instance of the CFoo foo object auto-deletion class
       AUTODEL(foo);
    //---
       if(InpSecond)
         {
          CBar *bar;
          //---
          NEWOBJ(CBar,bar);
          AUTODEL(bar);
         }
    //--- No need to delete foo, it will be deleted automatically
      }
    //+------------------------------------------------------------------+
    
  2. Added the OBJPROP_ANCHOR property for the "Bitmap" and "Bitmap Label" objects. The property defines the anchor point of the graphical object on the chart: the upper left corner, center left, lower left corner, bottom center, etc.
  3. Added reading of the CHART_BRING_TO_TOP chart property (the chart is on top of all the others) in the ChartGetInteger function.
  4. Fixed the compilation and generation of the ternary operator "?".
  5. Fixed passing of a class member static array.
  6. Fixed applying of a template to the list of initialization of the template constructor class members.

Trading signals

  1. Restrictions on signal subscriptions became milder:

    If the trading history of the signal contains symbols that are not available in the subscriber's terminal, the subscription is now allowed (was prohibited in previous versions). The actions with the positions for which the subscriber does not have symbols are ignored. The following log appears in the Journal:
    2014.08.26 16:44:29.036    '2620818': Signal - symbol GBPNZD not found
    If the subscriber has positions and/or pending orders, a warning dialog suggesting to close/delete them appears (as before). Now, however, it is not an obligatory condition to continue working with signals.



    Synchronization with the signal provider will be performed. Positions and orders that were opened not based on the subscription signal are left unchanged. The user can perform any operations with them.

    Users can now perform trade operations manually (or using an Expert Advisor), being signed to a signal. The Signals service will ignore the positions and orders opened by the trader.
    Keep in mind that placing orders manually affects the amount of available margin on the trading account. Opening positions manually increases the overall load on the account as compared with the signal provider's account.
  2. Added support for a copied percent for the volumes with a floating point. The minimum percentage of copied volumes for signals has been reduced from 1% to 0.001%.

Strategy tester

  1. Fixed freezing of testing agents when working with the MQL5 Cloud Network.
  2. Fixed calculation of swaps in points for the minimal volumes of trading positions.

MetaEditor

  1. Fixed hotkeys for commands "Navigate Forward" and "Navigate Backward".

MetaViewer

  1. Fixed page navigation on the toolbar.
  2. Fixed text search based on the current interface language.

Fixed errors reported in crash logs.

Documentation has been updated.

The update is available through the LiveUpdate system.
1 8月 2014
MetaTrader 5 Trading Terminal build 975: Displaying Expert ID

Trading Terminal

  1. Added display of a trade ID (magic number) set by an Expert Advisor. The ID is displayed as a tooltip in the list of open positions and orders, as well as in the trading history.


    Displaying Expert ID


  2. Optimized work with a large number of trading symbols (thousands and tens of thousands).
  3. Fixed display of alerts on the price chart. The alert's price level was sometimes displayed in the indicator's subwindow.
  4. Updated interface translations into Chinese, Turkish and Japanese.
  5. Fixed displaying the list of chart templates in the application's main menu.
  6. Fixed displaying the list of trade symbol sets in the context menu of Market Watch window.

MQL5 Language

  1. Fixed errors in working with built-in structures that could occasionally disrupt the operation of IndicatorParameters and MarketBookGet methods.
  2. Fixed type conversion from bool to string.
  3. Fixed working with virtual functions.
  4. Fixed an error in the operation of FileReadStruct and FileWriteStruct functions within EX5 libraries.
  5. Fixed a compiler error that occurred in case a key word was present in a comment.

Strategy Tester

  1. Fixed calculation of swaps in points when testing.
  2. Fixed passing the file defined in #property tester_file. An error occurred if the file was in the common folder of the client terminals.
  3. Greatly improved selection of the nearest cloud server by the tester agents working within MQL5 Cloud Network of distributed computing. Thus, their operation speed is increased significantly.

MetaEditor

  1. Fixed text replacement when the list of MetaAssist tips is collapsed.

Fixed errors reported in crash logs.

Updated documentation.

The update is available through the LiveUpdate system.

27 6月 2014
MetaTrader 5 trading terminal build 965: Smart Search, OTP and Money Transfer between Accounts

Trading terminal

  1. Completely revised built-in search. The new search is a smart and powerful system. Search results are now conveniently arranged by categories.

    As you type in search query, the system instantly offers possible options:



    In order to search by one of the previous queries, place the cursor to the box and click Down Arrow key to open the query history. Selection of a search area is not available in the search bar any more, as the system automatically selects the most relevant results arranging them by categories conveniently:



    For better representation, search results now contain not only texts but also avatars of articles, books and applications. Use the top panel to view the search results by MetaTrader Appstore Products, Code Base, Signals, MQL5.community Forum and Documentation. If a category has no results, it is highlighted in gray.

  2. Added the OTP authentication feature. Use of OTP (one-time password) provides an additional level of security when working with trading accounts. The user is required to enter a unique one-time password every time to connect to an account.

    One-time passwords are generated in the MetaTrader 5 mobile terminal for iPhone . The same one-time password generation option will be added in the mobile terminal for Android soon.

    How to enable OTP
    To start using one-time passwords, a trading account should be bound to a password generator, which is the MetaTrader mobile terminal 5 for iPhone.
    The use of the OTP option should be enabled on a trade server.
    Go to the Settings of the mobile terminal and select OTP. For security reasons, when the section is opened for the first time, a four-digit password should be set. The password must be entered every time to access the password generator.



    In the window that opens, select "Bind to account".



    Next, specify the name of the server on which the trading account was opened, the account number and the master password to it. The "Bind" should be kept enabled. It must be disabled, if the specified account should be unbound from the generator and one-time passwords should no longer be used.

    After the "Bind" button located in the upper part of the window is tapped, a trading will be bound to the generator, and an appropriate message will appear.



    Likewise, an unlimited number of accounts can be bound to the generator.

    The one-time password is displayed at the top of the OTP section. Underneath, a blue bar visualizes the password lifetime. Once the password expires, it is no longer valid, and a new password will be generated.

    Additional Commands:

    • Change Password - change the generator password.
    • Synchronize Time - synchronize the time of the mobile device with the reference server. Accuracy requirement is connected with the fact that the one-time password is bound with the current time interval, and this time should be the same on the client terminal and the server side.

    How to use OTP in the desktop terminal
    After binding a trading account to the generator, a one-time password will be additionally requested when connecting to it from the desktop terminal:




  3. Added an option for transferring money between accounts within the same trade server. Money can be transferred only from the currently connected account. Select it in the "Navigator" window and click "Transfer funds" in the context menu.



    In the dialog box, select the account to which funds need to be transferred. The transfer amount is specified in the deposit currency of the current account. It cannot exceed the current balance and the current amount of free margin of the account.

    To transfer funds, a master password must be specified for both accounts. If OTP authentication is used for the account, from which funds are transferred, the one-time password should be additionally specified.

    Transfer of funds is provided in the form of balance operations: a withdrawal operation on the current account and depositing operation on the recipient account.
    • The money transfer option should be enabled on the trade server. Depending on the settings, there are some restrictions on the accounts, between which transfer is allowed. In particular, money transfer can be allowed only for accounts with identical names and emails.

    • Funds can be transferred only within the same trading server and only between the accounts of the same type. From a real account funds can be transferred only to another real account, from a demo one - only to demo.
    • The accounts, between which funds are transferred, should use the same deposit currency.
  4. Added an option for changing the password of any trading account in the "Navigator" window. Previously, it was possible to change the password only for the currently connected account.

    Now any account can be selected in the "Navigator" window and its passwords can be changed by clicking the appropriate command in the context menu:




  5. Added the possibility to set SL and TP levels on the chart by dragging the trade level of the corresponding position (using drag'n'drop). Hover the mouse over the level of the position on the chart. Click the left mouse button and hold it to move the level up or down.



    For long positions dragging down allows to set stop loss, up - take profit. And vice versa for short positions. When a level is dragged, the possible profit/loss in pips and currency, which may occur when this level triggers, is shown.

  6. Changed the location of commands in the "Window" menu. Now the "Tile window" option is displayed first, hotkeys Alt+R have been assigned for this command. This command has also been added to the standard toolbar.




  7. In the "Navigator" categories "Indicators" and "Custom Indicators" have been combined into one category "Indicators".



    All custom indicators, examples, and indicators purchased from the MetaTrader AppStore are now shown together with the built-in technical indicators. Four categories of built-in indicators are always displayed first.

  8. Revised the Navigator's context menu.

    Login has been renamed to "Login to Trade Account". Authentication in MQL5.community is available not only via the terminal settings but also via the context menus of the "Accounts" section and its subsections.



    The following changes have been implemented to the account's context menu:
    • Moved "Open an Account" command to the first position.
    • Added "Change Password" feature.
    • Added "Register a Virtual Server" command.

  9. Fixed display of the Label and Bitmap Label graphical objects with the anchor point located in one of the bottom corners of a chart.

MQL5 Language

  1. Added WebRequest() function for working with HTTP requests allowing MQL5 programs to interact with different websites and web services.

    The new function allows any EA to exchange data with third-party websites, perform trades based on the latest news and economic calendar entries, implement analytics, generate and publish automatic reports, read the latest quotes and do many other things that could previously be achieved only by using third-party DLLs of questionable reliability. The new feature is absolutely safe for traders, as they are able to manage the list of trusted websites the programs have access to.

    WebRequest function sends and receives data from websites using GET and POST requests. The new feature is absolutely safe for traders, as they are able to manage the list of trusted websites the programs have access to.




    This option is disabled by default for security reasons.

  2. Added access to signals database and managing signals subscription from MQL5 applications.

    Now, a user can receive the list of signals, evaluate them according to user-defined criteria, select the best one and subscribe to it automatically from a MQL5 program. In fact, it means the advent of the new class of trading robots that periodically look through available signals and subscribe to the one that is most suitable at the moment.

    For this purpose new signal management functions have been added to the MQL5 language:

    • SignalBase*() — functions for accessing the signals database.
    • SignalInfo*() — functions for receiving signal settings.
    • SignalSubscribe() and SignalUnsubscribe() — subscription management functions.

    Thus, a user can not only copy trades, but also to select signals for copying. Both processes are automated.

    By default, a trading robot is not allowed to change signal settings for security reasons. To enable this function, tick the "Allow modification of Signals settings" option in Expert Advisor settings.




  3. Added new properties of the client terminal that are available through the TerminalInfo* functions:
    • TERMINAL_MQID - the property shows that MetaQuotes ID is specified in terminal settings.
    • TERMINAL_COMMUNITY_ACCOUNT - this property shows that MQL5.community account is specified in the settings.
    • TERMINAL_COMMUNITY_ACCOUNT - this property shows that MQL5.community account is specified in the settings.
    • TERMINAL_COMMUNITY_BALANCE - value of balance on the MQL5.community account.
    • TERMINAL_NOTIFICATIONS_ENABLED - shows whether sending notifications through MetaQuotes ID is allowed.

  4. Added functions for working with cryptographic algorithms: CryptEncode() and CryptDecode(). These functions allow you to encrypt and decrypt the data, for example, when sending data over the network using the WebRequest() function. They also allow you to calculate checksums and make data archiving.

    Function signatures:
    int CryptEncode(ENUM_CRYPT_METHOD method,const uchar &data[],const uchar &key[],uchar &result[]);
    int CryptDecode(ENUM_CRYPT_METHOD method,const uchar &data[],const uchar &key[],uchar &result[]);
    A new enumeration ENUM_CRYPT_METHOD has been added for working with the functions:
    CRYPT_BASE64,      // BASE64 encryption (re-encoding)
    CRYPT_AES128,      // AES encryption with 128-bit key
    CRYPT_AES256,      // AES encryption with 256-bit key
    CRYPT_DES,         // DES encryption (key length is 56 bits - 7 bytes)
    CRYPT_HASH_SHA1,   // calculation of HASH SHA1
    CRYPT_HASH_SHA256, // calculation of HASH SHA256
    CRYPT_HASH_MD5,    // calculation of HASH MD5
    CRYPT_ARCH_ZIP,    // ZIP archive

  5. Added an option for changing the size of the properties dialog of MQL5 programs.




  6. Added ability to debug the template functions.
  7. Added definition of the custom indicators that are executed too slowly. If the indicator is slow, "indicator is too slow" entry appears in the Journal.
  8. Fixed the value returned by the IsStopped() function. This function is used for determining the forced stopping of MQL5 programs in custom indicators. Previously, this function always returns FALSE.
  9. Fixed verification of input parameters of MQL5 programs by data type. In particular, for the parameter type uchar, one could specify a value greater than 255.
  10. Fixed an error in StringConcatenate() function.
  11. Fixed FileSize() function for files that are available for writing. Previously, the function returned the file size without considering the latest write operations.
  12. File operations have been revised. Now work with files has become faster.

Trading Signals

  1. Fixed copying of SL and TP values of trade positions in case the number of decimal places in the symbol price of the signal source differs from that of the subscriber.
  2. Fixed copying of trade positions from signal providers with incorrect settings of trade instruments on the side of the trade server.
  3. Fixed closing of positions opened by a trading signal when account Equity value falls below the value specified in the signal copying parameters. In some cases, closing of positions could lead to terminal crash.

MetaEditor

  1. Optimized work with large source text files (tens of megabytes). Increased operation speed and reduced memory consumption.
  2. Fixed navigating through a source code using "Ctrl + -" and "Ctrl + Shift + -" shortcuts.

Fixed errors reported in crash logs.

Updated documentation.

The update will be available through the LiveUpdate system.

11 4月 2014
MetaTrader 5 Build 930

Market

  1. Another new product category has been added to MetaTrader AppStore following trading and financial magazines - Books. Now, you can purchase the works of well-known traders and analysts along with trading robots and indicators. The range of books is increasing daily.


    Books in MetaTrader Market

    Just like MetaTrader 5 applications, books can be purchased at MQL5.community Market as well as directly via MetaTrader 5 terminal. All books are accompanied by descriptions and screenshots:




    Before making a purchase, you can download a preview - the first few pages of a book. The exact number of available pages is defined by a seller.

    To buy a book, you should have an MQL5.com account and the necessary amount of funds on it. The account data should be specified at the Community tab of the terminal settings:



    Click Buy on the book's page to purchase it. Purchase confirmation dialog appears:



    To continue, agree to the rules of using the Market service and enter your MQL5.community password. After that, the specified amount of funds will be withdrawn from your account and the book will be downloaded. Buy button will be replaced by Open one.

    Book files are downloaded to My Documents\MQL5 Market\Books\. The download may be performed in two formats:

    • MQB - this protected format is used for paid books. When purchasing and downloading a book file, it is encoded so that it can be opened only on the PC it has been downloaded to. Generation of an encoded copy is called activation. Each book can be activated at least 5 times on different hardware. Book sellers can increase the number of activations at their sole discretion.
    • PDF - this format is used for free books and previews. After downloading, such file can be moved and viewed on other devices.

    The special component called MetaViewer has been added to MetaTrader 5 terminal allowing users to view book files. MetaViewer is a convenient application for viewing books and magazines in MQB and PDF formats. Keyboard arrows are used to turn over the pages: left and right arrows - for page-by-page navigation, while up and down arrows - for scrolling.


    MetaViewer


Trading terminal

  1. Fixed display of Fibonacci Fan graphical object's levels when zooming. A layout could be displaced in earlier builds.
  2. Fixed an error that in some cases prevented graphical objects from being drawn on the chart.
  3. Fixed errors and terminal crashes when working in Wine (for Linux and Mac OS), including crashes that occurred while opening the user guide.
  4. Updated translation of the interface into Arabic.

Market

  1. Revised display of products in MetaTrader AppStore. Applications, magazines and books feature new design:


    Revised Display of Products in Market

  2. Market: Fixed resumed download of large files (primarily, magazines and books) from the Market.

MQL5 Language

  1. Changed StringSplit function operation. Previously, ";A;" string was split into NULL and "A" substrings using ';' separator. Now, it is split into "","A" and "" substrings.
  2. Fixed checking and tracking parameter and operand constancy.

Trading Signals

  1. Added additional checks for the allowed trading modes at a symbol when copying signals. If a signal arrives at a subscriber's account but only closing of positions is allowed at that symbol, this will no longer cause complete termination of signals copying and forced closing of all positions. Now, if a signal for position opening arrives at a subscriber's account, the platform perceives that as the command to synchronize subscriber's and provider's accounts. A signal for position closing is handled as usual.

Strategy Tester

  1. Added interface translations into French, Japanese and Arabic. Updated translations into German, Italian, Polish, Portuguese, Russian, Spanish, Turkish and Chinese.

MetaEditor

  1. Fixed highlighting and navigation through a hieroglyphic text.
  2. Fixed selecting a default trading symbol during an MQL5 application profiling. The default symbol is specified in Debug tab of MetaEditor options.
  3. Fixed display of the tab characters in search results. Previously, the tab characters were ignored and string content was displayed with no spaces.

Fixed errors reported in crash logs.

Updated documentation.

The update will be available through the LiveUpdate system.

7 3月 2014
MetaTrader 5 build 910

Trading terminal

  1. Fixed errors and crashes when working in Wine (for Linux, Mac).
  2. Fixed display of Gann Grid graphical object's central line when zooming.

MQL5 Language

  1. Fixed an occasional error when downloading .ex5 files.
  2. Fixed operation of StringToCharArray and StringToTime functions.
Fixed errors reported in crash logs.
Updated documentation.
28 2月 2014
MetaTrader 5 Build 900
  1. Market: Added new product category in MetaTrader AppStore — Magazines. Now, users can buy not only trading applications but also trading and financial magazines quickly and easily.

    Just like MetaTrader 5 applications, magazines can be purchased at MQL5.community Market as well as directly via MetaTrader 5 terminal. All magazines are accompanied by detailed descriptions and screenshot galleries:

    The latest magazine issues are always displayed in the showcase, while the previous ones can be found on the Archive tab.

    To buy a magazine, you should have an MQL5.com account and the necessary amount of funds on it. The account data should be specified at the Community tab of the terminal settings:

    Click Buy on the magazine's page to purchase it. Purchase confirmation dialog appears:

    To continue, agree to the rules of using the Market service and enter your MQL5.community password. After that, the specified amount of funds will be withdrawn from your account and the magazine will be downloaded. Buy button will be replaced by Open one.

    Magazine files are downloaded to My Documents\MQL5 Market\Magazines\[Magazine name]\[Issue name]. The download may be performed in two formats:

    • MQB - this protected format is used for paid magazines. When purchasing and downloading a magazine file, it is encoded so that it can be opened only on the PC it has been downloaded to. Generation of an encoded copy is called activation. Each magazine can be activated at least 5 times on different hardware. Magazine sellers can increase the number of activations at their sole discretion.

    • PDF - this format is used for free magazines. After downloading, such file can be moved and viewed on other devices.

    The special component called MetaViewer has been added to MetaTrader 5 terminal allowing users to view MQB files. This application is launched when you click Open at the downloaded magazine page. If User Account Control system is enabled on the user's PC, the user will be prompted to allow the terminal to associate MQB files with MetaViewer during the first launch. After the association, MQB files are automatically opened in MetaViewer when launched from Windows file explorer.

    If you click ÎÊ, the files are associated and the selected magazine issue is opened in MetaViewer immediately. If you click Cancel, only the magazine issue is opened.

    MetaViewer is a convenient application for viewing books and magazines in MQB and PDF formats. Keyboard arrows are used to turn over the pages: left and right arrows - for page-by-page navigation, while up and down arrows - for scrolling. MetaViewer menu and control panel contain additional commands for setting the journal's view and navigation:

    • File - commands for opening the files and exiting the program.
    • View - display settings: interface language, page look, enabling control panel and status bar, as well as page rotation.
    • Navigation - navigation commands: switching between the pages, moving to the first, last or selected page.
    • Zoom - page scale management commands: zooming in and out, fitting height, width and actual page size.
    • Help - information about the program and useful links.
  2. Terminal: Added MQL tab to EX5 file properties. The tab contains the program's icon as well as its name and description specified in the application's source code via the appropriate #property parameters.

    The tab appears only after MetaViewer is registered in the system. If a current user has sufficient rights and User Account Control system is disabled, MetaViewer is registered automatically during the terminal's first launch after the update. Otherwise, the user will see the dialog window requesting a one-time elevation of rights for MetaViewer during the first attempt to open a magazine.

  3. Terminal: Added MQL5.community fast registration dialog in case a user has no account. Now, an MQL5.community account can be created without the need to leave the terminal.

    Specify login and email address in the registration window. After clicking Register, an email for MQL5.community account activation is sent to the specified address.

    MQL5.community account allows traders to use additional powerful services:

    • MetaTrader 5 AppStore - users can buy MetaTrader 5 apps or download them for free directly from the terminal. MetaTrader 5 AppStore offers hundreds of various applications and their number is constantly increasing.
    • Signals - users can subscribe to trading signals provided by professional traders and make profit. Trading operations are automatically copied from provider's account to subscriber's one. The service also allows selling your own trading signals. A trading account can be connected to the monitoring system in a few clicks.
    • Jobs - a freelance service allowing customers to securely order the development of MetaTrader 4 and 5 applications. The orders are executed by experienced programmers. The service also allows you to make profit by developing programs ordered by customers.

  4. Terminal: Added information about margin charging rates for various order types, as well as the list of spreads that may include orders and positions for the symbol, to the trading symbol data dialog.

    Margin Rates:

    A multiplier for calculating margin requirements relative to the margin's main amount is specified for each order type. The main amount of margin is calculated depending on the specified calculation method (Forex, Futures, etc.).

    • Long positions rate
    • Short positions rate
    • Limit orders rate
    • Stop orders rate
    • Stop-Limit orders rate

    Calculation of margin requirements is described in details in the client terminal user guide.

    Spreads:

    The margin can be charged on preferential basis in case trading positions are in spread relative to each other. The spread is defined as the presence of the oppositely directed positions at related symbols. Reduced margin requirements provide traders with more trading opportunities.

    The spread has two legs - A and B. The legs are the oppositely directed positions in a spread - buy or sell. The leg type is not connected with some definite position direction (buy or sell). It is important that trader's positions at all leg's symbols are either long or short.

    Several symbols with their own volume rates can be set for each spread leg. These rates are shown in parentheses, for example, LKOH-3.13 (1).

    Take a look at the following example:

    • leg À consists of GAZR-9.12 and GAZR-3.13 symbols having the ratios of 1 and 2 respectively;
    • leg  consists of GAZR-6.13 symbol having the ratio of 1.

    To keep positions in the spread, a trader should open positions of 1 and 2 lots for GAZR-9.12 and GAZR-3.13 respectively in one direction and a position of 1 lot for GAZR-6.13 in another.

    Margin column displays margin charging type at this spread:

    • Specific values mean charging a fixed margin for a spread in a specified volume. The first value specifies the volume of the initial margin, while the second one specifies the volume of the maintenance one.

    • Maximal - initial and maintenance margin values are calculated for each spread leg. The calculation is performed by summing up the margin requirements for all leg symbols. The margin requirements of the leg having a greater value will be used for the spread.

    • CME Inter Spread - the rates (in percentage value) for margin are specified: the first one is for the initial margin, while the second is for the maintenance one. The total margin value will be defined by summing up the margin requirements for all symbols of the spread and multiplying the total value by the specified rate.

    • CME Intra Spread - two values for margin increase are specified: the first value is for the initial margin, while the second is for the maintenance one. During the calculation, the difference between the total margin of A leg symbols and the total margin of B leg symbols is calculated (the difference in absolute magnitude is used, so that it does not matter what leg is a deductible one). According to the type of the calculated margin, the first (for the initial margin) or the second (for the maintenance one) value is added to the obtained difference.

    The specified margin is charged per spread unit - for the specified combination of positions. If any part of the position does not fit the spread, it will be charged by an additional margin according to the symbol settings. If the client's current positions have the volume the specified combination fits in several times, the charged margin is increased appropriately. For example, suppose that A and B symbols with the ratios of 1 and 2 are in spread. If a client has positions for these symbols with the volumes of 3 and 4 respectively, the total margin size is equal to the doubled value from the spread settings (two spreads: 1 lot of A and 2 lots of B, 1 lot of A and 2 lots of B) plus the margin for the single remaining A symbol lot.

    Spreads are described in details in the client terminal user guide.

  5. Terminal: Fixed the depth of market freezing when the best bid price is higher than the best ask one.
  6. Terminal: Fixed setting the fill policy type for market trade requests depending on the trade symbol's execution type and allowed filling modes.
  7. Terminal: Fixed display of incorrect SL and TP values in the position open dialog in case there is a position with placed SL and TP levels and the levels are placed "In Points". Incorrect SL and TP level values in points have previously been inserted to these fields. Beginning with the new build, the values in the above mentioned case are displayed in prices regardless of the level placing mode.
  8. Terminal: Fixed occasional incomplete display of the trading history for the current day.
  9. Terminal: Reduced memory consumption during MQL5 Code Base and MQL5 Market operation.
  10. Terminal: Fixed working with context menus when using touch screen devices powered by Microsoft Windows 8 or higher.
  11. Market: Added product activation confirmation dialog displaying the number of remaining activations.

    Each application purchased in MetaTrader AppStore is additionally protected, so that it can be launched only on the PC it has been downloaded to during the purchase. Generation of an encoded copy is called activation. Each product can be activated at least 5 times on different hardware. Sellers can increase the number of activations at their sole discretion.

    The new dialog protects users from wasting activations by informing that their number is limited.

  12. MQL5: Fixed crash when initializing primitive type arrays by a sequence.
  13. MQL5: Fixed errors when working with #ifdef/#else/#endif conditional compilation macros.
  14. MQL5: MQL5 language compiler moved to MetaEditor. The compiler will be available for download as a separate .exe file.
  15. Signals: Added information about a signal, to which an account is subscribed, to the Navigator window:

    If the account is subscribed to the signal, the appropriate icon with the signal's name is shown for it. When hovering the mouse cursor over the name, the subscription's expiration date is displayed. The context menu contains commands for viewing the signal and unsubscribing from it. The latter one is displayed only if the appropriate trading account is currently active in the terminal.

    The subscription icon makes working with signals more convenient.

  16. Signals: Added legend for equity, growth, balance and distribution graphs. Also, marks displaying funds depositing and withdrawal have been added to the equity graph. When hovering the mouse cursor over the balance operation triangle, a tooltip with the operation sum is displayed:

  17. MetaEditor: Fixed the loss of focus in the code editing window that occurred after the first compilation.
  18. MetaEditor: Fixed automatic scrolling of the compilation window to the first warning if there are no errors.
  19. MetaEditor: Fixed highlighting predefined _DEBUG and _RELEASE macros in the source code.
  20. MetaEditor: Fixed operation of snippets if the automatic entering of line indentations is disabled.
  21. Fixed errors reported in crash logs.
  22. Updated documentation.
7 12月 2013
MetaTrader 5 Trading Terminal build 880: Terminal Journal with Milliseconds and MQL4BUILD/MQL5BUILD Macros

Trading Terminal

  1. The time is displayed up to milliseconds in the client terminal's, MetaEditor's and MetaTester's Journal.

    The time is displayed up to milliseconds in the client terminals

  2. Improved scanning and searching for servers in demo account opening dialog - scanning speed has been increased and additional search for access points for the servers having no connection has been added.

    Improved scanning and searching for servers in demo account opening dialog

  3. Fixed and optimized client terminal, MetaEditor and MQL5 help.
  4. origin.txt file is automatically generated in the terminal data folder. This file contains the path to the installation directory that data folder corresponds to.
  5. Fixed display of the context help in a number of dialogs, windows and control elements.
  6. Fixed occasional terminal freezing during prolonged continuous operation (longer than 2-3 days).
  7. Fixed occasional loss of the list of saved client accounts.
  8. Fixed an error causing "pack bar error" messages in the Journal.
  9. Added MetaTrader 5 terminal and MQL5 language helps in Turkish

Market

  1. Fixed and optimized MQL5 Market data storage and update.

MQL5

  1. Fixed an error in overloading the function templates.
  2. Added __MQL4BUILD__ and __MQL5BUILD__ macros - MQL5 compiler versions in MetaTrader 4 and MetaTrader 5 client terminals respectively. These macros can be used for displaying information about the compiler version used for compiling EX4\EX5 file in Experts log of the client terminal:

    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //---
       Print(__FILE__," compiled with ",__MQL5BUILD__," build");
    //---
       return(INIT_SUCCEEDED);
      }

MetaTrader Trading Signals

  1. Fixed comparison of Forex trading symbols of EURUSD <=> EURUSD.ABC form in case there are several symbols having similar main part (EURUSD), and trading is disabled for one of them.
  2. Fixed signals copying when performing balance and credit operations on the subscriber's account. The total amount of client's funds is changed after a balance/credit operation is performed. If the percentage value of signals copying has decreased by more than 1% afterwards (the volume of copied trades is calculated considering the ratio of the subscriber's and provider's balance), the subscriber's account is forcedly synchronized with the provider's one. This is done to correct the subscriber's current positions according to the new copying percentage value.

    If the subscriber's funds have increased due to the balance or credit operation, no forced synchronization is performed.

  3. Fixed copying positions in case Fill or Kill (FOK) market order execution mode is forbidden.

MetaEditor

  1. Fixed working with the clipboard when inserting non-Unicode text.
  2. Fixed scrolling the navigator tree when moving folders using drag'n'drop

Fixed errors reported in crash logs.
Updated documentation.

The live update is available through the LiveUpdate system.

The MetaTrader 5 Trading Terminal can be downloaded at https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com

12345678910111213