MT4/MT5如何从倒数第50根K线到倒数第2根K线绘制直线?
解决方案:绘制指定区间的水平线段
- 问题根源:你使用的
OBJ_HLINE是无限延伸的水平线对象,这类对象本身会忽略时间范围参数,贯穿整个图表,所以无论怎么传递时间参数都无法限制它的显示范围。 - 正确做法:改用
OBJ_SEGMENT(线段对象),它支持自定义起始和结束的时间、价格坐标,能精准控制线段的显示区间。
示例代码
// 先删除已存在的同名线段,避免重复创建报错 if(ObjectFind(0, "fixed_hline") != -1) ObjectDelete(0, "fixed_hline"); // 创建线段:从倒数第50根K线到倒数第2根K线,价格固定为2100 bool createSuccess = ObjectCreate(0, "fixed_hline", OBJ_SEGMENT, 0, Time[50], 2100, Time[1], 2100); // 可选:设置线段样式(颜色、宽度等) if(createSuccess) { ObjectSetInteger(0, "fixed_hline", OBJPROP_COLOR, clrDeepSkyBlue); ObjectSetInteger(0, "fixed_hline", OBJPROP_WIDTH, 2); }
关键说明
OBJ_SEGMENT是专门用于绘制两点间线段的对象,完全支持时间和价格的范围限制,刚好匹配你的需求。Time[50]对应倒数第50根K线的开盘时间,Time[1]对应倒数第2根K线的开盘时间(注意:Time[0]是当前未闭合的最新K线)。- 提前检查并删除同名对象是必要操作,避免因重复创建导致运行错误。
内容的提问来源于stack exchange,提问作者coure2011
相关产品推荐
相关产品推荐

