API-менеджер торговой платформы MT4 — получи ценные бумаги на группу

Я использую API-менеджер для торговой платформы MetaTrader 4

мне нужно получить ВСЕ ЦЕННЫЕ БУМАГИ в GROUP

например
GROUP = предварительный | SECUTIRY_0 = Форекс | SECUTIRY_1 = CFD | SECUTIRY_2 = |

У меня есть несколько советов, как это сделать ниже:

    1. После запроса конфигурации ценных бумаг с использованием CfgRequestSymbolGroup (конфигурации ConSymbolGroup) вы получили все ценные бумаги. *
    1. Таким образом, у вас есть ConSymbolGroup для каждой защиты, и теперь конфигурации [0] — это форекс, конфигурации [1] — это cfd, а конфигурации [2] — это, например, металлы. *
    1. Затем запросите конфигурацию группы, используя CfgRequestGroup (int итого) вы получите структуру ConGroup для каждой группы.
    1. В ConGroup есть параметр [MAX_SEC_GROUPS] для секций ConGroupSec — настройки группы безопасности. *
    1. Индексы будут такими же, поэтому secgroups [0] — это настройки форекс для этой группы, secgroups [1] — это cfd и т. Д. *

мой код ниже, но не могу получить желаемый результат, в коде ниже я получаю список с ЦЕННЫМИ БУМАГАМИ И СПИСОК С ГРУППАМИ, но не могу получить индексы, основанные на описании выше, чтобы получить результат в этом формате

GROUP = предварительный | SECUTIRY_0 = Форекс | 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);

}

1

Решение

Вот фрагмент кода, который даст вам необходимые данные, чтобы вы могли выводить их по мере необходимости:

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;
}
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]