Перешел на 1.8 и после некоторого времени работы оказалось, что не все окна загружаются данными. Заметил это не сразу, потому что в основном пользуюсь окнами "инструменты" и "все сделки" в "Sample", которые выводятся нормально. А вот "Мои сделки" и "заявки" почему-то не хотят выводиться ни в какую! Сто раз перепроверил настройки - все одно - инфо не выводится. DdeError тоже понять причину не помог. В чем может быть дело? Может в формате вывода информации?
-- Subscription settings:http://groups.google.com/group/stocksharp/subscribe?hl=ru
Comentarios (28)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
Формат оказался не при чем. Сегодня сделки стали сами собой выводиться. Как я понял, причина может быть в том, что поскольку "мои сделки" формируются из "все сделки", то какие-то реальные сделки просто могут в таблицу не попасть, если их нет в "моих сделках". Думаю, лучше, если свои сделки будут выводиться вне зависимости от таблицы всех сделок. А с таблицей "заявки" другая история - они почему- то отображают только сделки, созданные в рамках собственной стратегии. Т.е. заявки, сделанные дргуим способом, в т.ч. вручную, туда почему-то не попадают. Разве так должно быть?
Еще заметил одну странность: если запустить сначала "мои сделки" - до "всех сделок", то они нормально отображаются ВСЕ, но почему-то в окне, которое предназначено для "все сделки"!
По пунктам:
Стратегию в Сампл я добавил сам. :) Но до начала включения стратегии таблица заявок выводится пустая, хотя в квике заявки есть. Зато после запуска стратегии, новые заявки начинают добавляться в "заявки". В версии 1.7 такого не было - как запускаешь сампл, так все таблицы отображают все, что есть в квике. Сейчас там другая логика?
А если Вы запустите Sample без изменений (что идет в дистрибутиве 1.8), будет тоже самое?
Специально только что проверил - да, точно так же. В подключениях я ничего не менял - все зменения связанные со стратегией подключаются совершенно отдельно в другом окне. Еще почему-то, если "все сделки" запущены, то "мои сделки" как-то с трудом "вываливают" лишь одну строку - самую первую зарегистрированную сделку.. "инструменты" и "все сделки" идут совершенно свободно и без сбоев. уже голову сломал на этом...
Не совсем понял. Вы проверили на Sample, который идет в дистрибутиве, или уже измененном, но с закомментированными изменениями?
На Сампл, который в дистрибутиве, т.е. в скачанном в архив rar... Извиняюсь, может я не совсем понял, что значит "измененном, но с закомментированными изменениями"?
Имеется ввиду на какой примере проверяете - на моем или на Вашем.
Если это мой пример, без каких-либо изменений, то проблема явно в настройках Квика (раз у других работает, да и ошибка, чтобы заявки не приходили - очень и очень большая, я бы на своих роботах заметил). DdeError ничего не выводит или выводит непонятно?
Что-то у меня постоянно с экспортом квика проблемы. Только с 1.7 все с трудом настроил, а тут опять.. :(( DdeError у меня выбрасывает ошибку и в отладке сообщение: "Метод не реализован", указывая на это throw:
void Trader_DdeError(Exception obj) { throw new NotImplementedException(); }
подключаюсь к ошибке так:
this.Trader.DdeError += new Action<Exception>(Trader_DdeError);
Наверное, не так подключаюсь?
=) дык конечно, там где смотреть ошибку, Вы выбрасываете ошибку:
throw new NotImplementedException();
Выводите хотя бы через MessageBox тест ошибки (Ctrl+Ins - копирование из окна).
Кажется, поймал ошибку! :) Вывелось следующее:
"Данные для таблицы 'ВСЕ СДЕЛКИ' экспортировались в меньшем формате. Не было найдено значение для колонки 'OrderDirection'"
Хотя в таблице "все сделки" есть колонка "операция". Как это понимать?
DdeTradeColumns.OrderDirection.Index чему равен? Сколько колонок в таблице в Квике?
Равен 8. И колонок 8.
Еще такое исключение поймал:
"Невозможно для колонки TransactionID привести значение "27522334455" к типу Int32"
Это он про какую таблицу ругается? И почему?
Все как в указано в настройках:
все сделки: 1 Номер 2 Время 3 Код бумаги 4 Класс 5 Цена 6 Кол-во 7 Операция 8 Дата
мои сделки: 1 Номер 2 Время 3 Код бумаги 4 Код класса 5 Цена 6 Кол-во 7 Заявка 8 Дата торгов
Минутку, а почему 8? Разве не 7 колонок? Да и индекс должен быть в таком случае 7, потому что нумерация с 0-ля.
Я ошибся - забыл про дату... Индекс колонки должен быть 6. Почему он у Вас равен 8 - ума не приложу. Это точно пример без изменений?
Пример - да, без изменений. Но сейчас я понял, почему порядок колонок неправилтьный. В 1.7 был пример с добавлением OrderDirection в "мои сделки". Так он у меня там там и остался! (Кстати, а зачем Вы убрали эту колонку? По-моему, очень даже нелишняя была информация.) Сейчас его убрал и колонки во "всех сделках" упорядочились как надо. OrderDirection = 6-я счету, Date - 7-я. Но "мои сделки" и "заявки" по- прежнему не хотят грузиться.... DdeError говорит теперь: "Невозможно для колонки TransactionID привести значение "2764260415" к типу Int32. Имя параметра: value| System.Collections.ListDictionaryInternal"
Кажется, значение оказалось за пределами Int32?
Похоже, что дело в этом - нашел заявку с этим номером. Как раз перед ней останавливается экспорт в мои заявки. Ведь при экспорте в сампл данные колонки TransactionID воспринимаются как int, так? Что же делать, если номер выходит за пределы int?
Спасибо большое за помощь. Теперь все стало ясно. Заменил в квике колонку "ID транзакции" на 2-й "Номер" и все заработало. Правда, от "ID транзакции" приходится отказываться все равно осталось неясным, как поступить, если какой-либо номер выходит за пределы int?
А как Вы создали заявку с таким с такими номером транзакции?
У меня есть роботы в других программах, в частности, в Амиброкере. Они формируют заявки со своими номерами, но как я заметил, Квик выставляет вместо них какие-то свои номера. По какому алгоритму он это делает - не знаю, не было причин разобраться. Может, вы знаете?
Я вчера нашел ошибку, которую будет исправлена в следующей релизе. У меня максимальный номер транзакции был в два раза меньше максимально допустимого Квиком.
Скорее всего Ами использует еще больший номер. Я преверял. Если увеличить Max Quik Trans Id на 1, то будет уже ноль. И так далее. Это называется переполнение числа, когда большее число приводится к меньшему.
Где-то прочитал, что эти номера формируются брокером, т.е. от трейдера самого не зависят... Значит, потенциально такие номера могут возникнуть у кого угодно. Получается, что в общем случае для этого поля типа int будет недостаточно.
Рад, если смог поспособствовать развитию. :) А разве максимальный размер не зависит от типа допустимого в поле числа? Просто у меня номер транзакции был как раз немного выше верхнего предела int?
Да, спасибо, нетривиальная ситуация, что сказать.
2764260415 - это не ниже, а намного выше int.MaxValue.