← Zurück

ПУСТЫЕ ОКНА

Перешел на 1.8 и после некоторого времени работы оказалось, что не все окна загружаются данными. Заметил это не сразу, потому что в основном пользуюсь окнами "инструменты" и "все сделки" в "Sample", которые выводятся нормально. А вот "Мои сделки" и "заявки" почему-то не хотят выводиться ни в какую! Сто раз перепроверил настройки - все одно - инфо не выводится. DdeError тоже понять причину не помог. В чем может быть дело? Может в формате вывода информации?

-- Subscription settings:http://groups.google.com/group/stocksharp/subscribe?hl=ru

War dieses Thema hilfreich?

Thema teilen

Kommentare (28)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

ddd888
ddd888 Autor

Формат оказался не при чем. Сегодня сделки стали сами собой выводиться. Как я понял, причина может быть в том, что поскольку "мои сделки" формируются из "все сделки", то какие-то реальные сделки просто могут в таблицу не попасть, если их нет в "моих сделках". Думаю, лучше, если свои сделки будут выводиться вне зависимости от таблицы всех сделок. А с таблицей "заявки" другая история - они почему- то отображают только сделки, созданные в рамках собственной стратегии. Т.е. заявки, сделанные дргуим способом, в т.ч. вручную, туда почему-то не попадают. Разве так должно быть?

ddd888
ddd888 Autor

Еще заметил одну странность: если запустить сначала "мои сделки" - до "всех сделок", то они нормально отображаются ВСЕ, но почему-то в окне, которое предназначено для "все сделки"!

Mikhail Sukhov
Mikhail Sukhov

По пунктам:

  1. Мои сделки зависят от заявок. Тоесть, если нет заявки, то и моя сделка не появится.
  2. Мои сделки генерируют событие NewTrades. Просто как оптимизация. Потому что моя сделка основана на всех сделках (обратное неверно).
  3. Что значит "А с таблицей "заявки" другая история - они почему-то отображают только сделки, созданные в рамках собственной стратегии." Если Вы запускаете Sample, то там нет никаких стратегий. Работа со стратегиями показана в примере SampleSMA
ddd888
ddd888 Autor

Стратегию в Сампл я добавил сам. :) Но до начала включения стратегии таблица заявок выводится пустая, хотя в квике заявки есть. Зато после запуска стратегии, новые заявки начинают добавляться в "заявки". В версии 1.7 такого не было - как запускаешь сампл, так все таблицы отображают все, что есть в квике. Сейчас там другая логика?

Mikhail Sukhov
Mikhail Sukhov

А если Вы запустите Sample без изменений (что идет в дистрибутиве 1.8), будет тоже самое?

ddd888
ddd888 Autor

Специально только что проверил - да, точно так же. В подключениях я ничего не менял - все зменения связанные со стратегией подключаются совершенно отдельно в другом окне. Еще почему-то, если "все сделки" запущены, то "мои сделки" как-то с трудом "вываливают" лишь одну строку - самую первую зарегистрированную сделку.. "инструменты" и "все сделки" идут совершенно свободно и без сбоев. уже голову сломал на этом...

Mikhail Sukhov
Mikhail Sukhov

Не совсем понял. Вы проверили на Sample, который идет в дистрибутиве, или уже измененном, но с закомментированными изменениями?

ddd888
ddd888 Autor

На Сампл, который в дистрибутиве, т.е. в скачанном в архив rar... Извиняюсь, может я не совсем понял, что значит "измененном, но с закомментированными изменениями"?

Mikhail Sukhov
Mikhail Sukhov

Имеется ввиду на какой примере проверяете - на моем или на Вашем.

Если это мой пример, без каких-либо изменений, то проблема явно в настройках Квика (раз у других работает, да и ошибка, чтобы заявки не приходили - очень и очень большая, я бы на своих роботах заметил). DdeError ничего не выводит или выводит непонятно?

ddd888
ddd888 Autor

Что-то у меня постоянно с экспортом квика проблемы. Только с 1.7 все с трудом настроил, а тут опять.. :(( DdeError у меня выбрасывает ошибку и в отладке сообщение: "Метод не реализован", указывая на это throw:

void Trader_DdeError(Exception obj) { throw new NotImplementedException(); }

подключаюсь к ошибке так:

this.Trader.DdeError += new Action<Exception>(Trader_DdeError);

Наверное, не так подключаюсь?

Mikhail Sukhov
Mikhail Sukhov

=) дык конечно, там где смотреть ошибку, Вы выбрасываете ошибку:

throw new NotImplementedException();

Выводите хотя бы через MessageBox тест ошибки (Ctrl+Ins - копирование из окна).

ddd888
ddd888 Autor

Кажется, поймал ошибку! :) Вывелось следующее:

