← 返回

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

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

登录创建账户, 登录或注册以发表评论

Slepoy
Slepoy

А ты уверен, что код клиента нужно передавать? Стандартный пример SampleQuik - работает нормально. То есть, заявки через SampleQuik отправляются без кода клиента. Просто указываешь депошку, код клиента вообще не трогаешь т.е. оставляешь это поле на форме отправки заявки - пустым, и заявки проходят на ура. Плюс почитай по этому поводу тут: http://stocksharp.ru/forum/7012/apdeit-bota-s-api-4315-na-api-43195-problemy-resheniya/ А ещё лучше задай вопрос АРКЕ на их форуме. Я вообще не понимаю зачем нужен код клиента, пусть внесут ясность. Либо надо нырять в регламент биржи и смотреть спецификации заявки на фонде, на память я не помню фигурирует ли там вообще код клиента. Если в официальных документах биржи его нет, то это какие-то внутренние хотелки АРКИ. Зачем нужен этот код - для меня загадка, т.к. у нас на каждый рынок своя отдельная депошка: срочка, фонда, валютный и др. То есть, смысла в коде нет вообще. Смысл бы был, если бы у нас был один счёт на все секции, и по кодам можно было бы как-то разделять, а у нас все иначе, у нас и так всё разделено. Короче, попробуй докапаться до АРКИ, ну или покапайся в регламенте биржи, но там написано всё сложным юридическим языком - там без литра вискаря мозг можно поламать ))).

Evgeny
Evgeny 作者

У меня без кода клиента в SampleQuik возникает ошибка, что он не заполнен. Но дойдет до него только в том случае, если вручную заменить значение Portfolio.Name (то есть вместо автоматически полученного из терминала кода клиента подставить туда торговый счет). Если же эту замену не делать, то возникает ошибка, что Указанный счет депо не найден. Я прочитал по ссылке. В моем случае приходит 6 портфелей. Они все соответствуют кодам клиента, их действительно 6 разных. А вот торговых счетов всего 4, но они в данных, которые доходят до стокшарпа, вообще никак не фигурируют. Я потому и задаю вопрос, каким образом должно формироваться значение этого поля при выставлении заявки, т.к. непонятно как от кодов клиента, которые переданы в портфели стокшарпа перейти к торговым счетам? Если честно, я не вижу смысла выяснять эти вопросы ни на форуме арки, ни рыться в доках биржи. Если это поле есть, то независимо от того, кому оно нужно (бирже, брокеру, арке) мы все равно с этим ничего не сделаем и к этому придется приспосабливаться на стороне стокшарпа (ну или обертки над стокшарпом).

Slepoy
Slepoy

Evgeny: У меня без кода клиента в SampleQuik возникает ошибка, что он не заполнен. Но дойдет до него только в том случае, если вручную заменить значение Portfolio.Name (то есть вместо автоматически полученного из терминала кода клиента подставить туда торговый счет). Если же эту замену не делать, то возникает ошибка, что Указанный счет депо не найден.

Я не догоняю, чего ты там вручную в коде меняешь. Ты пока не код смотри, а форму отправки заявки, т.е. красочное WPF окно. Запусти SampleQuik и попробуй отправить заявку посредством спец-окна. Ничего там менять не нужно, не нужно лезти в код.

Если ты уж так хочешь покапаться в коде, то вот тебе пример кнопки "Лонг по рынку, для акций". Код рабочий. Найди в этом коде свойство - код клиента. Его там нет ))). Я же тебе говорю, ты вначале выясни нужен ли код вообще. Мне он не нужен, всё работает без него.

 
private void OrderMarketLong_Click(object sender, RoutedEventArgs e)
{                 
    //создаём заявку(ордер) и передаём ей все нужные свойства
     var order = new Order {                                                                                                                                                                                                                        
                                                   Portfolio = (Portfolio)PortfoliosComboBox.SelectedItem,               /// портфель, выбранный в списке
                                                   Security = (Security)SecuritiesFComboBox.SelectedItem,             /// инструмент, выбранный в списке
                                                   Volume = decimal.Parse(VolumeTextBox.Text),                            /// вводимый объём - количество контрактов в заявке
                                                   Direction = Sides.Buy,                                                                   /// направление заявки - бай(покупка)
                                                   Type = OrderTypes.Market                                                            /// тип заявки - рыночная      
                                               };
                      
     trader.RegisterOrder(order); /// Отправка заявки на биржу(регистрация)  
                 
 }
 

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

Evgeny
Evgeny 作者

