Страница 2 из 2
Re: описание API для С++
Добавлено: 24 окт 2022, 07:50
GVP
Спасибо.
Скорость не нужна. Подписку на котировки и чтение сделал, но есть сомнения по синхронизации потоков. По позициям и балансам есть локер. По котировкам не увидел средств синхронизации.
При заборе балансов, возникает исключение на нул по переменным по субаккаунту. Похоже, не провел инициализацию. Есть идеи что не так?
Re: описание API для С++
Добавлено: 24 окт 2022, 09:46
ensh
Балансы, зло, расчитываются по позициям. Не нужны так то.
Наверно надо подписаться на субаккаунты, чтобы балансы могли считаться или что то доинициализировать там.
Re: описание API для С++
Добавлено: 26 окт 2022, 07:43
GVP
Не могу прорваться через получение идентификатора инструмента по наименованию тикера. Примеры в основной ветке не получилось реализовать.
int idFI = Core.DataStorageShared.GetIdFI(vTicker, "МБ ЦК");
Прошерстил хелперы и менеджеры. В топку. Наверно, не хватает навыка разбора библиотек или структуры ПО.
Заранее благодарю.
Re: описание API для С++
Добавлено: 27 окт 2022, 19:53
ensh
Там специальный механизм для этого))))
Грузится справочник интрументов, а потом инструменты миксируются с бордой.
Сам по себе тикер без борды (режима торгов) смысла не имеет.
Re: описание API для С++
Добавлено: 28 окт 2022, 12:53
ensh
Получение инструментов
смотреть InstrumentsTabControl
суть - создаем запрос с типом инструмента (акции, облиг, валюта, фьючи, опционы) и пустым или заполненым списком тикеров,
запускаем запрос и перехватываем ответ от фронтенда по типу ответа, и там список того, что запросили
Код: Выделить всё
FrontEndConnection frontEndConnection;
if (!ConnectionManager.Instance.FrontEnds.TryGetValue(FrontEndType.BirzArchAndMediaServer, out frontEndConnection))
{
return;
}
if (frontEndConnection.Status != ConnectionStatus.Authorized)
{
return;
}
_topVolumeInstrumetsRequest.RequestId = key.GetHashCode();
_topVolumeInstrumetsRequest.ObjectGroup = objectGroup;
_topVolumeInstrumetsRequest.NamePattern = search;
frontEndConnection.NewPacket += (type, packet, time, newPacket) =>
{
Packer.UnpackEntityList<IADSerializable>(e =>
{
var topVolumeInstrumetsResponse = e as TopVolumeInstrumetsResponseEntity;
if (topVolumeInstrumetsResponse == null)
{
return true;
}
LastSearchList = _cacheTopInstruments.AddOrUpdate(topVolumeInstrumetsResponse.RequestId, topVolumeInstrumetsResponse.Instruments,
(i, ints) => topVolumeInstrumetsResponse.Instruments);
return true;
}, packet);
};
frontEndConnection.SendPacketToFrontEnd(_topVolumeInstrumetsRequest);
Re: описание API для С++
Добавлено: 28 окт 2022, 14:39
GVP
Огромное спасибо. Постараюсь тоже быть полезным