[Checkout from Storage](ストレージからチェックアウト)コマンドは、共有プロジェクトでのみ使用できるようになりました。MQL5フォルダ内の他のカタログについては、 [Activate MQL5 Storage](MQL5ストレージをアクティブ化)と [Update from Storage](ストレージからファイルを更新)コマンドが使用されます。
[気配値表示]に合成製品が追加されると、プラットフォームは計算された分足の履歴が存在するかどうかを確認します。存在しなければ、過去60日間の履歴が作成され、これには約5万のバーが含まれます。プラットフォーム設定の[Max. bars in chart](チャートでのバーの最大数) パラメータに値が指定されている場合は、その値が適用されます。
Symbol name - 計算する合成価格に応じて、指定された製品のビッド、アスク、またはラストが使用されます。たとえば、EURUSD*GBPUSDが指定されている場合、ビッドはbid(EURUSD)*bid(GBPUSD)として計算され、アスクはask(EURUSD)*ask(GBPUSD)となります。
シグナル:シグナルに従って開かれたポジションの強制決済の場合の注文タイプの表示を修正しました。シグナルのコピーオプションに[Stop if the account is lower than XXX USD](アカウントがXXX USDより低い場合は停止する)オプションを用意しました。エクイティが特定のレベルを下回ると、取引シグナルのコピーが自動的に終了し、すべてのポジションが決済されます。以前は、強制決済の場合にポジションを決済する注文に対して誤ったタイプが設定されていました。ターミナルは、銘柄設定において許容されるタイプを確認し、適切なオプションを指示するようになりました。
MetaEditor:プロパティとリソースをプログラムコードに簡単に挿入する機能が追加されました。たとえば、インクルードされたファイルをコードにすばやく追加することができます。"Insert—MQH as #incude"コマンドを使用して、所望されたインクルードファイルを選択します。選択したファイルへの正しいパスを含む#include指令がプログラムコードに挿入されます。
MetaTrader 5 プラットフォームベータ版ビルド1700:MetaEditorでのプロジェクトと合成金融商品
更新された MetaTrader 5 プラットフォームのベータ版が2017年12月6日にリリースされます。当社の一般向けのMetaQuotes-Demoサーバーはaccess.metatrader5.com:443で更新されます。更新されたプラットフォームの機能の評価と開発者のエラー修正に役立てるため、すべてのトレーダーの皆様のテストへの参加をお待ちしています。
MetaTrader 5 プラットフォームをビルド1700に更新するには、access.metatrader5.com server:443に接続なさってください。
新しい MetaTrader 5 プラットフォームの最終ビルドは公開ベータ版テストの後にリリースされます。
旧バージョンのデスクトップおよびモバイル端末のサポートは、新しいプラットフォームバージョンのリリースによって終了します。
MQL5ストレージ運用プロトコルの変更
新しい共有プロジェクトをサポートするため、MQL5ストレージの運用プロトコルを更新しました。したがって、プラットフォームの更新後にはストレージからすべてのデータのチェックアウトを実行してください。更新中にMQL5ストレージに保存されたデータが失われたり影響を受けたりすることはありません。
プラットフォームを新しいバージョンに更新する前に、Commit操作を実行してすべてのローカル変更をMQL5ストレージに送信することをお勧めします。
この新バージョンは次の変更を含みます。
現在、メインMQ5プログラムファイルはプロジェクトとして表示されません。このプロジェクトは、プログラム設定、コンパイルパラメータ、および使用されているすべてのファイルに関する情報を格納する別個の "MQPROJ"ファイルです。メインプロジェクト設定は別のダイアログボックスからアクセスできるため、ソースコードで#propertyで指定する必要はありません。
プロジェクト作業で便利なように、ナビゲータには別のタブが用意されており、インクルード、リソース、ヘッダー、その他のファイルなどのすべてのファイルが、カテゴリに整理されています。すべてのファイルが自動的にプロジェクトナビゲータに追加されます。たとえば、新しくインクルードしたMQHファイルは、ナビゲータの[Dependencies](依存ファイル)セクションに自動的に表示されます。
新規プロジェクトのサポートは、更新されたMQL5ストレージオンラインリポジトリにも実装されています。これは、MQL5.comコミュニティの他のメンバーとのコラボレーションを通して大規模なプロジェクトを開発するための便利なオプションです。
グループプロジェクトには新しい共有プロジェクトセクションが用意されています。このセクションで作成されたプロジェクトはすぐにストレージに送信されるため、他のユーザーに権限を与えればすぐにコラボレーションを開始できます。
共有プロジェクトでプロジェクトをコンパイルすると、実行可能なEX5ファイルは、プログラムの種類に応じて自動的にローカルのエキスパート、指標またはスクリプトディレクトリにコピーされます。このため、手動でファイルをコピーすることなく、簡単にチャート上でプログラムを起動できます。MQL5ストレージ操作の新機能
新しい共有プロジェクトのサポートを実装するために、MQL5ストレージ操作プロトコルを変更しました。したがって、プラットフォームの更新後にはストレージからすべてのデータのチェックアウトを実行してください。MQL5ストレージに保存されたデータは、更新中に失われたり影響を受けたりすることはありません。
新規プロジェクト:作成および操作の詳細の例
MetaEditorに新規プロジェクトエンティティが追加されました。プロジェクトとは、一般的なプログラムのプロパティと、使用されているすべてのファイルに関する情報を格納するmqprojファイルのことです。ソースコードで#propertyディレクティブを使用して手動で変更するのではなく、別のMetaEditorダイアログから便利にプログラムプロパティを管理できるようになりました。
利用可能なコードがあれば、 [ソースから新規プロジェクトを作成]コマンドを使って簡単に新しいプロジェクトをテストすることができます。
選択したファイルがあるディレクトリに、同じ名前とmqproj拡張子を持つ新しいプロジェクトファイルが作成されます。#propertyを介してソースコードで指定されたメインプログラムの名前、著作権、バージョン、開発者のサイトへのリンク、プログラムの説明などのプロパティは、プロジェクトに自動的に追加されます。
MQL5プログラムをコンパイルするための新しいオプションが2つ追加されました。プロジェクトを操作するには、ナビゲータウィンドウで[プロジェクト]タブを使用します。このタブでは、プロジェクトで使用されるすべてのファイルが便利な形式で表示されます。プロジェクトがソースファイルから生成されると、使用されているすべてのインクルードファイル(メインのMQ5ファイルとインクルードファイルの#includeディレクトリを使用して指定)が自動的に[Dependencies](依存関係)セクションに追加されます。
ソースコードに追加された新しいインクルードファイルは、プロジェクトナビゲータにも表示されます。使用されたヘッダーファイルはヘッダーセクションに追加されます。 プロジェクトでリソースとして使用される画像、音声、および他のMQL5プログラムは[リソース]セクションに追加されます。ソースコードを含むMQ5ファイルは[ソース]セクションに表示されます。[設定とファイル]セクションでは、テスト用のファイルとチャートテンプレートなど、他のファイルを追加できます。
プロジェクトに既存のファイルを追加したり、そこからファイルを削除するには、コンテキストメニューコマンドを使用します。プロジェクトからファイルを削除する(バインディングを削除する)ことと、ハードディスクからファイルを完全に削除することが両方できるので、ファイルを削除するときは注意してください。
新規プロジェクトの作成は、通常のMQL5プログラムの作成と同じくらい簡単です。[新しいプロジェクト]をクリックし、新しいプログラムのタイプを選択し、MQL5ウィザードでプロパティ(名前、イベントハンドラなど)を指定します。実行可能なEX5ファイルを作成するには、プロジェクトを開いてF7(コンパイルコマンド)を押すか、プログラムのメインMQ5ファイルを開いてコンパイルします。
MQL5ストレージでの共有プロジェクト:操作の詳細
共有プロジェクトは別の[共有プロジェクト]セクションから管理されます。まだストレージを接続していない場合は、目的のフォルダのコンテキストメニューから[Activate MQL5 Storage](MQL5ストレージをアクティブ化)コマンドを実行してください。MetaEditorは、ストレージに保存されたデータが含まれているかどうか、そして共有プロジェクトがあるかどうかを確認します。利用可能なすべてのデータがストレージから取得され、コンピュータにアップロードされます(チェックアウト操作)。 使用可能なグループプロジェクトが[共有プロジェクト]セクションに表示されます。プロジェクトを取得するには、コンテキストメニューの[Checkout from Storage](ストレージからチェックアウト)を実行します。
新しいグループプロジェクトを作成するには、[共有プロジェクト]フォルダを選択して[新しいプロジェクト]をクリックします。
次に、標準的なMQL5のステップを完了します。目的のプログラムのタイプ、名前、プロパティを設定します。グループプロジェクトの場合、他の参加者が簡単に見つけられるように、わかりやすくわかりやすい名前を使用する必要があります。 プロジェクト名にはスペースのないラテン文字のみ使用できます。作成されたオブジェクトはすぐにMQL5ストレージに追加されます。プロジェクトで使用されている標準ライブラリファイルはストレージに追加されないので、手動で追加することができます。
他の参加者がプロジェクトで作業できるようにするには、そのプロパティを開きます。ここから、MQL5.communityログインを指定し、グループ作業の共通パラメータを設定することによって、選択したユーザに権限を与えることができます。
グループプロジェクトをコンパイルすると、実行可能なEX5ファイルは、プログラムの種類に応じて自動的にローカルのエキスパート、指標またはスクリプトディレクトリにコピーされるため、適切なディレクトリに手動でそれをコピーすることなく、すぐにターミナルでプログラムを実行することができます。仕組み
注:元のドルインデックス式でUSDEURとUSDGBPのペアが使用されます。プラットフォームでは逆ペアのみが使用可能であるため、合成銘柄式は負のパワーと、ビッドの代わりにアスクが使用されます。
プラットフォームは、ブローカーによって提供された他の6銘柄のクオーツに基づいて、新しい製品の価格を実時間で計算します。価格の変更は[気配値表示]ウィンドウとチャートで視覚化されます。
新しいカスタム銘柄を作成し、その仕様を開き、式を入力します。
便宜上、数式エディタには銘柄や関数の名前を入力するときに可能なオプションのリストが表示されます。合成製品が[気配値表示]に追加されると、そのティックと分足バーの計算が開始されます。また、合成価格計算に必要な銘柄は自動的に[気配値表示]に追加されます。計算開始のエントリ("Synthetic Symbol USDX: processing started")がプラットフォームの操作ログに追加されます。
クオーツの実時間計算
計算に使用される銘柄の価格が100ミリ秒ごとに(すなわち毎秒10回)確認されます。それらのうちの少なくとも1つが変更されると、合成銘柄の価格が計算され、新しいティックが生成されます。計算は、3つのスレッドで並列に実行され、ビッド、アスク、及びラストの価格で実行されます。たとえば、計算式がEURUSD*GBPUSDの場合、合成銘柄の価格は次のように計算されます。
変更の可用性は価格ごとに個別に確認されます。たとえば、元の製品のビッドのみが変更された場合、合成製品の適切な価格だけが計算されます。
分足の履歴の作成
プラットフォームは、ティックを実時間で収集するだけでなく、合成製品の分足の履歴も作成します。通常の製品と同様に、合成製品チャートを表示したりオブジェクトや指標を使用してテクニカル分析を行うことができます。
[気配値表示]に合成製品が追加されると、プラットフォームは計算された分足の履歴が存在するかどうかを確認します。存在しなければ、過去60日間の履歴が作成され、これには約5万のバーが含まれます。プラットフォーム設定の[Max. bars in chart](チャートでのバーの最大数) パラメータに値が指定されている場合は、その値が適用されます。
この期間の一部のバーが既に作成された場合、プラットフォームは新しいバーを追加生成します。ユーザがより古い期間のチャートを表示しようとする(スクロールしたり、MQL5プログラムからアクセスしたりする)と、より古い履歴が作成されます。
合成製品の分足の履歴は、その数式で使用される製品の分足(ティックではない)に基づいて計算されます。たとえば、合成銘柄の分足の始値を計算するには、プラットフォームはその数式で使用されている銘柄の始値を使用します。高値、安値、終値も同じように計算されます。
必要なバーがいずれの製品でも利用できない場合、プラットフォームは前のバーの終値を使用します。たとえば、EURUSD、USDJPY、GBPUSDの3つの製品が使用されるとします。12:00に対応するバーの計算でUSDJPYの必要なバーが利用できない場合、以下の価格が計算に使用されます。
数式で使用されているすべての製品での分足が使用できない場合、合成製品の分足は計算されません。
新しい分足の描画
合成製品の新しいバー(現在および次のもの)はすべて生成されたティックに基づいて作成されます。バーを構築するのに使われる価格は[Chart mode](チャートモード)パラメーター値に基づきます。
銘柄式で可能な操作
ブローカーが提供する既存銘柄の価格データといくつかのプロパティは、合成価格の計算に使用できます。下記を指定します。
算術演算の計算優先順位に気を付けてください。
数式で定数を使うことができます。
MQL5でサポートされた数学関数はMathSrand、 MathRand及びMathIsValidNuberを除いてすべて使用することができます。 fabs()、 acos()、asin()など、すべての関数の短い名前のみが使用されます。
CustomTicksAdd関数は、これらのクオーツがブローカーサーバから受信されたかのように提供することができます。データはティックデータベースに直接書き込まれるのではなく、[気配値表示]ウィンドウに送られます。ターミナルは次に、ティックを[気配値表示]からデータベースに保存します。1つの呼び出しで大量のデータが渡されると、リソースを節約するために関数の動作が変わります。256ティック以上送信された場合、データは2つの部分に分割されます。大きな部分はチックデータベースに直接記録されます(CustomTicksReplace同様)。最後の128ティックからなる第2の部分は[気配値表示]に送られ、そこからデータベースに保存されます。
この種の保護がすべてのプラットフォームユーザーによって利用できるようになりました。ファイルを保護するには、MetaEditorで [ツール]—[MQL5 Cloud Protector]コマンドを実行します。マーケットで使用されているメカニズムとの唯一のMQL5クラウドプロテクターの違いは、ファイルがユーザーのコンピュータにリンクされていないことです。MQL5クラウドプロテクターで保護されたファイルは、一般的なEX5ファイルと同様にコンピュータで実行できます。
銘柄チャートがビッド価格(仕様設定ごとに)を使用して作成されている場合、この銘柄の高ビッドと低ビッド価格が表示されます。ラスト価格を使用して作成されている場合、この銘柄の高ラストおよび低ラスト価格が表示されます。
[気配値表示]にラストに基づいてチャートが描かれた銘柄が少なくとも1つ含まれている場合、高値と引く値に加えてラスト列も自動的に有効になります。
便宜上、変更されたエントリは以下のように強調表示されます。変更を保存するには、ウィンドウの下部にある[変更を適用]をクリックします。
この関数は、同じ型および同じ次元の動的配列を受け入れます。多次元配列の場合、最初の次元を除くすべての次元の要素の数は一致する必要があります。
同じメニューを使ってバイナリまたはテキスト配列の形式でプログラムコードファイルを追加することができます。とりわけ、エキスパートアドバイザーまたはインジケータを使用してチャートテンプレートを転送することができます。テンプレートをプログラムコードに配列として挿入し、ディスクに保存してからFileSave関数を使用します。その後、テンプレートは、ChartApplyTemplate関数を使用してエキスパートアドバイザーから適切なチャートに直接適用することができます。更新はLiveUpdateシステムを介して利用できるようになります。