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

Формирование значения поля "Торговый счет" при подаче заявки в квик через луа соединение
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:


< 1 2 3 4  > >>
Evgeny

Avatar
Date: 1/1/2017
Reply


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

Slepoy

Avatar
Date: 1/2/2017
Reply


Evgeny
Поэтому буду ждать какой-нибудь реакции разработчиков и исходя из их ответа делать выводы, как выходить из этой ситуации.
Создать свой портфель - да, это одно из возможных решений в случае, если окажется, что торговый счет может заполняться только из свойства Portfolio.Name.

А с чего ты взял что они вообще ответят? Если ты рылся по форуму, то наверняка встречал множество постов с вопросами, на которые вообще не было никакой реакции разработчиков. Большую часть вопросов - они просто игнорят. Ну как бы с тонким намёком "мол оплачивайте техподдержку там и ответим". Чем ты лучше тех ребят, кто так же пытался задавать вопросы? Ну оплатил курс и чего. Период техподдержки истёк и никто не обязан отвечать тебе сейчас. Так что ты можешь ждать ответ годами... столетиями.. тысячелетиями... ))) и в итоге ничего не дождёшься. Так что не стоит надеяться на их ответ. Надейся лишь на себя. Ну или надо было начинать сей пост с жёсткой провокации и наезда: мол вы лузеры, нихрена делать не умеете, нихрена не работает, за что я деньги заплатил, что это за страна такая, Сталина на вас не хватает ))). И всё это разбавить отборным матом ))). Тогда бы они в миг ответили ))). А так, они уже 3 день молчат и тебя игнорят. "С таким настроением ты слона не продашь" (с). Тут хитростью брать надо )))

Я ж говорю создай портфель сам. Там не так уж и много свойств у данного объекта. Все их можно заполнить вручную за 5 -10 минут. Но я думаю нужно всего одно, именно то которое ты и упомянул: Name. У меня демо-квик работает с ним одним. Если не заробит так, то заполнишь остальные свойства. Хотя можешь ничего не делать и ждать годами ответа от разработчиков ))). Успехов с ожиданием )))
Thanks:

Mikhail Sukhov

Avatar
Date: 1/2/2017
Reply


Напишите чуть подробнее о своей ошибке. Пока не совсем понятно, чем не подходит стандартное решение с передачей кода клиента в заявке.
Thanks:

Slepoy

Avatar
Date: 1/2/2017
Reply


Mikhail Sukhov
Напишите чуть подробнее о своей ошибке. Пока не совсем понятно, чем не подходит стандартное решение с передачей кода клиента в заявке.

Так у него реальный счёт-депо не приходит из Квика. А раз нет реального портфеля, то и заявки не отправляются. К нему приходят лишь коды клиента. Кстати, он не упомянул об верcии API. Лично у меня с API 4.3.15 - из демки приходило 2 портфеля, которые были равны кодам клиента. В API 4.3.19.5 - уже стало приходить 4 портфеля, в перемешку с кодами. Но это всё на новом, последнем Квике. В Открывашке - Квик старый и присылает ему одни коды, без реальных портфелей. Вот у него ничего и не работает. Квик он обновлять не хочет. Портфель создать вручную, как я понял, - тоже не спешит. Короче, ждёт чуда ))).
Thanks:

Slepoy

Avatar
Date: 1/2/2017
Reply


Evgeny
Не думаю, что текущая проблема из-за того, что Открытие каким-то образом изменила стандартную версию терминала.

Там старый Квик. Он тебе присылает не всю инфу, т.е. не все портфели. Обнови Квик и API, либо создавай портфель вручную.

Thanks:

Mikhail Sukhov

Avatar
Date: 1/2/2017
Reply


Slepoy
Mikhail Sukhov
Напишите чуть подробнее о своей ошибке. Пока не совсем понятно, чем не подходит стандартное решение с передачей кода клиента в заявке.

Так у него реальный счёт-депо не приходит из Квика. А раз нет реального портфеля, то и заявки не отправляются. К нему приходят лишь коды клиента. Кстати, он не упомянул об верcии API. Лично у меня с API 4.3.15 - из демки приходило 2 портфеля, которые были равны кодам клиента. В API 4.3.19.5 - уже стало приходить 4 портфеля, в перемешку с кодами. Но это всё на новом, последнем Квике. В Открывашке - Квик старый и присылает ему одни коды, без реальных портфелей. Вот у него ничего и не работает. Квик он обновлять не хочет. Портфель создать вручную, как я понял, - тоже не спешит. Короче, ждёт чуда ))).


