Получение таблицы "позиции по деривативам"

10 views
Skip to first unread message

MCTuTeJ|19951995

unread,
Sep 15, 2010, 1:57:28 AM9/15/10
to Stock#
Почему очень очень медленно приходят позиции по деривативам??? И как-
нибудь можно ли ускорить этот процесс???

Mikhail Sukhov

unread,
Sep 15, 2010, 6:33:38 AM9/15/10
to Stock#
В процессе работы или в момент запуска робота?

MCTuTeJ|19951995

unread,
Sep 16, 2010, 2:28:14 AM9/16/10
to Stock#
Событие NewPositions приходит очень долго - от 5 сек до минуты. Текст
такой:
trader.NewPositions+=positions=>{Positions.AddRange(positions)};
Positions - ObservableCollection.
В сампле кстати позиции приходят сразу.

Mikhail Sukhov

unread,
Sep 16, 2010, 6:15:39 AM9/16/10
to Stock#
В процессе работы робота (робот уже запущен примерно с час) или в
момент запуска робота (робот только запускается)?

MCTuTeJ|19951995

unread,
Sep 17, 2010, 1:56:15 AM9/17/10
to Stock#
В момент запуска

MCTuTeJ|19951995

unread,
Sep 17, 2010, 2:37:43 AM9/17/10
to Stock#
Еще такой вопрос: когда позиция по какому-нибудь инструменту меняется,
новая позиция приходит в событии PositionsChanged или NewPositions ?

Mikhail Sukhov

unread,
Sep 17, 2010, 4:15:19 AM9/17/10
to Stock#
В момент старта грузятся все сделки. Не запускайте их, и получение
позы будет быстрее.

Нужно смотреть и NewPositions и PositionsChanged. Потому что поза в
начале "не существует", и "появляется" только при ее изменении.

MCTuTeJ|19951995

unread,
Sep 17, 2010, 4:44:04 AM9/17/10
to Stock#
В каком смысле все сделки ? Экспорт стартуется не по всем таблицам
методом trader.StartDde, а только по нужным методом
trader.StartDde(string caption).
Насчет позиций - когда позиция меняется сначала приходит
PositionsChanged, а потом NewPositions ?

Mikhail Sukhov

unread,
Sep 17, 2010, 4:46:03 AM9/17/10
to Stock#
Сначала NewPositions затем PositionsChanged

MCTuTeJ|19951995

unread,
Sep 17, 2010, 5:08:27 AM9/17/10
to Stock#
Не могли бы Вы по подробнее объяснить что Вы имели ввиду под "В момент

старта грузятся все сделки. Не запускайте их, и получение
позы будет быстрее. "

Mikhail Sukhov

unread,
Sep 17, 2010, 5:28:55 AM9/17/10
to Stock#
Поза экспортируется по ДДЕ. Самая тяжелая часть экспорта - все сделки.
Если у Вас эта таблица не экспортируется, то проблема в чем то другом.
Расскажите по подробнее, в чем заключается медленность? Лучше в
числах. Скажем, Вы запустили экспорт по деривативам (кстати, прокажите
код, как Вы экспорт запускаете). Далее, как замеряете, когда пришли
данные? Эти данные уже были ранее добавлены (тоесть, уже поза была
ранее отображена в таблице квике) или нет?

MCTuTeJ|19951995

unread,
Sep 20, 2010, 2:47:47 AM9/20/10
to Stock#
this.Trader.NewPositions+=positions=>{Positions.AddRange(positions) };
При запуске программы стартуется экспорт по таблицам Инструменты
Позиции по деривативам и нескольким стаканам.

MCTuTeJ|19951995

unread,
Sep 20, 2010, 3:11:25 AM9/20/10
to Stock#
Экспорт запускается так: Trader.StartDde("позиции по деривативам");

MCTuTeJ|19951995

unread,
Sep 20, 2010, 3:55:09 AM9/20/10
to Stock#
Приходят позиции всё время по-разному - иногда сразу, иногда через
минуту-две...
Это может быть связано с тем что перед этим запускается экспорт 2-3
стаканов ?

Mikhail Sukhov

unread,
Sep 20, 2010, 4:01:53 AM9/20/10
to Stock#
Может быть от всего что угодно. Но обычно на среднем компьютере все
таблицы (включая тики) стартуют примерно за минуту. Почему у Вас такие
задержки - не могу сказать.

MCTuTeJ|19951995

unread,
Sep 20, 2010, 4:07:38 AM9/20/10
to Stock#
Только что пробовал просто такой код:

trader.Connect();
trader.Connected+=()=>{
trader.StartDde("позиции по деривативам");
};
trader.newPositions+=positions=>{
MessageBox.Show("позиции пришли !");
};
Приходят они в среднем через минуту


On 20 сен, 11:55, "MCTuTeJ|19951995" <maxim...@yandex.ru> wrote:

Mikhail Sukhov

unread,
Sep 20, 2010, 5:05:09 AM9/20/10
to Stock#
1. Без экспорта инструментов позии приходить не будут. Так что код как
минимум не такой.
2. В среднем - это как расчитали? Перезапускали приложение? Или
позиции приходили несколько раз через событие newPositions

MCTuTeJ|19951995

unread,
Sep 21, 2010, 2:34:14 AM9/21/10
to Stock#
Прошу прощения, еще есть такой код:
trader.StartDde(Инструменты);
trader.NewSecurities+=securities=>{
foreach(Security sec in securities){
trader.RegisterQuotes(sec);
}
};

И так и так - позиции приходят иногда по одному инструменту сразу, а
по другому - через полминуты.
При перезапуске по-разному всегда приходят.

MCTuTeJ|19951995

unread,
Sep 21, 2010, 2:51:59 AM9/21/10
to Stock#
Михаил, а правда что для того чтобы МоиСделки приходили нужно еще по
Заявкам экспорт начать ?

MCTuTeJ|19951995

unread,
Sep 21, 2010, 3:09:02 AM9/21/10
to Stock#
И еще, я так до конца и не понял, NewPositions приходит при любых
изменениях позиций или только при появлении новых ? при изменении уже
существующих позиций он будет приходить ?

Mikhail Sukhov

unread,
Sep 21, 2010, 4:54:34 AM9/21/10
to Stock#
Ну вот и расгадка. Вы же еще и экспорт стаканов запускаете.

А что у Вас за робот, что ему так критично время запуска (минута или 2
минуты)? Обычно в начале сессии запускают, и выключают уже вечером.

On 21 сен, 10:34, "MCTuTeJ|19951995" <maxim...@yandex.ru> wrote:

Mikhail Sukhov

unread,
Sep 21, 2010, 4:54:41 AM9/21/10
to Stock#
Да.

On 21 сен, 10:51, "MCTuTeJ|19951995" <maxim...@yandex.ru> wrote:

Mikhail Sukhov

unread,
Sep 21, 2010, 4:58:06 AM9/21/10
to Stock#
На изменение позы необходимо мониторить два события - NewPositions и
PositionsChanged. Это связанно с тем, что первоначально до торговли
позы по инструменту не существует. Само по себе событие NewPositions
как написано в документации сигнализирует о "Событие появления новых
позиций. "
Reply all
Reply to author
Forward
0 new messages