mdv
|
Date: 10/5/2011
|
|
|
|
|
Извините, был в отпуске. Надеялся что проблема решится с новой версией библиотеки, однако не решилась.
Проблема решена в привате - помогла совокупность мер:
- удаление лишних вкладок в квике
- обновление квика
- запуск квика от имени администратора
- запуск робота от имени администратора.
Все эти условия выполняются. Quik версии 5.24.0.58 от БКС (на запрос обновления говорит, что версия актуальная). Вкладка одна. Работаю под администратором.
Повторюсь: ту же скомпилированную программу запускаю под Quik junior и котирование работает.
Запускаю экспорт всего.
В таблице "Портфели по деривативам" ранее дублировались счета, но я оставил только показ денежных средств и теперь дублирования нет.
Тем не менее в Trader.ProcessDataError вижу исключение "An item with the same key has already been added."
at StockSharp.Quik.QuikTrader.#=q83RC8QjwGE06bYxuClwq92LhVOvhOqg1Ibb6sc3fM$w=.#=qHtaS6txU5q5s$pGByXL11A==(Exception #=q3EX0jksDxWU3FAj8z3Iysg==)
at #=qp_fbLTJnFE2othouXvioeCpaCgoD026MlkJsD2ZqOQGLb6nfpDLyRuo5lZzqRlei.#=qAUA7Once2I3cbE7dXu$MZg==(DdeTable #=qSWwYAwvcL$D4KIHt_5bG3w==, IList`1 #=q6IUmIWmvvdbuHixc5eXkyQ==, Action`2 #=qTX0q2c4E$ISj79rZpKw6vA==, Action`1 #=qs7PROwMpZp9zzgPyrFElhg==, Boolean #=qTJVmId$bLpcrK$siTqKJ3A==)
at StockSharp.Quik.QuikTrader.#=q83RC8QjwGE06bYxuClwq92LhVOvhOqg1Ibb6sc3fM$w=.#=qai1UIIPXichyJylDPEZbQA==()
at StockSharp.Algo.BaseTrader.ProcessEvents(Action handler)
Подскажите, пожалуйста, как действовать дальше.
|
|
|
|
Thanks:
|
|
|
|
|
|
mdv
|
Date: 10/5/2011
И еще вопрос, возможно не для этой темы. Так как котирование у меня не работает, я использую обычные заявки. А в них нужно указать цену. Раньше я брал ее из LastTrade, а теперь LastTrade равен null. Где брать цену? Получаю стакан - там тоже BestAsk/BeatBid null. Чтобы получить руками последнюю сделку, надо подождать, пока все сделки загрузятся (через событие новых сделок), а их очень много. И что значит "по умолчонию равен null"? Можно где-то включить что-то, чтобы это поле было не null?
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 10/5/2011
mdv:
И еще вопрос, возможно не для этой темы. Так как котирование у меня не работает, я использую обычные заявки. А в них нужно указать цену. Раньше я брал ее из LastTrade, а теперь LastTrade равен null. Где брать цену? Получаю стакан - там тоже BestAsk/BeatBid null. Чтобы получить руками последнюю сделку, надо подождать, пока все сделки загрузятся (через событие новых сделок), а их очень много. И что значит "по умолчонию равен null"? Можно где-то включить что-то, чтобы это поле было не null?
Значит раньше вы брали нулевую цени и тогда по определению работать должно было неправильно. Запустите экспорт стакана.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 10/5/2011
mdv:
В таблице "Портфели по деривативам" ранее дублировались счета, но я оставил только показ денежных средств и теперь дублирования нет.
Тем не менее в Trader.ProcessDataError вижу исключение "An item with the same key has already been added."
Выведите данные, что приходят через QuikTrader.PreProcessDdeData.
|
|
|
|
|
|
|
Alexander
|
Date: 10/5/2011
|
|
|
|
|
mdv:
И еще вопрос, возможно не для этой темы. Так как котирование у меня не работает, я использую обычные заявки. А в них нужно указать цену. Раньше я брал ее из LastTrade, а теперь LastTrade равен null. Где брать цену? Получаю стакан - там тоже BestAsk/BeatBid null. Чтобы получить руками последнюю сделку, надо подождать, пока все сделки загрузятся (через событие новых сделок), а их очень много. И что значит "по умолчонию равен null"? Можно где-то включить что-то, чтобы это поле было не null?
Цену брать из последней сделки. Как придёт - так установится не в null. Тоже самое с BestAsk.
И то и то устанавливается как приходит первая сделка \ появляется стакан.
Для последнего - необходим экспорт стакана.
И что значит "по умолчонию равен null"? Можно где-то включить что-то, чтобы это поле было не null?
А чему вы хотите чтобы это поле было равно? :))
Если нет сделок - нет последней цены. Раньше цена равнялась 0, что неверно.
Хотите произвольную цену - создайте и задайте LastTrade сами, указав в нём Price.
|
|
|
|
Thanks:
|
|
|
|
|
|
mdv
|
Date: 10/5/2011
|
|
|
|
|
Экспорт стакана запущен. Но Trader.GetMarketDepth(Security).BestAsk == null.
Решил проблему добавив в Quik в таблицу Инструментов нужные поля.
А что нужно посмотреть в данных из Quik? Вот я распечатал названия таблиц.
12:11:23.965 | | MQS | Стратегия запущена.
12:11:24.015 | Error | TLS | An item with the same key has already been added.
12:11:24.249 | Warning | TLS | все сделки
12:11:24.507 | Warning | TLS | [стакан]RIZ1@RTS
12:11:24.627 | Error | TLS | An item with the same key has already been added.
12:11:24.979 | Warning | TLS | инструменты
12:11:24.994 | Warning | TLS | инструменты
12:11:25.014 | Warning | TLS | инструменты
12:11:25.185 | Warning | TLS | все сделки
12:11:25.216 | Warning | TLS | инструменты
12:11:25.217 | Warning | TLS | инструменты
12:11:25.287 | Warning | TLS | [стакан]RIZ1@RTS
12:11:25.309 | Warning | TLS | инструменты
12:11:25.340 | Error | TLS | An item with the same key has already been added.
12:11:25.369 | Warning | TLS | инструменты
12:11:25.370 | Warning | TLS | инструменты
12:11:25.419 | Warning | TLS | инструменты
12:11:25.525 | Warning | TLS | инструменты
12:11:25.851 | Warning | TLS | инструменты
12:11:26.067 | Warning | TLS | инструменты
12:11:26.091 | Warning | TLS | все сделки
12:11:26.300 | Warning | TLS | [стакан]RIZ1@RTS
12:11:26.322 | Error | TLS | An item with the same key has already been added.
12:11:26.672 | Warning | TLS | инструменты
12:11:27.283 | Warning | TLS | инструменты
12:11:27.291 | Warning | TLS | инструменты
12:11:27.315 | Warning | TLS | [стакан]RIZ1@RTS
12:11:27.366 | Error | TLS | An item with the same key has already been added.
12:11:27.477 | Warning | TLS | все сделки
12:11:27.486 | Warning | TLS | инструменты
12:11:27.691 | Warning | TLS | инструменты
12:11:28.329 | Warning | TLS | [стакан]RIZ1@RTS
12:11:28.368 | Error | TLS | An item with the same key has already been added.
12:11:28.743 | Warning | TLS | все сделки
12:11:29.343 | Warning | TLS | [стакан]RIZ1@RTS
12:11:29.383 | Error | TLS | An item with the same key has already been added.
12:11:29.671 | Warning | TLS | инструменты
12:11:29.888 | Warning | TLS | инструменты
12:11:30.015 | Warning | TLS | все сделки
12:11:30.091 | Warning | TLS | инструменты
12:11:30.108 | Warning | TLS | инструменты
12:11:30.227 | Warning | TLS | инструменты
12:11:30.233 | Warning | TLS | инструменты
12:11:30.355 | Warning | TLS | [стакан]RIZ1@RTS
12:11:30.376 | Error | TLS | An item with the same key has already been added.
12:11:30.429 | Warning | TLS | инструменты
12:11:30.628 | Warning | TLS | инструменты
12:11:30.642 | Warning | TLS | инструменты
12:11:31.050 | Warning | TLS | инструменты
12:11:31.362 | Warning | TLS | все сделки
12:11:31.377 | Warning | TLS | [стакан]RIZ1@RTS
12:11:31.393 | Error | TLS | An item with the same key has already been added.
12:11:31.424 | Warning | TLS | инструменты
12:11:31.643 | Warning | TLS | инструменты
12:11:31.858 | Warning | TLS | инструменты
12:11:32.063 | Warning | TLS | инструменты
12:11:32.387 | Warning | TLS | [стакан]RIZ1@RTS
12:11:32.443 | Error | TLS | An item with the same key has already been added.
12:11:32.683 | Warning | TLS | инструменты
12:11:32.831 | Warning | TLS | все сделки
12:11:33.411 | Warning | TLS | [стакан]RIZ1@RTS
12:11:33.443 | Error | TLS | An item with the same key has already been added.
|
|
|
|
Thanks:
|
|
|
|
|
|
Alexander
|
Date: 10/5/2011
И да, Verifier что пишет?
Версия 4.0.1?
|
|
|
|
|
|
|
mdv
|
Date: 10/5/2011
Все, мужики, каюсь. Столбцы были перепутаны в стакане. Спасибо вам огромное за помощь!
Сейчас и в стакане не null-ы =))
Alexander Mukhanchikov:
А чему вы хотите чтобы это поле было равно? :))
Если нет сделок - нет последней цены. Раньше цена равнялась 0, что неверно.
Хотите произвольную цену - создайте и задайте LastTrade сами, указав в нём Price.
Я неправильно понял слово "По умолчанию", так то естественно, что 0 - это неправильно.
|
|
|
|
Thanks:
|
|
|
|
|
|
mdv
|
Date: 10/17/2011
|
|
|
|
|
Столкнулся еще вот с какой проблемой при котировании.
20:33:01.477 | | TLS | Стратегия хочет продать 2.
20:33:01.533 | | MQS | Стратегия запущена.
20:33:01.674 | | MQS | Регистрация новой заявки на Sell с ценой 139600 и объемом 2.
20:33:01.794 | | MQS | Заявка 73798096 на Sell отправлена с ценой 139600 объемом 2.
20:33:02.024 | | MQS | Обработка Limit заявки 73798096 на Sell с номером 5467784981.
20:33:02.693 | | MQS | Цена текущей 139600 и лучшей 139550.
20:33:02.695 | | MQS | Лучший бид 139560 и лучший аск 139590.
20:33:02.766 | | MQS | Котирование заявки 73798096 на Sell с ценой 139600 объемом 2.
20:33:02.829 | | MQS | Перекотирование зарегистрировано для заявки 73798097 на Sell с ценой 139550 объемом 2.
20:33:03.051 | Error | MQS | Заявка 73798097 не была принята по причине System.InvalidOperationException: Сервер для транзакции 'ACTION=MOVE_ORDERS; TRANS_ID=73798097; CLASSCODE=SPBFUT; SECCODE=RIZ1; MODE=0; FIRST_ORDER_NUMBER=5467784981; FIRST_ORDER_NEW_PRICE=139550; FIRST_ORDER_NEW_QUANTITY=2;' вернул неправильное сообщение 'Ошибка перестановки заявок. [FORTS] "Не найдена заявка для перестановки.".' по передвинутым заявкам..
20:33:03.986 | Error | MQS | Котируемая заявка 73798097 не принята биржей по причине 'Сервер для транзакции 'ACTION=MOVE_ORDERS; TRANS_ID=73798097; CLASSCODE=SPBFUT; SECCODE=RIZ1; MODE=0; FIRST_ORDER_NUMBER=5467784981; FIRST_ORDER_NEW_PRICE=139550; FIRST_ORDER_NEW_QUANTITY=2;' вернул неправильное сообщение 'Ошибка перестановки заявок. [FORTS] "Не найдена заявка для перестановки.".' по передвинутым заявкам.'.
Если я правильно понимаю, вместо заявки 73798096 стратегия начала перекотировать заявку 73798097.
Прокомментируйте, пожалуйста, как такое возможно? Или эти номера вообще к делу не относятся, а относится только 5467784981?
Кстати, после такой ошибки, какое поведение должно быть у стратегии котирования? У меня сложилось впечатление,
что она забыла про заявку 73798096, ибо продала она в результате 4 вместо 2. Кусок лога, следующий сразу за предыдущим.
20:33:03.987 | | MQS | Регистрация новой заявки на Sell с ценой 139550 и объемом 2.
20:33:04.040 | | MQS | Заявка 73798100 на Sell отправлена с ценой 139550 объемом 2.
20:33:04.080 | Warning | MQS | Заявка 73798100 не имеет состояния.
20:33:04.088 | | MQS | Обработка Conditional заявки 73798099 на Buy с номером 6628110.
20:33:04.174 | | MQS | Позиция изменилась на -2.
20:33:04.195 | | MQS | Новая Sell сделка 426260967 на 1 заявки 73798096.
20:33:04.196 | | MQS | Заканчиваем котирование с неисполненным объемом равный 0.
20:33:04.197 | | MQS | Стратегия останавливается.
20:33:04.198 | | MQS | Заканчиваем котирование с неисполненным объемом равный 0.
20:33:04.198 | | MQS | Новая Sell сделка 426260968 на 1 заявки 73798096.
20:33:04.203 | | MQS | Заканчиваем котирование с неисполненным объемом равный 0.
20:33:04.247 | | MQS | Обработка Limit заявки 73798100 на Sell с номером 5467785811.
20:33:04.387 | | MQS | Новая Sell сделка 426261019 на 1 заявки 73798100.
20:33:04.428 | | MQS | Новая Sell сделка 426261020 на 1 заявки 73798100.
Вот эти 8значные номера - как они используются? Дело в том, что у меня выставляются стопы параллельно с котированием.
И вот мне кажется, что некоторые номера из этой последовательности уходят на мои стопы, и из-за этого происходят ошибки.
Как с этим бороться? Стопы выставляются просто по изменению позиции.
|
|
|
|
Thanks:
|
|
|
|
|
|
mdv
|
Date: 10/21/2011
Отключил выставление стопов вообще, ситуация не изменилась. Уважаемые разработчики, у вас есть какие-нибудь предположения на счет этой ошибки про отсутствие заявки для перестановки?
Мне кажется, это очень важный момент, так как такая же проблема описывалась тут: http://stocksharp.com/posts/m/10521/ и насколько я понял, не была решена.
|
|
|
|
Thanks:
|
|
|
|
|