このユーティリティを使えば、1つのチャート上で複数のシンボルとポジションを監視できます。ロング(買い)シンボル用のグループと、ショート(売り)シンボル用のグループが用意されており、各グループにはデフォルトで7つのシンボルペアが含まれています。ユーザーはこれらのシンボルを変更し、最大50のシンボルをロングまたはショートのバスケットに追加して表示することが可能です。
現在の表示チャートは、インジケーター表示内のシンボルをクリックすることで変更できます。表示される統計には、ATR、1週間の開始からのポイントの増減、ポジションの損益、ロットのエクスポージャーが含まれています。また、統計の週は表示をクリックするだけで簡単に変更でき、表示はドラッグアンドドロップで別の位置に移動できます。
クオート処理への負荷は低く保たれ、表示更新のための処理を開始するイベントを投稿することで、クオート処理とインラインで更新を実行せずに済みます。現在のチャートにクオートが受信されていない場合でも、表示は少なくとも毎秒更新されます。
ここでは、表示の主要なコントロールと機能について説明します。最初の2行には「コントロールオブジェクト」が表示されています(下の全体像を参照):

「バスケットビューワー (wk 0): 2019.07.14 - 2019.07.21」
- 「バスケットビューワー」をクリックしてオブジェクトを選択し、パネルをチャートの別の位置にドラッグ&ドロップします。
- 最初の日付(2019.07.14)をクリックして表示される週を減少させます。
- 2番目の日付(2019.07.21)をクリックして表示される週を増加させます。
「BUY BASKET ポイント Term_ATR Pos_Prft Pos_lots」とか、
「BUY BASKET ポイント Indi_ATR Pos_Prft Pos_lots」
この行をクリックすると、チャート上で現在選択されている週を強調表示します(その週に矩形を描画します)。2回目のクリックで矩形を取り除きます。
- 「BUY BASKET」はユーザーがコントロール可能な「買いペア文字列」から抽出されたペアのリストです。個々の「ペア文字列」をクリックすると、そのシンボルにチャートが変更されます。
- シンボルの隣にある矢印は、バー1のオープンとバー0のクローズ間の価格変動の方向と強さを示し、1.5 ATRの動きは90度(または-90度)の矢印で表示されます。
- 「ポイント」は、週のオープンからクローズを引いたもの(クローズ - オープン)で、選択された週に基づいています(デフォルトは週0、現在の週)。
- 「Term_ATR」または「Indi_ATR」は、チャートの時間枠におけるそのシンボルのATRです。この値は選択された週に基づいています(デフォルトは週0、現在の週)。 2つの値は、ATRがターミナルによって計算されているか、インジケーター自体によって計算されているかを示します。
- 「Pos_Prft」は、そのシンボルに対するアクティブなトレードからの損益です。これは選択された週に基づいて変わることはありません。
- 「Pos_Lots」は、指定されたシンボルへのエクスポージャーです。画像では、GBPJPYで1ロットのエクスポージャーが表示されています。これも選択された週に基づいて変わることはありません。
下の表示画像でわかるように、このヘッダーの後には、ポイント、ATR、利益、ロット列の合計を含む買いペアの統計が続きます。
「SELL_BASKET ポイント Term_ATR Pos_Prft Pos_Lots」とか、
「SELL_BASKET ポイント Indi_ATR Pos_Prft Pos_Lots」
これは「BUY Basket」のヘッダーを繰り返したもので、この行をクリックするとATRの計算方法が変更されます。データをターミナルから取得してiATRハンドルを使用するか、iHighおよびiLow関数を使用して自分で計算するかのいずれかです。下の表示でわかるように、このヘッダーの後には、売りペアの統計が続き、ポイント、ATR、利益、ロット列の合計が含まれています。合計は買いバスケットとは逆になります。たとえば、利益ポイントは(オープン - 現在/クローズ)価格で、買いバスケットの(現在/クローズ - オープン)とは異なります。
いずれの「シンボルペア」をクリックしても、チャートがそのシンボルペアに変更されます。

インジケーターには、ターミナルがクオート情報を提供する準備が整っていないときにログするためのエラーメッセージが多数含まれています。私は「#include <errordescription.mqh> // errordescription.mqhはhttps://www.mql5.com/en/code/79で見つけられます」と取得してコメントを外すことをお勧めします。次に、ErrorDescriptionを検索し、それを含む行を編集してエラー説明を追加します。これらの機能は、公開に必要な自動テストを通過させるためにコメントアウトされていました。他の良い方法は知らないので、エラーの説明を取得するのは難しいです。
「USE_TERMINAL_ATR = ON;」という行(390行目)を「USE_TERMINAL_ATR = OFF;」に変更すると、ATRの計算をインジケーター内部にデフォルトで切り替えられますが、私はONのままにしました。ターミナルデータの初期化がうまくいくように見えたからです。ターミナルはiOpen、iClose、iHigh、およびiLowの値を準備するために時間がかかるようです。ストラテジーテスターで実行する場合は、忍耐強く待ってください。ターミナルは実行を開始する前に初期化に時間がかかることがあります。