MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 545

 
Ihor Herasko:

どうやって両方を手に入れるのか、見せてください。今のところ、まるで同じことを言っているように見えます。

いや、値が違うんです、確認したんです。

このスクリプトをチャートに投影するのです。

void OnStart()
  {
//---
   int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);
   int idChart = ChartID(); 
   Alert("CHART_WINDOW_HANDLE = ",chartHandle," idChart=",idChart); 

  }

そして、私たちは手に入れます。


 
khorosh:

いや、値が違うんです、確認したんです。

なるほど、そういうことだったのか。

chartHandle は OS に割り当てられたチャートウィンドウのディスクリプタです。他のスレッドからWinAPI経由でウィンドウのアドレス指定に使用することができます。

idChart は、端末自身が割り当てる内部チャート識別子 です。MQLからの作業のみに使用できます。

 
Ihor Herasko:

何を言っているのかが明確になりました。

ChartHandle は OS から割り当てられたチャートウィンドウの記述子です。他のスレッドからWinAPI経由でウィンドウのアドレス指定に使用することができます。

idChart は、端末自身が割り当てる内部チャート識別子 です。MQLからの操作にのみ使用できます。

了解です、ありがとうございます

 
Ihor Herasko:

何を言っているのかが明確になりました。

ChartHandle は OS から割り当てられたチャートウィンドウの記述子です。他のスレッドからWinAPI経由でウィンドウのアドレス指定に使用することができます。

idChart は、端末自身が割り当てる内部チャート識別子 です。MQLからしか使えません。

では、他の開いている端末のウィンドウにアドレス指定する必要がある場合は、chartHandleを使用する必要があるのでしょうか。また、他のシンボルのチャートにあるインジケーターから、指定したシンボルのチャート識別子を判断するにはどうしたらよいでしょうか。例えば、EURJPYチャートにあるインジケータをUSDJPYチャートにオブジェクトを作成する必要があります。USDJPYのチャート識別子を定義するにはどうすればよいですか?

 
khorosh:

つまり、他の開いている端末のウィンドウを参照したい場合は、chartHandle ?また、他のシンボルのチャートにあるインジケーターから、指定したシンボルのチャートIDを判断する方法を教えてください。例えば、EURJPYチャートにあるインジケータをUSDJPYチャートにオブジェクトを作成する必要があります。USDJPYのチャート識別子を定義するにはどうすればよいですか?

ChartID()の ヘルプに、全ターミナルチャートを列挙する例があったと思うのですが、どうでしょうか?
 
Artyom Trishkin:
ChartID()のヘルプに全端末のチャートを列挙する例があると思います。

いいえ、空っぽです。ChartNextの ヘルプに例が載っています。よし、わかった。それ以上の質問はありません。ありがとうございます。

 
khorosh:

では、他の開いている端末のウィンドウにアクセスする場合は、chartHandleを使用すればよいのですね。

MQLのみで作業する場合、chartHandleは必要ありません。このようなニーズは、DLLを接続する際に発生することがあります。

 
ObjectCreate() 関数でウィンドウのインデックスを指定するには

boolObjectCreate(
longchart_id,// チャート識別子
stringobject_name,// オブジェクト名
ENUM_OBJECTobject_type,// オブジェクトタイプ
intsub_window,// ウィンドウのインデックス
datetimetime1,// 時刻最初のタイ ポイントの
doubleprice1,// 最初のアンカーポイントの価格
...
datetimetimeN=0,//時間N点バインディング
doublepriceN=0// 価格 N-アンカーポイント
);


 
khorosh:
ObjectCreate() 関数でウィンドウのインデックスを定義するには




定義されているのではなく、設定されているのです。

サブウィンドウ

[in] チャートのサブウィンドウ番号です。0は、グラフのメインウィンドウを意味します。指定されたサブウィンドウが存在しなければ ならない。そうでなければ、この関数は偽を返す。

 

ウィンドウズ・ファインダー

WindowsTotal

理由: