お世話になります。
CustomRatesUpdateやCustomRatesDeleteを使用して価格履歴の一部を追加、もしくは削除をおこない、
チャートを再描画させてもチャート上に反映されない事があります。
右クリックのメニューの更新すると反映がされます。
プログラム上から更新をおこないたいと考えていますので確認して頂けないでしょうか。
よろしくお願いします。

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
お世話になります。
CustomRatesUpdateやCustomRatesDeleteを使用して価格履歴の一部を追加、もしくは削除をおこない、
チャートを再描画させてもチャート上に反映されない事があります。
右クリックのメニューの更新すると反映がされます。
プログラム上から更新をおこないたいと考えていますので確認して頂けないでしょうか。
よろしくお願いします。
新しいMetaTrader 5ビルド1730:MetaEditorでのプロジェクトと合成金融商品
2017年12月21 日には更新されたMetaTrader 5 プラットフォームがリリースされます。
旧バージョンのデスクトップおよびモバイル端末のサポートは、新しいプラットフォームバージョンのリリースによって終了します。
MQL5ストレージ運用プロトコルの変更
新しい共有プロジェクトをサポートするため、MQL5ストレージの運用プロトコルを更新しました。したがって、プラットフォームの更新後にはストレージからすべてのデータのチェックアウトを実行してください。更新中にMQL5ストレージに保存されたデータが失われたり影響を受けたりすることはありません。
プラットフォームを新しいバージョンに更新する前に、Commit操作を実行してすべてのローカル変更をMQL5ストレージに送信することをお勧めします。
この新バージョンは次の変更を含みます。
MetaEditorでフル機能のプロジェクトを利用できるようになりました。プログラム開発プロセスがより便利になりました。
現在、メインMQ5プログラムファイルはプロジェクトとして表示されません。このプロジェクトは、プログラム設定、コンパイルパラメータ、および使用されているすべてのファイルに関する情報を格納する別個の "MQPROJ"ファイルです。メインプロジェクト設定は別のダイアログボックスからアクセスできるため、ソースコードで#propertyで指定する必要はありません。
プロジェクト内の作業で便利なように、[ナビゲータ]で別のタブが用意されています。インクルード、リソース、ヘッダー、その他のファイルなどのすべてのファイルが、カテゴリに整理されています。すべてのファイルが自動的にプロジェクトナビゲータに追加されます。たとえば、新しくインクルードしたMQHファイルは、ナビゲータの[Dependencies](依存ファイル)セクションに自動的に表示されます。.
新規プロジェクトのサポートは、更新されたMQL5ストレージオンラインリポジトリにも実装されています。MQL5.comコミュニティの他のメンバーとのコラボレーションを通じた大規模なプロジェクトの開発がはるかに便利になりました。
グループプロジェクトには新しい共有プロジェクトセクションが用意されています。このセクションで作成されたプロジェクトはすぐにストレージに送信されるため、他のユーザーに権限を与えればすぐにコラボレーションを開始できます。
共有プロジェクトでプロジェクトをコンパイルすると、実行可能なEX5ファイルは、プログラムの種類に応じて自動的にローカルのエキスパート、指標またはスクリプトディレクトリにコピーされます。このため、手動でファイルをコピーすることなく、簡単にチャート上でプログラムを起動できます。
MQL5ストレージ操作の新機能
新しい共有プロジェクトのサポートを実装するために、MQL5ストレージ操作プロトコルを変更しました。したがって、プラットフォームの更新後にはストレージからすべてのデータのチェックアウトを実行してください。更新中にMQL5ストレージに保存されたデータが失われたり影響を受けたりすることはありません。
[Checkout from Storage](ストレージからチェックアウト)コマンドは使用できません。代わりに、[Activate MQL5 Storage](MQL5ストレージをアクティブ化)と [Update from Storage](ストレージからファイルを更新)コマンドを使用してデータを受け取ります。
新規プロジェクト:作成および操作の詳細の例
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ファイルは、プログラムの種類に応じて自動的にローカルのエキスパート、指標またはスクリプトディレクトリにコピーされるため、適切なディレクトリに手動でそれをコピーすることなく、すぐにターミナルでプログラムを実行することができます。
MQL5ストレージのパブリックプロジェクト:開発への参加
上記のように、MQL5ストレージの各グループプロジェクトには共有設定があり、プロジェクトはプライベートにすることも、他のユーザーに公開することもできます。これで、自由に参加できるすべてのプロジェクトが別の[パブリックプロジェクト]タブに表示されます。
誰もがエキサイティングなプロジェクトを見つけ、その開発に参加することができます。[Join](参加)をクリックし、ストレージからプロジェクトを受信するだけです。

