美文网首页
二十三(八)ObjectMove移动物件

二十三(八)ObjectMove移动物件

作者: 牛在汇上飞 | 来源:发表于2018-10-22 10:58 被阅读0次

    ObjectMove
    该函数用于改变指定图表中物件的指定锚点的坐标。该函数现有两个版本:

    bool ObjectMove(
    string object_name, //物件名
    int point_index, //锚点号
    datetime time, //时间
    double price //价格
    );

    该函数更改对象的指定锚点的坐标。
    bool ObjectMove(
    string object_name, //物件名
    int point_index, //锚点号
    datetime time, //时间
    double price //价格
    );

    参数
    object_name
    物件名。
    point_index
    锚点索引。锚点的数量取决于对象的类型。
    time
    [in]选定锚点的时间坐标。
    price
    [in]所选锚点的价格坐标。

    返回值
    如果成功,返回true,否则返回false。有关错误调用GetLastError()的更多信息。

    请注意
    该函数移动图表中的对象坐标。根据对象的类型,物件可以有1到3个坐标。坐标编号从0开始。
    当没有指定图表ID的情况下使用该函数时,该函数应该与它直接访问的当前图表一起工作。在下面例子中,返回值表示函数执行结果。
    如果指定了非当前图表外的图表的ID,则返回值仅告知命令是否已添加到此图表的队列中。在这种情况下使用异步调用,意味着函数不等待已添加到另一个图表队列的命令的执行。相反,它立即返回控制权。
    要检查当前图表之外的命令执行结果,可以使用检查指定对象属性的函数。但是应注意,这些函数被添加到图表队列的末尾,并等待执行结果,因此会很耗时。在处理的图表上有大量物件时,应该考虑到这个特性。

    例子:
    / -----------脚本程序启动函数------------ +

    int start()
    {
    string 物件名="趋势线";
    long current_chart_id=ChartID();
    //---
    datetime t1=Time[0];
    double p1=Close[0];
    //---
    datetime t2=Time[1];
    double p2=Close[1];
    //--- 创建趋势线对象
    if(!ObjectCreate(物件名,OBJ_TREND,0,t1,p1,t2,p2)) {
    Print("错误:不能创建趋势线!”代码#",GetLastError());
    return(0);
    }
    //---设置颜色为红色
    ObjectSetInteger(current_chart_id,物件名,OBJPROP_COLOR,clrRed);
    //---趋势线的移动
    for(int i=1; i<200; i++){
    t2= Time[i];
    p2= Close[i];
    //---移动趋势线的第二个锚点
    ObjectMove(物件名,1,t2,p2);
    //---强制图表重绘
    ChartRedraw(current_chart_id);
    Sleep(100);
    }
    //--- sleep to see the object
    Sleep(3000);
    //---删除物件
    ObjectDelete(物件名);
    return(0);
    }

    相关文章

      网友评论

          本文标题:二十三(八)ObjectMove移动物件

          本文链接:https://www.haomeiwen.com/subject/vyiwzftx.html