IndicatorParameters

지정된 핸들을 기준으로 지표의 입력 파라미터 수와 파라미터의 값 및 유형을 반환합니다.

int  IndicatorParameters(
   int               indicator_handle,     // 지표 핸들
   ENUM_INDICATOR&   indicator_type,       // 지표 유형 수신 변수
   MqlParam&         parameters[]          // 수신 매개 변수 배열
   );

Parameters

indicator_handle

[in]  계산된 파라미터의 수를 알아야 하는 지표의 핸들.

indicator_type

[out]  지표 유형을 기록할 ENUM_INDICATOR 유형인 경우의 변수.

parameters[]

[out]  지표 매개변수 목록이 기록될 MqlParam 유형의 값을 수신하기 위한 동적 배열 IndicatorParameters() 함수에 의해 배열 크기가 반환됩니다.

반환 값

지정된 핸들을 사용하는 지표의 입력 파라미터 수. 오류의 경우 -1을 반환합니다. 오류에 대한 더 많은 정보에 대해선 GetLastError() 함수를 호출하십시오.

예:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 
//--- 차트의 창 수(최소 하나 이상의 기본 창이 항상 있음)
   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);
         //--- Add to log
         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()