Здравствуйте!
Тестирую стратегию на Украинской бирже и столкнулся с проблемой получения позиций по деривативам из таблицы "Позиции по деривативам". Версия 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 и работать только с позициями стратегий.

Kommentare (14)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Вы лучше скрин этой таблицы приведите.
Извините, забыл сразу прикрепить.
Добавьте соответствующие классы в 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