ChartTimePriceToXY

Convierte las coordenadas del gráfico desde la representación hora/precio a las coordinadas en el eje X y Y.

bool  ChartTimePriceToXY(
   long           chart_id,     // identificador del gráfico
   int            sub_window,   // número de subventana
   datetime       time,         // fecha/hora en el gráfico
   double         price,        // precio en el gráfico
   int&           x,            // coordinada X para la hora en el gráfico
   int&           y             // coordinada Y para el precio en el gráfico
   );

Parámetros

chart_id

[in]  Identificador del gráfico. 0 significa el gráfico actual.

sub_window

[in]  Número de subventana del gráfico. 0 significa la ventana principal del gráfico.

time

[in]  Valor de la hora en el gráfico para el cual se recibirá el valor en píxeles en el eje X. El inicio de las coordinadas se encuentra en la esquina superior izquierda de la ventana principal del gráfico.

price

[in]  Valor del precio en el gráfico para el cual se recibirá el valor en píxeles en el eje Y. El inicio de las coordinadas se encuentra en la esquina superior izquierda de la ventana principal del gráfico.

x

[out]  Variable en la que se recibirá la conversión de la hora a la coordinada X.

y

[out]  Variable en la que se recibirá la conversión del precio a la coordinada Y.

Valor devuelto

Devuelve true en caso de la ejecución con éxito, de lo contrario - false. Para obtener la información sobre el error, hay que llamar a la función GetLastError().

Ejemplo:

#define   BAR_NUMBER    0  // número de barra desde el que obtenemos el precio y el tiempo
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- copiamos los datos de una barra según el índice BAR_NUMBER
   MqlRates rates[]={};
   if(CopyRates(_Symbol_PeriodBAR_NUMBER1rates)!=1)
     {
      PrintFormat("CopyRates() failed for bar %d. Error %d"BAR_NUMBERGetLastError());
      return;
     }
       
//--- convertimos el precio y el tiempo obtenidos en coordenadas de píxeles del gráfico
   int x=0y=0;
   ResetLastError();
   if(!ChartTimePriceToXY(ChartID(), 0rates[0].timerates[0].closexy))
     {
      Print("ChartTimePriceToXY() failed. Error "GetLastError());
      return;
     }
     
//--- imprimimos el resultado obtenido en el registro
   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);
   
   /*
   resultado:
   For bar[0with opening time 2024.08.09 15:06 and price 1.27378the chart coordinates are x784y240
   */
  }

Véase también

ChartXYToTimePrice()