Я не догоняю, чего ты там вручную в коде меняешь. Ты пока не код смотри, а форму отправки заявки, т.е. красочное WPF окно. Запусти SampleQuik и попробуй отправить заявку посредством спец-окна. Ничего там менять не нужно, не нужно лезти в код. Я же написал, что этот пример в SampleQuik у меня не работает. Что с указанием кода клиента, что без указания кода клиента. Не работает именно потому что в коллекции Portfolio сейчас хранится не торговый счет, а код клиента.

Там просто ошибка, они просто перепутали. Портфели СтокШарп создаёт сам, т.е. есть отдельный класс для этого. Вот они и перепутали, все в кучу скидали: коды и портфели. Квик прислал кучу-малу, вот они видать и запутались. Я же привёл тебе ссылку где это описано. Ты пытаешься код клиента подставить вместо портфеля, вот ничего и не работает. Не нужен код клиента для отправки заявки. Нужно указывать портфель. Я думаю в новом релизе API данный косяк подправят, т.е. выпилят коды клиентов из коллекции Портфолио, оставив лишь тру-портфели. В моем случае "тру-портфелей", как ты их называешь, из квика вообще не приходит. И я не уверен, что разработчики в данном случае "запутались и все в кучу скидали". Я вполне допускаю, что создание портфелей в стокшарпе именно в разрезе кодов клиента - это осознанное действие. То, что у меня в самом квике на один торговый счет приходится два кода клиента и лимиты указываются именно в разрезе кода клиента - только подтверждает правильность такого подхода. К сожалению логика создания портфелей находится также в закрытой библиотеке и я не могу ее просмотреть. Поэтому хотелось бы услышать мнение разработчиков стокшарпа по этому вопросу.

Пока просто подставляй свой портфель и не обращай внимание на код клиента, вообще о нём забудь ))). Всё работает без него ))) Так а куда подставлять свой портфель то? На твоих скриншотах тебе из квика хотя бы приходит портфель с правильно заполненным свойством Name, соответствующим торговому счету. Мне такой портфель не приходит. Приходят только портфели, соответствующие кодам клиента.

Slepoy
Slepoy

Evgeny: На твоих скриншотах тебе из квика хотя бы приходит портфель с правильно заполненным свойством Name, соответствующим торговому счету. Мне такой портфель не приходит. Приходят только портфели, соответствующие кодам клиента. Тогда обнови версию Квика. Надеюсь ты не на боевом квике всё это делаешь? В процессе обучения тут используют демку. Те скрины с демо-квика, версии 7.6.1.1 Зайди на сайт АРКИ и скачай последнюю демку. Всё должно работать. Если демка не пашет, тогда ты что-то делаешь не так. Но если демка пашет, а так оно и есть, то те проблемы создаёт тебе твой брокер чей боевой квик ты пытаешься прикрутить к СтокШарпу.

То, что у меня в самом квике на один торговый счет приходится два кода клиента и лимиты указываются именно в разрезе кода клиента - только подтверждает правильность такого подхода. Я же говорил выше, что не нужно гадать: а может то, а может сё. Зайди на форум АРКИ и задай прямой вопрос. Они ответят. Я если чего не знаю, так и делаю. Зачем гадания и предположения? В чём проблема то? Есть форум у биржи, можно там задать вопрос, я пару раз там докапывался до биржи. К чему все эти гадания? Может код и нужен, может нет - лично я не знаю, у меня всё работает без него. Узнай точно, нужен он или нет. И если нужен, то для чего именно. Ну или можешь дальше ждать чуда ))). За тебя никто ничего делать не будет, особенно на этом форуме. Тут разработчики отвечают только в крайних случаях. Чтобы ты получил ответ на свой впорос, ты должен задать его в рамках техподдержки, которая стоит 600 руб за 1 вопрос. Вот и думай чего делать. Задать бесплатно вопрос АРКЕ и бирже, либо отдать 600 руб, т.е. эквивалент ящика пива ))).

Evgeny
Evgeny 作者

