Ошибка при вызове StopDDE
Atom Ответить
23.06.2010


Добрый вечер, Михаил.
Помогите пожалуйста разобраться в ошибке.

Запускаю экспорт данных из Квика.

Таблицы:
"Таблица лимитов по денежным средствам" и "Таблица Купить/Продать".

Эти таблицы переименовал и они имеют названия:
"MoneyLimit" и Global.TradesProperty.BuySellTable

В настройках экспорта по DDE указал название MoneyLimit и PaperLimit.

Запускаю следующим образом:
Global.Quik.ProcessUnknownDdeData += this.Quik_ProcessUnknownDdeData;
Global.Quik.StartDde("MoneyLimit");
Global.Quik.StartDde(Global.TradesProperty.BuySellTable);

Подключается нормально и без ошибок.
После чего получаю данные и произвожу необходимы мне действия.
После этого пытаюсь закрыть экспорт их этих таблиц следующим образом:

Global.Quik.StopDde("MoneyLimit");
Global.Quik.StopDde(Global.TradesProperty.BuySellTable);

И при выполнении первой строчки появляется исключение:
"PaperLimit\r\nParameter name: category"

at Ecng.Trading.Quik.QuikTrader. (String , IList`1 )
at Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler,
T1 arg1, T2 arg2)
at . . ()
at
Ecng.ComponentModel.EventDispatcher.<>c__DisplayClass3.<.ctor>b__1()

В чем может быть причина ошибки?

Теги:


Спасибо:



Поздравляем именинников: Станислав Гайворонский

9 Ответов
Mikhail Sukhov

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


А что за тип исключения?

Спасибо:

Maxim

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


System.ArgumentOutOfRangeException

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

Mikhail Sukhov

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


А Вы случаем перед стопом DDE не отписываетесь от
ProcessUnknownDdeData?

Спасибо:

Maxim

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


Отписываюсь.
Не нужно?

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

Mikhail Sukhov

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


вообще нужно, но в данном случае происходит вот что. вы отписываетесь,
а квик в последний момент присылает дде данные. соответственно
QuikTrader это уже не может обработать. или отписывайтесь, или
игнорируйте ошибку.

Спасибо:

Maxim

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


Немножко не понял логику.

Старт и стоп ДДЕ, насколько я понимаю, запускает и
останавливает поток данных из Квика в QuikTrader.

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

И исходя из этого старт и стоп ДДЕ не должно никак
быть связано с подпиской и отпиской от события.

Поправьте мои рассуждения.

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

Mikhail Sukhov

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


Упустили сам ДДЕ. Он и в квике асинхронен и в S#.

Спасибо:

Maxim

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


Тысячи извинений, но я все равно не понимаю, что Вы имеете ввиду.

Как связано то, что запускаем или останавливаем экспорт данных
из Квика в S#, с тем, что мы подписываемся или отписываемся
на какое либо событие в S#?

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

Mikhail Sukhov

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


QuikTrader через ProcessDataError выводит исключение, если пришла
неизвестная категория и обработчик ProcessUnknown не имеет
подписчиков.

Спасибо:


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

loading
clippy