Клиентский API > описание API для С++

Разработка с использованием клиентского API
GVP
Сообщения: 9
Зарегистрирован: 03 окт 2022, 17:52
Благодарил (а): 2 раза

Re: описание API для С++

Непрочитанное сообщение GVP » 24 окт 2022, 07:50

Спасибо.
Скорость не нужна. Подписку на котировки и чтение сделал, но есть сомнения по синхронизации потоков. По позициям и балансам есть локер. По котировкам не увидел средств синхронизации.

При заборе балансов, возникает исключение на нул по переменным по субаккаунту. Похоже, не провел инициализацию. Есть идеи что не так?

ensh
Сообщения: 229
Зарегистрирован: 28 июн 2017, 13:56
Благодарил (а): 4 раза
Поблагодарили: 41 раз

Re: описание API для С++

Непрочитанное сообщение ensh » 24 окт 2022, 09:46

Балансы, зло, расчитываются по позициям. Не нужны так то.
Наверно надо подписаться на субаккаунты, чтобы балансы могли считаться или что то доинициализировать там.

GVP
Сообщения: 9
Зарегистрирован: 03 окт 2022, 17:52
Благодарил (а): 2 раза

Re: описание API для С++

Непрочитанное сообщение GVP » 26 окт 2022, 07:43

Не могу прорваться через получение идентификатора инструмента по наименованию тикера. Примеры в основной ветке не получилось реализовать.
int idFI = Core.DataStorageShared.GetIdFI(vTicker, "МБ ЦК");
Прошерстил хелперы и менеджеры. В топку. Наверно, не хватает навыка разбора библиотек или структуры ПО.

Заранее благодарю.

ensh
Сообщения: 229
Зарегистрирован: 28 июн 2017, 13:56
Благодарил (а): 4 раза
Поблагодарили: 41 раз

Re: описание API для С++

Непрочитанное сообщение ensh » 27 окт 2022, 19:53

Там специальный механизм для этого))))
Грузится справочник интрументов, а потом инструменты миксируются с бордой.
Сам по себе тикер без борды (режима торгов) смысла не имеет.

ensh
Сообщения: 229
Зарегистрирован: 28 июн 2017, 13:56
Благодарил (а): 4 раза
Поблагодарили: 41 раз

Re: описание API для С++

Непрочитанное сообщение ensh » 28 окт 2022, 12:53

Получение инструментов
смотреть 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);

GVP
Сообщения: 9
Зарегистрирован: 03 окт 2022, 17:52
Благодарил (а): 2 раза

Re: описание API для С++

Непрочитанное сообщение GVP » 28 окт 2022, 14:39

Огромное спасибо. Постараюсь тоже быть полезным


Вернуться в «Клиентский API»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя