找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 16|回复: 0

量化交易之MQL4篇 - 对象函数的基础应用

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-23 01:49:00 | 显示全部楼层 |阅读模式
void OnStart() {

    string vlineObject = "vlineObject";
    string hlineObject = "hlineObject";
    string trendObject = "trendObject";
    string trendbyangleObject = "trendbyangleObject";
    string fiboObject = "fiboObject";
    string textObject = "textObject";
    string labelObject = "labelObject";


    // 创建 垂直线 对象, 参数(sub_window): 0代表在主图上创建对象, 1代表在附图上创建对象
    ObjectCreate(vlineObject, OBJ_VLINE, 0, Time[2], Open[0]);

    // 创建 水平线 对象, 并获得所对应的价格和颜色
    ObjectCreate(hlineObject, OBJ_HLINE, 0, Time[1], Open[1]);
    ObjectSet(hlineObject, OBJPROP_COLOR, clrDarkViolet);
    ObjectSet(hlineObject, OBJPROP_WIDTH, 3);
    double hlinePrice = ObjectGet(hlineObject, OBJPROP_PRICE1);
    color colorValue = ObjectGet(hlineObject, OBJPROP_COLOR);
    Alert("hlinePrice: " + hlinePrice);
    Alert("colorValue: " + colorValue);

    // 创建 趋势线 对象
    ObjectCreate(trendObject, OBJ_TREND, 0, Time[9], Low[9], Time[0], Low[0]);
    ObjectSet(trendObject, OBJPROP_COLOR, clrWhite);
    // 后两个参数: (OBJPROP_RAY, false)代表从点(Time[9], Low[9])开始到点(Time[0], Low[0])的一条线段, (OBJPROP_RAY, true)代表从点(Time[9], Low[9])开始穿过点(Time[0], Low[0])的一条射线
    ObjectSet(trendObject, OBJPROP_RAY, false);
    double trendObjectPrice = ObjectGetValueByShift(trendObject, 0);
    Alert("0号k线上趋势线的值: " + trendObjectPrice);

    // 创建 固定角度的趋势线 对象
    ObjectCreate(trendbyangleObject, OBJ_TRENDBYANGLE, 0, Time[10], Open[10], Time[0], Low[0]);
    ObjectSet(trendbyangleObject, OBJPROP_ANGLE, 30);
    ObjectSet(trendbyangleObject, OBJPROP_COLOR, clrYellow);
    ObjectSet(trendbyangleObject, OBJPROP_RAY, false);
    int angle = ObjectGet(trendbyangleObject, OBJPROP_ANGLE);
    Alert("angle: " + angle);

    // 创建 斐波那契 对象
    ObjectCreate(fiboObject, OBJ_FIBO, 0, Time[9], High[9], Time[0], Low[0]);


    // 创建 text 对象
    ObjectCreate(textObject, OBJ_TEXT, 0, Time[1], High[1]);
    ObjectSetText(textObject, "谢谢", 10, "宋体", Yellow);

    // 创建 label 对象
    ObjectCreate(labelObject, OBJ_LABEL, 0, 10, 10);
    ObjectSet(labelObject, OBJPROP_XDISTANCE, 150);
    ObjectSet(labelObject, OBJPROP_YDISTANCE, 15);
    ObjectSet(labelObject, OBJPROP_CORNER, CORNER_LEFT_UPPER);
    ObjectSetText(labelObject, "你好", 10, "宋体", Yellow);


    delectAllObjects(); // 功能等同于:ObjectsDeleteAll();
}




void delectAllObjects() {

    int total = ObjectsTotal();
    for(int i = total; i>=0; i--) {
      string objectName=ObjectName(i);
      Print(IntegerToString(i) + " |" + objectName);
      ObjectDelete(objectName);
    }

    return;
}
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-12 10:39 , Processed in 0.102870 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表