IndicatorParameters

指定されたハンドルに基づいて、指標の入力パラメータの数、値と型を返します。

int  IndicatorParameters(
  int              indicator_handle,    // 指標ハンドル
  ENUM_INDICATOR&   indicator_type,      // 指標の種類を受け取る変数
  MqlParam&        parameters[]         // パラメータを受け取る配列
  );

パラメータ

indicator_handle

[in]  計算されたパラメータの数を知る必要のある指標のハンドル

indicator_type

[out] 指標の種類が書き入れられる ENUM_INDICATOR 型の変数

parameters[]

[out]  指標パラメータのリストが書き入れられる MqlParam 型の値を受け取る動的配列。配列サイズは IndicatorParameters() 関数で返されます。

戻り値

指定されたハンドルを持つ指標の入力パラメータの数。エラーの場合は -1。エラーの詳細については GetLastError() を呼びます。

例:

//+------------------------------------------------------------------+
//| スクリプトプログラムを開始する関数                                          |
//+------------------------------------------------------------------+
void OnStart()
 {
 
//--- チャート上のウィンドウの数(少なくとも1つのメインウィンドウは常に存在する)
  int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- チャートウィンドウを全部見る
  for(int w=0;w<windows;w++)
    {
    //--- このウィンドウ/サブウィンドウ内の指標の数
    int total=ChartIndicatorsTotal(0,w);
    //--- ウィンドウ内の指標を全て取る
    for(int i=0;i<total;i++)
       {
        //--- 指標の短縮名を取得する
        string name=ChartIndicatorName(0,w,i);
        //--- 指標ハンドルを取得する
        int handle=ChartIndicatorGet(0,w,name);
        //--- ログに加える
        PrintFormat("Window=%d,  indicator #%d,  handle=%d",w,i,handle);
        //---
        MqlParam parameters[];
        ENUM_INDICATOR indicator_type;
        int params=IndicatorParameters(handle,indicator_type,parameters);
        //--- メッセージヘッダー
        string par_info="Short name "+name+", type "
                        +EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
        //---
        for(int p=0;p<params;p++)
          {
           par_info+=StringFormat("parameter %d: type=%s, long_value=%d, double_value=%G,string_value=%s\r\n",
                                  p,
                                  EnumToString((ENUM_DATATYPE)parameters[p].type),
                                  parameters[p].integer_value,
                                  parameters[p].double_value,
                                  parameters[p].string_value
                                  );
          }
        Print(par_info);
       }
    //--- ウィンドウの全ての指標で完成
    }
//---    
 }

参照

ChartIndicatorGet()