"Данные для таблицы 'ВСЕ СДЕЛКИ' экспортировались в меньшем формате. Не было найдено значение для колонки 'OrderDirection'"

Хотя в таблице "все сделки" есть колонка "операция". Как это понимать?

Mikhail Sukhov
Mikhail Sukhov

DdeTradeColumns.OrderDirection.Index чему равен? Сколько колонок в таблице в Квике?

ddd888
ddd888 Autor

Равен 8. И колонок 8.

ddd888
ddd888 Autor

Еще такое исключение поймал:

"Невозможно для колонки TransactionID привести значение "27522334455" к типу Int32"

Это он про какую таблицу ругается? И почему?

ddd888
ddd888 Autor

Все как в указано в настройках:

все сделки: 1 Номер 2 Время 3 Код бумаги 4 Класс 5 Цена 6 Кол-во 7 Операция 8 Дата

мои сделки: 1 Номер 2 Время 3 Код бумаги 4 Код класса 5 Цена 6 Кол-во 7 Заявка 8 Дата торгов

Mikhail Sukhov
Mikhail Sukhov

Минутку, а почему 8? Разве не 7 колонок? Да и индекс должен быть в таком случае 7, потому что нумерация с 0-ля.

Mikhail Sukhov
Mikhail Sukhov

Я ошибся - забыл про дату... Индекс колонки должен быть 6. Почему он у Вас равен 8 - ума не приложу. Это точно пример без изменений?

ddd888
ddd888 Autor

Пример - да, без изменений. Но сейчас я понял, почему порядок колонок неправилтьный. В 1.7 был пример с добавлением OrderDirection в "мои сделки". Так он у меня там там и остался! (Кстати, а зачем Вы убрали эту колонку? По-моему, очень даже нелишняя была информация.) Сейчас его убрал и колонки во "всех сделках" упорядочились как надо. OrderDirection = 6-я счету, Date - 7-я. Но "мои сделки" и "заявки" по- прежнему не хотят грузиться.... DdeError говорит теперь: "Невозможно для колонки TransactionID привести значение "2764260415" к типу Int32. Имя параметра: value| System.Collections.ListDictionaryInternal"

ddd888
ddd888 Autor

Кажется, значение оказалось за пределами Int32?

ddd888
ddd888 Autor

Похоже, что дело в этом - нашел заявку с этим номером. Как раз перед ней останавливается экспорт в мои заявки. Ведь при экспорте в сампл данные колонки TransactionID воспринимаются как int, так? Что же делать, если номер выходит за пределы int?

ddd888
ddd888 Autor

Спасибо большое за помощь. Теперь все стало ясно. Заменил в квике колонку "ID транзакции" на 2-й "Номер" и все заработало. Правда, от "ID транзакции" приходится отказываться все равно осталось неясным, как поступить, если какой-либо номер выходит за пределы int?

Mikhail Sukhov
Mikhail Sukhov

А как Вы создали заявку с таким с такими номером транзакции?

ddd888
ddd888 Autor

У меня есть роботы в других программах, в частности, в Амиброкере. Они формируют заявки со своими номерами, но как я заметил, Квик выставляет вместо них какие-то свои номера. По какому алгоритму он это делает - не знаю, не было причин разобраться. Может, вы знаете?

Mikhail Sukhov
Mikhail Sukhov

Я вчера нашел ошибку, которую будет исправлена в следующей релизе. У меня максимальный номер транзакции был в два раза меньше максимально допустимого Квиком.

Скорее всего Ами использует еще больший номер. Я преверял. Если увеличить Max Quik Trans Id на 1, то будет уже ноль. И так далее. Это называется переполнение числа, когда большее число приводится к меньшему.

ddd888
ddd888 Autor

Где-то прочитал, что эти номера формируются брокером, т.е. от трейдера самого не зависят... Значит, потенциально такие номера могут возникнуть у кого угодно. Получается, что в общем случае для этого поля типа int будет недостаточно.

ddd888
ddd888 Autor

Рад, если смог поспособствовать развитию. :) А разве максимальный размер не зависит от типа допустимого в поле числа? Просто у меня номер транзакции был как раз немного выше верхнего предела int?

Mikhail Sukhov
Mikhail Sukhov

Да, спасибо, нетривиальная ситуация, что сказать.

2764260415 - это не ниже, а намного выше int.MaxValue.