← 戻る

Специфическая проблема с экспортом таблицы инструментов Quik

Уважаемые разработчики!

Дело в том, что у меня в таблице инструментов в Quik'e есть индекс волатильности и кросс-курс доллара. У них естетственно пустые поля: статус, лот, минимальный шаг цены. До версии 3.2.6 включительно все работало нормально. В версии 3.2.7 полетели эксепшены:


System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
   at StockSharp.BusinessEntities.Security.set_MinStepPrice(Decimal value)
   at StockSharp.Quik.QuikTrader.#=q_l$KnlP0LYZvJ39WG83GyZFP29Nwhq2mV6KHIdxI5EY=.#=qDDN5g_NFs2bqf1Q9WN4RbgdBab9x6XBq2qAX7PPt9rA=.#=qWz6GNCSe6KXCjtRQtxeT9g==(Security #=qNoWXl$HOXHyDaFfS5FMJyA==)
   at StockSharp.Algo.BaseTrader.GetSecurity(String id, Func`2 createSecurity, Action`1 changeSecurity, String nativeSecurityId)
   at StockSharp.Algo.BaseTrader.GetSecurity(String id, Action`1 changeSecurity, String nativeSecurityId)
   at StockSharp.Quik.QuikTrader.#=q_l$KnlP0LYZvJ39WG83GyZFP29Nwhq2mV6KHIdxI5EY=.#=qZCiGxihf3t4IUbOQefzk7Q==(IList`1 #=qN5t88rGANJGSV4G0pVi4lg==, Func`2 #=qCeFnB4loT_0g64z0EuzkTQ==)
   at #=qsNo5gBfOjKbXuJhHlST4loDqty655uZbS78AxBIFUh9RDZ4hDHtsPpVEgTmwK$aY.#=q1DcVvcpdVtlEyKz43pjqkw==(DdeTable #=qdaLOixdLYjDruLjrhrLsaQ==, IList`1 #=qJgH$JXnTn06RM00RHbShpA==, Action`2 #=qBmDZyuKkjEfLLPgb2j5qhw==, Action`1 #=q8_5DOEhhTeGxkUvqtPQI9g==)

Нельзя ли поправить проверку чтобы она пропускала пустые поля, но ругалась на нулевые и отрицательные?

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

トピックを共有

コメント (11)

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

Mikhail Sukhov
Mikhail Sukhov

Den: Нельзя ли поправить проверку чтобы она пропускала пустые поля, но ругалась на нулевые и отрицательные?

Может их как-то фильтровать по коду или классу?

Den
Den 著者

Mikhail Sukhov:

Den: Нельзя ли поправить проверку чтобы она пропускала пустые поля, но ругалась на нулевые и отрицательные?

Может их как-то фильтровать по коду или классу? Я их использую в роботе. В таблицу инструментов добавлены колонки, кот. показывают их значения, я их извлекаю через ExtensionInfo[DdeSecurityColumns.<...>].

Может быть можно в S# перед вызовом StockSharp.BusinessEntities.Security.set_MinStepPrice(Decimal value) сделать проверку вида (value == null) ? 0 : value?

Mikhail Sukhov
Mikhail Sukhov

Den: Я их использую в роботе.

Я имел ввиду фильтровать нам, в S#. Чтобы уметь отделять данные по спец инструментам и просто неправильную настройку таблиц.

Den
Den 著者

Mikhail Sukhov:

Den: Я их использую в роботе.

Я имел ввиду фильтровать нам, в S#. Чтобы уметь отделять данные по спец инструментам и просто неправильную настройку таблиц.

Тогда, думаю, по коду класса лучше всего. У индексов на РТС код класса: RTSIDX, на мамбе: INDX, у кросс-курса USD: USDRUB.

Mikhail Sukhov
Mikhail Sukhov

Den: у кросс-курса USD: USDRUB.

А если другая валюта?

Den
Den 著者

Mikhail Sukhov:

Den: у кросс-курса USD: USDRUB.

А если другая валюта?

На ФОРТС'е только один кросс-курс - доллар-рубль.

Den
Den 著者

Den:

Mikhail Sukhov:

Den: Я их использую в роботе.

Я имел ввиду фильтровать нам, в S#. Чтобы уметь отделять данные по спец инструментам и просто неправильную настройку таблиц.

Тогда, думаю, по коду класса лучше всего. У индексов на РТС код класса: RTSIDX, на мамбе: INDX, у кросс-курса USD: USDRUB.

Видимо проверка в 3.2.9 изменилась, т.к. теперь другое сообщение эксепшена. Но индексы по-прежнему не грузятся...


System.ArgumentOutOfRangeException: Стоимость шага цены не может быть меньше или равна нулю.
Parameter name: value
Actual value was 0.
   at StockSharp.BusinessEntities.Security.set_MinStepPrice(Decimal value)
   at StockSharp.Quik.QuikTrader.#=qvWLt08KMC7_T$lDfPoYcjkzUlFuUKjKk5105gVIjxW4=.#=qNQNIA8FwBPOz5N52JgSk3EaSnbbF14njhoTCd4OZ4iY=.#=q0dvRT12ZRZfnayIrmctLeQ==(Security #=qLqB$dwnxlEq_C_zeHJ9jug==)
   at StockSharp.Algo.BaseTrader.GetSecurity(String id, Func`2 createSecurity, Action`1 changeSecurity, String nativeSecurityId)
   at StockSharp.Algo.BaseTrader.GetSecurity(String id, Action`1 changeSecurity, String nativeSecurityId)
   at StockSharp.Quik.QuikTrader.#=qvWLt08KMC7_T$lDfPoYcjkzUlFuUKjKk5105gVIjxW4=.#=qPEZ4ubw8zPwxTozqlxfzxQ==(IList`1 #=qj2Qg5TzCfpg18FUsLaCcaQ==, Func`2 #=qT1vn0Gic3ovvXEeiRaZd_w==)
   at #=q$mfd75rYBSoN6_rT4z6GKGvCmI0cokZjOHm6RdOge0iVqLxEp_8fAMMLu9n$8Rq7.#=qeQtTl2PjCLQ7g_ilus7QTQ==(DdeTable #=qkHzCky8oXxQK9KdfSRWXIA==, IList`1 #=q_FbkIj6creUiV4zSKfi0BQ==, Action`2 #=qXu_MACRwaNLaEC6ZhDHCNA==, Action`1 #=q6ZiRQ6OfTI4WoYLB2eghQg==)
A first chance exception of type 'System.NullReferenceException' occurred in Robot.exe
The program '[1016] Robot.vshost.exe: Managed (v2.0.50727)' has exited with code -1073741819 (0xc0000005).

Alexander
Alexander

Подтверждаю, столкнулся сегодня с таким даже с фьючерсом на ртс - видимо не успел все поля подгрузить - возникла ошибка. Посмотрю

Mikhail Sukhov
Mikhail Sukhov

Alexander: Подтверждаю, столкнулся сегодня с таким даже с фьючерсом на ртс - видимо не успел все поля подгрузить - возникла ошибка. Посмотрю

Я сделал доп проверку, так как по идее стоимость шага не может быть меньше 0. Сделал несколько версий назад. Хм, возможно, раз такое дело, надо эту проверку убрать.

Alexander
Alexander

Fixed. Ждите 3.2.10

Den
Den
Den 著者

Alexander: Fixed. Ждите 3.2.10 Еще раз спасибо, все работает!