ChartIndicatorGet

지정된 차트 창에 지정된 단축명을 가진 지표의 핸들을 반환.

int  ChartIndicatorGet(
   long           chart_id,              // 차트 ID
   int            sub_window             // 하위 창의 번호
   const string   indicator_shortname    // 지표의 단축명
   );

매개변수

chart_id

[in]  차트 ID. 0은 현재 차트를 의미합니다.

sub_window

[in]  차트 하위 창의 번호. 0은 주 차트 창을 의미합니다.

const indicator_shortname

[in] INDICATOR_SHORTNAME 속성에 IndicatorSetString() 기능을 사용하여 설정된 지표 경우의 단축명을 설정. 지표의 단축명을 가져오려면, ChartIndicatorName() 기능을 사용.

값 반환

성공한 경우 지표 핸들을 반환하고, 그렇지 않은 경우 INVALID_HANDLE를 반환합니다. 오류에 대한 정보를 얻으려면, GetLastError() 함수 호출.

주의

ChartIndicatorGet() 기능을 사용하여 얻은 지표 핸들은 내부 지표 사용 카운터를 증가시킵니다. 터미널 런타임 시스템은 카운터가 0보다 큰 모든 지표를 로드 상태로 유지합니다. 따라서 더 이상 필요하지 않은 지표 핸들은 아래 예와 같이 IndicatorRelease() 를 사용하여 즉시 그리고 명시적으로 해제해야 합니다. 그렇지 않다면 “abandoned” 핸들을 찾아서 다른 프로그렘에서 올바르게 해제하는 것은 불가능할 겁니다.

지표를 생성할 때, INDICATOR_SHORTNAME 속성에 IndicatorSetString() 기능을 사용하여 기록되는 단축명을 주의하여 작성하십시오. 지표는 단축명을 기반으로 ChartIndicatorGet() 기능에서 식별되므로 단축명은 지표의 입력 매개변수 값을 포함하는 것이 좋습니다.

지표를 식별하는 또 다른 방법은 IndicatorParameters() 기능을 사용하여 주어진 핸들에 대한 매개변수 목록을 가져온 다음 얻은 값을 분석하는 것입니다.

예를 들어:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
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);
         //--- 로그에 추가
         PrintFormat("Window=%d,  index=%d,  name=%s,  handle=%d",w,i,name,handle);
         //--- 지표 핸들이 더 이상 필요하지 않을 때에는 반드시 해제해야 합니다.
         IndicatorRelease(handle);
        }
     }
  }

추가 참조

ChartIndicatorAdd(), ChartIndicatorName(), ChartIndicatorsTotal(), IndicatorParameters()