MQL5如何移除或缩小趋势线的端点圆点?
嘿,这个问题我之前也碰到过!那些端点圆点其实是MQL5趋势线对象的选择控制点,默认会显示出来方便你拖拽调整,但确实有时候会干扰看盘。给你两种实用的解决办法:
解决MQL5趋势线端点圆点干扰的方法
方法一:完全移除端点圆点(不可再选中趋势线)
如果不需要手动调整这条趋势线,直接把它设置为不可选择,圆点就会彻底消失。在你创建趋势线的代码执行成功后,添加这行设置:
// 禁用趋势线的可选择属性,移除端点圆点 ObjectSetInteger(chart_ID, name, OBJPROP_SELECTABLE, false);
方法二:缩小端点圆点(保留可编辑性)
如果还需要能选中、调整趋势线,只是想让圆点变小不干扰,那就调整控制点的大小:
// 将端点圆点大小设为1(默认值一般是3,数值越小圆点越小) ObjectSetInteger(chart_ID, name, OBJPROP_CORNER_SIZE, 1);
你可以根据自己的需求调整数值,比如设为0的话几乎看不到,但可能会影响点击选中的体验,建议根据实际情况微调。
整合到你的函数示例
把这些设置加到你的TrendCreate函数里,完整代码大概是这样:
bool TrendCreate(const long chart_ID=0, // chart's ID const string name="TrendLine", // line name const int sub_window=0, // subwindow index datetime time1=0, // first point time double price1=0, // first point price datetime time2=0, // second point time double price2=0, // second point price const color clr=clrRed, // line color const ENUM_LINE_STYLE style=STYLE_SOLID) { // 创建趋势线对象 if(!ObjectCreate(chart_ID, name, OBJ_TREND, sub_window, time1, price1, time2, price2)) { Print("创建趋势线失败,错误码:", GetLastError()); return false; } // 设置趋势线基础样式 ObjectSetInteger(chart_ID, name, OBJPROP_COLOR, clr); ObjectSetInteger(chart_ID, name, OBJPROP_STYLE, style); // 二选一:移除圆点 或 缩小圆点 // 方案1:移除端点圆点(不可选中) ObjectSetInteger(chart_ID, name, OBJPROP_SELECTABLE, false); // 方案2:缩小端点圆点(保留可选中) // ObjectSetInteger(chart_ID, name, OBJPROP_CORNER_SIZE, 1); return true; }
内容的提问来源于stack exchange,提问作者Jaffer Wilson




