You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MQL4中绘制弧形进度图(半饼样式)

MQL4 双色弧形进度条实现方案

你要的半环形双色进度条可以直接通过MQL4内置的CCanvas类实现,无需依赖第三方组件,可直接集成到EA或自定义指标中,核心逻辑是通过绘制两个不同角度的扇形叠加,再用中心圆形掏空实现环形效果。

实现步骤

  • 引入官方Canvas库:#include <Canvas\Canvas.mqh>
  • 初始化Canvas对象,绑定到目标图表窗口,指定绘制区域的坐标与尺寸
  • 定义弧形基础参数:圆心坐标、外半径、环形宽度、总角度范围(半弧形一般为180度)、进度数值(0~1区间)
  • 先绘制完整长度的底色扇形(对应蓝色部分)
  • 再绘制对应进度比例的前景扇形(对应粉色部分),覆盖在底色上方
  • 绘制和背景色一致的小半径实心圆覆盖圆心区域,得到空心环形效果
  • 调用Update()方法刷新Canvas完成渲染

核心代码示例

#include <Canvas\Canvas.mqh>

CCanvas g_arcCanvas;

// 进度条绘制函数,progress取值范围0~1
void DrawArcBar(double progress, int posX, int posY, int outerRadius, int ringWidth = 15)
{
    // 清空绘制区域
    g_arcCanvas.FillRectangle(posX, posY, posX + outerRadius * 2, posY + outerRadius, 0x00000000);
    
    int centerX = posX + outerRadius;
    int centerY = posY + outerRadius;
    const double totalRad = M_PI; // 半弧形总弧度(180度)
    const double startRad = -M_PI / 2; // 起始角度为正上方
    
    // 绘制蓝色底色弧形
    g_arcCanvas.FillPie(centerX, centerY, outerRadius, startRad, startRad + totalRad, 0xC80078FF);
    // 绘制粉色进度弧形
    if(progress > 0 && progress <= 1)
    {
        double progressEndRad = startRad + totalRad * progress;
        g_arcCanvas.FillPie(centerX, centerY, outerRadius, startRad, progressEndRad, 0xC8FF50A0);
    }
    // 绘制中心透明圆实现空心效果,若图表有底色可替换为对应背景色ARGB值
    g_arcCanvas.FillCircle(centerX, centerY, outerRadius - ringWidth, 0x00000000);
    
    g_arcCanvas.Update();
}

int OnInit()
{
    // 创建Canvas对象,绑定主窗口,左上角坐标(10,10),绘制区域尺寸300*150
    if(!g_arcCanvas.Create(0, "ArcProgressBar", 0, 10, 10, 300, 150))
    {
        Print("Canvas初始化失败,错误码:", GetLastError());
        return INIT_FAILED;
    }
    // 示例:绘制75%进度的弧形条
    DrawArcBar(0.75, 0, 0, 150);
    return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
    // 释放Canvas资源
    g_arcCanvas.Destroy();
}

注意事项

  • 颜色使用ARGB格式定义,前两位为透明度,取值00~FF,数值越高越不透明,可根据需求自行调整
  • 若在指标中使用,将绘制逻辑放到OnCalculate函数中,将progress参数绑定为你要展示的指标数值归一化结果即可
  • 如果需要全圆形进度条,只需要把totalRad参数改为2 * M_PI,绘制区域高度调整为和宽度一致即可

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:36:04