Здравствуйте!
Тестирую стратегию на Украинской бирже и столкнулся с проблемой получения позиций по деривативам из таблицы "Позиции по деривативам". Версия S# 4.0.1, Quik 5.23, 5.24.
Verifier говорит что все настроено правильно, но при старте экспорта ProcessDataError отлавливает:
System.InvalidOperationException: Инструмент с кодом UX1100BL1 для деривативной позиции не найден.
at StockSharp.Quik.QuikTrader.#=q83RC8QjwGE06bYxuClwq92LhVOvhOqg1Ibb6sc3fM$w=
.#=qyv7cgDXipIbE4H64zoSQuQ==(IList`1 #=qnPrMXzejlhZGIiblHaU0yw==, Func`2 #=qoCz5
3tE0sp4RQUb3Ds8GsA==)
at #=qp_fbLTJnFE2othouXvioeCpaCgoD026MlkJsD2ZqOQGLb6nfpDLyRuo5lZzqRlei.#=qAUA
7Once2I3cbE7dXu$MZg==(DdeTable #=qSWwYAwvcL$D4KIHt_5bG3w==, IList`1 #=q6IUmIWmvv
dbuHixc5eXkyQ==, Action`2 #=qTX0q2c4E$ISj79rZpKw6vA==, Action`1 #=qs7PROwMpZp9zz
gPyrFElhg==, Boolean #=qTJVmId$bLpcrK$siTqKJ3A==).
...
И так для всех позиций из таблицы "Позиции по деривативам".
Все эти инструменты в таблице "Инструменты" есть.
Самое удивительное, что через некоторое время позиции таки появляются, но ошибки продолжают сыпаться в ProcessDataError. Сейчас приходится просто убирать из StartExport-а DerivativePositionsTable и работать только с позициями стратегий.

Comentários (14)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Вы лучше скрин этой таблицы приведите.
Извините, забыл сразу прикрепить.
Добавьте соответствующие классы в QuikTrader.SecurityClassInfo
Большое спасибо, заработало :)
Готовое решение для Украинской биржи, если кто-то еще будет с такой проблемой:
QuikTrader.SecurityClassInfo.Add("OPTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Option, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("FUTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Future, Exchange.Ux));
Попрошу для полноты добавить сразу так :)
QuikTrader.SecurityClassInfo.Add("OPTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Option, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("FUTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Future, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("GTS", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Equity, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("RTSIND", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Index, Exchange.Ux));
QuikTrader.SecurityClassInfo.Add("OPTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Option, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("FUTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Future, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("GTS", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Equity, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("RTSIND", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Index, Exchange.Ux));
С RTSIND согласен, будут пересекаться, логично только OPTUX и FUTUX использовать.
А GTS - это класс обычных Equity на Украинской Бирже (не знаю, есть ли он на РТС):
Подскажите , плиз куда нужно дописать :
QuikTrader.SecurityClassInfo.Add("OPTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Option, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("FUTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Future, Exchange.Ux));
В примере Sample.
Хотя наверно проблемма не в этом , потому что инструменты у меня есть , портфель есть, а вот позиций не видно. :(
Спасибо.
Возьмите последнюю версию, там уже это есть
У меня это наверно уже включено.
Инструменты есть , портфель есть, заявки мои видно а вот позиций не видно. :(
в чем может быть проблема ?
Спасибо , вопрос снимаю , добавил в таблицу инструменты инструмент по которому есть откритая позиция и увидел эту позицию в Sample.
Запустите Verifier + посмотрите на событие ProcessDataError