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


KAX

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

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

Торговый счет (счет депо) начинается с 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

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


KAX Перейти

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


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

KAX

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


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

Запустил приложения, жду.
Автор топика
Спасибо:

Mikhail Sukhov

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


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


+ позиции по бумагам.
Спасибо:

KAX

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


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

_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

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


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


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

KAX

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


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


Версия s# 3.0.19
Автор топика
Спасибо:

Mikhail Sukhov

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


KAX Перейти
нет не показывает.


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

KAX

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




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

Mikhail Sukhov

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


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


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

KAX

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


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

KAX

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


Опана!

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


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

Serg

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


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


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

loading
clippy