finsight / QUIKSharp

QUIK# (QUIK Sharp) is the QUIK Lua interface ported to .NET.
Other
230 stars 134 forks source link

Проблема с ИИС Сбербанка #305

Closed infouss05 closed 3 years ago

infouss05 commented 3 years ago

Здравствуйте. В первую очередь хочется поблагодарить за проделанную работу по написанию данного коннектора. А во вторых обратиться за помощью. Есть стандартная функция создания заявки в с# посредством библиотеки QUIKSharp. long transactionID = (await _quik.Orders.SendMarketOrder(tool.ClassCode, tool.SecurityCode, tool.AccountID, ByOrSell, Lot).ConfigureAwait(false)).TransID Проверено через брокера ВТБ и БКС. Все отлично работает. У меня проблема с созданием алгоритмической заявки на ИИС Сбербанка. Есть брокерский счет открытый в сбербанке и привязанный к нему счет ИИС. При создании заявки через брокерский счет указываю торговый счет "L01-00000F00" либо tool.AccountID операция проходит без проблем. С операцией через ИИС не понятно что указывать. Использовал разные комбинации:

  1. "L01-00000F00/123456" - покупает с брокерского счета.
  2. "123456" - ошибка неверный торговый код. (123456 - счет ИИС) Подскажите пожалуйста кто сталкивался и какой код на использовать для создания заявки через ИИС Сбербанка? Где указать код клиента при создании заявки? Дополнительно сообщаю, что при работе через Quik, при создании заявки надо выбирать торговый код (он всего один "L01-00000F00") и отдельно код клиента (если ИИС то их 2).
Pr0phet1c commented 3 years ago

Можете сделать скриншот правильно заполненной заявки (диалогового окна ее заполнения) в терминале QUIK для покупки какой-либо бумаги на счет ИИС?

infouss05 commented 3 years ago

image image Сам брокерский счет 400SJYJ, а ИИС S00SJYJ

infouss05 commented 3 years ago

image image Еще пару скринов для понимания количества торговых счетов и кодов клиента.

Pr0phet1c commented 3 years ago

Никогда не работал в квике с таким большим количеством кодов клиента. К сожалению, на текущий момент у меня есть для Вас только один вариант решения: Вам придется реализовать собственную функцию формирования заявки. Для начала, посмотрите как реализованы функции формирования заявок, и когда дойдете до метода "SendOrder", модифицируйте его таким образом, чтобы в экземпляр класса "Transaction", кроме текущих передавался параметр "CLIENT_CODE". Ну и протяните его передачу по цепочке вверх. Если будет время и возможность - я попробую модифицировать существующие функции, но не факт, что получится сделать оперативно.

Pr0phet1c commented 3 years ago

Еще один вариант: Можете попробовать реализовать отправку заявки через метод "CreateOrder".

Pr0phet1c commented 3 years ago

Удалось реализовать функционал оперативно. Как формировать заявку можно посмотреть в демо-приложении. Обновляйтесь и пользуйтесь. Дайте обратную связь после проверки, я тестировал на брокере с одним доступным кодом клиента.

infouss05 commented 3 years ago

Обновляться через nuget? Там версия до сих пор 2.0.0 Обратил внимание Вы добавили в параметры clientcode.

Pr0phet1c commented 3 years ago

Нет, скачайте свежие исходники. nuget пока не обновлял.

infouss05 commented 3 years ago

image Выдает ошибку. image

infouss05 commented 3 years ago

image

infouss05 commented 3 years ago

image

infouss05 commented 3 years ago

Извиняюсь. Затупил. Не поменял компонент луа в Quik. Поэтому и выдавало ошибку. Загружаются коды клиента корректно. Заявки по счету ИИС тоже выставляются. Огромное спасибо за доработку.

infouss05 commented 3 years ago

Еще вопрос. Не планируете обновить библиотеку в nuget? Мой проект написан в MS2015 через присоединение пакета QUIKSharp в виде длл.