Перешел на 1.8 и после некоторого времени работы оказалось, что не все окна загружаются данными. Заметил это не сразу, потому что в основном пользуюсь окнами "инструменты" и "все сделки" в "Sample", которые выводятся нормально. А вот "Мои сделки" и "заявки" почему-то не хотят выводиться ни в какую! Сто раз перепроверил настройки - все одно - инфо не выводится. DdeError тоже понять причину не помог. В чем может быть дело? Может в формате вывода информации?
-- Subscription settings:http://groups.google.com/group/stocksharp/subscribe?hl=ru
Kommentare (28)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Формат оказался не при чем. Сегодня сделки стали сами собой выводиться. Как я понял, причина может быть в том, что поскольку "мои сделки" формируются из "все сделки", то какие-то реальные сделки просто могут в таблицу не попасть, если их нет в "моих сделках". Думаю, лучше, если свои сделки будут выводиться вне зависимости от таблицы всех сделок. А с таблицей "заявки" другая история - они почему- то отображают только сделки, созданные в рамках собственной стратегии. Т.е. заявки, сделанные дргуим способом, в т.ч. вручную, туда почему-то не попадают. Разве так должно быть?
Еще заметил одну странность: если запустить сначала "мои сделки" - до "всех сделок", то они нормально отображаются ВСЕ, но почему-то в окне, которое предназначено для "все сделки"!
По пунктам:
Стратегию в Сампл я добавил сам. :) Но до начала включения стратегии таблица заявок выводится пустая, хотя в квике заявки есть. Зато после запуска стратегии, новые заявки начинают добавляться в "заявки". В версии 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.