ChartXYToTimePrice

Converte as coordenadas X e Y no gráfico para os valores de tempo e preço.

bool  ChartXYToTimePrice(
   long           chart_id,     // ID Gráfico
   int            x,            // A coordenada X no Gráfico
   int            y,            // A coordenada Y no Gráfico
   int&           sub_window,   // O numero da sub-janela
   datetime&      time,         // Tempo no gráfico
   double&        price         // Preço no gráfico
   );

Parâmetros

chart_id

[in]  ID Gráfico. Significa o gráfico atual.

x

[in]  A coordenada X.

y

[in]  A coordenada Y.

sub_window

[out]  A variável, em que o número de sub-janela gráfico será escrito. 0 (zero) significa a principal janela do gráfico.

time

[out]  O valor do tempo do gráfico, valores em pixels para o qual vai ser recebido ao longo do eixo X. A origem está no canto superior esquerdo da principal janela do gráfico.

price

[out]  O valor do preço no gráfico, valores em pixels para o qual vai ser recebido ao longo do eixo Y. A origem está no canto superior esquerdo da principal janela do gráfico.

Valor do Retorno

Retorna true se bem sucedido, caso contrário false. Para obter informação sobre o erro, chamar a função GetLastError().

Exemplo:

//+------------------------------------------------------------------+
//| Função ChartEvent                                                |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- Mostra os parâmetros do evento no gráfico
   Comment(__FUNCTION__,": id=",id," lparam=",lparam," dparam=",dparam," sparam=",sparam);
//--- Se este é um evento de um mouse clicando no gráfico
   if(id==CHARTEVENT_CLICK)
     {
      //--- Preparar variáveis
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;
      //--- Converter as coordenadas X e Y em termos de data/hora
      if(ChartXYToTimePrice(0,x,y,window,dt,price))
        {
         PrintFormat("Janela=%d X=%d  Y=%d  =>  Tempo=%s  Preço=%G",window,x,y,TimeToString(dt),price);
         //--- Executar a conversão inversa: (X,Y) => (Tempo,Preço)
         if(ChartTimePriceToXY(0,window,dt,price,x,y))
            PrintFormat("Tempo=%s  Preço=%G  =>  X=%d  Y=%d",TimeToString(dt),price,x,y);
         else
            Print("ChartTimePriceToXY código de erro de retorno: ",GetLastError());
         //--- delete lines
         ObjectDelete(0,"V Line");
         ObjectDelete(0,"H Line");
         //--- create horizontal and vertical lines of the crosshair
         ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price);
         ObjectCreate(0,"V Line",OBJ_VLINE,window,dt,price);
         ChartRedraw(0);
        }
      else
         Print("ChartXYToTimePrice código de erro de retorno: ",GetLastError());
      Print("+--------------------------------------------------------------+");
     }
  }

Também Veja

ChartTimePriceToXY()