//+——————————————————————+  //| ChartEvent function                                              |  //+——————————————————————+  void OnChartEvent(const int id,                    const long &lparam,                    const double &dparam,                    const string &sparam)    {  //— Show the event parameters on the chart     Comment(__FUNCTION__,“: id=”,id,” lparam=”,lparam,” dparam=”,dparam,” sparam=”,sparam);  //— If this is an event of a mouse click on the chart     if(id==CHARTEVENT_CLICK)       {        //— Prepare variables        int      x     =(int)lparam;        int      y     =(int)dparam;        datetime dt    =0;        double   price =0;        int      window=0;        //— Convert the X and Y coordinates in terms of date/time        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);           //— Perform reverse conversion: (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(“+————————————————————–+”);       }    }  |