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


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


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



Спасибо:




47 Ответов
< 1 2 
Evgeny

Фотография
Курсы
Дата: 17.01.2017
Ответить


Slepoy, ваши последние чрезвычайно информативные комментарии никоим образом не способствуют решению проблемы.
Не думаю, что кому-то на форуме интересны ваши религиозные предпочтения.
Автор топика
Спасибо:

Slepoy

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


Evgeny Перейти
Slepoy, ваши последние чрезвычайно информативные комментарии никоим образом не способствуют решению проблемы.
Не думаю, что кому-то на форуме интересны ваши религиозные предпочтения.

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

Evgeny Перейти
...никоим образом не способствуют решению проблемы.

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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 17.01.2017
Ответить


Сегодня день горячих обсуждений. Все немного на повышенных тонах.

Помните - серые клетки не восстанавливаются, а в интернете всегда кто-то будет неправ.
Спасибо:

Evgeny

Фотография
Курсы
Дата: 19.01.2017
Ответить


Михаил, у вас не получилось посмотреть описанные проблемы?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.01.2017
Ответить


Несколько потерял нить разговора. Изначально вопрос был как отправлять заявку с кодом клиента. Я дал ответ. Как получить все коды и портфели вроде бы тоже ясно. В чем сейчас вопрос состоит?
Спасибо:

Evgeny

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


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.01.2017
Ответить


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

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

Evgeny

Фотография
Курсы
Дата: 26.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

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


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

Evgeny

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


Михаил, прочитайте, пожалуйста, мое пояснение под эти кодом. Все костыли и проблемы приведены в этом пояснении.
Автор топика
Спасибо:

Support

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


Если у Вас нет субсчетов, то код клиента в заявке можно не использовать...
Спасибо:

Evgeny

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


Если бы его можно было не использовать, я бы его не использовал и ничего бы у вас не спрашивал.
В данном случае без указания кода клиента заявка не выставляется даже напрямую в квике.
По поводу субсчетов - возможно технически эти два договора и оформлены в виде субсчетов, но я специально их создания не запрашивал.
Автор топика
Спасибо: Mikhail Sukhov

Slepoy

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


Mikhail Sukhov Перейти
Если вопрос не в этом, то давайте дальше расследовать причину.

А нечего тут расследовать. У него всё работает, заявки нормально отправляются. Просто ему не нравится, что некоторые портфели некорректно заполнены, а некоторые вообще пусты. Вот он и парит всем мозги. Ему надо, чтобы вы корректно заполнили портфели инфой: остаток бабла и т.п.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 01.02.2017
Ответить


Evgeny Перейти
Михаил, прочитайте, пожалуйста, мое пояснение под эти кодом. Все костыли и проблемы приведены в этом пояснении.


PositionManager расчитывает позу самостоятельно, без привязки в какому либо счету. Начало идет от нуля. И по мере торговли стратегии позиция изменяется. Это сделано для того, чтобы несколько стратегий могли торговать на 1 счету без конфликта друг с другом.

Я не понимаю о каких костылях идет речь.
Спасибо:

Replikant

Фотография
Курсы
Дата: 21.12.2018
Ответить


Блин, а я так надеялся, читая ветку, что в итоге будет элегантное решение)). Тоже Квик, Тоже Открытие, пробую через не модифицированный свежий Shell. Если в настройки стратегии вбиваю код клиента ругается что нет такого счета, если вбиваю счет - ругается что не указан код клиента. Я так понимаю, нет решения без того чтобы хардкодить нужные поля?
Спасибо:

Replikant

Фотография
Курсы
Дата: 21.12.2018
Ответить


В общем надо будет как-то добавить поле для ввода и кода клиента и портфеля или типа того. Ну ладно, на срочном рынке, действительно, у Открытия нет этой проблемы, там у меня все получилось. Если есть простое элегантное решение для описанного контекста (секция фондовый рынок - Открытие - Shell) - буду благодарен, если нет - думаю, сам что-нибудь придумаю.
Спасибо:
< 1 2 

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

loading
clippy