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

Формирование значения поля "Торговый счет" при подаче заявки в квик через луа соединение
Atom
30.12.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 соединения и содержат рекомендации с настройками таблиц квика, либо выставлением/снятием заявки. В моем случае ни то, ни другое не помогло, хотя до конца и непонятно, имеют эти решения отношение к луа соединению или нет.



Спасибо:


<< < 2 3 4 5  >
Evgeny

Фотография
Дата: 26.01.2017
Ответить


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

Mikhail Sukhov

Фотография
Дата: 26.01.2017
Ответить


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

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

Evgeny

Фотография
Дата: 27.01.2017
Ответить


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

Mikhail Sukhov

Фотография
Дата: 27.01.2017
Ответить


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

Evgeny

Фотография
Дата: 27.01.2017
Ответить


Код

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


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

Mikhail Sukhov

Фотография
Дата: 30.01.2017
Ответить


Evgeny
Код

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



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

Evgeny

Фотография
Дата: 31.01.2017
Ответить


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

Support

Фотография
Дата: 31.01.2017
Ответить


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

Mikhail Sukhov

Фотография
Дата: 31.01.2017
Ответить


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


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

Evgeny

Фотография
Дата: 01.02.2017
Ответить


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

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy