← Zurück

Позиции по деривативам

Здравствуйте!

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

verifier DerivativePosition DDE error positions DerivativePosition error

War dieses Thema hilfreich?

Thema teilen

Kommentare (14)

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

Mikhail Sukhov
Mikhail Sukhov

aleksej: Все эти инструменты в таблице "Инструменты" есть.

Вы лучше скрин этой таблицы приведите.

aleksej
aleksej Autor

Извините, забыл сразу прикрепить.

instruments DerivativePositions error

Mikhail Sukhov
Mikhail Sukhov

aleksej: Извините, забыл сразу прикрепить.

Добавьте соответствующие классы в QuikTrader.SecurityClassInfo

aleksej
aleksej Autor

Большое спасибо, заработало :)

Готовое решение для Украинской биржи, если кто-то еще будет с такой проблемой:


QuikTrader.SecurityClassInfo.Add("OPTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Option, Exchange.Ux));
QuikTrader.SecurityClassInfo.Add("FUTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Future, Exchange.Ux));

Alexander
Alexander

aleksej: Большое спасибо, заработало :)

Готовое решение для Украинской биржи, если кто-то еще будет с такой проблемой:

QuikTrader.SecurityClassInfo.Add("OPTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Option, Exchange.Ux)); QuikTrader.SecurityClassInfo.Add("FUTUX", new RefPair<SecurityTypes, Exchange>(SecurityTypes.Future, Exchange.Ux));


Совершенно верно. :)

Добавим в S# 4.0.2 которая будет на codelpex. Спасибо за фидбек.
aleksej
aleksej Autor

Попрошу для полноты добавить сразу так :)


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));

Alexander
Alexander

aleksej: Попрошу для полноты добавить сразу так :)

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));


Индекс автоматом проставляется
Про GTS можно поподробнее - что это? В инете пусто.
Mikhail Sukhov
Mikhail Sukhov

aleksej: Попрошу для полноты добавить сразу так :)

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));


Последние два кода будет добавить проблематично. Они могут использоваться и для наших бирж.
aleksej
aleksej Autor

С RTSIND согласен, будут пересекаться, логично только OPTUX и FUTUX использовать.

А GTS - это класс обычных Equity на Украинской Бирже (не знаю, есть ли он на РТС):

lesser
lesser

Подскажите , плиз куда нужно дописать :

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.

Хотя наверно проблемма не в этом , потому что инструменты у меня есть , портфель есть, а вот позиций не видно. :(

Спасибо.

Alexander
Alexander

lesser: Подскажите , плиз куда нужно дописать :

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.

Спасибо.

Возьмите последнюю версию, там уже это есть

lesser
lesser

У меня это наверно уже включено.

Инструменты есть , портфель есть, заявки мои видно а вот позиций не видно. :(

в чем может быть проблема ?

lesser
lesser

Спасибо , вопрос снимаю , добавил в таблицу инструменты инструмент по которому есть откритая позиция и увидел эту позицию в Sample.

Alexander
Alexander

lesser: Должны быть видны все позиции или только позиции по инструментам с таблицы Секюритис ?

Запустите Verifier + посмотрите на событие ProcessDataError