Гидра (4.1.13.1) не обновляет инструменты из Финама.
Atom
28.05.2013


Собственно сабж.

Вот такое сообщение:

Finam | 28.05.2013 13:34:27.981 | Внимание | Обновление остановлено. Ошибка при обновлении базы инструментов источника Finam: System.ArgumentNullException: Value cannot be null.
Parameter name: code
at StockSharp.BusinessEntities.ExchangeBoard.GetOrCreateBoard(String code, Func`2 createBoard)
at StockSharp.Algo.History.Finam.FinamHistorySource.#=q3JIY2NwKNSrLKBnOvNlTNwA2dyab8ChfGyscj96LGXM=(Security #=qFbijq_9RJECNjKQUk6dHBg==)
at StockSharp.Algo.History.Finam.FinamHistorySource.GetNewSecurities()
at StockSharp.Hydra.Finam.FinamSource.GetNewSecurities()
at StockSharp.Hydra.MainWindow.<>c__DisplayClass8f.<ExecutedSourceEnabledChanged>b__8b()


В качестве инструментов Finam указано All@Finam.

Теги:


Спасибо:




10 Ответов
VoDA

Фотография
Дата: 29.05.2013
Ответить


Вчера функция не сработала, зато сегодня загрузка инструментов произошла. Хотя настройки не менялись.

Наткнулся на другой баг:


Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001.

Что может быть за проблема и как ее лечить?
Автор топика
Спасибо:

VassilSanych

Фотография
Дата: 29.05.2013
Ответить


VoDA Перейти
Наткнулся на другой баг:
Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001.
Что может быть за проблема и как ее лечить?

Это не "другой баг". Это - постоянный баг. Его постоянно лечат, а он постоянно появляется. Может решить проблему как-нибудь более системно?

Спасибо:

esper

Фотография
Программист
Дата: 29.05.2013
Ответить


VoDA Перейти
Инструмент VTBR-09.10.09@FORTS имеет недопустимый шаг цены 0.00001. Шаг цены базового актива VTBR@FORTS равен 0.0001.

Что может быть за проблема и как ее лечить?


Если в настройках источника установлена галочка "Скачивать данные для инструментов РТС Стандарт", то ее надо снять.

Проблема действительно появляется довольно часто, особенно на инструментах РТС Стандарт, где шаг постоянно скачет и сильно отличается от шага базового инструмента. Если у вас есть какие-то идеи как решить проблему более системно, то предлагайте.
Спасибо:

Иван З.

Фотография
Курсы Автор статей
Дата: 29.05.2013
Ответить


У меня как то давным давно, вылезла подобная ошибка. Качал с Финама, Сбербанк. Я изменил шаг цены в настройках инструмента, уменьшил в 10 раз. И история закачалась полностью, без ошибок. Может это слишком простой способ, но мне помогло BigGrin . Может ошибка другая была. А вообще, где может понадобится шаг цены, для чего он в Гидре? Его же потом в инструменте настраиваешь.
Спасибо:

VoDA

Фотография
Дата: 29.05.2013
Ответить


esper Перейти
Если у вас есть какие-то идеи как решить проблему более системно, то предлагайте.
Лить в историю ВСЕ то, что дает сервер. double все стерпит. BigGrin

ЗЫ еще выдать ворнинг если цена не кратна шагу.

Автор топика
Спасибо:

VoDA

Фотография
Дата: 30.05.2013
Ответить


Иван З. Перейти
А вообще, где может понадобится шаг цены, для чего он в Гидре?
Хороший вопрос. Присоединяюсь =)

Проверка правильности входящей цены (цена должна быть кратна шагу) это единственная цель наличия шага цены в Гидре?

Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 30.05.2013
Ответить


Иван З. Перейти
А вообще, где может понадобится шаг цены, для чего он в Гидре? Его же потом в инструменте настраиваешь.

Шаг цены используется для сжатия данных.

VoDA Перейти
Лить в историю ВСЕ то, что дает сервер. double все стерпит. BigGrin

Как сказал выше, данные хранятся не в формате double, а в специальном сжатом виде, сохранять и считывать с некорректным шагом цены их не получится.
Спасибо:

VoDA

Фотография
Дата: 30.05.2013
Ответить


esper Перейти
Как сказал выше, данные хранятся не в формате double, а в специальном сжатом виде, сохранять и считывать с некорректным шагом цены их не получится.
а сжатие настолько эффективно, что эти затраты людей на программирование и CPU на сжатие/дешифровку окупаются?
Прикинул, что int занимает 4 байта, double - 8. Итого сжатие от такой "упаковки" может быть максимум в 2 раза. Если хранится лонгом, то снижения нет вообще.

Правда формат может статься совсем заумным и цена хранится дельтой между ценой начала дня и текущей, деленной на шаг. Тогда и short может хватить... если колебания не слишком высоки.

PS Шаг может быть банально уменьшен в 100 раз. По идее должно хватить на косяки данных.

Автор топика
Спасибо:

Иван З.

Фотография
Курсы Автор статей
Дата: 30.05.2013
Ответить


Может просто округлять до шага цены. У меня появлялась ошибка не из-за изменения цены, а из-за неправильных данных Финама. Можно пользователю предоставить выбор, что делать в данной ситуации. При появлении ошибки вылезает окошко с выбором и пояснениями. Округлить, на случай если пользователь уверен что данные источника неверны, например сбер по цене 99,5631985679 округлит до 99,56. Уменьшить шаг, на случай если шаг цены изменялся официально. Может еще какой вариант. Ну и галочку, "выполнять это действие при появлении ошибки в дальнейшем". Либо добавить такие опции в настройках инструмента.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 31.05.2013
Ответить


Гидра умеет сохранять цены, если они не кратны шагу. Получается избыточность, но иногда это необходимо. Я подчеркиваю, иногда, потому что зачастую это означает неправильный поток данных. Особенно, если это касается Финама. Их сервис часто выдает неправильные цены.

Ошибка в этом топике совсем другая. Связана с распарсиванием (а не сохранением) данных о РТС стандарте. Нужно конечно переделать тот код, но РТС стандарт скорее мерт, чем жив. Плюс ко всему, новый формат T+n скорее всего будет иметь отдельное хранилище, так как требует расширенные метаданные.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy