Формирование значения поля "Торговый счет" при подаче заявки в квик через луа соединение

Формирование значения поля "Торговый счет" при подаче заявки в квик через луа соединение
Atom
12/30/2016
Evgeny


Подскажите, пожалуйста, каким образом при формировании заявки в квик через луа соединение должно формироваться значение поля "Торговый счет"?
Я правильно понимаю, что оно берется из свойства OrderRegisterMessage.PortfolioName, которое где-то в недрах закрытой библиотеки StockSharp.QuikLua.dll непосредственно при формировании заявки уже в квике передается в параметр t["ACCOUNT"] ? Или алгоритм формирования значения t["ACCOUNT"] более сложный?
Я столкнулся с тем, что у меня в значение Portfolio.Name записывается не торговый счет, а код клиента. Это соответственно при выставлении заявки приводит к появлению ошибки "Указанный счет депо не найден".
Конфигурация квика открыта из файла info_lua.wnd (из примеров на GitHub). При выставлении заявки через стандартный пример SampleQuik - получается тот же результат (то есть ошибка).
Дополнительно пытался заполнить OrderRegisterMessage.ExtensionInfo[PositionChangeTypes.DepoName], но это значение в результате никуда не передалось.

В результате я сейчас не понимаю, то ли у меня некорректно в Portfolio.Name записывается код клиента (а должен торговый счет, хотя в этом случае было бы непонятно, как разделять портфели с разными кодами клиента, но одним торговым счетом), то ли у меня некорректно этот Portfolio.Name преобразуется в значение t["ACCOUNT"] (сейчас он просто туда передается, но возможно должен как-то автоматически определяться по коду клиента, переданному через OrderRegisterMessage.PortfolioName)?

Я искал по форуму похожие проблемы, но в основном все обсуждения касаются DDE соединения и содержат рекомендации с настройками таблиц квика, либо выставлением/снятием заявки. В моем случае ни то, ни другое не помогло, хотя до конца и непонятно, имеют эти решения отношение к луа соединению или нет.



Thanks:


<< < 2 3 4 5  >
Evgeny

Avatar
Date: 1/26/2017
Reply


Михаил, давайте начнем с малого. Пожалуйста, ответьте на 2 вопроса:
1. Сколько должно быть создано портфелей, если в квике используются 2 кода клиента, но только один торговый счет?
2. Что должно попасть в свойство Portfolio.Name этих созданных портфелей?
Thanks:

Mikhail Sukhov

Avatar
Date: 1/26/2017
Reply


В Квике все достаточно сложно. Там нет четкого понятия счет и с данными, ассоциированными со счетом. Поэтому транслируется все, что можно. Приводит это к тому, что приводит.

Честно говоря, не очень понимаю смысла в этой переписке. Вроде проблема то решилась.
Thanks:

Evgeny

Avatar
Date: 1/27/2017
Reply


Михаил, никакая проблема не решилась. То, что заявку можно выставить наделав кучу костылей не значит, что проблема решена.
Я же не просто так задаю эти вопросы. Эти нерешенные проблемы не позволяют реализовывать конкретные задачи.
Например, каким образом я в стратегии могу использовать данные о том, сколько денег у меня на счёте? Причём учитывая то, что нужны эти данные и ведутся в квике они как раз в разрезе кода клиента.
Thanks:

Mikhail Sukhov

Avatar
Date: 1/27/2017
Reply


Приведите код как вы регистрируете заявку.
Thanks:

Evgeny

Avatar
Date: 1/27/2017
Reply


Code

var order = this.CreateOrder(Sides.Sell, 100, 1);
order.ClientCode = "111111";
RegisterOrder(order);


Для того, чтобы это сработало, свойство Strategy.Portfolio приходится заполнять портфелем, у которого свойство Name равно торговому счету, что на мой взгляд - неправильно, т.к. реальное разделение лимитов на ФР в квике происходит по коду клиента. Плюс в PositionManager позиции оказываются привязанными к портфелю с названием, соответствующим торговому счету, что приводит к тому, что невозможно понять по какому коду клиента открыта эта позиция.
Но все это пол беды. Самая большая проблема, что ни по портфелю, созданному по торговому счету, ни по портфелю, созданному на основе кода клиента не приходят текущие остатки денежных средств.
Thanks:

Mikhail Sukhov

Avatar
Date: 1/30/2017
Reply


Evgeny
Code

var order = this.CreateOrder(Sides.Sell, 100, 1);
order.ClientCode = "111111";
RegisterOrder(order);



Это правильный код регистрации заявки.
Thanks:

Evgeny

Avatar
Date: 1/31/2017
Reply


Михаил, как понимание того, что этот код правильный, приближает к решению описанных мною проблем?
Thanks:

Support

Avatar
Date: 1/31/2017
Reply


Евгений,
1. Какой у Вас брокер?
2. Есть у Вас субсчета?
3. Почему Вы считаете, что квик используется два кода клиента? (обычно код клиента - это номер Вашего договора)
Thanks:

Mikhail Sukhov

Avatar
Date: 1/31/2017
Reply


Evgeny
Михаил, как понимание того, что этот код правильный, приближает к решению описанных мною проблем?


Вы написали, что вас смущает код регистрации заявки из-за костылей. Я ответил вам, что код вполне нормальный и правильно написан. Костылей не увидел. Если вопрос не в этом, то давайте дальше расследовать причину.
Thanks:

Evgeny

Avatar
Date: 2/1/2017
Reply


Support,
1. Брокер - Открытие.
2. Субсчетов у меня на данный момент нет, но в будущем я планирую их также использовать.
3. Потому что я в квике вижу, что кодов клиента два. Могу прислать скриншот. Их два как раз из-за того, что договора с брокером - два. Один - на брокерское обслуживание, второй - на ИИС. А торговый счет при этом - один. Лимиты ведутся естественно раздельно.
Thanks:
<< < 2 3 4 5  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy