ChartNavigate

차트에서 지정된 위치를 기준으로 지정된 막대 수만큼 지정된 차트의 이동을 수행.

bool  ChartNavigate(
   long                  chart_id,     // 차트 ID
   ENUM_CHART_POSITION   position,     // 포지션
   int                   shift=0       // 이동 값
   );

매개변수

chart_id

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

포지션

[in]  이동을 수행할 차트 포지션 ENUM_CHART_POSITION 값 중 하나일 수 있습니다.

shift=0

[in]  차트를 이동할 막대 수. 양수 값은 오른쪽 이동(차트의 끝)을 의미하고 음수 값은 왼쪽(차트의 시작)을 의미합니다. 영점 이동을 사용하여 차트의 시작 또는 끝으로 이동할 수 있습니다.

값 반환

성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예를 들어:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 현재 차트의 핸들 가져오기
   long handle=ChartID();
   string comm="";
   if(handle>0) // 성공적이면 차트를 추가로 설정합니다
     {
      //--- 자동 스크롤 비활성
      ChartSetInteger(handle,CHART_AUTOSCROLL,false);
      //--- 오른쪽 차트 경계에서 이동을 설정합니다.
      ChartSetInteger(handle,CHART_SHIFT,true);
      //--- 캔들스틱 작성
      ChartSetInteger(handle,CHART_MODE,CHART_CANDLES);
      //--- 틱 볼륨의 표시 모드를 설정
      ChartSetInteger(handle,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK);
 
      //--- Comment()에 출력할 텍스트를 준비
      comm="내역 시작의 오른쪽으로 10개의 막대를 스크롤";
      //--- 코멘트 보기
      Comment(comm);
      //--- 내역 시작의 오른쪽으로 10개의 막대를 스크롤
      ChartNavigate(handle,CHART_BEGIN,10);
      //--- 차트에 표시되는 첫 번째 막대의 수를 가져오기(시계열과 같은 숫자)
      long first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      //--- 라인 피드 문자 추가
      comm=comm+"\r\n";
      //--- 코멘트에 추가
      comm=comm+"차트의 첫 번째 막대는 숫자입니다 "+IntegerToString(first_bar)+"\r\n";
      //--- 코멘트 보기
      Comment(comm);
      //--- 5초 동안 차트의 이동 방법을 확인
      Sleep(5000);
 
      //--- 코멘트 텍스트에 추가
      comm=comm+"\r\n"+"10개의 막대를 오른쪽 차트 데두리의 왼쪽으로 스크롤";
      Comment(comm);
      //--- 10개의 막대를 오른쪽 차트 테두리 왼쪽으로 스크롤
      ChartNavigate(handle,CHART_END,-10);
      //--- 차트에 표시되는 첫 번째 막대의 수를 가져오기(시계열과 같은 숫자)
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"차트의 첫 번째 막대는 숫자입니다 "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
      //--- 5초 동안 차트의 이동 방법을 확인
      Sleep(5000);
 
      //--- 차트 스크롤의 새 블록
      comm=comm+"\r\n"+"300개의 막대를 내역 시작의 오른쪽으로 스크롤";
      Comment(comm);
      //--- 300개의 막대를 내역 시작의 오른쪽으로 스크롤
      ChartNavigate(handle,CHART_BEGIN,300);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"차트의 첫 번째 막대는 숫자입니다 "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
      //--- 5초 동안 차트의 이동 방법을 확인
      Sleep(5000);
 
      //--- 차트 스크롤의 새 블록
      comm=comm+"\r\n"+"300개의 막대를 오른쪽 차트의 왼쪽으로 스크롤";
      Comment(comm);
      //--- 300개의 막대를 오른쪽 차트 테두리 왼쪽으로 스크롤
      ChartNavigate(handle,CHART_END,-300);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"차트의 첫 번째 막대는 숫자입니다 "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
     }
  }