← 返回

Торговый счет и код фирмы

Доброй пятницы всем)

Столкнулся с проблемкой.

Торговый счет (счет депо) начинается с Y02... Код фирмы начинается с MC...

Торговый счет отображается в таблице позиции по бумагам, а код фирмы в портфеле по бумагам.

Экспортируем эти таблицы: _quik.Terminal.StartDde(_quik.SecuritiesTable, _quik.MyTradesTable, _quik.EquityPortfoliosTable, _quik.EquityPositionsTable);

В событии _quik.NewPortfolios получаем наш портфель, но его имя начинается с MC, т.е. это код фирмы.

Дальше начинаем выставлять заявку, заявка не проходит потому, что в тексте транзакции идет ACCOUNT=MC.. Т.е. вместо торгового счета указывается код фирмы.

Смотрел все примеры, что входят в поставку и документацию. Сам ответа не нашел, как исправить эту ситуацию. Была идея, изменить свойство Name у объекта Portolio на Y02, заявка прошла, однако функция GetPosition(Portfolio, security) по возвращает null

Брокер УралСиб, ММВБ, Quik 5.21.021, Верификатор говорит что все.

本主题对您有帮助吗?

分享主题

评论 (12)

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

Mikhail Sukhov
Mikhail Sukhov

KAX: В событии _quik.NewPortfolios получаем наш портфель, но его имя начинается с MC, т.е. это код фирмы.

А если чуть подождать? Y02 может прийти позднее MC.

KAX
KAX 作者

Ну если я правильно понимаю, то Номер торгового счета берется из таблицы "Портфель по бумагам", если да то он никогда не появиться, ибо в квике в этой таблице только одна запись - "МС..."

Запустил приложения, жду.

Mikhail Sukhov
Mikhail Sukhov

KAX: Ну если я правильно понимаю, то Номер торгового счета берется из таблицы "Портфель по бумагам"

  • позиции по бумагам.
KAX
KAX 作者

не помогло ничего. Как не приходил торговый счет так и не приходит.


_quik.NewPortfolios += portfolios => 
                        {
                            if (_portfolio == null)
                            {
                                _portfolio = portfolios.FirstOrDefault(p => p.Name.Contains("Y02"));
                                if (_portfolio != null)
                                {
                                    log(String.Format("Испольуем портфель {0}", _portfolio.Name));
                                    if (_tool != null) { waitHandle.Set(); }
                                }                            
                            }
                        };
_quik.Terminal.StartDde();
//_quik.Terminal.StartDde(_quik.SecuritiesTable, _quik.MyTradesTable, _quik.EquityPositionsTable, _quik.EquityPortfoliosTable);

Открытые позиции по торговому счету есть

Mikhail Sukhov
Mikhail Sukhov

KAX: Открытые позиции по торговому счету есть

Пример Sample показывает нужный порфтель?

KAX
KAX 作者

нет не показывает.

Версия s# 3.0.19

Mikhail Sukhov
Mikhail Sukhov

KAX: нет не показывает.

Так, а позиция по этому счету есть хоть одна? ProcessDataError?

KAX
KAX 作者

ProcessDataError: Инструмент с кодом LKOH для бумажной позиции не найден.

Mikhail Sukhov
Mikhail Sukhov

KAX: Позиции есть, но они на счету Y02...

Так ведь и нужен этот портфель? Вы же в начале топике указывали на это. Что пишет ProcessDataError?

KAX
KAX 作者

ProcessDataError: Инструмент с кодом LKOH для бумажной позиции не найден.

KAX
KAX 作者

Опана!

Добавил в таблицу Quik инструменты бумагу LKOH и все встало на свои места! Позицию определяет!

UPD. Кажется до петрил я до истины! В таблице Инструменты должны быть все инструменты по которым предполагается торговля, тогда все счета определяются нормально.

Serg
Serg

Сегодня тоже столкнулся с этим))) Portfolios QUIK