ChartXYToTimePrice

차트의 X 및 Y 좌표를 시간 및 가격 값으로 반환.

bool  ChartXYToTimePrice(
   long           chart_id,     // 차트 ID
   int            x,            // 차트의 X좌표
   int            y,            // 차트의 Y좌표
   int&           sub_window,   // 하위 창의 번호
   datetime&      time,         // 차트의 시간
   double&        price         // 차트의 가격
   );

매개변수

chart_id

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

x

[in] X좌표.

y

[in]  Y좌표.

sub_window

[out]  차트 하위 창 번호를 기록할 변수. 0은 주 차트 창을 의미합니다.

시간

[out]  X축을 따라 픽셀 단위로 수신될 차트의 시간 값. 원점은 주 차트의 창 왼쪽 위에 있습니다.

가격

[out]  Y축을 따라 픽셀 단위로 표시되는 차트의 가격 값. 원점은 주 차트의 창 왼쪽 위에 있습니다.

값 반환

성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수 호출.

예를 들어:

//+------------------------------------------------------------------+
//| ChartEvent 기능                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- 차트에 이벤트 매개변수 표시
   Comment(__FUNCTION__,": id=",id," lparam=",lparam," dparam=",dparam," sparam=",sparam);
//--- 차트의 마우스 클릭 이벤트인 경우
   if(id==CHARTEVENT_CLICK)
     {
      //--- 변수를 준비
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;
      //--- 날짜/시간 단위로 X 및 Y 좌표 변환
      if(ChartXYToTimePrice(0,x,y,window,dt,price))
        {
         PrintFormat("Window=%d X=%d  Y=%d  =>  Time=%s  Price=%G",window,x,y,TimeToString(dt),price);
         //--- 역방향 변환 수행: (X,Y) => (Time,Price)
         if(ChartTimePriceToXY(0,window,dt,price,x,y))
            PrintFormat("Time=%s  Price=%G  =>  X=%d  Y=%d",TimeToString(dt),price,x,y);
         else
            Print("ChartTimePriceToXY return error code: ",GetLastError());
         //--- 열 삭제
         ObjectDelete(0,"V Line");
         ObjectDelete(0,"H Line");
         //--- 크로스헤어의 가로 및 세로열을 작성
         ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price);
         ObjectCreate(0,"V Line",OBJ_VLINE,window,dt,price);
         ChartRedraw(0);
        }
      else
         Print("ChartXYToTimePrice return error code: ",GetLastError());
      Print("+--------------------------------------------------------------+");
     }
  }

추가 참조

ChartTimePriceToXY()