ChartXYToTimePrice

Konvertiert die X- und Y-Koordinate des Charts in Zeit und Preis.

bool  ChartXYToTimePrice(
   long           chart_id,     // ID des Charts
   int            x,            // X-Koordinate auf dem Chart
   int            y,            // Y-Koordinate auf dem Chart
   int&           sub_window,   // Nummer des Unterfensters
   datetime&      time,         // Zeit auf dem Chart
   double&        price         // Preis auf dem Chart
   );

Parameter

chart_id

[in]  ID des Charts. 0 bedeutet den aktuellen Chart.

x

[in]  X-Koordinate.

y

[in]  Y-Koordinate.

sub_window

[out]  Die Variable, in die die Nummer des Chartunterfenster geschrieben wird. 0 bedeutet das Hauptfenster des Charts.

time

[out]  Der Wert der Zeit auf dem Chart, für den ein Wert in Pixels auf der X-Achse erhalten wird. Der Ursprung ist in der oberen linken Ecke das Hauptfenster des Charts.

price

[out]  Der Wert des Preises auf dem Chart, für den ein Wert in Pixels auf der Y-Achse erhalten wird. Der Ursprung ist in der oberen linken Ecke das Hauptfenster des Charts.

Rückgabewert

Gibt bei Erfolg true zurück, ansonsten false. Um Informationen über den Fehler zu erhalten, rufen Sie die Funktion GetLastError().

Beispiel:

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- Zeigen die Parameter des Ereignisses auf dem Chart
   Comment(__FUNCTION__,": id=",id," lparam=",lparam," dparam=",dparam," sparam=",sparam);
//--- wenn es ein Ereignis von Mausklick auf dem Chart ist
   if(id==CHARTEVENT_CLICK)
     {
      //--- Vorbereitung der Variablen
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;
      //--- Konvertieren wir X und Y in Zeit/Preis
      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);
         //--- inverse Umwandlung: (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());
         //--- 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 return error code: ",GetLastError());
      Print("+--------------------------------------------------------------+");
     }
  }

Sehen Sie auch

ChartTimePriceToXY()