如何在 mq5 中使用带有输入的枚举?

Ho to use enum with input in mq5?

我创建了枚举:

#property script_show_inputs

enum MYENUM
{
    first,
    second
};

input MYENUM response;

int OnInit()
{
    if (response == first)
    {
        printf("first");
    }

    if (response == second)
    {
        printf("second");
    }
}

它看起来在初始化之前有效,您可以单击下拉菜单并选择值。但是当 OnInit() 启动时,无论选择哪个,它总是默认 "first" 值。

如何将枚举与输入一起使用?

这是MQL4/5有点自省的地方。 input 的变量名称(在输入 window 中)将被其声明后的单行注释替换,枚举字段也是如此。

#property script_show_inputs

enum MYENUM
{
    first, //First choice
    second //Second choice
};

input MYENUM response = first; //Which choice?

int OnInit()
{
    if (response == first)
        printf("first");
    else if (response == second)
        printf("second");
}

输入 window 将读取 Which choice? | First choice 而不是 response | first