指定したインジケータがあるウィンドウを取得 ChartWindowFind 関数

関数

チャート操作関数

ChartWindowFind 関数

 この関数は、指定したインジケータが存在するウィンドウのインデックスを取得します。
 この関数には 2つの型があり1つ目はEA、スクリプトからの呼び出し用、2つ目はカスタムインジケータからの呼び出し用です。

 WindowFind関数でも同様の処理を行なうことができます。

データ型と構成・戻り値

 この関数には 2つの型があります。

int ChartWindowFind(①,②); // EA、スクリプトからの呼び出し
int ChartWindowFind();       // カスタムインジケータからの呼び出し

 戻り値は、指定したインジケータが存在するウィンドウのインデックスを返します。それ以外の場合は -1を返します。

 引数①②無しで呼び出すときはカスタムインジケータから呼び出してください。引数①②無しで EA または スクリプトから呼び出した場合は 1が返されます。

引数 [2]

 ChartWindowFind関数は 2個の引数で構成されます。


引数名データ型単位初期値説明
chart_idlong対象とするチャートID。
0は現在のチャートを表します。
indicator_shortnamestring指定するインジケータの略名。

 引数②のインジケータの略名は、チャート上に表示されている文字列から確認するか、ChartIndicatorName関数を使用することで確認できます。

使用例

ChartWindowFind関数によるインジケータがあるウィンドウの取得

 ChartWindowFind関数を使って指定したインジケータが存在するウィンドウのインデックスを EAから取得します。今回は 1つ目のサブウィンドウに ATR、2つ目のサブウィンドウに RSIのインジケータを表示させておきます。

 ATR等のインジケータをサブウィンドウに表示させる方法はこちらを参考にしてください。

コード

// ChartWindowFind関数によるインジケータがあるウィンドウインデックスの取得
#property strict
void OnInit() {

string i1="ATR(14)";
string i2="Mom(14)";
string i3="RSI(14)";

Print("①", i1, "のウィンドウインデックス:", ChartWindowFind(0, i1));
Print("②", i2, "のウィンドウインデックス:", ChartWindowFind(0, i2));
Print("③", i3, "のウィンドウインデックス:", ChartWindowFind(0, i3));
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

 ②のモメンタムのインジケータは存在しないため -1が返されます。

タイトルとURLをコピーしました