OnChartEvent - Objekt verschieben auf die aktuelle Position

 

Hallo,

wenn ich mit der Maus auf den Chart klicke, kann ich zwar mit Hilfe von CHARTEVENT_CLICK die x- und y-Koordinate bestimmen, doch wie kann ich nun den Shift Wert im Chart erhalten, damit ich mein Objekt dahin verschieben kann?

 
Du musst nach dem Objekt suchen, das auswählen und dann dessen Parameter ändern.
 
Carl Schreiber #:
Du musst nach dem Objekt suchen, das auswählen und dann dessen Parameter ändern.
Das ist mir klar. Mir ist nur der Schritt unklar, wie ich von meiner x-Koordinate (die ich ja beim CHARTEVENT_CLICK habe) nun auf das i für den TimeShift komme. Gibt es hier eine Umwandelfunktion?
 
sunshineh #:
Das ist mir klar. Mir ist nur der Schritt unklar, wie ich von meiner x-Koordinate (die ich ja beim CHARTEVENT_CLICK habe) nun auf das i für den TimeShift komme. Gibt es hier eine Umwandelfunktion?
Ich verstehe nicht, was Du erreichen willst. Objekte kann man ja auch mit der Maus auswählen und dann verschieben, dabei werden auch die Daten angezeigt, soweit ich mich erinnere.
 
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
    int x = (int)lparam;
    int y = (int)dparam;
    
    datetime dt    =0;
    double   price =0;
    int      window=0;
    int      bar_index;
    
    if(id != CHARTEVENT_CLICK) return;
        
   if(ChartXYToTimePrice(0,x,y,window,dt,price))
    {
        
      bar_index=iBarShift(Symbol(),Period(),dt,false);  // Kerzenummer
              dt=iTime(Symbol(),Period(),bar_index);   // Zeit der Kerzennummer
      }

  }