Да версия АПИ важна.
Thanks:

Evgeny

Avatar
Date: 1/2/2017
Reply


Slepoy, кого какой хитростью брать, сколько мне ждать ответа и какого чуда я жду, позволь, пожалуйста, я решу без твоих советов. Спасибо за помощь и понимание.

Михаил,
версия API 4.3.19.5 (вернее даже чуть новее - коммит 858f2f95 от 18.12.2016). Версия квика 7.5.0.72. Насколько я понимаю, она ни такая уж старая, учитывая, что последняя - 7.6. Или правильная работа зависит от версии сервера квика?
Ситуация следующая: у меня у брокера Открытие открыто 2 договора. В квике эти договоры на спотовом рынке различаются кодом клиента. Торговый счет (счет депо) у них - один и не совпадает ни с одним из этих кодов клиента. Если нужно, могу прислать скриншот таблицы лимитов, где эта связь отражена.
В стокшарп при соединении автоматически создаются 2 экземпляра класса Portfolio. В свойство Portfolio.Name переданы именно коды клиента. Номер торгового счета при этом вообще нигде не фигурирует.
В результате при попытке отправить заявку в торговый счет передается значение из свойства Portfolio.Name, где лежит код клиента, а не торговый счет. Это справедливо приводит к ошибке, что торговый счет не найден.
В связи с описанным у меня появилось несколько вопросов:
1. Поддерживает ли стокшарп ситуацию, при которой на один торговый счет используется несколько кодов клиента?
2. Портфели стокшарпа должны создаваться на каждый код клиента или на каждый торговый счет? То есть у меня сейчас создание портфелей в разрезе именно кодов клиента соответствует архитектуре стокшарпа? Или именно такое создание портфелей является ошибкой?
3. При автоматическом создании заявки непосредственно в квике, что передается в параметр t["ACCOUNT"] (то есть торговый счет)? Туда просто передается значение OrderRegisterMessage.PortfolioName или алгоритм формирования значения t["ACCOUNT"] более сложный? (Я это спрашиваю потому, что после формирования OrderRegisterMessage в Connector.OnRegisterOrder сейчас есть возможность записать в ExtensionInfo некое значение с ключом PositionChangeTypes.DepoName. Я пробовал записать в него номер торгового счета, но от этого ничего не изменилось.)

И еще Михаил, чтобы не было недопонимания как с Slepoy, у меня нет проблемы придумать обходной путь, чтобы решить проблему в случае, если Стокшарп изначально не поддерживает эту ситуацию. Но я хочу разобраться, как это должно работать с точки зрения архитектуры Стокшарпа.
Thanks:

Mikhail Sukhov

Avatar
Date: 1/2/2017
Reply


Код клиента и портфель указываются в заявке. Это подход Стокшарпа (не уверен, что понимаю что вы подразумеваете под словом "архитектура" в данном контексте).

Вы смотрели лог луа на наличие ошибок?
Thanks:

Evgeny

Avatar
Date: 1/2/2017
Reply


С передачей кода клиента все понятно. С ним никаких вопросов нет.
Свойство Portfolio.Name передается в свойство Account заявки, которая формируется в Quik с помощью луа. Я правильно понимаю? Никакого дополнительного возможного источника формирования значения свойства Account (или, например, алгоритма, который по данным квика должен на основе кода клиента подменить его на торговый счет) нет? Для чего в OrderRegisterMessage.ExtensionInfo записывается значение с ключом PositionChangeTypes.DepoName?
Лог луа я смотрел. Именно в нем я вижу, что в поле t["ACCOUNT"] формируемой в квике заявки попадает не торговый счет, а код клиента. Именно от сюда и появляются те вопросы, которые я написал в предыдущем посте. Никаких ошибок в логе луа нет.
Thanks:

Mikhail Sukhov

Avatar
Date: 1/3/2017
Reply


Да, пришлите в личку лог луа под дебагом (нужно включить в скрипте). Пока сложно понять, что не так у вас.
Thanks:
< 1 2 3 4  > >>

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

loading
clippy