トップ  >  MQL4リファレンス  >  チャート操作  >  ChartWindowFind
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
ChartWindowFind


ChartWindowFind


インジケータが描画されているサブウインドウの番号を返します。
関数は2種類のバリアントがあります。


関数書式(インジケータ短縮名を指定):
int  ChartWindowFind(
   long      chart_id,                  // チャートID
   string   indicator_shortname        // インジケータ短縮名
   );


関数書式(カスタムインジケータ専用。インジケータが動作しているサブウインドウの番号を返します):
int  ChartWindowFind();



■引数
引数名 初期値 I/O 詳細
chart_id - In チャートID。
0は現在のチャートを意味します。
indicator_shortname - In インジケータ短縮名



■戻り値
成功した場合はサブウインドウの番号を返します。
失敗した場合は-1を返します。


■備考
EAで引数無し(2つ目のバリアント)の呼び出しを行った場合は-1を返します。

インジケータをiCustom()関数で作成する時、ファイル名とインジケータ短縮名の指定を混合しないで下さい。
インジケータ短縮名を明示的に指定しなかった場合、インジケータのソースコードを含んだファイル名が指定されます。
インジケータ短縮名はIndicatorSetString()関数を使用してINDICATOR_SHORTNAMEプロパティで指定しなければなりません。

インジケータ短縮名に入力パラメータを含む事をお勧めします。
なぜなら、ChartIndicatorDelete()関数によってインジケータを削除する時にインジケータ短縮名を使用するからです。

サンプルソース(インジケータ側):
#property strict // strictは絶対に削除しない事
#property indicator_separate_window

// 入力パラメータ
sinput int ma_times = 5;          // MA期間

void OnInit() {
    string shortname_str;
    const string indname = "SMA";

    shortname_str = StringFormat( "%s(%d)" , indname , ma_times);

    // インジケータ短縮名設定
    IndicatorSetString( INDICATOR_SHORTNAME  , shortname_str );
}


サンプルソース(EA側):
void OnInit() {

    Print("SMA(5) インジケータのサブウインドウ番号:",ChartWindowFind( 0  , "SMA(5)"  ));
    Print("SMA(10)インジケータのサブウインドウ番号:",ChartWindowFind( 0  , "SMA(10)" ));
    Print("SMA(15)インジケータのサブウインドウ番号:",ChartWindowFind( 0  , "SMA(15)" ));
}


結果:



入力パラメータでMA期間:5とMA期間:15設定のインジケータを追加したチャートでEAを稼働。




SMA(5) インジケータのサブウインドウ番号:1
SMA(10)インジケータのサブウインドウ番号:-1
SMA(15)インジケータのサブウインドウ番号:2







スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system