参加した各ユーザは読み取り専用権限を取得します。コードを送信するには、プロジェクトの作成者に連絡してください。作成者のログイン名は、コンテキストメニューからプロジェクトのプロパティを開くとわかります。ターミナル:取引プラットフォームで合成金融商品(1つまたは複数の既存の商品に基づく銘柄)を作成することができるようになりました。クオーツの計算式を設定すると、プラットフォームは実時間で合成製品のティックと分足の履歴を作成します。
仕組み
例えば ドルインデックス(USDX)を示す製品の作成が可能です。それには下記の数式が使われます。
注:元のドルインデックス式で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及びMathIsValidNumberを除いてすべて使用することができます。 fabs()、 acos()、asin()など、すべての関数の短い名前のみが使用されます。
CustomTicksAdd関数は、これらのクオーツがブローカーサーバから受信されたかのように提供することができます。データはティックデータベースに直接書き込まれるのではなく、[気配値表示]ウィンドウに送られます。ターミナルは次に、ティックを[気配値表示]からデータベースに保存します。1つの呼び出しで大量のデータが渡されると、リソースを節約するために関数の動作が変わります。256ティック以上送信された場合、データは2つの部分に分割されます。大きな部分はチックデータベースに直接記録されます(CustomTicksReplace同様)。最後の128ティックからなる第2の部分は[気配値表示]に送られ、そこからデータベースに保存されます。
この種の保護がすべてのプラットフォームユーザーによって利用できるようになりました。ファイルを保護するには、MetaEditorで [ツール]—[MQL5 Cloud Protector]コマンドを実行します。マーケットで使用されているメカニズムとの唯一のMQL5クラウドプロテクターの違いは、ファイルがユーザーのコンピュータにリンクされていないことです。MQL5クラウドプロテクターで保護されたファイルは、一般的なEX5ファイルと同様にコンピュータで実行できます。
銘柄チャートがビッド価格(仕様設定ごとに)を使用して作成されている場合、この銘柄の高ビッドと低ビッド価格が表示されます。ラスト価格を使用して作成されている場合、この銘柄の高ラストおよび低ラスト価格が表示されます。
[気配値表示]にラストに基づいてチャートが描かれた銘柄が少なくとも1つ含まれている場合、高値と引く値に加えてラスト列も自動的に有効になります。

便宜上、変更されたエントリは以下のように強調表示されます。変更を保存するには、ウィンドウの下部にある[変更を適用]をクリックします。
実口座を開設するためのブローカーへの依頼はデスクトップターミナルから送信することができます。このためには、連絡先の詳細を記載した簡単なリクエストフォームに記入します。その後、トレーダーのために特別な予備口座が作成されます。ブローカーはトレーダーに連絡して関係を公式化し、予備口座を実口座に振り替えます。
MQL5: 標準ライブラリにジェネリックデータコレクションを追加しました。これにはテンプレートに基づいてコレクションを定義するためのクラスとインターフェイスが含まれています。この新しい厳密に型指定されたコレクションによって、アプリケーション開発の利便性と高いデータ処理パフォーマンスが提供されます。
ライブラリは、ターミナル作業ディレクトリのInclude\Genericフォルダにあります。
この関数は、同じ型および同じ次元の動的配列を受け入れます。多次元配列の場合、最初の次元を除くすべての次元の要素の数は一致する必要があります。
ターミナルはこの値を計算しません。1分に1回オペレーティングシステムから要求されます。これは特定のターミナルと取引サーバー間の接続品質を示すものではありません。これは、システムとバックグラウンドのアクティビティを含むネットワークアクティビティ全体の割合が計算されるためです。
TERMINAL_RETRANSMISSIONプロパティがENUM_TERMINAL_INFO_DOUBLE列挙体に追加され、 TerminalInfoDouble関数によって取得されます。

同じメニューを使ってバイナリまたはテキスト配列の形式でプログラムコードファイルを追加することができます。とりわけ、エキスパートアドバイザーまたはインジケータを使用してチャートテンプレートを転送することができます。テンプレートをプログラムコードに配列として挿入し、ディスクに保存してからFileSave関数を使用します。その後、テンプレートは、ChartApplyTemplate関数を使用してエキスパートアドバイザーから適切なチャートに直接適用することができます。更新はLive Updateシステムを介して利用できるようになります。