c++ - MT4 交易平台 API 管理器 - 按组获取证券

标签 c++ mt4

我正在使用 MetaTrader 4 交易平台的 API 管理器

我需要为每个 GROUP 获取ALL SECURITIES

例如 GROUP=preliminary|SECUTIRY_0=Forex|SECUTIRY_1=CFD|SECUTIRY_2=|

我在下面有一些技巧:

    1. 在使用 CfgRequestSymbolGroup(ConSymbolGroup 配置)请求证券配置后,您获得了所有证券。*
    1. 因此,您为每种证券获得了 ConSymbolGroup,现在配置 [0] 是外汇,配置 [1] 是 cfd,配置 [2] 是金属。*
    1. 然后使用 CfgRequestGroup(int total) 请求组配置,您将获得每个组的 ConGroup 结构。
    1. ConGroup 有 ConGroupSec secgroups[MAX_SEC_GROUPS] 参数 - 安全组设置。*
    1. 索引将相同,因此 secgroups[0] 是该组的外汇设置,secgroups[1] 是 cfd 等等。*

我的代码在下面,但无法获得所需的结果,在下面的代码中,我获得了包含证券的列表和包含组的列表,但无法根据上面的描述获取索引以获取这种格式的结果

GROUP=preliminary|SECUTIRY_0=Forex|SECUTIRY_1=CFD|SECUTIRY_2=|

    // 1 step
    // request all securities
    // list with securities
    ConSymbolGroup securities[MAX_SEC_GROUP];

    int result = ExtManager->CfgRequestSymbolGroup(securities);

    // 2 step
    // request all groups
    // list with groups

    ConGroup *groups = ExtManager->CfgRequestGroup(&total);
    ConGroupSec secgroups[MAX_SEC_GROUPS];

    int index_secgroup = 0;
    int index_security = 0;


    for (int i = 0; i < MAX_SEC_GROUP; i++)     
        for (int i =0; i < total; i++)              
            ExtProcessor.PrintResponse(size,                    
                "GROUP=%s|"
                "SECUTIRY_0=%s|"    
                "SECUTIRY_1=%s|"
                "SECUTIRY_2=%s|\r\n",
                groups[i].group,
                securities[0].name,
                securities[1].name,
                securities[2].name);

}

最佳答案

这是一个代码片段,它会为您提供所需的数据,因此您可以根据需要输出它:

ConSymbolGroup sgconfigurations[MAX_SEC_GROUP];
_manager->Manager->CfgRequestSymbolGroup(sgconfigurations);

int total = 0;
ConGroup* result = _manager->Manager->CfgRequestGroup(&total);

for (int i = 0; i < total; i++)
{
    for (int j = 0; j < MAX_SEC_GROUP; j++) {
        if (result[i].secgroups[j].show == 1 && sgconfigurations[j].name != NULL && sgconfigurations[j].name[0] != '\0') {
            char* groupName = result[i].group;
            char* securityName = sgconfigurations[j].name;
        }
    }
}

关于c++ - MT4 交易平台 API 管理器 - 按组获取证券,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910893/

相关文章:

c++ - 在windows下用mingw编译c libusbmuxd编译

algorithmic-trading - MQL4 中的异常处理

c++ - 如何创建一个 DLL,它接受来自 MT4 的字符串并返回字符串类型?

mql4 - 我如何计算冒账户余额 X% 风险的手数

c++ - 如何解决两个不使用命名空间的第三方库之间的类名冲突?

c++ - 在 C 或 C++ 中使用 GNU 正则表达式函数

MySQL插入错误1064

c++ - 使用 GLUT/FreeGLUT 创建核心上下文?

c++ - 从 cin 中只读取一个字符