← 戻る

ПУСТЫЕ ОКНА

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

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

このトピックは参考になりましたか?

トピックを共有

コメント (28)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

ddd888
ddd888 著者

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

ddd888
ddd888 著者

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

Mikhail Sukhov
Mikhail Sukhov

По пунктам:

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

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

Mikhail Sukhov
Mikhail Sukhov

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

ddd888
ddd888 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

ddd888
ddd888 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

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

ddd888
ddd888 著者

Что-то у меня постоянно с экспортом квика проблемы. Только с 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 著者

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

ddd888
ddd888 著者

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

ddd888
ddd888 著者

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

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

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

ddd888
ddd888 著者

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

все сделки: 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 著者

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

ddd888
ddd888 著者

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

ddd888
ddd888 著者

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

ddd888
ddd888 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

ddd888
ddd888 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

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

ddd888
ddd888 著者

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

ddd888
ddd888 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

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