ChartWindowFind

이 함수는 지표가 그려진 하위 창의 번호를 반환. 함수의 2가지 변수가 있습니다.

1. 함수는 표시된 차트에서 지표의 지정된 "단축명"(단축명은 하위 창의 왼쪽 상단 부분에 표시됨)을 사용하여 하위 창을 검색하고 성공한 경우 하위 창 번호를 반환합니다.

int  ChartWindowFind(
   long     chart_id,                  // 차트 식별자
   string   indicator_shortname        // 지표 단축명은 다음을 보십시오 INDICATOR_SHORTNAME

2. 사용자 지정 지표에서 함수를 호출해야 합니다. 지표가 작동하는 하위 창의 번호를 반환합니다.

int  ChartWindowFind();

매개변수

chart_id

[in]  차트 ID. 0은 현재 차트를 나타냅니다.

indicator_shortname

[in]  지표의 단축명

값 반환

성공 시 하위 창의 번호 실패 시 함수는 -1을 반환.

주의

매개변수가 없는 함수의 두 번째 변수를 스크립트 또는 엑스퍼트 어드바이저에서 호출하면 함수는 -1을 반환합니다.

지표의 단축명과 파일 이름명을 혼동하시 마십시오. 이 이름은 iCustom()IndicatorCreate() 함수를 사용하여 지표를 만들 때 지정됩니다. 지표의 단축명이 명시적으로 설정되지 않은 경우 지표의 소스코드를 포함하는 파일명이 컴파일 중에 지정됩니다.

INDICATOR_SHORTNAME 속성에 IndicatorSetString() 기능을 사용하여 기록되는 지표의 단축명을 올바르게 구성하는 것이 중요합니다. ChartIndicatorDelete() 기능의 차트에서 지표는 단축명으로 식별되는 단축명에 지표의 입력 매개변수 값을 포함할 것을 권장합니다.

예를 들어:

#property script_show_inputs
//--- 매개변수 입력
input string   shortname="MACD(12,26,9)";
//+------------------------------------------------------------------+
//| 이 지표가 있는 차트 창의 번호를 반환           |
//+------------------------------------------------------------------+
int GetIndicatorSubWindowNumber(long chartID=0,string short_name="")
  {
   int window=-1;
//--- 
   if((ENUM_PROGRAM_TYPE)MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR)
     {
      //--- 이 함수는 지표에서 호출되며, 이름은 필요하지 않습니다
      window=ChartWindowFind();
     }
   else
     {
      //--- 이 함수는 엑스퍼트 어드바이저 또는 스크립트에서 호출됩니다
      window=ChartWindowFind(0,short_name);
      if(window==-1) Print(__FUNCTION__+"(): Error = ",GetLastError());
     }
//---
   return(window);
  }
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int window=GetIndicatorSubWindowNumber(0,shortname);
   if(window!=-1)
      Print("Indicator "+shortname+" is in the window #"+(string)window);
   else
      Print("지표 "+shortname+" 를 발견하지 못했습니다. window = "+(string)window);
  }

추가 참조

ObjectCreate(), ObjectFind()