Henrique Vilela:
Hi,
I'm trying to retrieve the new price property from a object (horizontal line) after it's dragged, but it returns the old value and not the new one.
Am I doing something wrong? How to get new new value (price to where it was dragged to)?
I have the code working correctly - I get new price value.
MetaTrader 5 x64 build 1210 started (MetaQuotes Software Corp.)
Henrique Vilela:
Hi,
I'm trying to retrieve the new price property from a object (horizontal line) after it's dragged, but it returns the old value and not the new one.
Am I doing something wrong? How to get new new value (price to where it was dragged to)?
you have to redraw object after drag-drop, that mean repeat the code of drawing after ObjectDelete of first previous object location.
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("+--------------------------------------------------------------+"); } }this code is an exsample -- ObjectDelete(0,"H Line"); necessary to delete old value--then draw object again then get new value.
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi,
I'm trying to retrieve the new price property from a object (horizontal line) after it's dragged, but it returns the old value and not the new one.
Am I doing something wrong? How to get new new value (price to where it was dragged to)?