ChartWindowFind

この関数は、インジケータが描画されるサブウィンドウの番号を返します。この関数には2つのバリアントがあります。

1.この関数は、指示されたチャートでインジケーターの指定された「ショートネーム」を持つサブウィンドウを検索し(サブウィンドウの左上部分にショートネームが表示されます)、成功した場合はサブウィンドウ番号を返します。

int  ChartWindowFind(
   long     chart_id,                  // chart identifier
   string   indicator_shortname        // short indicator name, see INDICATOR_SHORTNAME
   );

2.関数は、カスタムインジケーターから呼び出す必要があります。インジケーターが機能しているサブウィンドウの番号を返します。

int  ChartWindowFind();

パラメーター

chart_id

[in]チャートID。0は現在のチャートを示します。

indicator_shortname

[in]インジケーターの短い名前。

戻り値

成功した場合のサブウィンドウ番号。失敗した場合、関数は-1を返します。

注意

関数の2番目のバリアント(パラメーターなし)がスクリプトまたはExpert Advisorから呼び出された場合、関数は-1を返します。

インジケーターの短い名前とファイル名を混同しないでください。ファイル名は、iCustom()関数を使用してインジケーターを作成するときに指定します。インディケーターのショートネームが明示的に設定されていない場合、インディケーターのソースコードを含むファイルの名前がコンパイル中に指定されます。

インジケーターの短い名前を正しく形成することが重要です。これはIndicatorSetString()関数を使用して、INDICATOR_SHORTNAMEプロパティーに記録されます。ChartIndicatorDelete()関数でチャートから削除されたインジケーターはショートネームで識別されるため、ショートネームにはインジケーターの入力パラメーターの値を含めることをお勧めします

例:

#property script_show_inputs
//— input parameters
input string   shortname=“MACD(12,26,9)”;
//+——————————————————————+
//| Returns number of the chart window with this indicator           |
//+——————————————————————+
int GetIndicatorSubWindowNumber(long chartID=0,string short_name=“”)
  {
   int window=-1;
//— 
   if((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR)
     {
      //— the function is called from the indicator, name is not required
      window=ChartWindowFind();
     }
   else
     {
      //— the function is called from an Expert Advisor or script
      window=ChartWindowFind(0,short_name);
      if(window==-1) Print(__FUNCTION__+“(): Error = “,GetLastError());
     }
//—
   return(window);
  }
//+——————————————————————+
//| Script program start function                                    |
//+——————————————————————+
void OnStart()
  {
//—
   int window=GetIndicatorSubWindowNumber(0,shortname);
   if(window!=-1)
      Print(“Indicator “+shortname+” is in the window #”+(string)window);
   else
      Print(“Indicator “+shortname+” is not found. window = “+(string)window);
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">