Но если демка пашет, а так оно и есть, то те проблемы создаёт тебе твой брокер чей боевой квик ты пытаешься прикрутить к СтокШарпу. Проблема на реальном счете у брокера Открытие. Демка работает нормально. То есть как ты говоришь, "проблемы создает брокер". Только от этого никому не легче. Если у брокера принято разделять два договора с одним клиентом в терминале именно кодами клиента, а не торговым счетом, то решать этот вопрос придется на уровне стокшарпа (ну или обертки над ним). По этой же причине я не могу понять, для чего меня отправлять на форум арки? Что я там узнаю? Максимум то, что порядок использования кодов клиента и торговых счетов зависит от настроек брокера. И опять все вернется к тому, что к этой ситуации придется приспосабливаться, т.к. изменить ее - нельзя. Поэтому я пытаюсь понять именно на форуме стокшарпа, предусмотрены ли такие случаи в архитектуре стокшарпа. Если нет, то для чего мне тратить деньги на поддержку? Я один раз уже купил полугодовой курс у стокшарпа. Свое мнение по поводу этой поддержки я уже писал Юрию. Я никого не прошу, что-то сделать за меня. Я прошу разработчиков стокшарпа разъяснить архитектуру стокшарпа в этой части, т.к. ее реализация скрыта в закрытой библиотеке, а в документации это отсутствует. Если не ответят, значит буду решать этот вопрос в соответствии с моим собственным пониманием ситуации. Но мне кажется, разработчики должны быть заинтересованы в том, чтобы пользователи их библиотеки поднимали такие вопросы, которые не укладываются в архитектуру библиотеки (ну либо, как вариант, требуют уточнений в документации). В том числе, поднимали эти вопросы публично на форуме, а не в рамках закрытой поддержки.

Slepoy
Slepoy

Проблема на реальном счете у брокера Открытие. Демка работает нормально. То есть как ты говоришь, "проблемы создает брокер". Только от этого никому не легче. Если у брокера принято разделять два договора с одним клиентом в терминале именно кодами клиента, а не торговым счетом, Ну это тебе от этого не легче, а знающие люди, которые читают сей форум, качают последнию версию Квика с сайта АРКИ и коннектят её к Открывашке ))). То есть, подобные проблемы с Открывашкой, уже тут где-то обсуждались. Я сам так не пробовал, но говорят работает. Я фьючами торгую, тоже в Открывашке и заявки проходят нормально. Ты же, как я понимаю, на акциях пытаешься бота замутить, вот и вылезла эта проблема с кодами. Попробуй законнектить демо-квик последеней версии - к боевым серверам Открывашки, может заработает. Если не поможет, то беда. Ну до нового года есть ещё время, можно сделать запрос деду морозу, может поможет )))

Evgeny
Evgeny 作者

Да, проблема на спотовом рынке. На срочном рынке код клиента совпадает с торговым счетом и проблемы не возникает. Я еще в первом посте написал, что я искал описание этой проблемы на форуме. Но обсуждения касаются DDE соединения и проблемы не решают. Поэтому если "знающие" люди действительно напишут на форуме решение этой проблемы, я буду им благодарен. Спасибо за помощь.

Slepoy
Slepoy

Evgeny: Да, проблема на спотовом рынке. На срочном рынке код клиента совпадает с торговым счетом и проблемы не возникает. Я еще в первом посте написал, что я искал описание этой проблемы на форуме. Но обсуждения касаются DDE соединения и проблемы не решают. Поэтому если "знающие" люди действительно напишут на форуме решение этой проблемы, я буду им благодарен. Спасибо за помощь. В прошлый раз проблема была со стопами Открывашки. Решали её просто - как я описывал выше, т.е. коннектили последнюю версию Квика к серверам Открывашки( http://stocksharp.ru/forum/5313/quik-i-oshibka-otmeny-stop-ordera/ ). То есть, попробуй тоже самое, может тогда вместе с кодами придут все портфели. Если не проканает, то меняй брокера на финам, бкс.

Ну или придётся ждать нового релиза API, возможно в нём к коннектору прикрутят отдельное свойство-коллекцию, специально под коды клиентов. Обзовут её как-нибудь, типа СlientCods и будет счастие ))). А то сейчас коды попадают в коллекцию портфолио, что не есть гуд. Короче, нужна сепарация кодов и портфелей, а для этого нужно перепиливать коннектор.

Slepoy
Slepoy

Evgeny: Поэтому если "знающие" люди действительно напишут на форуме решение этой проблемы, я буду им благодарен. Я догнал чего тебе делать - просто создай свой кастомный портфель, т.е. объект класса Portfolio. Создай объект, вручную заполни все его свойства и тупо подставляе его при формировании объекта заявки. И код клиента подставляй объекту заявки тоже вручную, он там стринговый. По-моему, идеальное решение и никого не нужно ждать. И всё будет работать. Я напомню, СтокШарп сам создаёт портфели, на основе пришедшей инфы из Квика. Нам ничего не мешает сделать тоже самое самим: создать свой кастомный портфель. Тоже самое можно сделать с инструментами. То есть, не загружать их из Квика при каждом подключении, а создать свои объекты-инструменты, хотя это прокатит лишь для акции, ибо у фьючей в них идут планки, которые постоянно на клирингах перерасчитываются. Планки - штука важная. То есть, для акции такой подход вполне сойдёт, а вот с фьючами лучше так не делать.

