ChartTimePriceToXY

Преобразует координаты графика из представления время/цена в координаты по оси X и Y.

bool  ChartTimePriceToXY(
   long           chart_id,     // идентификатор графика
   int            sub_window,   // номер подокна
   datetime       time,         // время на графике
   double         price,        // цена на графике
   int&           x,            // координата X для времени на графике
   int&           y             // координата Y для цены на графике
   );

Параметры

chart_id

[in]  Идентификатор графика. 0 означает текущий график.

sub_window

[in]  Номер подокна графика. 0 означает главное окно графика.

time

[in]  Значение времени на графике, для которого будет получено значение в пикселах на оси X. Начало координат находится в левом верхнем углу главного окна графика.

price

[in]   Значение цены на графике, для которого будет получено значение в пикселах на оси Y. Начало координат находится в левом верхнем углу главного окна графика.

x

[out]  Переменная, в которую будет получено преобразование времени в координату X.

y

[out]  Переменная, в которую будет получено преобразование цены в координату Y.

Возвращаемое значение

Возвращает true в случае успешного выполнения, иначе false. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Пример:

#define   BAR_NUMBER    0  // номер бара, с которого получаем цену и время
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- копируем данные одного бара по индексу BAR_NUMBER
   MqlRates rates[]={};
   if(CopyRates(_Symbol, _Period, BAR_NUMBER, 1, rates)!=1)
     {
      PrintFormat("CopyRates() failed for bar %d. Error %d", BAR_NUMBER, GetLastError());
      return;
     }
       
//--- преобразуем полученные цену и время в пиксельные координаты графика
   int x=0, y=0;
   ResetLastError();
   if(!ChartTimePriceToXY(ChartID(), 0, rates[0].time, rates[0].close, x, y))
     {
      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_NUMBER, TimeToString(rates[0].time), _Digits, rates[0].close, x, y);
   
   /*
   результат:
   For bar[0] with opening time 2024.08.09 15:06 and price 1.27378, the chart coordinates are x: 784, y: 240
   */
  }

Смотри также

ChartXYToTimePrice()