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


Почему очень очень медленно приходят позиции по деривативам??? И как-
нибудь можно ли ускорить этот процесс???

Теги:


Спасибо:



Скидка 15% на все продукты до 5 апреля (осталось 6 дней).

26 Ответов
1 2  >
Mikhail Sukhov

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


В процессе работы или в момент запуска робота?

Спасибо:

MCTuTeJ|19951995

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


Событие NewPositions приходит очень долго - от 5 сек до минуты. Текст
такой:
trader.NewPositions+=positions=>{Positions.AddRange(positions)};
Positions - ObservableCollection.
В сампле кстати позиции приходят сразу.

Автор топика
Спасибо:

Mikhail Sukhov

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


В процессе работы робота (робот уже запущен примерно с час) или в
момент запуска робота (робот только запускается)?

Спасибо:

MCTuTeJ|19951995

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


В момент запуска

Автор топика
Спасибо:

MCTuTeJ|19951995

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


Еще такой вопрос: когда позиция по какому-нибудь инструменту меняется,
новая позиция приходит в событии PositionsChanged или NewPositions ?

Автор топика
Спасибо:

Mikhail Sukhov

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


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

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

Спасибо:

MCTuTeJ|19951995

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


В каком смысле все сделки ? Экспорт стартуется не по всем таблицам
методом trader.StartDde, а только по нужным методом
trader.StartDde(string caption).
Насчет позиций - когда позиция меняется сначала приходит
PositionsChanged, а потом NewPositions ?

Автор топика
Спасибо:

Mikhail Sukhov

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


Сначала NewPositions затем PositionsChanged

Спасибо:

MCTuTeJ|19951995

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


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

Автор топика
Спасибо:

Mikhail Sukhov

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


Поза экспортируется по ДДЕ. Самая тяжелая часть экспорта - все сделки.
Если у Вас эта таблица не экспортируется, то проблема в чем то другом.
Расскажите по подробнее, в чем заключается медленность? Лучше в
числах. Скажем, Вы запустили экспорт по деривативам (кстати, прокажите
код, как Вы экспорт запускаете). Далее, как замеряете, когда пришли
данные? Эти данные уже были ранее добавлены (тоесть, уже поза была
ранее отображена в таблице квике) или нет?

Спасибо:

MCTuTeJ|19951995

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


this.Trader.NewPositions+=positions=>{Positions.AddRange(positions) };
При запуске программы стартуется экспорт по таблицам Инструменты
Позиции по деривативам и нескольким стаканам.

Автор топика
Спасибо:

MCTuTeJ|19951995

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


Экспорт запускается так: Trader.StartDde("позиции по деривативам");

Автор топика
Спасибо:

MCTuTeJ|19951995

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


Приходят позиции всё время по-разному - иногда сразу, иногда через
минуту-две...
Это может быть связано с тем что перед этим запускается экспорт 2-3
стаканов ?

Автор топика
Спасибо:

Mikhail Sukhov

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


Может быть от всего что угодно. Но обычно на среднем компьютере все
таблицы (включая тики) стартуют примерно за минуту. Почему у Вас такие
задержки - не могу сказать.

Спасибо:

MCTuTeJ|19951995

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


Только что пробовал просто такой код:

trader.Connect();
trader.Connected+=()=>{
trader.StartDde("позиции по деривативам");

trader.newPositions+=positions=>{
MessageBox.Show("позиции пришли !");

Приходят они в среднем через минуту
Автор топика
Спасибо:

Mikhail Sukhov

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


1. Без экспорта инструментов позии приходить не будут. Так что код как
минимум не такой.
2. В среднем - это как расчитали? Перезапускали приложение? Или
позиции приходили несколько раз через событие newPositions

Спасибо:

MCTuTeJ|19951995

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


Прошу прощения, еще есть такой код:
trader.StartDde(Инструменты);
trader.NewSecurities+=securities=>{
foreach(Security sec in securities){
trader.RegisterQuotes(sec);
}

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

Автор топика
Спасибо:

MCTuTeJ|19951995

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


Михаил, а правда что для того чтобы МоиСделки приходили нужно еще по
Заявкам экспорт начать ?

Автор топика
Спасибо:

MCTuTeJ|19951995

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


И еще, я так до конца и не понял, NewPositions приходит при любых
изменениях позиций или только при появлении новых ? при изменении уже
существующих позиций он будет приходить ?

Автор топика
Спасибо:

Mikhail Sukhov

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


Ну вот и расгадка. Вы же еще и экспорт стаканов запускаете.

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

Спасибо:

Mikhail Sukhov

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


Да.

Спасибо:

Mikhail Sukhov

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


На изменение позы необходимо мониторить два события - NewPositions и
PositionsChanged. Это связанно с тем, что первоначально до торговли
позы по инструменту не существует. Само по себе событие NewPositions
как написано в документации сигнализирует о "Событие появления новых
позиций. "

Спасибо:

MCTuTeJ|19951995

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


Такой еще вопрос:
Если текущая чистая позиция по и инструменту на момент запуска равна 0, то он никогда не придет по событию NewPosition? Инструмент есть в таблице позиции по деривативам.
Автор топика
Спасибо:

Mikhail Sukhov

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


MCTuTeJ|19951995
Такой еще вопрос:
Если текущая чистая позиция по и инструменту на момент запуска равна 0, то он никогда не придет по событию NewPosition? Инструмент есть в таблице позиции по деривативам.


Смотрите, все просто. Если позиция по инструменту есть в таблице Квика - то событие приходит. Если позиции по инструменту нет в таблице - то оно не приходит. Тоесть тут надо обрабатывать двойную ситуацию, 1 - когда позиция реально равна нулю по таблице Квика, 2 - когда по инструменту вообще не было торгов ранее (и в Квике в таблице позиции она отсутствует).

Ваши вопросы меня сподвигли на следующее - надо посылать принудительно позиции по инструментам, по которым не было сделок. Посмотрю, возможно ли.
Спасибо:

MCTuTeJ|19951995

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


Я тоже так думал, но опыт показал что если позиция есть в квике, но она равна 0, то она не приходит. Чтобы приходила приходится всё время делать одну сделку перед запуском программы.
Автор топика
Спасибо:
1 2  >

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

loading
clippy