Evgeny
Evgeny 作者

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

Slepoy
Slepoy

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

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

Slepoy
Slepoy

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

Mikhail Sukhov
Mikhail Sukhov

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

Slepoy
Slepoy

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

Mikhail Sukhov
Mikhail Sukhov

Slepoy:

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

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

Evgeny
Evgeny 作者

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, у меня нет проблемы придумать обходной путь, чтобы решить проблему в случае, если Стокшарп изначально не поддерживает эту ситуацию. Но я хочу разобраться, как это должно работать с точки зрения архитектуры Стокшарпа.

Mikhail Sukhov
Mikhail Sukhov

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

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

Evgeny
Evgeny 作者

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

Mikhail Sukhov
Mikhail Sukhov

Да, пришлите в личку лог луа под дебагом (нужно включить в скрипте). Пока сложно понять, что не так у вас.

Mikhail Sukhov
Mikhail Sukhov

Да, пришлите в личку лог луа под дебагом (нужно включить в скрипте). Пока сложно понять, что не так у вас.

Evgeny
Evgeny 作者

Михаил, скажите, пожалуйста, по данной проблеме у вас получилось что-нибудь посмотреть?

Mikhail Sukhov
Mikhail Sukhov

Добрый день,

Я видимо пропустил момент. Вы лог прислали в личку, ок. А вопрос то был какой?

Предлагаю уже переходить на новый формат тех поддержки http://stocksharp.ru/articles/7809/support-20/ На почту саппорту приходят нотификации только от тех, у кого сообщения зеленым помечаются в ленте.

Evgeny
Evgeny 作者

Михаил, проблемы две. Мне сейчас приходят из квика портфели, у которых свойство Portfolio.Name равно коду клиента, причем их несколько. Основные свойства в них заполнены. Дополнительно приходит портфель со свойством Portfolio.Name, равным торговому счету в квике. Однако остальные свойства в нем не заполнены. На скриншоте, который я Вам выслал вместе с логами, портфели 124791 и 124791I соответствуют кодам клиента в квике. Портфель L01-00000F00 соответствует торговому счету в квике. Но по нему не заполнены никакие другие свойства, кроме Name. В результате, если в заявке указывать портфель 124791, то появляется сообщение об ошибке, что торговый счет не найден (видно по логу луа, который я вам выслал). Если же в заявке указывать портфель L01-00000F00, то заявка выставляется нормально, но проблема в том, что по этому портфелю не приходит никаких обновлений по суммам. В итоге непонятно каков подход стокшарпа: сколько портфелей должно быть создано на основе данных квика и какие? Один L01-00000F00 или два 124791 и 124791I (портфели на остальных площадках я пока опускаю)?

Кроме того, в свойства портфелей 124791 и 124791I сейчас передается не текущий остаток денежных средств, а только текущая оценка стоимости ценных бумаг в этом портфеле. Это корректно? Разве не должны отображаться остатки именно денежных средств?

Slepoy
Slepoy

Evgeny: Михаил, проблемы две. ... Дополнительно приходит портфель со свойством Portfolio.Name, равным торговому счету в квике. Если же в заявке указывать портфель L01-00000F00, то заявка выставляется нормально, но проблема в том, что по этому портфелю не приходит никаких обновлений по суммам. Опаньки, заявки вдруг начали отправляться. Начал вдруг приходить дополнительный портфель. Чего то выше ты писал о другом: "На твоих скриншотах тебе из квика хотя бы приходит портфель с правильно заполненным свойством Name, соответствующим торговому счету. Мне такой портфель не приходит. Приходят только портфели, соответствующие кодам клиента.". Я думаю это чудо! Хвала Иисусу, Будде и коту Матроскину ))).

Evgeny
Evgeny 作者

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

Slepoy
Slepoy

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Evgeny
Evgeny 作者

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

Mikhail Sukhov
Mikhail Sukhov

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

Evgeny
Evgeny 作者

Михаил, давайте начнем с малого. Пожалуйста, ответьте на 2 вопроса:

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

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

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

Evgeny
Evgeny 作者

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

Mikhail Sukhov
Mikhail Sukhov

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

Evgeny
Evgeny 作者

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

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

Mikhail Sukhov
Mikhail Sukhov

Evgeny: ...

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

Evgeny
Evgeny 作者

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Slepoy
Slepoy

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

Support
Support

Евгений,

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

Support,

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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

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

Support
Support

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

Evgeny
Evgeny 作者

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

Mikhail Sukhov
Replikant
Replikant

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

Replikant
Replikant

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