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

如何在MQL5编写的EA中默认设置不同颜色的EMA?

在MQL5中为两个EMA设置不同默认颜色的方法

要让两个EMA默认显示不同颜色,核心是利用MQL5的IndicatorSetInteger()函数修改指标的显示属性,同时可以添加输入参数让颜色支持自定义(默认值设为不同颜色即可)。以下是具体修改方案:

修改后的完整代码

struct EMA_STRUCT
{
    double            ema[];
    int               handle;
};

// 添加颜色输入参数,设置不同默认值
input int ema1_period = 10; // EMA1周期(短周期)
input color ema1_color = clrBlue; // EMA1默认颜色:蓝色
input int ema2_period = 25; // EMA2周期
input color ema2_color = clrOrange; // EMA2默认颜色:橙色

EMA_STRUCT ema_struct[]; // 补充全局变量声明,原代码中可能遗漏

int OnInit()
{
    if(ema1_period != 0)
    {
        ArrayResize(ema_struct, ArraySize(ema_struct)+1);
        int idx = ArraySize(ema_struct)-1;
        ema_struct[idx].handle = iMA(_Symbol, PERIOD_CURRENT, ema1_period, 0, MODE_EMA, PRICE_CLOSE);
        // 设置EMA1的颜色
        IndicatorSetInteger(ema_struct[idx].handle, INDICATOR_COLOR, 0, ema1_color);
        ChartIndicatorAdd(0, 0, ema_struct[idx].handle);
        ArraySetAsSeries(ema_struct[idx].ema, true);
    }
    if(ema2_period != 0)
    {
        ArrayResize(ema_struct, ArraySize(ema_struct)+1);
        int idx = ArraySize(ema_struct)-1;
        ema_struct[idx].handle = iMA(_Symbol, PERIOD_CURRENT, ema2_period, 0, MODE_EMA, PRICE_CLOSE);
        // 设置EMA2的颜色
        IndicatorSetInteger(ema_struct[idx].handle, INDICATOR_COLOR, 0, ema2_color);
        ChartIndicatorAdd(0, 0, ema_struct[idx].handle);
        ArraySetAsSeries(ema_struct[idx].ema, true);
    }
    panel_creator();
    panel_updater();
//---
    return(INIT_SUCCEEDED);
}

关键改动说明

  • 新增颜色输入参数:添加ema1_color和ema2_color两个输入项,分别设置默认值为clrBlue和clrOrange,你也可以替换成MQL5支持的其他颜色常量(比如clrGreen、clrPurple等)。
  • 调用IndicatorSetInteger设置颜色:在创建每个EMA的句柄后,调用该函数指定指标的线颜色。其中INDICATOR_COLOR是属性标识,第三个参数0表示指标的第一条线(EMA只有一条线,固定为0),最后一个参数是目标颜色值。
  • 简化索引获取:用变量idx存储数组索引,避免重复调用ArraySize(ema_struct)-1,让代码更简洁易读。

修改完成后,EA加载时两个EMA会默认显示不同颜色,用户也可以在EA设置界面手动调整颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:05:12