Событие о поступлении новых инструментов
Atom Ответить
19.12.2011


Хотел вывести в лог параметры инструментов новых:
Код
_trader.NewSecurities +=
				securities =>
				this.GuiSync(() =>
				             	{
				             		var s = _securities.FirstOrDefault(sec => sec.Code == "RIH2");
				             		if (s.IsNull()) return;
				             		Console.WriteLine("{0}, {1}, {2}, {3}, {4}".Put(s.Code, s.MinStepPrice, s.MinStepSize, s.MaxPrice, s.MinPrice));
				             	});


Но с удивлением в логе увидел:
Код
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000


Почему то инструмент несколько раз попадает в событие NewSecurities ... Так должно быть?

Теги:


Спасибо:




17 Ответов
Alexander

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


Где идёт подписка на событие? Какая версия S#?
Вставьте распечатку в лог ещё перед каждым вызовом GetSecurity
Спасибо:

frontman

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


Подпись на событие идет в куске который я выложил.
Версия самая последняя(я подключен к проекту)
Последнее не понял...
Автор топика
Спасибо:

frontman

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


А нет . Вру не последняя была. Обновил... Теперь вообще не приходят инструменты)))
Михаил я же сказал что решу вопрос с инструментами. Зря вы поторопились))
Автор топика
Спасибо:

frontman

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


Александр... Простите...
Автор топика
Спасибо:

Alexander

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


frontman Перейти
Подпись на событие идет в куске который я выложил.
Версия самая последняя(я подключен к проекту)
Последнее не понял...


где этот кусок который вы выложили?
есть в PlazaTrader методы GetSecurity
Вставьте распечатку перед ними
Спасибо:

frontman

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


Ну самое первое мое сообщение.
И метода GetSecurity у PlazaTrader нет.
Автор топика
Спасибо:

Alexander

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


frontman Перейти
Ну самое первое мое сообщение.
И метода GetSecurity у PlazaTrader нет.


Ещё раз - откуда вы подписываетесь на событие что в первом сообщении?
GetSecurity есть на 599 строчке файла PlazaTrader.cs
Спасибо:

Alexander

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


frontman Перейти
А нет . Вру не последняя была. Обновил... Теперь вообще не приходят инструменты)))
Михаил я же сказал что решу вопрос с инструментами. Зря вы поторопились))


Только что проверил - всё приходит, как на бою, так и на тестовом.
Ищите ошибку у себя в приложении, через SampleGUI всё приходит.

Если мы вопрос с обновлением инструментов будем решать неделями, то разработка вся встанет :)
Я вчера перед сном нашёл пять минут и сам сделал этот таск.


Так что проблема необновления инструментов решена, проблема с isin_id всё ещё требует решения.
Спасибо:

frontman

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


А какая проблема с isin_id?
Информация по инструменту обновляется по его id (secCode)А он не меняется...
Т.е когда придет инструмент с новым isin_id , он (isin_id ) будет обновлен..
Вот как то так...
Автор топика
Спасибо:

Alexander

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


frontman Перейти
А какая проблема с isin_id?
Информация по инструменту обновляется по его id (secCode)А он не меняется...
Т.е когда придет инструмент с новым isin_id , он (isin_id ) будет обновлен..
Вот как то так...



isin_id используется везде - в заявках, данных, ....
и именно он является ключом (id как вы написали)

он не будет обновлён


Уже писали про то что видимо надо мап строить, включать isin_id и session_id


Что с
Цитата:
Ещё раз - откуда вы подписываетесь на событие что в первом сообщении?
GetSecurity есть на 599 строчке файла PlazaTrader.cs

?

Проблема ушла? Инструменты стали приходить, NewSecurities вызывается 1 раз теперь? :)
Спасибо:

frontman

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


Alexander Mukhanchikov Перейти
frontman Перейти
Подпись на событие идет в куске который я выложил.
Версия самая последняя(я подключен к проекту)
Последнее не понял...


где этот кусок который вы выложили?
есть в PlazaTrader методы GetSecurity
Вставьте распечатку перед ними


Вставил
Код
[h]Сработал OnSessionContentsDerivativeStreamInserted для RIH2[/h]
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000


Т.е приходят то вроде как один раз данные...
Автор топика
Спасибо:

frontman

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


Alexander Mukhanchikov Перейти

Проблема ушла? Инструменты стали приходить, NewSecurities вызывается 1 раз теперь? :)

Не ну конечно признаю, тарапыга и поспешил с тем что инструменты не приходят...
Но проблема которой посвещена данная тема сохранилась...
Автор топика
Спасибо:

Alexander

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


Если вы не будете отвечать на вопросы - я помочь не смогу.
Уже в 4ый раз спрашиваю.

Где вставили подписку на событие что в первом сообщении?
Спасибо:

frontman

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


Alexander Mukhanchikov Перейти
Если вы не будете отвечать на вопросы - я помочь не смогу.
Уже в 4ый раз спрашиваю.

Где вставили подписку на событие что в первом сообщении?


Тьфу ты...
Там же где и создаю PlazaTrader. Подписка точно один раз создается...
Автор топика
Спасибо:

frontman

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


Alexander Mukhanchikov Перейти

isin_id используется везде - в заявках, данных, ....
и именно он является ключом (id как вы написали)

он не будет обновлён


Уже писали про то что видимо надо мап строить, включать isin_id и session_id


Ну вот например метод GetSecurity разве не по Id (CreateSecurityId(secCode, "RTS")) находит инструмент?
Автор топика
Спасибо:

Alexander

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


frontman Перейти

Код
_trader.NewSecurities +=
				securities =>
				this.GuiSync(() =>
				             	{
				             		var s = _securities.FirstOrDefault(sec => sec.Code == "RIH2");
				             		if (s.IsNull()) return;
				             		Console.WriteLine("{0}, {1}, {2}, {3}, {4}".Put(s.Code, s.MinStepPrice, s.MinStepSize, s.MaxPrice, s.MinPrice));
				             	});




у вас _securities - это что?
все инструменты _trader?
Так правильно - у вас сработает событие NewSecurities для новых инструментов (не обязательно RIH2), вы по списку инструментов плазы будете искать рих2 - найдёте - распечатаете.
дальше придут опять новые инструменты - вы опять будете по всем инструментам искать рих2 - конечно найдёте

и т.д. и т.п.

ищите по securities, которое приходит в событие - в этом случае сработает 1 раз
Спасибо:

frontman

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


Да нет Александр тема закрывается. Кофе я перепил вчера явно))
Извиняюсь...
Автор топика
Спасибо:


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

loading
clippy