Mikhail Sukhov
|
Дата: 08.06.2010
Запускать экспорт нужно только после событие Connected.
|
|
|
|
sergun
|
Дата: 09.06.2010
Это событие не наступает.
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
Пример Sample пробовали? Там как раз по такому сценарию. Он работает? Значит наступает.
|
|
|
|
sergun
|
Дата: 09.06.2010
Разумеется, правда SampleConsole. При запуске примера также не наступает событие Connected.
При этом никакие эксепшены или ошибочные события не появляются..
Что может влиять? Версия квик 5.16.0.145
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
А Квик вообще запущен? Подключен к торгам?
|
|
|
|
sergun
|
Дата: 09.06.2010
Да, квик запущен. К торгам подключен.
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
А если запустить Sample? Я консоль не проверял.
|
|
|
|
sergun
|
Дата: 09.06.2010
А вот Sample работает.
Но мне пока с WPF экспериментировать рано.. Особой разницы в коде подключения не вижу, похоже дело именно в работе с другими окошками из окошечного либо консольного приложения..
Что-нибудь посоветуете?
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
QuikTrader не зависит от консоли или WPF - ему без разницы.
|
|
|
|
ddd888
|
Дата: 09.06.2010
Кстати, у меня аналогичная проблема - Sample нормально работает, а SampleConsole - нет. StartDde() дает такую же ошибку, а StartDde(string или array) - "нет ссылки на объект". Может это связано с изменением логики работы метода StartDde? Раньше в 1.8 таких проблем не было. Можно увидеть код этого метода?
|
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
Нет ссылки на объект - приведите полный текст.
|
|
|
|
ddd888
|
Дата: 09.06.2010
SystemNullReferenceException: В экземпляре объекта не задана ссылка на объект. Далее указание на строку: trader.StartDde(new[] { trader.SecuritiesTable, trader.MyTradesTable });
|
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
это скорее всего то, что trader null. Это уж совсем не зависит от события Connected =)
|
|
|
|
ddd888
|
Дата: 09.06.2010
Так почему же он null? Это в Вашем же примере в Sample Console происходит! Кстати, а когда именно возникает событие Connected?
|
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
Если это мой пример, то тогда надо посмотреть в чем бага.
Событие Connected вызывается сразу после соединения с Квиком.
|
|
|
|
ddd888
|
Дата: 09.06.2010
Под "соединением" имеется ввиду соединение через Trans2quik или подключение через DDE?
|
|
|
|
Mikhail Sukhov
|
Дата: 09.06.2010
Первое.
|
|
|
|
Mikhail Sukhov
|
Дата: 10.06.2010
Взглянул на пример. Оформлен неправильно. Дде стартует до того, как было произведено подключение. Вы это учитываете?
|
|
|
|
ddd888
|
Дата: 10.06.2010
Нет, в примере, я ничего от себя не добавлял. Т.е. StartDde надо тоже "засунуть" под событие Connected?
|
|
|
|
ddd888
|
Дата: 10.06.2010
Еще такой вопрос. Если добавлять какие-нибудь манипуляции со стаканом (Quotes), типа Max(t=t>t.Price), то иногда в этом месте возникает исключение "последовательность не содержит элементов". Пробовал поставить тест на null или Count=0, но исключение все равно появляется. Из-за чего это происходит и как этого избежать?
|
|
|
|
Mikhail Sukhov
|
Дата: 10.06.2010
Из-за того, что стакан еще пуст.
|
|
|
|
ddd888
|
Дата: 10.06.2010
Но тогда должна работать проверка на null? Еще раз проверил аналогичную ситуацию на 1.8 - там такая ошибка обычно иногда возникает при первичном запуске стакана, но раз запустившись потом никогда не появляется. В 2.0.1 она возникает периодически уже при открытом стакане. У меня GetMarketDepth изменилась логика?
|
|
|
|
Mikhail Sukhov
|
Дата: 10.06.2010
Периодически - это как? По таймеру? Или пользователь что-то кликает? Или в стратегии?
|
|
|
|
ddd888
|
Дата: 10.06.2010
Обновление стакана у меня происходит по событию GetMarketDepth(this.Security).Changed Вот во время периодического обновления иногда и выскакивает эта ошибка.
+ опять-таки иногда при инициализации стакана выскакивает ошибка "последовательность не содержит соответствующего элемента". В отладке при этом this.Security - вроде вполне нормально загруженный.
|
|
|
|
ddd888
|
Дата: 10.06.2010
Заметил такую особенность - пока все сделки до конца не подгрузились в S#, при открытии стакана GetMarketDepth может вызывать ошибку ("последовательность не содержит элементов"). А RegisterQuotes - "последовательность не содержит соответствующего элемента".
|
|
|