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

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

Avatar
Date: 12/31/2016
Reply


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

Evgeny

Avatar
Date: 12/31/2016
Reply


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

Slepoy

Avatar
Date: 12/31/2016
Reply


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


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

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

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); /// Отправка заявки на биржу(регистрация)

}



Quote:
непонятно как от кодов клиента, которые переданы в портфели стокшарпа перейти к торговым счетам?

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

Evgeny

Avatar
Date: 12/31/2016
Reply


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

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

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

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

Quote:
Пока просто подставляй свой портфель и не обращай внимание на код клиента, вообще о нём забудь ))). Всё работает без него )))

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

Slepoy

Avatar
Date: 12/31/2016
Reply


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

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


Quote:
То, что у меня в самом квике на один торговый счет приходится два кода клиента и лимиты указываются именно в разрезе кода клиента - только подтверждает правильность такого подхода.

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

Evgeny

Avatar
Date: 12/31/2016
Reply


Quote:
Но если демка пашет, а так оно и есть, то те проблемы создаёт тебе твой брокер чей боевой квик ты пытаешься прикрутить к СтокШарпу.

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

Slepoy

Avatar
Date: 12/31/2016
Reply


Evgeny
[quote] Проблема на реальном счете у брокера Открытие. Демка работает нормально.
То есть как ты говоришь, "проблемы создает брокер". Только от этого никому не легче. Если у брокера принято разделять два договора с одним клиентом в терминале именно кодами клиента, а не торговым счетом,

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

Thanks:

Evgeny

Avatar
Date: 12/31/2016
Reply


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

Slepoy

Avatar
Date: 12/31/2016
Reply


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

В прошлый раз проблема была со стопами Открывашки. Решали её просто - как я описывал выше, т.е. коннектили последнюю версию Квика к серверам Открывашки( http://stocksharp.ru/for...bka-otmeny-stop-ordera/ ). То есть, попробуй тоже самое, может тогда вместе с кодами придут все портфели. Если не проканает, то меняй брокера на финам, бкс.

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

Slepoy

Avatar
Date: 12/31/2016
Reply


Evgeny
Поэтому если "знающие" люди действительно напишут на форуме решение этой проблемы, я буду им благодарен.

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

Thanks:
1 2 3  > >>

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

loading
clippy