ChartTimePriceToXY

시간/가격 표시에서 X 및 Y 좌표로 차트의 좌표에 반환.

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

매개변수

chart_id

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

sub_window

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

시간

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

가격

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

x

[out]  X로의 시간 변환이 수신될 변수.

y

[out]  Y로의 가격 변환이 수신될 변수.

값 반환

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

예:

#define   BAR_NUMBER    0  // 가격과 시간을 가져오는 바의 번호
 
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                         |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- BAR_NUMBER 인덱스로 단일 바의 데이터를 복사합니다.
   MqlRates rates[]={};
   if(CopyRates(_Symbol_PeriodBAR_NUMBER1rates)!=1)
     {
      PrintFormat("CopyRates() failed for bar %d. Error %d"BAR_NUMBERGetLastError());
      return;
     }
       
//--- 획득한 가격과 시간을 차트 픽셀 좌표로 변환합니다.
   int x=0y=0;
   ResetLastError();
   if(!ChartTimePriceToXY(ChartID(), 0rates[0].timerates[0].closexy))
     {
      Print("ChartTimePriceToXY() failed. Error "GetLastError());
      return;
     }
     
//--- 획득한 결과를 저널에 출력합니다.
   PrintFormat("For bar[%d] with opening time %s and price %.*f, the chart coordinates are x: %d, y: %d"BAR_NUMBERTimeToString(rates[0].time), _Digitsrates[0].closexy);
   
   /*
   결과:
   For bar[0with opening time 2024.08.09 15:06 and price 1.27378the chart coordinates are x784y240
   */
  }

추가 참조

ChartXYToTimePrice()