You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动