Доброе время суток, Михаил! Сегодня впервые столкнулся с непонятным исключением. После включения экспорта из квика в окно "инструменты" стало возникать сообщение о таком исключении:
"System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> SystemArgumentNullException: Значение не может быть неопределенным. Имя параметра: source в Ecng.Collections.CollectionHelper.AddRange(1'Collection '1 source, IEnumerable ' 1 items) " и т.д.
Далее указывается строка программы где идет подписка на событие новых сделок:
this.Trader.NewSecurities += securities => ...
При этом экспорт из квика "как бы" идет, но данные в окно не поступают. Не могли бы подсказать, что это может означать?
评论 (6)
登录 或 创建账户, 登录或注册以发表评论
Методом исключений исключений уже разобрался... :)
У меня было другое странное исключение. При первом запуске утром я получил остановку с сообщением что-то вроде: "Эта последовательность отсутствует" с указанием на строчку запуска экспорта по ДДЕ. Проверил таблицы - все на месте, настроены правильно. Выключил программу. Включил программу - все заработало без моего вмешательства (даже в бубен не бил). Подобное повторилось при выключении программы вечером но с указанием на строчку прекращения экспорта по ДДЕ. Последовало аварийное завершение работы (был обруган Квиком:)). Включил - выключил: все работает штатно.
Что это могло быть?
Бывает такое. Перегружать приложение не нужно. Надо лишь сделать Stop Start ДДЕ.
Почти забыл было об этом вопросе, но он вдруг снова стал актуальным. С некоторых пор (пара крайних дней:) ошибка об "отсутствии последовательности" появляется кадое второе включение робота. Выключениия и включение заново перестали помогать. Теперь перед повторным включением необходимо выждать неопределенное количество времени ( от 1 до 30 мнут). Всякая отладка в таких условиях превращается в сущее мученье. подскажите в чем все-таки может быть проблема? И собственно что такое сделать Стоп-Старт ДДЕ? Если это пункты меню в квике "остановить/ начать экспорт по ДДЕ" то оно не работает. Влияет ли как нибудь на этот процесс пункт "Настройки - Вывод по ДДЕ"?
-- Subscription settings:http://groups.google.com/group/stocksharp/subscribe?hl=ru
У меня такая же проблема. При вызове StartDde() и StopDde(), когда в квике открываются окна "Вывод через DDE сервер" для всех экспортируемых таблиц, периодически вываливается исключение:
System.InvalidOperationException: Sequence contains no matching element at System.Linq.Enumerable.First[TSource](IEnumerable
1 source, Func2 predicate) at Ecng.Trading.Quik.QuikTrader. (SystemWindow ) at Ecng.Trading.Quik.QuikTrader. (IEnumerable1 , Action2 ) at Ecng.Trading.Quik.QuikTrader.StartDde(DdeTable[] ddeTables) at Ecng.Trading.Quik.QuikTrader.StartDde()Иногда при этом виснет квик, приходится перезапускать. Никаких закономерностей возникновения сабжа не заметил, происходит случайно, но регулярно. Похоже, что какая-то проблема при обращении stock# к окнам квика. Ось - win7.
-- Subscription settings:http://groups.google.com/group/stocksharp/subscribe?hl=ru
Я делаю просто - вызываю StartDde сразу при запуске робота. Ошибка - робот не запустился. Это видно сразу, и просто требуется перезапустить. Со второго раза все нормально. Не знаю с чем это связанно. Думаю, с особенностями Квика. Потому что то работает, то нет. Да и управление Квиком из другой проги - это, конечно же, хак. Приходится мириться. Так много крови портит?
А насчет зависания - это да. Если просто срубать прогу и не закрывать ДДЕ, то после определенного количества раз (у меня, как правило, 5) Квик просто виснет. Там видимо что-то переполняется. Закрывайте ДДЕ соединения - и не будет виснуть.