ObjectMove
ObjectMove
The function changes coordinates of the specified anchor point of the object at the specified chart. There are two variants of the function:
bool ObjectMove(
string object_name, // object name
int point_index, // anchor point number
datetime time, // Time
double price // Price
);The function changes coordinates of the specified anchor point of the object.
bool ObjectMove(
string object_name, // object name
int point_index, // anchor point number
datetime time, // Time
double price // Price
);Parameters
- object_name
[in] Name of the object.
- point_index
[in] Index of the anchor point. The number of anchor points depends on the type of object.
- time
[in] Time coordinate of the selected anchor point.
- price
[in] Price coordinate of the selected anchor point.
Return Value
If successful, returns true, in case of failure returns false. To read more about the error call GetLastError().
Note
The function moves an object coordinate in the chart. Objects can have from one to three coordinates depending on their types. The object coordinates are numbered starting from 0.
When the function is used with no chart ID specified, the function is supposed to be working with the current chart to which it has a direct access. In this case, the return value means the function execution result.
If the ID of a chart other than the current one is specified, the return value only informs whether the command has been added to the queue of that chart. In this case an asynchronous call is used, which means that the function does not wait for the execution of the command that has been added to the queue of another chart. Instead, it immediately returns control.
To check the result of command execution on a chart other than the current one, you can use a function that checks the specified object property. However, you should keep in mind that such functions are added to the end of the queue of that chart and wait for the execution result, and can therefore be time consuming. This feature should be taken into account when working with a large number of objects on a chart.
Example:
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
int start()
{
string obj_name="trend_line";
long current_chart_id=ChartID();
//---
datetime t1=Time[0];
double p1=Close[0];
//---
datetime t2=Time[1];
double p2=Close[1];
//--- creating trend line object
if(!ObjectCreate(obj_name,OBJ_TREND,0,t1,p1,t2,p2))
{
Print("Error: can't create trend line! code #",GetLastError());
return(0);
}
//--- set color to Red
ObjectSetInteger(current_chart_id,obj_name,OBJPROP_COLOR,clrRed);
//--- moving of the trend line
for(int i=1; i<200; i++)
{
t2=Time[i];
p2=Close[i];
//--- move the 2nd anchor point of the trend line
ObjectMove(obj_name,1,t2,p2);
//--- forced chart redraw
ChartRedraw(current_chart_id);
Sleep(100);
}
//--- sleep to see the object
Sleep(3000);
//--- delete object
ObjectDelete(obj_name);
return(0);
}